大数跨境
0
0

区块链里的世界电脑 | 以太坊 ETH

区块链里的世界电脑 | 以太坊 ETH 乐乐食品区块链
2020-09-01
2
导读:Ethereum(以太坊)是一个去中心化的计算平台。你可以把它想象成一台并不在单一设备上运行的计算机。也就是


Ethereum(以太坊)是一个去中心化的计算平台。你可以把它想象成一台并不在单一设备上运行的计算机。也就是说Ethereum可以同时在世界各地的数千台设备上运行,而这也就意味不存在唯一拥有者。

Bitcoin和其他加密货币一样,Ethereum也允许进行数字资产转移。但它的功能应用却更广泛——可以配置自己的代码,并与其他应用程序进行交互。同时,Ethereum具有的灵活性更是允许各种复杂程序的创建。

简单来说,Ethereum背后的主要思想是:开发者可在分布式网络上创建和运行代码,而并非在中央服务器上。而这在这就意味着,这些应用程序理论上是不能被关闭或删改的。


 

Ethereum与ETH的关系

表面上看之间的联系并不那么直观,但实际情况是Ethereum(以太坊)的使用单位并不叫做Ethereum或Ethereums。Ethereum指的是协议本身,而作为动力的代币则被称为Ether(以太币ETH)。

 

 

 

Ethereum的价值所在

之前我们提到Ethereum(以太坊)的代码是在分布式系统中运行的。因此,程序不能被外部所篡改。当它们被添加到Ethereum数据库中(即区块链)后,则代码更不可能被修改。此外数据库的所有人可见则允许你在交互之前进行代码审查。

所有这些就意味着,任何人在任何地方都可以发行不能被下线的应用。并且,Ethereum的价值存储单位Ether则为这些应用程序内的价值转移设定了条件。我们将构成应用的编程称作Smart Contracts(智能合约)。大多数情况下,它们可以在无人工介入的情况下运行。

毫无疑问,“可编程货币”的理念目前吸引了众多用户、开发者以及企业的参与。

 

区块链是什么?

Blockchain(区块链)不仅是Ethereum的核心,还是存储协议所含信息的数据库。如果你曾阅读过“Bitcoin简介”,你就会对区块链的运行机制有基本的了解。Ethereum的区块链与Bitcoin(比特币)的区块链类似,只是在数据的存储方式以及所存储的数据方面有所不同。

Ethereum区块链就好似一本可以添页的书。书中的每一页被称为“Blcok(区块)”,而区块中则存储着交易信息。当我们想要添加新篇页的时候,我们就需要在页面顶端计入一个特殊值。该特殊值则表明此新页是基于前页按顺序添加,而并非随意加入。

此特殊值就像是页码一样,帮助我们辨别新区块是否按照顺序添加。而我们则是使用“Hashing(哈希运算)”来完成这一过程。

哈希运算获取一条数据(此时为区块中的所有数据),并输出一条唯一的标识符(也就是哈希)。两份数据输出同一哈希的可能性非常低,并且该过程也是单向的。这就表明通过哈希运算可以轻松的获得散列,但你并不能通过逆转哈希来获得用于创建该散列的信息。在随后的章节我们将介绍为何这对挖矿至关重要。

这样我们就有了将所有页面按正确顺序连接的机制。任何试图改变顺序或移除页面的操作都将被轻易发现。

想要深入了解Blockchain(区块链)?请查看我们的“区块链技术初学指南”。

 

Ethereum与Bitcoin的不同之处

Bitcoin依赖于区块链技术和金融激励来构建全球数字现金系统。且所引入的关键创新,允许全球用户在无中央机构的情况下进行协作。Bitcoin允许每位参与者都可在自己的计算机上运行程序,而这就为金融数据在去信任化、去中心化环境中达成一致提供了条件。

Bitcoin被认为是第一代区块链。且并不是作为复杂系统而创建的,而这也造就了它在安全方面的优势。有意地非灵活性则优化了基础层的安全性。Bitcoin中智能合约的语言是受限制的,因此并不能很好的适应交易外的应用程序。

相比之下,第二代区块链的功能则更多。除了金融交易之外,那些平台还提供了更高程度的可编程性。Ethereum为开发者们提供了更多的自由,允许他们可使用自己的代码来创建更多的去中心化应用程序(DApps)。

Ethereum是第二代区块链浪潮的先驱,目前也是最闪耀的先行者。它与Bitcoin既相似又不同。在某些方面可执行相同的功能,但在其他方面又完全不同,各自都具有各自的优势。

 

Ethereum的运行机制

我们可以将Ethereum定义为状态机(StateMachine)。也就是说,在任何给定时间节点你都可以获得账户余额和智能合约的当前状态快照。新的操作会导致状态更新,就意味着所有的节点都将更新快照来反映更改。


 

 

Ethereum中状态更新。

 

Ethereum上运行的智能合约由交易(来自用户或其他合约)触发。当用户向合约发送交易时,网络中的每个节点都会运行合约代码并记录输出。而这一过程是通过EthereumVirtual Machine(以太坊虚拟机)来实现的,其中EVM将智能合约转换成计算机可以读取的指令。

为了更新状态,会采用一种叫做“挖矿”的机制。与Bitcoin类似,“挖矿”也是通过工作证明算法(POW)来完成的。稍后将进行深入探讨。

 

Smart Contract简介

Smart Contract(智能合约)就是代码。但该代码既不明智,也不是传统意义上的契约。其中的Smart代表智能,也就是特定条件下的自我执行。而之所以被视为Contract(合约),是因为它执行双方之间的协议。

智能合约概念由计算机科学家Nick Szabo在20世纪90年代末首次提出。他将此概念假象为自动售货机来解释,并声明这将是现代智能合约的先行者。在这个自动售货机中,也存在一个简单合约。也就是当用户插入硬币后,机器会根据人们的选择提供产品。

智能合约则将此类逻辑应用到数字环境中。也就是说你可以在代码中明确规定某种逻辑,例如当合约中收到两个以太币时,输出“Hello, World!”。

 

 


 

Ethereum中,开发者将对逻辑进行编码,以便EVM读取。随后开发者将它发送到登记合约的特殊地址。之后任何人都可以查看和使用合约。除非开发者在编写合约时设定了条件,否则不能被删除。

现在,该合约就有了地址。而如果想要与它进行交互,则用户需要向地址中发送2个ETH。随后合约代码就被触发了,且网络上所有的计算机都可执行。当看到支付已经完成,就会记录输出(你好,世界!)。

以上是Ethereum可完成过程的最基本示例。而随着发展,更复杂且涉及更多合约的应用程序逐渐开始构建。

 

Ethereum之父

2008年,化名Satoshi Nakamoto(中本聪)的开发者(或开发团体)发布了Bitcoin白皮书。而这也彻底改变了数字货币的格局。一位名为Vitalik Buterin的年轻程序员对此概念的进一步应用进行了研究和试验,最后具体化为Ethereum。

以太坊是由Buterin在2013年发表了的一篇博客中提到的,文章名为《Ethereum—终极智能合约和去中心化应用平台》。在文章中,他描述了一个名为“图灵完备区块链”的概念,表示一个具有足够时间和资源的去中心化计算机可以执行任何应用程序,

现如今,可在区块链上配置的应用程序越来越多,而其所属类型的唯一限制也只有开发者的想象力。Ethereum旨在查明区块链技术是否存在超出Bitcoin设计限制之外的应用范围。

 

Ether的发行机制

2015年Ethereum首次供应了7200万以太币(Ether)。其中超5000万的代币在首次代币发行(ICO)中公开销售。届时参与者则可在交易所内使用法定货币或Bitcoin来购买ETH。

 

The DAO和Ethereum Classic

借助于Ethereum,互联网中的开放协作(Opencollaboration)也以全新的方式呈现。例如DAOs(去中心化自治组织),类似于计算机程序,完全由计算机代码控制。

该组织的最早且最宏大的一次尝试则是“The DAO”项目。“TheDAO”是由一些复杂的智能合约组成,并作为独立风险基金运作。而DAO代币则是以ICO形式分配,并授予代币持有者股份所有权和投票权。

然而,在上市不久之后,它就遭到了黑客的恶意攻击,三分之一的资金被盗取。更值得一提的是,当时以太币总供应量的14%都被锁定在DAO中。毋庸置疑,这对于羽翼未丰的Ethereum网络来说是一场灾难性事件。

在经过紧急磋商之后,决定将Ethereum硬分叉为两条链。其中一条分叉中恶意交易被逆转以恢复资金,也就是现在的“EthereumBlockchain(以太坊区块链)”。另一条分叉中的交易没被逆转保持不变,也就是现在“EthereumClassic(以太坊经典)”。

此事件让我们明确意识到此技术中所存在的风险,也让我们体会了将大量财富托付于自治代码可能的后果。同时向我们展示了在开放式环境中达成集体决策所具有的挑战。倘若忽略漏洞,则The DAO通过互联网完美诠释了智能合约在实现去中心化协作(大规模网络中)方面的潜力。

 

 

________________________________________

 

第二章—Ether的产生背景

内容导览

    如何创建新的Ether

    Ether的供应量

    Ethereum挖矿的运行机制

    EthereumGas简介

    Gasprice和gas limits

    Ethereum区块的挖矿时间

    什么是Ethereum代币

 

如何创建新的Ether

之前我们提到过Minging(挖矿)。如果你了解Bitcoin,那么你就会知道挖矿过程对于区块链的安全和更新多么重要。而Ethereum与Bitcoin的挖矿原一样都是根据协议对挖矿者进行Ether奖励。

 

Ether的供应量

截止2020年2月,Ether的总供应量约为1亿1千万。

Bitcoin不同,Ethereum的代币发行计划在创建前并没有被设定好。Bitcoin通过限制供应量并降低新面世代币的数量来保护价值。而Ethereum则通过代币为去中心化应用程序(DApps)提供基础。目前尚未确定何种类型的代币发行计划适合此目的,所以Ethereum是无期限的。

 

Ethereum挖矿的运行机制

Minging(挖矿)对于网络安全至关重要。它确保了区块链可以公平合理的更新,并允许了网络在无单一决策者的情况下运行。在挖矿活动中,节点的子集(也就是矿工)奉献计算能力来解决加密难题。

他们实际上就是将一组未决交易及其数据进行哈希运算。为了使区块有效,哈希值必须低于协议的规定值。如果一次操作失败,他们可以修改某些数据进行再尝试。

由于存在竞争,所以矿工必须以最快速度完成哈希运算,通常使用哈希率来衡量矿工的能力。网络上的哈希算力越高,则加密难题越难解决。当矿工找到真正的解决方案后,他还需向网络中广播,以便于其他参与者对有效性进行验证。

高速连续的哈希运算费用是昂贵的。当矿工在为网络安全付出努力时,就会获得奖励。而奖励则是区块中所有的交易费用。他们也接收新生成的Ether(在撰写本文是为2ETH)。

 


Ethereum Gas简介

还记得之前提到过的“ Hello, World!”合约么?该程序非常简单,且计算费用也不高。并且Ethereum生态系统中的任何人都可运行。

而这就引出了以下问题:当成千上万人都在运行复杂合约时网络将会怎样?如果某个人将他的合约设定为持续循环的相同代码,且每个节点都需要无限期运行它又会是怎样?很显然,这些过程占用了很大资源,并且可能会导致整个系统崩溃。

幸好Ethereum引入了gas来规避这种风险。这就像汽车不能在无燃料的情况下行驶一样,合约也不能在没有gas的情况下运行。合约的运行则需要用户支付一定数量的gas。如果没有足够的gas,则合约将终止。

其实,这就是一种收费机制。将概念应用到交易上就是:矿工的主要动机是收益,因此他们将忽略费用较低的交易。

但请记住Ether与Gas是不一样的。Gas平均价格的波动很大程序上取决于矿工。当你进行交易时,就要使用ETH来支付gas。并且也会如Bitcoin在收费方面一样:如果网络拥挤且很多用户都在试图交易的话,gas的价格就会上涨。相反,如果网络中没有太多活动,价格就会下降。

虽然gas的价格会改变,但每次操作所需的gas量是固定的。也就是说,复杂的合约将比简单的交易消耗更多的gas。因此,gas就成为了算力的度量基础。并以此来确保系统将根据用户所使用的Ethereum资源量来收取合适的费用。

因为Gas只是Ether的很小一分部。所以,我们使用更小的单位“gwei”来表示。1gwei相当于十亿分之一的Ether。

简单来说,你的确可以运行一个长时间循环的程序,但此操作很快将变得非常昂贵。这样Ethereum中的节点就可以缓解网络中的垃圾信息了。

 

 

Gas平均价格随时间推移的变化(单位gwei)。来源:Etherscanio

 

Gas price和gas limits

假设Alice正在进行一笔交易。她会计算出想要为单位gas支付的费用(可以通过ETH Gas Station),也就是gasprice。也许她会设置较高的价格以此来激励矿工尽快处理她的交易。

同时她也会设置一个gas limit,用来自我保护。合约出现问题时,会使得所消耗的gas要多于她所计划的。而gas limit的作用就是确保,当设置gas量消耗完时,操作将停止。那时合约也会失效,且Alice最终支付的金额不会超过她最初所允许的支付额。

乍一看,这似乎很难理解。但其实就是告诉你,可以手动设置愿为单位gas支付的费用(gas Price),以及该笔交易可消耗的最大gas量(gas limit)。而大多数的钱包都会为你处理该问题。同时gas price决定矿工打包交易的速度,而gaslimit则决定你愿意为此交易支付的最多gas量。

 

Ethereum区块的挖矿时间

将一个新区块链添加到区块链中的平均时间为12-19秒。而如果网络转变为Proofof Stake(权益证明),那么速度将会更快。如果想深入了解此问题,请查看《Ethereum Casper解析》。


 

什么是Ethereum代币

Ethereum最大的魅力在于可允许用户在链上创建自己的资产,并且这些资产可以像Ether一样进行存储和转移。开发者们可以在智能合约中对资产管理规则以及代币参数进行设定。其中包括代币发行量,代币发行机制,是否可被分割,是否可替换等。在Ethereum上创建的代币都需要符合ERC-20技术标准,因此这些代币也被称为ERC-20代币。

代币的功能性为创新者们提供了更广的试验平台,允许他们在金融和技术等前沿领域进行更多的尝试。从发行应用内统一货币,再到生产以实物资产为基础的独特代币,都具有很大的设计灵活性。未来的应用前景将会更加广泛,且一些最佳用例也会慢慢浮现。

 


【声明】内容源于网络
0
0
乐乐食品区块链
乐乐食品区块链是可以在食品工业中使用的区块链。这是关于食品产业的科技系统。 乐乐食品区块链有许多参与者的福利;制造商,也批发商,零售商,出售和消费食物的人,这全都与供应链有关。乐乐通证是该区块链唯一的激励,可消费和回馈社区的资产
内容 30
粉丝 0
乐乐食品区块链 乐乐食品区块链是可以在食品工业中使用的区块链。这是关于食品产业的科技系统。 乐乐食品区块链有许多参与者的福利;制造商,也批发商,零售商,出售和消费食物的人,这全都与供应链有关。乐乐通证是该区块链唯一的激励,可消费和回馈社区的资产
总阅读0
粉丝0
内容30