分歧中前行的以太坊2.0区块链

哈希派 2018-09-09 14:49
分享到:
导读

以太坊迈入2.0时代的关键是:信标链/分片客户端 eWASM

blob.png

去年11月,以太坊创始人Vitalik Buterin曾在台北的技术交流会上,详细披露了以太坊未来发展的2.0路线图——使用zk-Snarks技术、构建新型Python智能合约编程语言“Vyper”、整合分片技术或Plasma项目、部署PoS权益证明机制等等来实现客观的链上交易吞吐量,同时兼容去中心化以及安全性。不过以太坊2.0的路线图并非一锤定音,随着更多新想法的加入,它的设计也在不断变化。

根据下一代PoS矿池Rocket Pool开发者Darren Langley近日在Medium上发布的文章描述,为了成为现实世界中价值转移的关键基础设施、新经济体系平台以及全球合作中心,以太坊2.0将要整合的几大关键项目是:

权益证明机制(信标链,Casper FFG):信标链是全新的股权证明区块链,将与当前的以太坊区块链并行运作

分片技术:以太坊实现交易网络高吞吐量的解决方案

eWASM(以太坊虚拟机EVM的升级项目): eWASM是基于WASM(WebAssembly)指令集的虚拟机设计方案

而就如Vitalik早前在发布的《去中心化的意义》文中所说,“区块链在政治上是去中心化的(没有人能控制它们),架构上也是去中心化的(没有基础设施性的中心故障点),但它在逻辑上是中心化的(有一个共同达成一致的状态,系统就像一台计算机”;为此除了以太坊的运行是去中心化的(没有单一实体负责维持区块链的运行)之外,它的开发也是去中心化的,因为以太坊2.0并不由任何一个企业单独开发。

照这样说的话,以太坊2.0具体是如何创建的呢?

一个完整的开源软件项目生态 公开的课题讨论记录

从某种意义上来说,以太坊是一个庞大的开源项目;相关的协议提案由社区内研究人员及实施者共同提出,经过讨论、改进等程序后才会最终实施。虽然以太坊基金会在整个过程中起着较大影响力,且该组织内开发者的受关注度及名声较高;但以太坊的相关决定都是社区通过共识做出的。

基于以上基础,网络内运行以太坊的软件,即客户端或者说节点有不同版本,分别由不同的软件开发团队基于开源代码编写。同时以太坊具有完整的开源软件项目生态系统,开发者可使用以下基础设施来构建以太坊的各个组成部分:

智能合约编程语言:Solidity、Vyper
RPC库:Web3js、ethers、Nethereum
开发工具:Truffle、ganache、solc、solium

而为了更好地实现以太坊2.0,社区内正在研究的议题,及相关讨论记录和开发进展都会在以太坊研究网站上(https://ethresear.ch/tags)公开展示。根据网站的资料显示,目前社区内研究人员及开发者正在研究的议题包括:签名聚合、随即数生成、分叉选择、数据可用性、轻客户端支持、P2P通信、跨分片通信和状态/执行分离等等。

这些议题中有部分已经达到可实施程度;但也有不少还处于早期阶段,仍需要更多的时间来确定研究成果。随着研究课题的逐渐成熟,它们将会合并为以太坊2.0客户端的规范;让实施团队接下来可利用以太坊基金会目前正开发的参考实现客户端(基于Python建立),进行开发。

另一方面,以太坊2.0实施者每两周还会举行一次视频会议,以跟踪相关开发进度、解答问题,并就常见争议达成共识;而目前已召开的三次视频会议都能在GitHub上查找回看(https://github.com/ethresearch/eth2.0-pm)。

关键项目的具体开发进展

信标链/分片客户端

作为以太坊2.0的核心,信标链/分片客户端当前由多个团队开发实施:

Prysm:由Prysmatic Labs开发,使用Go编写。该团队每两周都会对他们的进展进行一次更新,上周则就跨分片通信低效问题进行更新;

Lighthouse:由Sigma Prime开发,使用Rust编写;

Nimbus:由Status开发,使用Nim编写;

Loderstar:由Chain Safe Systems开发,使用JavaScript编写;

Harmony:由Ether Camp开发,使用Java编写;

Pantheon:由ConsenSys的协议工程小组PegaSys开发,使用Java编写。该团队专注于以太坊正面临的包括公链及私链的可扩容性和隐私性等等问题;

Trinity:由Piper Merriam领导的Trinity团队开发,使用Python编写。

这些团队正就信标链状态数据结构和持久性、每个区块的状态转换、分叉选择实施、验证器改组、区块发起者的角色、数据结构序列化、P2P协议等等方面进行研究;不过当前每个团队在实施以太坊2.0方面的开发进展各不相同。

而在各个团队的开发逐渐成熟之际,他们需要一种对测试用例进行编码的通用测试语言,使得开发者能够定义一组具有预期结果的测试,并根据规范验证器进行实施;这同时也是社区目前正在讨论的重要进程之一。

eWASM

根据以太坊基金会核心开发者Jake Lang昨日在产业发展峰会上的说法,eWASM将会是以太坊智能合约的未来,它能解决当前以太坊虚拟机EVM过于复杂、性能低、仅支持编程语言及开发工具有限等问题。而鉴于WASM指令集本由Mozilla、谷歌、微软和Apple等工程师开发,eWASM项目开发团队的首要任务是解决eWASM与当前EVM的兼容性问题。

目前eWASM团队正在评估新虚拟机的影响,但是关于其具体执行方法及实际运行情况方面的研究目前还处于早期阶段。其中的一个原因是,新的以太坊2.0分片系统可能会采用延时执行机制,而不是当前EVM区块链正在使用的智能合约代码与交易处理几乎同时执行的模式——在新以太坊2.0分片系统中,分片负责交易排序且仅储存数据,而负责读取交易、执行代码及写回结果的重叠(overlay)执行过程则会在顶部的第二层进程中构建,而不是在区块链内进行。

总的来说,以太坊2.0当前由社区内多个团队共同开发,虽然还没有到达实现和落地的那一步,但已取得不少进展;至于以太坊能否或者说何时真正迈入2.0时代,就要看信标链/分片客户端和eWASM的开发进度了。

开发 团队 使用 分片 开发者
分享到:

1.TMT观察网遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2.TMT观察网的原创文章,请转载时务必注明文章作者和"来源:TMT观察网",不尊重原创的行为TMT观察网或将追究责任;
3.作者投稿可能会经TMT观察网编辑修改或补充。