作者:以太坊基金会研究团队
编者注:2022 年 1 月 7 日,以太坊基金会研究团队在 Reddit 上举行了第七次 AMA,内容涉及 L2、分片设计、更广泛的路线图、MEV、EIP-1559 等。ECN 对这次 AMA 的大部分问题进行了整理和编译。需要注意的是,基金会研发团队成员就某些话题存在个人的看法和推测,为避免曲解,请以原贴为准。
由于篇幅较长,本文将作上下两期发布,本期主题包括 PBS、分片设计和 Layer2。
PBS 和分片
Maswasnos 提问:
以太坊基金会对 Dankrad 提出的需要独立高性能区块构建者的新分片提案有什么看法?也就是说,研究团队是否预计分片将需要网络中的某种数据中心级别的资源,或是否可能进行更分布式的实现?
Vitalik 回复:
必须达到数据中心级别的节点只有构建者节点 (请看《Vitalik: 如何提高 PBS 方案的交易抗审查性》)。验证者和普通用户节点将继续只需要普通计算机来运行 (事实上,PBS 的一个好处是当 Verkle tree 被部署了,验证者可以完全是无状态的!)。
另一点值得注意的是应该可以构建分布式的区块构建者。将会有一个收集带有数据承诺的交易的协调节点 (coordinating node),但该协调节点的性能只等同于普通计算机,因为每个数据承诺都是通过其他某节点独立构建,并传送给协调节点。这个协调节点将需要依赖某种声誉系统,以确保这些承诺背后的数据是实际可用的,但这是一些 L2 DAO 协议可以轻易做到的。
以太坊基金会的 Joseph Schweitzer 回复:
我相信有些研究员会加入自己的想法,但值得注意的是,以太坊基金会作为一个组织,对于正在进行研发的探索并没有真正统一的看法。
如过去几年的博客里所说的,以太坊基金会更像是一个集市而不是大教堂。相对独立的研发工作有时会在以太坊基金会的保护伞下,这能节省管理开销。但就像以太坊基金会不会为某个客户端或某个 EIP 背书一样,对 Dankrad 和其他的提案的看法都是个别研究员的个人看法。很多时候,团队内部也有很多的争论和不同意见。
Diligent-Mouse 回答:
值得澄清的一点是 Dankrad 建议严重依赖的提议者/构建者分离 (PBS) 系统也仍在讨论中。会发生的情况是,你可以继续在家中的普通消费型硬件上运行普通节点。你仍然可以在该硬件上运行 32 个 ETH 验证者,该验证者可以向链提议区块和验证其他验证者提议的区块。在 PBS 下改变的是验证者会依赖外部的 “构建者”选择打包的交易并以收益最高的方式对它们进行排序。这就是 Flashbots 今天对进入白名单的矿工做的事。那些“构建者”会需要高性能的硬件和互联网连接,才能找出最有利可图的机制来打包这些区块,以向验证者提出建议。
当这个想法与新的分片提案结合时,它对每个人来说都极大地简化了分片。
Liberosist 提问:
这个新设计将如何影响路线图/时间线?
以太坊基金会 Danny Ryan 回复:
Dankrad 的设计承认了在任何分片设计里,多分片的 MEV 都将存在,因此分片数据的市场将倾向于由多分片构建者 (专业化的非验证者) 向提议者 (验证者) 提供数据。这些多分片构建者在任何这样的设计里都将消耗大量资源,以通过运行复杂计算来捕获 MEV。以及,在任何分片设计里,这都不会影响终端用户的资源,也不会影响验证者参与到共识里。
上述内容意味着在一般的设计里,在提议者和构建者之间创建一堵“防火墙”和市场是有价值的,因为它不要求验证者具有复杂计算的能力才能参与市场,这样以太坊可以用商品级计算机进行维护和运行。我们倾向于将这个方案称为“提议者-构建者-分离” 或 PBS。
如果我们承认 PBS 方案是避免对验证者有高要求所必需的,那么 Dankrad 的设计实际上就是说“如果需要 PBS,且我们承认 MEV 将因市场驱动而在多分片间存在,为什么不与之融合并简化分片设计,这样就可以高度激励构建者努力构建区块,并传播与区块相关的分片数据”。
上述内容在核心分片共识逻辑里 (在分片中这种 PBS 模型可能无论如何都是需要的)带来了大幅的简化。
在这种范式下,分片构建很可能实现分布式,但目前还不清楚构建者是否会倾向于以去中心化的方式运作,因为对他们来说有高性能机器久能带来足够的收益。如果你们可以构建一个构建者 DAO 的话,探索这种设计可能会很有趣 :)
此外,如果在一段时间内没有这样的重型构建者存在的话 (他们都离线了,或市场处于某种原因没有真正支持他们),提议者仍然可以在消费型硬件上对有执行和有限分片数据交易的区块进行提议,但数据吞吐量可能会下降,直到有受经济激励的行动者去做这项工作。
consideritwon 提问:
关于 Dankrad 的分片提案以及可能走向中心化的区块构建者提一个问题。如果采用这个方法,有什么可以防止国家间合谋禁止或审查区块构建者?区块链有可能因为区块构建者被迫离线而完全停下来吗?你有信心总可以假设世界上有一些司法管辖区允许区块构建者能够自由交流?
Vitalik 回复:
区块链只需要在某处有一个诚实的区块构建者就可以打包交易。对 PBS 的扩展协议可以添加抗审查性,使得创建包含很多验证者看不到的交易的区块是无效的,因此会做审查的区块构建者甚至在没有被罚没或忽略的情况下就无法参与。
如果不可能在任何地方运行大型区块构建者,那么区块构建者本身可以是分布式的,依靠不同用户运行不同节点来创建区块的不同部分,使用一些 DAO 声誉系统来确保数据的可用性。
以太坊基金会的 Dankrad Feist 回复:
我可以很肯定地说,区块构建者本身并不是主要的审查目标。原因是尽管它肯定比对验证者/全节点 (我们这里的目标是树莓派/手机!) 有更高的要求,但它绝对不是相当于数据中心规模的运营,而是更普通的机器,如果你想的话可以轻易藏起来。例如,计算分片编码和证明所需的额外工作可能可以在高端 GPU 上轻松完成。
带宽的要求可能会造成较大的限制。如我在提案里提到的,在实践中,我预计没有人能在低于 2.5 GBit/秒的上行带宽下运行区块构建者。你家里可能没有这个条件,因此很可能者会全部都在数据中心运行。但是,如果以太坊遭遇审查攻击,有一些替代品是可以在家运行的。例如,区块的传播可以通过几个节点完成。甚至计算编码也可以分布式完成。我们肯定会思考分布式的替代方案是什么,并设计规范,因此这肯定是可能的。
很可能有人将运行这样的分布式区块构建者作为一项公共服务,尽管他们不会成为最有竞争力的,他们的存在也将使任何严重的审查攻击变得极为不可能。
顺带一提,PBS 方案还会带来其他一般的抗审查忧虑。大多数的危险与新的分片提案无关。我认为对 crLists 的研究是最可能在 PBS 世界里产生良好的抗审查性的。
thomas_m_k 提问:
你们会担心 PBS 会带来中心化吗,以及它将如何抗审查?如果有两个主要的服务商提供构建者服务,且它们的实力相当,我有什么动机来打包它们正在审查的交易,因为我这样做会少赚很多钱?
Vitalik 回复:
有关于 PBS 的协议扩展,这将迫使构建者打包许多其他验证者或构建者已经看到的交易。请参阅此文档:
https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance
以太坊基金会的 Justin Drake 回复:
你们会担心 PBS 会带来中心化吗,以及它将如何抗审查?
PBS 是一种将中心化与共识参与者分开的机制。它把中心化的区块提议者置换为不参与共识的”构建者“。PBS 不会增加中心化——PBS 的重点就是减少验证者的中心化。
至于抗审查性,我们有机制,即使所有构建者都选择不故意将此类交易打包在他们的区块里,提议者也可以强行将交易打包到链上。
如果有两个主要的服务商提供构建者服务,且它们的实力相当,我有什么动机来打包它们正在审查的交易,因为我这样做会少赚很多钱?
提议者强行打包受审查的交易是不会带来机会成本的。提议者不会应为强行打包受审查交易而减少收益。
Cin- 提问:
如果我对目前的路线图理解正确,某种形式的分片将在 DAS (数据可用性采样) 之前实现的。由于需要 DAS 来验证分片数据是否 100% 可用,我想知道有什么风险,以及为什么你觉得它们已经被充分缓解了,以致可以按路线图执行。
Vitalik 回复:
早期版本的分片可能不能真正实现分片,它们将可能只是实现了”接通“分片,而实际上客户端仍然需要下载整个 2 MB 或任何分片区块数据 (在这个阶段最大的分片数会被调低)。当这个”假分片“阶段展开后,客户端团队将各自开始试验 DAS 验证,且一旦我们有足够信心 DAS 验证是可行的,我们可以把参数调高并让整个网络都依赖它。
Danny Ryan 回复:
不一定是这种情况,但如果”分片“在没有 DAS 的情况下发布,我个人认为只应该存在少数分片 (例如 2 个),这样所有验证者和大多数用户都可以完全验证所有分片数据为可用 (例如下载全部)。
这最终看起来与 EIP-4488 类似,但好处是它使用与分片相同的机制 (相同的承诺、相同的 EVM 访问器等),一旦它有更多的数据需要处理 (然后需要 DAS)。
kalanscriv19 提问:
我想问一下为什么分片只添加 64 个,为什么以太坊未来不添加更多?
以太坊基金会的 Hsiao-Wei Wang 回复:
64 是初始分片数的占位符。一旦我们有更多的基准测试结果,它可能会更少或更多。
随着技术改进迭代 (摩尔定律),我们确实计划在未来添加更多分片。
Layer2
josojo 提问:
Hi!
我对于桥接安全性的相关问题非常感兴趣:
1)不同 L1 之间的桥接安全性 (如应用零知识技术) 和共有同一条 L1 链的两个 L2 之间的桥接安全性,你认为这两者是一样的吗?
2)可能任何 L1 之间的桥接都需要具有可升级功能,以免其中一条 L1 链存在分叉。这种情况会使得 L1->L1 跨链桥接没有 L2->L1->L2 跨层桥接那么安全吗?
3)Zk-rollup 的最佳机制是什么,以便在为用户规避安全风险的前提下保持新功能的可升级性。尤其是,那些想要在 L2 上长期锁定其资产的用户,或者没那么快离开 L2 的用户,他们的资产安全如何获得保障?
Vitalik 回复:
我之所以对多链的区块链生态系统保持积极态度 (确实有一些独立的社区具有不同的价值观,对于它们来说,独立发展好过全部都就同一件事情的影响力而争夺),而对跨链应用保持消极态度,一个关键原因就是桥接具有根本性的安全限制。
为了理解为什么桥接具有这些限制,我们需要看看区块链和桥接的各种组合是如何抵御 51% 攻击的。很多人都有这样的心态:“如果区块链受到 51% 攻击,整个系统就会崩溃,所以我们需要花费所有力气来预防 51% 攻击,哪怕是一次也不允许。” 我非常不同意这种想法;事实上,区块链即使在受到 51% 攻击后,也能维持许多保证,而维持这些保证非常重要。
举个例子,假设你在以太坊上持有 100 枚 ETH,当以太坊受到了 51% 攻击时,一些交易会被审查和/或被撤销。那么无论发生什么,你依然拥有那 100 枚 ETH。即便是发起 51% 攻击的黑客也无法提议一个抢走你的 ETH 的区块,因为这样的区块会违反协议规则,所以会被网络拒绝。即使 99% 的算力或质押份额想要发起攻击来抢走你的 ETH,每个运行节点的人都只会跟随剩下的 1%,因为只有它们的区块遵循协议规则。更普遍地说,如果你在以太坊上有一个应用,那么通过发起 51% 攻击可能会在一段时间内审查或回滚应用的交易,但最终获得的是一致的状态。如果你持有 100 枚 ETH,然后在 Uniswap 上将之换成 32 万枚 DAI,那么就算区块链以某种疯狂的方式被攻击了,最终你还是会获得一个合理的结果:要么还是持有 100 枚 ETH,要么得到那 32 万枚 DAI。也就是说,两者都没有获得 (或两者都获得) 的结果实际上违反了协议规则,是不会被网络接受的。
现在,想象一下,如果你向 Solana 上的某个桥接转 100 枚 ETH 并获得 100 个 Solana-WETH,随即以太坊受到了 51% 攻击。攻击者在 Solana-WETH 封装合约中存入一笔自己的 ETH,然后等到 Solana 网络上确认了这笔交易之后,就立即在以太坊网络回滚存款交易。Solana-WETH 合约现在不再可以完全恢复,也许你的 100 Solana-WETH 现在只值 60 个 ETH。即使有一个基于 ZK-SNARK 的完美桥接可以完全验证共识,它仍然很容易受到这样的 51% 攻击。
因此,在以太坊上持有以太坊原生资产或在 Solana 上持有 Solana 原生资产总是比在 Solana 上持有以太坊原生资产或在以太坊上持有 Solana 原生资产更安全。在这个语境下的 “以太坊” 不仅指以太坊 L1 基础链,还包括基于它构建的任何 L2。也就是说,如果以太坊受到 51% 攻击并且交易回滚了,Arbitrum 和 Optimism 上的交易也会回滚。因此,即使以太坊受到 51% 攻击,在 Optimism 和 Arbtirum 上持有状态的 “跨 rollup” 应用也能保证保持一致。而如果以太坊没有受到 51% 攻击,就没有办法分别对 Arbitrum 和 Optimism 进行 51% 攻击。因此,持有在 Optimism 上发行然后在 Arbitrum 上封装的资产依然非常安全。
然而当出现超过两条链时,问题就比较严重了。如果有 100 条链,那么这些链之间会出现许多相互依赖的 dapp。这时,哪怕对一条链发起 51% 攻击都会造成系统性的风险,威胁到整个生态系统的经济。这就是为什么我认为相互依赖的区域有可能与主权独立的区域会紧密联系 (因此,许多以太坊网络的应用之间相互密切联系,许多 Avax 网络的应用之间相互密切联系等等;而不是以太坊网络和 Avax 网络的应用之间相互密切联系)。
这也是为什么 rollup 不能直接 “使用另一个数据层”。如果某个 rollup 将其数据存储在 Celestia 或 BCH 或其他任何地方,但处理的是以太坊的资产,那么如果这一层受到了 51% 攻击,用户就完蛋了。就算 Celestia 的数据可用性采样 (DAS) 可以抵御 51% 攻击,实际上也并不能帮到你,因为以太坊网络并没有读取这个 DAS;相反,以太坊网络读取的是桥接上的信息,而桥接恰恰很容易受到 51% 攻击。作为一个 rollup 想要为使用以太坊原生资产的应用提供安全性,必须使用以太坊数据层 (对于任何其他生态系统也是如此)。
当然,我不会说这些问题会随时出现。仅仅对一条链进行 51% 攻击都很困难且成本高昂。然而,使用跨链桥接和上面的应用的用户越多,问题就越严重。没有人会为了盗窃 100 枚 Solana- WETH 去攻击以太坊 (或者说为了盗窃 100 枚 Ethereum-WSOL 去攻击 Solana)。但是如果桥接上有 1000 万 ETH 或 SOL,那么发起攻击的动机就会更强,一些大型的资产池会使得这些攻击更容易发生。所以跨链交易活动具有一种反网络效应:当交易活动不多时网络就会非常安全;当交易多起来了,风险就越大。
egodestroyer2 追问:
你能举个例子说明一下 PoS 链上的攻击是如何发生的,并且攻击者怎么在桥接上盗窃资产?
Vitalik 回复
这和 PoW 链没什么区别。攻击者使其中一条链敲定某笔交易 T1,然后另一条链敲定一笔不兼容的交易 T2。他们将第一交易信息发布到桥接上,然后将第二笔交易信息发布到网络上
loiluu 追问
如果以太坊受到 51% 攻击并且交易回滚了,Arbitrum 和 Optimism 上的交易也会回滚。
我不确定是否有 L2 处理过这样的情况,而且真的很难想到解决方案。假设以太坊受到了 51% 攻击,并且交易发生了回滚。但是在交易回滚之前,L2 运行者已经向 L1 提交了一个承诺。那么现在,如果 L2 运行者根据 L1 的回滚交易生成一个新的承诺,任何人都可以发起重放攻击 (replay attack) 以重新提交 L2 运行者之前提交的承诺,并最终错误地指责 L2 运行者恶意行为。因此,L2 运行者将因为发送冲突承诺而受到惩罚。
Vitalik 回复:
解决方案很简单啊,不是吗?对一个最新的 L1 区块哈希做一个有条件承诺 (conditional commit),所以如果 L1 的交易回滚了,那么之前敲定的交易就不能再重复提交或被罚没。
Liberosist 提问:
对于 zkEVM 的研究进展,你是否感到惊喜?就目前的进展来说,你认为 Polygon Hermez 和 Scroll 宣称将于 2022 年年底实现 zkEVM 的目标现实吗?显然,用于 rollup 的 zkEVM 将需要更长时间才能做好应用于以太坊的准备。
Justin Drake 回复:
对于 zkEVM 的研究进展,你是否感到惊喜?
是的,与一年前相比,zkEVM 研究取得的进展、获得的融资和大家对其乐观的态度都让我感到非常惊喜。 现在已经有好几个优秀的团队在 zkEVM 领域竞争 (或者合作!) ,并投入数亿美元以推动其能够在 2022-2023 年达到产品级水平。
请注意,在不同的语境中 "zkEVM" 这个术语具有不同的含义。我将 zkEVM 分成三种类型:
- 共识级别的:共识级别的 zkEVM 即完全等同于目前以太坊 L1 共识所使用的 EVM。也就是说,这类 zkEVM 生成 SNARKs 证明以验证以太坊 L1 状态根的有效性。部署共识级别的 zkEVM 属于我们路线图中 "对所有东西生成 zk-SNARK 证明" 的一部分。(此处为路线图的汉化版)
- 字节码级别的:这类 zkEVM 旨在解译 EVM 字节码。Scroll、Hermez 和 ConsenSys 团队负责的 zkEVM 项目都是使用这个办法。这种 zkEVM 可能会产生与 EVM 不同的状态根。例如,EVM 的 SNARK-不友好 Patricia-Merkle trie 会被一个 SNARK-友好的替代方案取代。
- 语言级别的:这种 zkEVM 旨在将某种 EVM-友好的语言 (如 Solidity 或 Yul) 转译成某种 SNARK-友好的 VM,这种 VM 与 EVM 完全不同。MatterLabs 和 StarkWare 采用了这种办法。
我预估会首先部署语言级别的 zkEVM,因为从技术上讲,这种 zkEVM 最容易构建。然后,字节码级别的 zkEVM 会解锁额外的 EVM 兼容性,并进一步挖掘 EVM 的网络效应。最后,在 L1 上部署共识级别的 zkEVM 将会把 EVM 变成一个 “无敌的 rollup”,并改善以太坊 L1 的安全性、去中心化特性和可用性。
就目前的进展来说,你认为 Polygon Hermez 和 Scroll 宣称将于 2022 年年底实现 zkEVM 的目标现实吗?
在我看来,像 Hermez 或 Scroll 团队计划于 2022 年交付字节码级别的 zkEVM 的产品实现是合理的。推出时,我预估会出现以下几个主要问题:
- 较小的 gas limit:从一开始,字节码级别的 zkEVM 的 gas limit 将很可能比 L1 EVM 的 gas limit 小 (小很多,比如小个 10 倍),并在未来的几年内逐渐增加。
- 大型的中心化证明者:证明过程将可能无法达到去中心化,很可能只是由一个拥有大型证明系统的中心化实体提供验证。我希望我们能够在 2023 年实现去中心化证明系统 (例如,在全球范围内实现基于 GPU 的去信任的证明者),并在 2024 年实现 SNARK 证明的 ASIC。
- 电路 bug:由于字节码级别的 zkEVM 具有其电路复杂性,这类 zkEVM 很可能会出现电路 bug,并且 EVM 字节码等同性也不是完美的。这些 bug (一些安全关键) 将需要一段时间来解决。最终,字节码等同性将会被形式验证工具证明。
ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系eth@ecn.co进行授权。