Skip to main content

第八章 以太坊 Layer2 及其路线图

在以太坊的发展历程中,研究者们探索了多种方法来提升网络的扩展性,比如状态通道和等离子体链。不过,他们最终将目光集中在了 rollup 技术上,这是一种普遍认可的解决方案。rollup 技术主要分为两大类:乐观型和零知识型。这两种技术的基本思路都是将交易处理转移到第二层网络,然后将处理结果记录在以太坊的主链,也就是第一层网络上。虽然 rollup 技术曾被视为未来的解决方案,但现在已有一些平台投入运行,更多平台也在紧锣密鼓地准备上线。像我这样的许多用户现在更多地在第二层网络上活动,而不是拥挤的第一层网络,预计未来这种趋势将变得更加普遍。除了以 rollup 技术为核心的发展愿景,我们还有以太坊的路线图。这份路线图展示了以太坊开发者和研究者的长远规划,它不是一成不变的,而是一个动态的目标集合,随着时间推移可能会有所调整。人们期待在实现主要目标后,以太坊将达到一个成熟阶段,届时以太坊协议将稳定下来,成为支撑众多创新去中心化应用(dApps)的坚实基础。在本章中,我假设读者已经对我们之前讨论的内容有所了解,因为这些话题相当深入,如果没有以太坊的基础知识,可能难以完全理解。

可扩展性不可能三角

以太坊的创始人,维塔利克·布特林(Vitalik Buterin),提出了可扩展性不可能三角(Scalability Trilemma),来描述区块链如何在三个理想属性之间挣扎:可扩展性、去中心化和安全性。所谓不可能三角,是指区块链往往只能在这三者中兼顾两个方面,而不得不牺牲第三个方面。简而言之,区块链技术在提升交易处理能力、保障网络的去中心化管理,以及维护系统安全之间,需要做出权衡。

可扩展性:指的是区块链每秒能处理多少笔交易(tps)。 去中心化:指的是区块链的去中心化程度,通过节点数量来衡量。 安全性:指的是区块链对攻击的抵抗力有多强。

比特币和以太坊作为区块链技术的代表,以其高度的去中心化和安全性著称,但在处理大量交易时存在可扩展性的限制。这两个网络都拥有数千个全节点和矿工/验证者,确保了网络的去中心化特性;同时,它们分别依赖于庞大的计算力(比特币)和质押的 ETH(以太坊)来维护网络安全。然而,对于以太坊而言众多的节点和质押的 ETH 也限制了全节点和验证者能处理的交易量。因此,以太坊的主链(Layer 1)大约只能每秒处理15笔交易,虽然理论上我们可以通过减少共识节点的数量来牺牲一些去中心化和安全性以提高交易处理速度,但这并不符合以太坊社区的愿景。因此,我们迫切需要在不牺牲去中心化和安全性的前提下提高可扩展性。长远来看,以太坊可能会考虑实施分片技术,将主链分割成多个分片并行处理交易,但这取决于实际的需求。而在短期内,以 Rollup 技术为核心的第二层扩展方案已成为主要的发展策略。

Rollups

以太坊的主网,也就是我们常说的第一层(Layer 1),是我们熟悉和钟爱的以太坊区块链,而所谓的 Rollup 技术,属于第二层(Layer 2),它们在第二层上执行交易,但最终在第一层上完成结算。第二层有自己的 EVM 来处理交易,并维护一个独立的 Rollup 状态,每隔一段时间第二层上的一系列交易会被打包成一个交易,然后提交到第一层进行最终确认。因此,第二层的安全性实际上是“继承”自以太坊,因为所有第二层的交易最终都在第一层上结算。通过这种方式,Rollup 技术为第一层分担了交易压力,提供了一个额外的交易渠道,得益于第二层 Rollup 技术对 gas 的高效利用,用户在使用第二层服务时所需支付的 gas 费用相较于第一层大大降低。

乐观型 Rollups

乐观 Rollups 技术结合了部署在以太坊第一层的智能合约和运行在第二层的 Rollup 系统,第一层的智能合约负责两层间的信息传递。一般流程是用户先将资产存入第一层的智能合约中,然后这些资产会通过桥接技术转移到第二层的 Rollup 系统中。同样地,用户也可以选择通过桥接回到第一层来退出 Rollup 系统,资产一旦转移到第二层就会发送给一个序列器,这个序列器是专门用来处理交易的 Rollup 组件,交易被高效地打包成区块形式,然后序列器将这些区块作为调用数据提交到第一层,这里的调用数据指的是交易中的输入数据字段。通过这种方式多个 Rollup 交易可以合并为一个第一层的交易,提交到第一层的交易信息还包括之前的状态根和由这些交易生成的新状态根,之所以被称为“乐观” Rollup,是因为我们默认新的状态根是诚实的,并且其中只包含有效的交易。但是一旦这些信息被提交到第一层,就会进入一个挑战期,如果在第一层和第二层的状态根之间发现任何不一致,被质疑的交易将被重新执行。目前,最受欢迎的第二层乐观 Rollup 项目包括Arbitrum、Optimism、Base 和 Linea。

ZK 型 Rollups

零知识型 Rollup(ZK Rollups)与乐观型 Rollup 在大体框架上相似,但有一个关键的区别,它们在以太坊的第一层拥有智能合约,并且能够将交易桥接到第二层的零知识型 Rollup 系统。在第二层,用户将交易提交给序列器,序列器将众多交易整合成一笔交易,然后作为调用数据发布到第一层。与乐观 rollup 不同的是,零知识 rollup 不设置挑战期,而是通过有效性证明来确保交易的合法性。有效性证明是一种密码学验证手段,能够即时验证 rollup 处理的状态转换是否有效,无需等待挑战期。目前,最受欢迎的第二层零知识 rollup 项目包括 zkSync 和 Starknet。

以太坊路线图

以太坊路线图是一系列半正式的目标,以太坊的开发者和研究者们正朝着这些目标努力1,它反映了研究和开发社区认为能够解决以太坊协议中任何未解决问题的主要目标。它就像一个愿望清单,列出了希望被正式化为以太坊改进提案(EIPs)并包含在未来升级中的解决方案。关于发展路线图完成所需的时间并没有确切的答案,但预计可能需要5到10年的时间。在某个阶段,人们希望该协议能够固化为一个普遍接受的状态,即不需要进行重大更改,但这当然取决于不会出现任何不可预见的问题。由于书籍出版的性质,当你阅读这篇文章时,其中一些内容可能已经成为以太坊协议的一部分。

路线图包含了六个需要解决的关键领域,这些领域分别是:The Merge(共识机制)、The Surge(扩展性)、The Scourge(中心化风险)、The Verge(区块验证)、The Purge(协议清理)和 The Splurge(其他所有事项)。我挑选了一些预计在不久的将来会发生的重点,但对以太坊未来有浓厚兴趣的人应该查看完整的路线图,由于这些主题的研究大多还处于早期阶段,我只能描述它们的意图,而不是具体的实施方式。请记住,这些只是一些短期内的重点,每个领域都有更长远的宏伟目标。

单一领导选举 / 单时隙确定性 (The Merge)

目前,区块提议者是提前已知的,关于全节点的公开信息有限但IP地址可能会暴露,对手可能会利用这些信息进行恶意行为,比如发起拒绝服务(DoS)攻击,干扰区块提议者在其时间段内的活动。秘密领袖选举是一个研究目标,只有区块提议者知道自己被选为了某个时间段。另一个提出的共识改进是单时隙确定性(Single Slot Finality),这将允许区块立即被确定。

Proto-danksharding (EIP 4844) (The Surge)

Proto-danksharding(EIP 4844)将会改变当前的 rollup(二层扩展解决方案)发布交易信息的方式,即所谓的调用数据(Call Data)。当 rollup 将调用数据发送到以太坊的第一层(Layer 1)时,这些数据需要被处理并添加到区块链上永久存储。然而 rollup 实际上只需要在可以被挑战的时间段内临时保存交易数据,Proto-danksharding 引入了一种新的存储 rollup 数据的方式称为“blobs”,这些数据只会在需要的时候(可能是1到3个月)存储,之后就会被丢弃。

提议者 - 构建者分离(PBS)(The Scourge)

提议者 - 构建者分离(PBS)明确了提议者和构建者各自的角色,PBS 原本计划纳入以太坊协议,但在以太坊从挖矿过渡到质押,也就是合并(The Merge)期间它被暂时搁置了。在这期间,MEV - Boost 作为一种解决方案出现,它让区块构建者可以构建执行区块,然后把区块交给中继节点,中继节点再把这些区块整合起来,让区块提议者能挑选出最赚钱的区块。一旦 PBS 加入后,提议者就不会再自己构建区块了,只有区块构建者来构建区块。实际上,PBS 是把区块构建者的角色正式纳入以太坊协议,不再是他们现在这种半官方的状态。

账户抽象(The Splurge)

外部拥有账户(EOA)的设计有点不太方便,它们的主要功能就是让用户能够发起交易和调用智能合约里的功能。而账户抽象这个概念,可以让 EOA 由智能合约来控制,或者让智能合约像现在的 EOA 那样自己发起交易。这样一来,就能在用户体验上带来很大的提升,比如帮助用户找回丢失的私钥、一次性处理多笔交易、设置安全规则等等。总的来说,账户抽象能让用户在使用账户时的感觉更接近于他们平时对“用户账户”的常规认知。

总结

亲爱的读者,我要和你说再见了,希望你读完后比读之前懂得更多。在以太坊里,你可能会觉得自己对很多东西都只懂一点,这很正常。以太坊就像个兔子洞,你刚觉得看到头了,又冒出个新弯儿,要学的东西太多了。一开始可能会觉得有点害怕,好像学不完,其实呢你可以挑自己感兴趣的那部分专注研究。重点是,兔子洞深不是坏事,是个机会。在以太坊,到处都能出份力,到处都能当先锋。要是不知道下一步干啥,可以试试给 ethereum.org 网站帮忙,这是个开源的志愿者社区,谁都能贡献内容。不用会编程,只要能学懂以太坊的东西,再讲给别人听就行。永远记住,就像 Jameson Lopp 说比特币那样,“没人能完全搞懂以太坊,这很正常!”

备注

Footnotes

  1. Vitalik Buterin 在 Twitter 上发布的路线图:https://twitter.com/VitalikButerin/status/1588669782471368704/photo/1