原创: Darren Langley
以太坊在过去3年的发展势头可谓是风起云涌。在以太坊上搭建产品的软件开发者、创新者和企业家也是如雨后春笋般涌现。
虽说以太坊已经取得一定成功,但它仍是一门新兴技术。如果想要支撑起这些已有的或者还未出现的应用程序,以太坊还需要解决一些关键的问题。
01
扩展性
区块链的扩展性问题在这个领域中已是老生常谈。当前的以太坊区块链每秒能够处理的交易只有15笔交易,只有当以太坊每秒能够处理数千笔交易的时候,该技术的潜力才算发挥了出来。以太坊想要实现的目标是:在链上以及无须依赖主节点的前提下实现所有操作(主节点的存在会损害到网络的去中心化程度以及安全性)。
以太坊2.0将解决扩展性问题,同时也会考虑网络的可持续性(sustainability)、效率(efficiency)和灵活性(flexibility)。为此,它结合多个工作流程,将在未来几年内逐步开展。
当然如果以太坊能实现链上扩展是最好的,但也没必要干等着实现链上扩展。当前,许多应用通过链下扩展技术(如Plasma,Plasma Cash和状态通道(State Channels)等)即可实现扩展。
02
全新的设计
以太坊2.0的发展路线图并非是绝对化的,会随着新想法的出现而处于不断变化之中--正如我们知道最开始的Casper设计(EIP1011:
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1011.md)也是在新的设计出现之后就被摒弃了。
我们以迅雷之势完全接受了新设计,因为它将能更快地实现以太坊的高扩展性。这个新设计结合了两个理念(即Beacon chain 和 Aggregate Signatures),将能够为以太坊的扩展性和去中心化程度带来巨大的提升。从资源的角度来看,新的设计方案同样是意义非凡。
让我们了解一下实实在在的东西吧!
03
当前的以太坊区块链
坦白来说,当前的以太坊区块链还是一如往常。它依旧是一条基于工作量证明(PoW)机制的区块链,还是在继续繁殖着加密猫。
当前的区块链——载有交易的区块
新的设计将被开发为与当前的以太坊区块链分离开来,且与当前的以太坊区块链并行运作。在未来,当前的以太坊区块链将被整合到一个全新的系统中。
04
权益证明(PoS)
由于很多原因(详见:
https://github.com/ethereum/wiki ... ed-to-proof-of-work),以太坊正在将共识协议从工作量证明(PoW)转变为权益证明(PoS)。
共识协议就是一套激励不受信任的验证者们去维护区块链的一致性和安全性的规则。共识协议通过提供经济上的安全(economic security)来保护整个区块链网络,即如果攻击者想要篡改存储在区块链上的账本,就必须付出巨大的成本代价,这就使得攻击在经济上变得不可行。
权益证明(PoS)就是通过要求验证者在网络中存储一定的加密货币押金存款(deposits)来保证区块链安全的一整套共识协议(即要成为验证者,节点需要在网络中存入一定数量的加密货币(对于以太坊来说就是eth)作为权益,可以将这理解为保证金)。它要求验证者对新产生的交易区块进行提议和投票。如果验证者遵守协议中的规则,就可以获得一定的押金存款利息作为奖励。但如果验证者采取不诚实的行为(验证并通过欺诈性交易),则会受到经济处罚。
05
信标链(Beacon Chain)
信标链是全新的权益证明区块链,它将与当前的以太坊区块链并行运作。
保证金处理与信标链结构
当前,以太坊区块链上的智能合约要求验证者提交32个以太坊(ETH)作为保证金才能参与到权益证明协议中。
在验证者将保证金提交到智能合约中之后,就成为了信标链(Beacon Chain)的待定验证者(pending validators)。最终他们将成为活跃验证者(active validators)并参与到权益证明协议中。
信标链会即刻产生一个随机数,该随机数用于随机选择验证者来完成区块提议和投票。这个随机选择是非常重要的,因为这样可以避免验证者们相互串通而影响整个系统。
之前的设计的一个缺陷是,它要求验证者每次投票都得提交一笔交易。这些验证者提交的交易增加了区块链的负荷,因此加重了区块链扩展性问题。如此一来,当前的区块链自然是路遇瓶颈。而在新的设计中,信标链控制着权益证明机制,因此各交易之间无需竞争即可被打包进入区块中。
信标链将不会像以太坊虚拟机(EVM)那样包含一个执行引擎(execution engine),因为验证者只能以非常有限的方式与链进行互动。无需再通过EVM来处理投票就意味着,投票将变得更加高效。同时不存在需要计量的计算(arbitrary computation),因此所有在信标链上的交易是不需要消耗gas费用的——这就使得整个交易过程更具成本效益。
06
聚合签名(Aggregate Signatures)
如果每个投票都代表这一笔交易,那区块链就得在很短的时间内按照顺序处理所有投票交易。这就限制了能够参与到权益证明中的验证者数量。要知道,越多的验证者参与就越好,因为这会提升网络的安全和去中心化程度。
聚合签名的运行原理就像请愿书一样——这份请愿书会发送给每个验证者,验证者再使用签名以示支持。为了减少信标链的负荷,这些请愿书会发送至链下(通过一个点对点协议),且只有当请愿书获得足够多的支持之后,才会被并入到主区块链之上。
注:Proposer为“提议者”,Validator为“验证者”
通过聚合签名的方式,可以让更多的验证者参与到权益证明协议中。在之前的设计中,预计最多能够让900名验证者参与。新的设计预计能够使300,000名验证者参与进来,而系统被设计成支持超过222名验证者。因此,成为验证者的最低保证金从1,500eth降低至32eth。
07
分片技术(Sharding)
分片技术是以太坊将如何实现扩展所需的性能提升。
运行以太坊区块链的每台机器都必须按顺序处理交易。尽管交易会在数千台计算机上运行,但这些交易无法并行处理。因此,从扩展性角度来看,当前的以太坊区块链就像一个所有交易都被必须通过的单一管道。分片技术就像是额外增加X数量的管道,使整个区块链能够容纳更多的交易。
实际上,每个分片都是一条单独的区块链,具有自己的状态(账户余额、智能合约)和交易历史记录。但分片技术不是一堆区块链的集合,因为每个分片都与信标链共享同一个权益证明共识协议。信标链上经注册的验证者将包含全球所有的验证者,他们在信标链和各分片上验证所有的交易区块。想要攻破单个分片的共识协议,就必须攻破整个协议(这意味着更加安全)。
由于每个分片是独立的,这就需要执行跨分片交流机制(a cross-shard communication mechanism),这样才能让某个分片上的智能合约与另一个分片上的另一个智能合约进行交流。这种交流可能是不同步的。
如果你觉得这听起来有点复杂,那是因为这项技术本身就很复杂。
当然,作为以太坊的普通用户,你无需为此烦扰。软件开发者们会完成这些复杂操作的。
要知道,互联网也是运行在TCP/IP协议上,而普通用户是不会关注这些的。
通过信标链和聚合签名方案,潜在的分片数量可以从100增加至1,024。
我们预计,通过分片技术,以太坊每秒能够处理的交易量将超过15,000。
08
eWASM
智能合约就是以太坊的生命线,它们能够促成所有有趣的事情发生。当前,以太坊智能合约是通过Solidity/Vyper语言来编写,并编译成EVM代码,代码由以太坊节点执行。但以太坊虚拟机(EVM)本身在性能方面存在不足,成为以太坊区块链的一个性能瓶颈。要知道,执行代码的效率越高,自然就越好。
eWASM的开发就是用于代替EVM。eWASM基于WASM(WebAssembly)指令集,该指令集由W3C(万维网联盟)社区成员设计为一种开放标准,Mozilla,谷歌、微软和苹果等公司的工程师正积极对该指令集进行开发。
eWASM将对以太坊能够处理的交易量以及打包进入区块的交易量产生很大的影响——它将进一步增加系统交易吞吐量。
如果eWASM能使交易处理速度提升1倍,那意味着打包进入某个区块的交易量也将增加1倍。
除了更快,新的指令集将:
- 更加安全(因为指令集实现了标准化);
- 支持更多的编程语言(而不仅仅是Solidity)
- 更加便捷(可在任何地方执行)可以利用WASM生态系统工具
以太坊分片将不使用现有的EVM,而是直接使用eWASM,同时也将开发出能够将Solidity/Vyper语言编译成新的eWASM指令集的编译器。
09
如何获取更多信息?
由于这些研究正处于进行中,且新的开发也是每天都在出现,我们将持续跟进以太坊2.0的开发并及时发布出来。
以太坊自诞生以来已经走了很长一段路了,但它的潜力还只发挥了冰山一角。能够进入以太坊领域和以太坊社区,我甚为激动。
非常感谢Danny Ryan(以太坊基金会成员)提供了很棒的反馈。
也要感谢Hsiao-Wei Wang(以太坊基金会成员)——她非常棒的图表给了我很大的启示。
Unitimes 特约作者
Darren Langley
Rocket Pool区块链高级开发者
英文原文链接:
https://medium.com/rocket-pool/ethereum-2-0-76d0c8a76605
翻译:Hulin
校对:Xiaoqing
【文章版权归原作者所有,其内容与观点不代表Unitimes立场。转载文章仅为传播更有价值的信息,合作或授权联系请发邮件至 [email protected]或添加微信unitimes2017】 |