2021 以太坊社区 Meetup - 以太坊发展路线 (by Tim Beiko & Ping Chen)

10 月 26 日,ECN 携 togETHer 的社区伙伴 (ETHPlanet/DAOSquare/原语里弄/Hiblock/Rebase/BTCU) 在上海举办了以太坊社区 Meetup,现场气氛活跃,干货满满,对多个主题进行了讨论,包括 EIP-1559、以太坊2.0、MEV、DAO、区块链安全等。ECN 特此将这些内容整理成文分享给大家,希望能增进社区对以太坊的了解和思考。

以下是本次活动的首场连线讨论,我们邀请到来自以太坊基金会的 Tim Beiko 和 ETHTaipei 的 Ping Chen 一同讨论了以太坊今年的发展路径,以及明年的合并计划。

注:本场讨论以英文为主,为中文社区的理解起见,ECN 对文本进行了整理翻译,具体内容应以英文为准。

嘉宾自我介绍

Tim Beiko: 大家好,我叫 Tim Beiko,我在以太坊基金会工作。我主要负责组织以太坊的 All Core Devs Meeting (以太坊核心开发者会议),协议层的开发者们会在 ACD 中讨论以太坊网络的升级事宜同时我也会经常和社区分享以太坊的进展。

Ping Chen: 大家好,我叫 Ping,Pelith 的创始人。我从 2016 年起就加入了 ETHTaipei,我一直在社区中进行与以太坊相关的研究,尤其是去中心化应用。我也在 2020 年建立了 Hakka Finance。

话题一

Esther: 我们非常高兴今年有新的面孔加入。自去年在上海相聚之后,以太坊经历了很多事情,包括启动了 PoS 共识的信标链上线、柏林升级和启用了 EIP-1559 的伦敦升级、layer 2 解决方案的蓬勃发展,现在我们即将迎来合并。

Tim,从 EF 工作者的角度你会怎么总结以太坊过去一年的发展?你认为以太坊最大的成就和遗憾是什么?你在社区中碰到过哪些争议和误解?

Tim Beiko: 在过去一年里协议层发生了许多事,很高兴能看到 EIP-1559 的部署。这对于以太坊来说是个非常大的改变,社区也为此进行了多年的研究,今年我们终于进行了测试并且对其效果充满信心。另一个有趣的点在于这并不仅仅是在协议层对以太坊进行提升,同时还为我们的合并工作进行了测试。因为像合并这样重大的底层升级需要许多不同的钱包和基础设施服务进行升级以支持网络,所以现在我们已经能够与这些项目进行更好的沟通。

几周前我们还取得了另一项成功,所有信标链和 Eth1 的开发者们都线下聚在一起,在一周的时间里进行合并的工作,并进行了prototype。我们成功搭建了合并的测试网并顺利运行,我们从 PoW 网络切换到 PoS,一切都很顺利。结果证明我们可以实现合并,但在主网之前我们还有一些事情需要优化,以保障主网升级,但总体的架构是可行的。

至于最后一个问题,我似乎并没有碰到社区中的误解。但有一种说法是以太坊是无法扩展的,但今年我们看到了许多 rollups 即将可用,以及 Polygon,以帮助以太坊进行扩容。

接下来的合并工作,我们已经完成了整体的设计和架构,也进行了测试,合并很快就会到来。

Esther: 谢谢 Tim 的分享。那么 Ping 你会怎么总结以太坊过去的一年?最令你感到兴奋的是什么?你认为社区中有哪些争议和误解?

Ping Chen: 首先作为一个应用开发者,今年发生的协议层改动比以往更多,但我们不会因此感到恐慌,因为我们的应用会变得更好。我认为这是非常令人兴奋的,我们很长时间以来都受到不稳定的协议层的影响,今年情况好了很多。我对 layer2 解决方案感到非常乐观,现在我不需要做出非常困难的抉择,因为有许多很酷的事物即将出现,比如 zkRollup。

另外作为一个 DeFi 开发者,我发现当前的行业越来越注重 meme,希望能创造更多的 meme,而对底层的关注越来越少,比如说 ultra sound money。我不清楚这是否是一个好的迹象,但随着行业吸引了越来越多的资本,也帮助行业吸引了许多传统科技行业的人才,最近有几位谷歌和其他科技巨头的工程师加入了我们。但同时我们应该对一些带有误导性的 meme 持谨慎态度。

Esther: 所以作为一个开发者你对 layer2 感到非常乐观对吧?你觉得将来 layer2 本身会成为应用的底层吗?

Ping Chen: 我觉得不会,因为我们总是可以选择是否在 Eth1 或信标链执行交易,这很重要,

如果 layer1 与 layer2 相互独立,那 layer2 本身可能就会被视作侧链之类。其上的资产也无法互相连接,免信任程度也会降低。所以作为应用开发者,我认为我们仍然需要花更多的时间去研究底层的变动,而不仅仅是 layer2 本身。

话题二

Esther: 感谢两位的分享。EIP-1559 作为以太坊过去一年里意义非凡的改动,其设计目标在于重塑以太坊的费用市场和经济机制。目前上线四个月已经有超过 60 万的 ethers 被销毁。普通用户在发送 1559 式交易时需要设置手续费。问题在于,用户可能并不擅长使用建模或数据来分析 EIP-1559 的效用,那么我们可以用什么标准来衡量呢?

Tim Beiko: 这是个很好的问题。EIP-1559 本身旨在解决的问题是用户短期内超额支付以太坊手续费的问题。我们本身支付的 gas price 高低并不是关键,更像 Uber 的搜索价格。当你想要呼叫 Uber 的时候,同时有许多其他人也想使用,价格就会上升,并且通知用户现在的价格是 1.5 倍,因为此刻的需求非常旺盛。在 EIP-1559 之前,以太坊协议层并没有这样的机制,所以大家在支付手续费的时候,需要去猜测别人的出价,然后基于此来决定自己希望付出多少。问题在于许多人同时有交易需求时,比如受到 NFT 空投或是价格波动的影响,我们很难决定支付多少手续费。

EIP-1559 的作用在于给我们每个区块的 basefee (基础费用),这就是现在需要支付的最低费用,这能帮助用户、钱包或是 gas 预测器获取正确的 gas 价格,并且给出更合适的手续费建议。比如说最近的 NFT 发售,gas price 会暴涨,因为用户都想尽快购买 NFT,当售罄之后 gas price 就会迅速下跌,此时用户可以选择立即支付或是等待,但用户清楚知道价格会下跌。和 2017 年的 ICO 情形相比,价格有可能连续几天都处于高位,因为用户不知道什么时候能够支付较低的手续费,因为协议内没有这样的机制告诉大家现在 ICO 已经结束,你可以降低手续费了。这就是 EIP-1559 的主要作用,使得协议层能够提供用户目前愿意支付的费用信息,如果交易需求降低,那么价格就会降低,这样来看 EIP-1559 是有效的。

当不处于交易高峰期的时候,用户又想发送交易的话,我个人的做法是在 basefee 的基础上加一些 tips (小费),例如 2 gwei,由于 basefee 会被销毁,只支付 basefee 的话矿工将没有打包交易的理由。通常钱包会做出手续费建议,但如果用户想要手动设置的话,我个人的做法是 1.5 倍的 basefee 加上 2 gwei 的小费。

Ping Chen: 现在有一些服务能够给出 gas price 的建议,过去我们有 gasnow 协助用户预测 gas price,但不幸的是他们在不久前结束了服务,现在我用得最多的是 blocknative 的 gas 预测器。

Esther: 谢谢。Tim 你作为 EIP-1559 的主要倡导者,在部署至今有没有什么发展超乎了你的预测或是这个 EIP 本身的设计目标?

Tim Beiko: 首先我没有预料到我们会在这么短的时间里达到这么大的销毁量,可能是因为 NFT 的大量活动,对以太坊如此大的需求确实令我感到惊讶,同时我也为 EIP-1559 运行得这么顺利感到惊讶。毕竟这么大的改动,在之前我担心我们是不是忽略了什么,上主网可能会碰到意外,所以我对 EIP-1559 的表现感到挺意外的。

还有一点是我们现在需要思考 EIP-1559 在合并之后的运行问题。因为在 PoW 机制下总是会产生下一个区块,间隔平均在 13 秒左右,有时候可能是 20 秒,有时候可能是 5 秒。但是在 PoS 机制中,每个时隙都是 12 秒,问题在于有可能会错过区块,那么在这种情况下我们应该如何处理费用?目前这是我们需要在合并前进行调整的事情。

Esther: 另一个社区中广泛讨论的问题是现在我们会看到越来越大的以太坊区块,因为 EIP-1559 允许两倍的 gas limit。即使现在以太坊客户端和节点的运行状况良好,长期来看我们仍然无法消除 DoS 攻击和越来越快的状态增长所带来的风险。那么现在有什么有效的解决方案吗?

Tim Beiko: 这个问题非常值得讨论。在 EIP-1559 机制下我们允许 200% 满的区块空间,gas limit 之前是 1500 万,那么现在可以达到 3000 万。事实上当区块的 gas 使用超过 1500 万时,价格会迅速提升,近乎指数增长。也就是说我们不太可能有大范围的区块达到 3000 万的 gas limit,目前在主网上所观察到最长的范围在 20-50 个区块之间。如果连续四个区块是 200% 满,那么 gas price 可能会上升到 150,会销毁掉大量的 ether,所以我认为 200% 满区块只会出现在非常短的时间内。放在比较长的周期来看,例如一个月或一年,区块大小不会增长太多,据 Vitalik 的计算约为 9%,所以目前状态增长的问题不算太大。

至于 DoS 攻击,EIP-1559 之后以太坊每个区块的 DoS 攻击成本上升了,因为攻击者需要使用交易填充每个区块,而这么做需要销毁大量的 ether。在 EIP-1559 实施之前,攻击者可以和矿工合作,将自己的交易填充到区块中进行攻击,并且没有方式能够阻止这种行为。这两个问题我们在部署 EIP-1559 之前也有所顾虑,但所幸现在看来问题不大。

Ping Chen: 我个人在几年前开始维护全节点,我开始也比较担心 EIP-1559 所带来的潜在风险。但事实是我们并没有发现重大的安全风险。我们是否甚至可以将区块空间提升到三倍或四倍?或许在这一点上我们需要来自客户端开发团队的建议,因为他们更熟悉不同设备在不同环境下的表现。事实是我个人在不同环境种的节点表现差异并不大,我的 AWS 账单也并没有上涨。但是我们还需要解决一些数学问题,我们希望看到的是固定的 gas 使用量,但当前的模型呈现了一个稍微不同的产品。

话题三

Esther: 除了 EIP-1559,另一个社区非常期待的进展就是合并了,合并意味着以太坊将完全从 PoW 共识切换到 PoS 共识,我们也就告别了以太坊的 PoW 时代,也不再会有两条链共同运行。那么 EIP-1559 首先部署在执行层,也就是现在的 PoW 主链上的考虑是什么?

Tim Beiko: 最主要的原因是当前以太坊的交易和区块都存在于 Eth1 链上,我们需要去估量需求,需要交易池和包含交易的区块。但在当前的信标链上,还不存在这些交易的概念,也无法部署 EIP-1559,因为我们不清楚每个区块有多少交易。就像我们之前提到的,针对 PoS 种的 EIP-1559 我们仍然需要做一些调整,但就当前的情况来看,EIP-1559 并没有重大的问题,所以可以安全迁移到 PoS 中。选择 PoW 链是因为这里是交易被打包到区块里的地方。

Esther: 我们可以将 EIP-1559 中的销毁行为视作是对 PoW 和 PoS 两条链并存时期应对更高通胀率的一种措施吗?

Tim Beiko: EIP-1559 确实会销毁一些 ether,也确实会影响到供应量。但这很难预测,因为当前对于以太坊的需求非常强,尤其是最近的 NFT 活动,如果没有 NFT 的话可能情形又会非常不同了。EIP-1559 确实在两条链并存时期对降低供应量起到了一些作用,但更重要的是我们希望人们继续使用以太坊,在大家都想继续使用以太坊的情况下 EIP-1559 才能发挥更大的作用。

Esther: Ping,你会如何预测 EIP-1559 在合并之后的表现?

Ping Chen: 这令我想到其他公链发生的一些事件,例如 Solana。我们最好将关乎到共识的改变与其他次要改变分割开来,否则会对网络造成不可逆的影响,网络拥堵甚至会影响到共识。我记得之前有一个 EIP 提议 PoS 以智能合约的形式运行在 layer1 上,最终这个提案被否定了,我觉得是很正确的,因为我们需要更加强健的底层结构。如果我们做好分割,(合并之后) 可能不会受到 EIP-1559 的影响。

Esther: 给大家同步一下最近以太坊合并工作取得的进展,客户端团队和开发者们集结起来进行了为期一周的线下工作坊,并且成功搭建了一个多客户端的合并测试网,这对于合并进程来说有着里程碑式的意义。那么 Tim 能否为大家简单介绍一下合并的过程?我们采取了更为复杂的可执行信标链路径还是更为直接的合并方式?

Tim Beiko: 我们合并的策略是越简单越好。简单来说,合并过程中我们会在 PoW 挖矿中定一个 difficulty value,这标志了最后一个 PoW 的区块,当网络达到了这个难度值时,就会停止在 PoW 网络中生产区块,由于要从 Eth1 的存款合约中获取存款数据,信标链已经实现了对 PoW 链的收听,所以在监测到某个 PoW 区块达到了这个难度值时,PoS 引擎会开始接管并决定下一个区块头,信标链上的验证者也会按照当前的方式开始生产区块,但当前的区块基本上都是空块,验证者在合并之后就会开始处理包含交易的区块。

这就是合并的大概过程,验证者会运行一个信标链客户端,并收听 Eth1 客户端,一旦合并发生会停止收听 PoW,并开始收听 PoS 引擎。所以很重要的一点是,节点需要同时运行 Eth1 和 Eth2 的客户端,如果只运行 Eth2 客户端,则合并之后生产区块还需要运行 Eth1 客户端来获取交易并进行验证。同样地,如果只运行了 Eth1 节点,则需要 Eth2 节点来获取 PoS 最近的区块。这么做的原因除了保持简单的架构之外,还有一个重要的原因在于我们可以延用现有的基础设施,也就是经受了测试的客户端们,而不需要别的新软件,这一点很重要。

Esther: 你认为什么时候才是适合安全交付合并的时机?

Tim Beiko: 当然了,第一步就是代码需要准备好。然后我们需要留给社区一些时间参与测试,以确保像 Infura, Etherscan, Metamask 和 Truffle 等等的基础设施和工具都进行了更新,不过所幸智能合约不需要做任何改动,所以应用们不需要做出改变。在合并过程中,EVM也会保持运行,所以我们不需要和应用团队进行协调,主要是基础设施。现在我们还努力推进代码部分的工作,争取在接下来的几周完成合并的规范,然后我们希望在明年初完成代码部分,可能在一月末或二月,之后预留几个月时间给社区进行准备,持续运行测试网,然后就选择一个合并的区块。

我们目前还没有做好合并的一切准备。我们选择将难度炸弹推迟到明年六月,因为如果我们定在四五月的话可能需要停下手上的合并工作来处理难度炸弹,但如果在这之前我们发现了漏洞或是其他问题,我们更倾向于再次推迟难度炸弹,以确保能够安全合并,而不会追求速度。但我希望我们不需要再次推迟难度炸弹。

话题四

Esther: 我们已经讨论了以太坊这一年以及合并工作的进展,在合并之后有什么具体的可视计划吗?

Tim Beiko: 有的,现在有相关人员已经开始进行分片的 prototype,最近的一次升级 (注:Altair 升级) 也包含了对信标链轻客户端的支持。我们还在关注的领域包括状态休眠机制 (state expiry),以更可持续的方式应对以太坊的状态增长问题。这些工作都很重要,但目前大部分的Eth1 和 Eth2 开发者 (90%-95%) 都专注于合并工作,有一些研究者在进行以上的工作。在合并之后我们就会开始其他工作。

Esther: Ping,作为开发者你对于合并之后的期待是什么?你刚刚提到对 layer2 非常期待,那么你怎么看将来分片+layer2 的架构?

Ping Chen: 长期来看,我认为 Eth2+layer2 会为以太坊带来广泛的应用。我个人非常期待,DApps 和生态都会转向以太坊区块链。但我也在为合并做准备,虽然对于开发者不会有太多的差异,但我关注到有些操作码会变动,虽然这些操作码的应用并没有那么广泛,可能不会造成太大的问题,但是在生成随机数的时候可能会用到,对此我们可能会做一些调整。