回顾 2018 年以太坊协议发展之路

  • 时间:
  • 浏览:27

  编者按:本文来自36氪战略合作区块链媒体“Odaily星球日报”(公众号ID:o-daily,APP下载)

  本文来自 medium,原文作者:ConsenSys 公司区块链协议工程师 Ben Edgington。

  译者 | Moni

  编辑 | 卢晓明

  

  对于以太坊来说,刚刚过去的 2018 年可以说是“网络扩容之年”,在此不妨让我们来看看以太坊区块链发生了些什么,以及在通向“以太坊2.0”的道路上取得了哪些进展。

  实际上,从去年年初开始,以太坊社区就已经把全年主题基调定位了“扩容”。

  2018 年 1 月 2 日,以太坊基金会宣布将为致力于提升网络交易处理能力的开发人员和研究人员提供数百万美元的津贴,希望帮助他们尽快获得资金拨款,以支持开展相关扩容开发工作。

  2018 年 3 月 4 日,在题为《2018 以太坊未来之路》(The Road Ahead for 2018)的以太坊大会上,以太坊创始人、“V神” Vitalik Buterin 在演讲中表示,扩容将是以太坊在 2018 年最关注的事情。

  那么,“以太坊扩容之年”里到底发生了些什么呢?

  根据以太坊基金会对扩容升级的要求描述,他们认为有两种备选解决方案可以提高系统处理能力。第一层是“链上”(on chain)协议层,可以从跟不上增加以太坊区块链的容量;第二层提高了一种“链下”(off chain)解决方案,其中大多数交易不会被记录在区块链上,不过底层区块链却可以保证第二层的系统安全性。

  本文会先介绍一下第一层协议的最新进展,第二层扩容研究和开发情况则会在《以太坊2.0协议核心Beacon链详解》一文中做深入阐述。

  以太坊亟待解决的一个问题:交易速度太慢

  到目前为止,我们还没有看到哪一个区块链项目能够在如此短的时间内取得与以太坊相媲美的成就。下图展示了以太坊自成立以来的平均区块利用率变化情况,我们发现在经过了最初几年的低容量运行之后,2018 年的绝大部分时间的区块利用率都已经超过了 80%,其中有几天时间的平均区块利用率一度超过 96%。(注:2016年夏天以太坊遭受网络垃圾邮件攻击、以及此前的 DAO 黑客事件曾让以太坊区块利用率出现过短暂的高峰。)

  

  以太坊的容量问题会导致极差的用户体验,比如链上交易需要等待很长时间才能得到确认,交易费用(gas 价格)也会变得很不稳定。

  以太坊必须大规模扩容,因为用户需要每秒能够处理数千笔交易、而不是现在每秒只能处理15笔交易的区块链。当然,扩容也是以太坊长久计划的一部分,而且还推出了“分片”(sharding)解决方案。现阶段,以太坊网络和市场上其他区块链平台一样,每笔交易都必须经过所有节点的处理验证,这种模式显然给交易速度带来了巨大限制。而在分片网络中,交易处理、以及和该交易相关的存储(交易状态)都会被拆分到独立的分片(shard)中,因此每个节点只需要处理很小一部分的系统负载,速度也会因此获得提升。这一切似乎听上去非常简单,但其实不然——真正的挑战在于如何让整个以太坊网络可以安全、且同时做到这一点,再通俗一点说就是:如果我们有 1000 个分片,如何能避免网络攻击变得容易 1000 倍?

  其实早在 2018 年初,一个分片以太坊协议规范就已经出现,而且还稳定运行了一段时间。根据该规范中的约定,2018 年 3 月在中国台北举办了一场研讨会,期间汇聚了所有计划在不同以太坊客户端中实施分片技术的各方。随着这场研讨会时间的临近,分片技术的研究步伐也在加快,就在研讨会召开前三天,以太坊社区内还推出了一个全新的规范概要,其中不仅有很多分片技术的新想法,而且对其未来发展充满期待。

  这场全球分片技术社区的首次聚会吸引了很多业内大咖,包括来自 PegaSys/ConsenSys 的 Nicolas Liochon 也不远万里从欧洲搭乘长途飞机前往台北。下图是在台北举行的首届以太坊分片研讨会参会者合影:

  

  这场首届以太坊分片技术全球研讨会为期三天,期间打击探讨了非常广泛的问题,包括分片结构和其他更广泛的技术创新,主要参会者包括:

  在正式实施分片之前,这些参会人员对新规范中的概念进行了深入探讨。实际上,当前的以太坊网络中的每个节点都需要负责三个不同的功能:

  (1)参与排序交易共识;

  (2)执行这些交易,并且更新状态;

  (3)确保这些交易和更新后的状态可用于网络中的其余部分(数据可用性)。

  而在分片网络中,这些功能可以在不同网络参与者之间被分配,以便网络中的各种功能得到优化,具体如下:

  (1)提议节点(Proposer nodes)负责将交易封装进区块,其中他们的提议将会作为规范历史;

  (2)校对节点(Collator nodes)会检查提议节点所提供区块中的数据是否可用,然后再将它们添加到分片区块链中;

  (3)执行节点(Executor nodes )负责根据需要更新客户端的区块链状态(比如客户端的账户余额)。执行节点会采取一种所谓的“惰性评估”方法,在这种情况下,只有实际需要的数据计算才会被执行,而且该方法还可能被用于“替代执行引擎”——一种创新的并发执行引擎,能够使交易并行执行和验证,同时利用以太坊网络结构优化,即侧链计算资源的方式来提升网络性能。

  分片网络与当前的以太坊主网截然不同,但是如果想要平衡以太坊网络中的效率和安全,优化分片技术是非常有必要的,毕竟不是每个以太坊区块链网络里的节点都可以成为分片客户端。为了保持网络效率,提议节点和执行节点可以保持与少量分片同步,但为了保持网络安全,校对节点(也就是实际写入区块链的节点)可以非常频繁地在分片之间移动,也避免网络中的一小部分参与者变成分片接收方(shard-takeovers)。

  在台北举办的首届以太坊分片技术全球研讨会上,我们还讨论了很多其他问题,包括完成所有相关工作所需要的各种基础架构、分片管理器合约、无状态客户端、以及 Peer-to-Peer 网络层,等等。

  很明显,除了致力于构建以太坊扩容基础架构之外,社区对于以太坊网络创新也存在大量需求,这些需求与扩容无关,但却因为各种原因被压抑了。也许,分片的实施会成为以太坊引入其他重大创新的机会。因此在以太坊分片技术全球研讨会上,参会者还花了一些时间研究其他主题,既有用 eWasm 替代以太坊虚拟机(EVM)这种颇受争议的想法、还有账户抽象和存储租金等其他老生常谈的问题。

  在中国台北举办的首届以太坊分片技术全球研讨会上,参会者讨论的都是一些全新的概念,因此在会议结束之后,很多概念需要继续深入评估,而在接下来的几周时间里,研究人员和开发人员似乎也发现的确存在问题:

  首先,在中国台北举办的首届以太坊分片技术全球研讨会上讨论的提案具体细节存在一些缺点(具体缺点可在“Exploring the proposer/collator split”这篇文章中查看);

  其次,开发人员和研究人员在其他方面看到了一些非常有趣的新发现,特别是在加密方面,可以在不损失效率和安全的情况下对以太坊分片模型进行大规模重构。

  随着新开发项目的深入,各种问题也需要进一步深入讨论,因此以太坊分片社区认为是时候再召开一场分片研讨会了。这次,开发人员和研究人员决定将会议时间定在 2018 年 6 月,当时恰逢 Status 正在组织开发者大会,因此以太坊分片研讨会决定利用这次契机在柏林召开。

  Casper FFG(权益认证)团队出人意料地参加了这场以太坊分片技术全球研讨会,就在这场会议举办的前三到四周,社区对分片规范提出了另一个重大改变建议:为什么我们不能在同一个平台上一起构建分片和 Casper?

  实际上,根据目前已经放弃的以太坊改进提案 EIP-1011,一些全新的分片设计选择与计划中独立进行的Casper FFG工作具有不少共性,比如:

  鉴于这些共性,有人建议分片和 Casper 都可以建立在同一个基础设施上,即 Beacon 链。此外,在同一个平台上一起构建分片和Casper的另一个优势,就是将 Casper 和分片脱离现有以太坊主网运行,这样就不会给网络带来额外的负载了。

  在柏林举办的这场以太坊分片技术全球研讨会上,开发人员和研究人员最终达成了共识,同意在同一个平台上构建、实现分片和 Casper 两个项目,而且认为这将是一个积极且实际的方法。

  除了探索项目的未来规划之外,以太坊分片技术全球研讨会还讨论了其他各种新想法:

  当时间来到了 2018 年 8 月,以太坊扩容这件事又向前迈进了一步。

  实际上,虽然某些方面依然存在一些问题,但以太坊区块链扩容的研究在 2018 年上半年得到了巨大进展,而且总体方向也已经非常明确了——分片和“权益认证”将会在一个全新的区块链平台(也就是以太坊 2.0)上进行,该平台会与当前的以太坊主链(Main Chain)相连,但主链仍会继续按原样运行。

  

  基于这样一个全新的平台,Beacon Chain 可以突破当前以太坊主网的容量限制,继而无限制地尝试、并引入更多创新。更重要的是,这种解决方案无需在当前运行的网络上“动刀”,而且实施的时间进度也更容易推测出来:预计Beacon Chain(包括 Casper FFG 在内的协调层)会在 2019 年正式实施,而 Shard Chain(数据层)则会在 2020 年实施,执行层的实施时间可能会在 2021 年。

  毫无疑问,未来以太坊区块链会有更多创新,而且开发人员和研究人员也会就这些创新进行更深入地探讨。但总的来说,目前对于以太坊 2.0,我们仍在积极寻找新的共识机制、新的加密经济模型、新的执行引擎(比如 eWASM,甚至潜在的延迟执行)、以及新的加密原语(primitives)。

  (注:原语是指操作系统执行过程中不可被打断的基本操作,你可以理解为一段代码,这段代码在执行过程中不能被打断(在多道程序设计里进程间相互切换,还可能有中断发生,经常会被打断)。像原子一样具有不可分割的特性, 所以叫原语, 像原子一样的语句。)

  最后,让我们援引以太坊联合创始人、“V神”Vitalik Buterin 在中国台北举办的首届以太坊分片技术全球研讨会上说过的一句话作为结尾——

  “以太坊 1.0,是一群充满斗志的人去尝试构建一台‘世界计算机’(World Computer);以太坊 2.0,将会让这台‘世界计算机’真正成为现实。”