V 神:不要过载以太坊共识,一些具有高系统性风险的想法应该被阻止和抵制
原文作者:Vitalik Buterin
图片来源:由 Maze AI 生成
特别感谢 Karl Floersch 和 Justin Drake 的反馈和审阅
以太坊网络共识是目前安全性最高的加密经济系统之一。价值 1800 万 ETH(约 340 亿美元)的验证者每 6.4 分钟完成一个区块,运行许多不同的协议实现以实现冗余。如果这个加密经济共识失败,无论是由于 Bug 还是故意的 51% 攻击,由数千名开发人员和更多用户组成的庞大社区都会仔细查看,以确保链正确恢复。一旦链恢复,协议规则确保攻击者可能会受到严厉惩罚。
多年来,出现了一些将以太坊验证者集甚至以太坊社会共识用于其他目的的想法(通常都处于试验阶段):
- 终极预言机(ultimate oracle):这是一项提案,用户可以通过发送 ETH 来投票决定哪些事实是真实的,使用 SchellingCoin 机制:发送 ETH 投票给多数人答案的每个人都会获得发送给少数人答案的所有 ETH 中按比例分配的份额。其描述表示:“所以原则上这是一个对称的游戏。打破对称性的是 a) 真相是协调的自然点,更重要的是 b) 押注真相的人如果失败了可以做出可信的分叉以太坊。”
- 再质押(restaking):这是一组技术,被包括 EigenLayer 在内的许多协议在使用,其中以太坊质押者可以同时使用他们的质押凭证作为另一个协议中的存款。在某些情况下,如果他们根据其他协议的规则行为不当,他们的存款也会被削减。在其他情况下,没有协议内激励,质押只是用于投票。
- L1 驱动的 L2 项目恢复:已经多次提出,如果 L2 有错误,L1 可以分叉来恢复它。最近的一个例子是这种使用 L1 软分叉来恢复出现故障的 L2 的设计。
这篇文章的目的是详细解释为什么在我看来,这些技术的某些子集会给生态系统带来高系统性风险,应该被阻止和抵制。
这些提案通常是出于善意的方式提出的,因此本文不针对个人或项目;相反,目的是专注于技术。这篇文章将试图捍卫的一般经验法则如下:验证者质押的 ETH 的双重使用,虽然这里面有一些风险,但从根本上来说是好的,但试图为你的应用按照自己的目的“招募”以太坊社会共识则不是。
再用验证者(低风险)和超载社会共识(高风险)之间的区别示例
- Alice 创建了一个 web3 社交网络,如果您以加密方式证明您控制了一个活跃的以太坊验证者的密钥,您将自动获得“已验证”状态。低风险。
- Bob 以加密方式证明他控制着十个活跃的以太坊验证者的密钥,以此证明他有足够的财富来满足某些法律要求。低风险。
- Charlie 声称已经推翻了孪生素数猜想,并声称知道最大的 p 使得 p 和 p+2 都是素数。他将他的质押提款地址更改为一个智能合约,任何人都可以在其中提交一个声称的反例 q > p,以及一个证明 q 和 q+2 都是质数的 SNARK。如果有人提出有效声明,则 Bob 的验证者将被强制退出,提交者将获得 Bob 剩余的 ETH。低风险。
- Dogecoin 决定转向权益证明(PoS),并增加其安全池的规模,它允许以太坊质押者“双重质押”并同时加入其验证者集。为此,以太坊质押者必须将他们的质押提款地址更改为智能合约,任何人都可以提交证明他们违反了狗狗币质押规则的证据。如果有人确实提交了这样的证明,那么这个质押者的验证者将被强制退出,他们剩下的 ETH 将用于购买和销毁 DOGE。低风险。
- eCash 与 Dogecoin 的做法相同,但项目负责人进一步宣布:如果大多数参与的 ETH 验证者合谋审查 eCash 交易,他们预计以太坊社区将通过硬分叉删除这些验证者。他们争辩说,这样做符合以太坊的利益,因为这些验证者已被证明是恶意且不可靠的。高风险。
- Fred 创建了一个 ETH/USD 价格预言机,其功能是允许以太坊验证者参与和投票。没有激励措施。低风险。
George 创建了一个 ETH/USD 价格预言机,其功能是允许 ETH 持有者参与和投票。为了防止懒惰和偷偷摸摸的贿赂,他们添加了一种激励机制,在该机制中,给出答案与中位数答案相差 1% 以内的参与者将获得任何给出答案超过中位数 1% 的参与者的 ETH 的 1%。当被问及“如果有人可信地提出贿赂所有参与者,每个人都开始提交错误的答案,诚实的人会被拿走 1000 万个 ETH 怎么办?”,George 回答说:那么以太坊将不得分叉,把坏参与者的钱踢出去。高风险。
George 明显不作答复。中高风险(因为该项目可能会产生尝试这种分叉的动机,因此即使没有正式的鼓励,也会期望它会被尝试)
- George 回答:“那么攻击者获胜,我们将放弃使用这个 oracle”。中低风险(不是很“低”,只是因为该机制确实创造了一大群参与者,他们在 51% 攻击中可能会被激励独立倡导分叉以保护他们的存款)
- Hermione 创建了一个成功的 layer 2,并辩称因为她的 layer 2 是最大的,所以本质上是最安全的,因为如果出现 bug 导致资金被盗,损失会很大,社区就没有办法,只能选择分叉来收回用户的资金。高风险。
如果你正在设计一个协议,即使一切都完全崩溃,损失也会控制在选择参与和使用你的协议的验证者和用户身上,这是低风险的。另一方面,如果你打算拉拢更广泛的以太坊生态系统社会共识来分叉或重组来解决你的问题,这是高风险的,我认为我们应该强烈抵制所有创造这种期望的企图。
中间地带是从低风险类别开始但激励参与者滑入高风险类别的情况;SchellingCoin 风格的技术,特别是对偏离多数的重罚机制,是一个主要的例子。
那么扩展以太坊共识到底有什么问题呢?
想象一个场景:2025 年,由于对现有选项感到沮丧,一个小组决定制作一个新的 ETH/USD 价格预言机,它的工作原理是允许验证者每小时对价格进行投票。如果验证者投票,他们将无条件地从系统中获得一部分费用作为奖励。但很快参与者就变得懒惰了:他们连接到中心化 API,当这些 API 受到网络攻击时,他们要么退出,要么开始报告错误值。为了解决这个问题,引入了激励措施:预言机也会对一周前的价格进行追溯投票,如果你的(实时或追溯)投票与追溯投票的中位数相差超过 1%,你将受到严厉惩罚,罚款去那些投票“正确”的人。
一年之内,超过 90% 的验证者都参与了。有人问:如果 Lido 联合其他几个大质押者进行 51% 投票攻击,强行通过一个假的 ETH/USD 价格值,对所有没有参与攻击的人进行重罚呢?预言机的支持者在这一点上对该计划投入了大量资金,他们回答说:好吧,如果发生这种情况,以太坊肯定会分叉将坏人赶出去。
起初,该方案仅限于 ETH/USD,并且看起来具有弹性和稳定性。但多年来,其他指数也被添加进来:ETH/EUR、ETH/CNY,以及最终 G20 中所有国家的汇率。
但在 2034 年,事情开始出现问题。巴西出现了意想不到的严重政治危机,导致了一场有争议的选举。一个政党最终控制了首都和该国 75% 的领土,但另一个政党最终控制了一些北部地区。西方主要媒体争辩说,北方党显然是合法的赢家,因为它的行为是合法的,而南方党的行为是非法的。印度和中国官方消息人士以及埃隆・马斯克认为,南方党实际控制了该国大部分地区,国际社会不应试图成为世界警察,而应该接受这一结果。
至此,巴西有了一个 CBDC,它分为两个分支:(北部)BRL-N 和(南部)BRL-S。在预言机中投票时,60% 的以太坊质押者提供 ETH/BRL-S 汇率。主要社区领袖和企业谴责质押者的懦弱投降,并提议分叉链以仅包括提供 ETH/BRL-N 汇率的“良好质押者”,并将其他质押者的余额耗尽至接近于零。在他们的社交媒体泡沫中,他们相信他们会明显获胜。然而,一旦出现这个分叉,BRL-S 侧就会出乎意料地强大。他们原以为会是压倒性的结果却证明是 50-50 的社区分裂。
在这一点上,双方处于两个独立的宇宙中,有两条链,没有实际的方法可以回到一起。以太坊是一个全球无需许可的平台,其创建的部分目的是作为国家和地缘政治的避难所,但最终却被 20 个 G20 成员国中的任何一个出现意想不到的严重内部问题而一分为二。
上面是一个很棒的科幻故事。甚至可以拍出好电影。但我们实际上可以从中学到什么?
区块链的“纯粹性”,从某种意义上说,它是一种纯数学结构,试图仅就纯数学事物达成共识,这是一个巨大的优势。一旦区块链试图“挂钩”到外部世界,外部世界的冲突也开始对区块链产生影响。考虑到一个足够极端的政治事件——事实上,不是那么极端的政治事件,考虑到上述故事基本上是过去十年内在各个主要(>2500 万人口)国家实际发生的事件的拼凑——甚至像一个良性的货币预言机可能会撕裂社区。
以下是一些可能的情况:
- 预言机追踪的一种货币(甚至可能是美元)简单地过度膨胀,市场崩溃到在某些时间点没有明确的具体市场价格的程度。
- 如果以太坊为另一种加密货币添加了价格预言机,那么像上面故事中那样有争议的分裂就不是假设了:它已经发生了,包括在比特币和以太坊本身的历史中。
- 如果严格的资本管制开始实施,那么两种货币之间的合法市场价格将成为一个政治问题。
但更重要的是,我认为存在一个谢林栅栏在起作用:一旦区块链开始将现实世界的价格指数作为第 1 层协议功能,它很容易屈服于解释越来越多的现实世界信息。引入第 1 层价格指数还扩大了区块链的合法攻击面:它不再只是一个中立的技术平台,而是更明确地成为一种金融工具。
价格指数以外的例子的风险如何?
以太坊共识“职责”的任何扩展都会增加运行验证器的成本、复杂性和风险。验证者被要求承担起关注、运行和更新额外软件的人工努力,以确保他们根据引入的任何其他协议正确行事。其他社区获得了将他们的争议解决需求外化到以太坊社区的能力。验证者和整个以太坊社区被迫做出更多的决定,每个决定都有导致社区分裂的风险。即使没有分裂,避免这种压力的愿望也会产生额外的动机,通过股权池将决策外部化给中心化实体。
分裂的可能性也会极大地加强反常的“太大而不能倒”的机制。以太坊上有太多的 layer-2 和应用层项目,以太坊社会共识愿意分叉来解决他们所有的问题是不切实际的。因此,较大的项目不可避免地会比较小的项目获得更大的救助机会。这反过来会导致更大的项目获得护城河:你宁愿将你的代币放在 Arbitrum 或 Optimism 上,如果出现问题,以太坊会分叉以挽救一天,还是放在 Taiko 上,因为它更小(并且非西方,因此与核心开发圈的社会联系较少),L1 支持的救援不太可能?
但是 bug 是一种风险,我们需要更好的预言机。那我们该怎么办呢?
在我看来,这些问题的最佳解决方案是视具体情况而定,因为各种问题在本质上彼此之间是如此不同。一些解决方案包括:
- 价格预言机:要么是不太加密经济的去中心化预言机,要么是基于验证者投票的预言机,它们明确承诺其紧急恢复策略不是为了恢复而诉诸 L1 共识(或两者的某种组合)。例如,价格预言机可以依赖于投票参与者慢慢被破坏的信任假设,因此用户会收到攻击的预警,并可以退出任何依赖于预言机的系统。这样的预言机可以有意地在长时间延迟后才给予奖励,因此如果该协议实例被废弃(例如,因为预言机失败并且社区转向另一个版本),参与者将无法获得奖励。
- 更复杂的真相预言机报告比价格更主观的事实:某种建立在不完全加密经济 DAO 之上的去中心化法庭系统。
- 第 2 层协议:
在短期内,依靠部分训练轮(本文称为第 1 阶段)
从中期来看,依赖于多个证明系统。受信任的硬件(例如 SGX)可以包含在这里;我强烈反对认可类似 SGX 的系统作为安全的唯一保证,但作为 2-of-3 系统的成员,它们可能很有价值。
从长远来看,希望诸如“EVM 验证”之类的复杂功能最终会被纳入协议中
- 跨链桥:与 oracles 类似的逻辑,但也尽量减少你对桥的依赖程度:将资产保存在它们起源的链上,并使用原子交换协议在不同链之间转移价值。
- 使用以太坊验证者集来保护其他链:上面示例列表中(更安全的)狗狗币方法可能不够充分的一个原因是,虽然它确实可以防止 51% 的最终性回复攻击,但它不能防止 51% 攻击的审查。然而,如果你已经在依赖以太坊验证者,那么一个可能的方向是放弃尝试完全管理一个独立的链,并成为一个将证明锚定在以太坊中的验证。如果一条链这样做,它对最终性回复攻击的保护就会变得与以太坊一样强大,并且它可以安全地抵御高达 99% 攻击的审查(而不是 49%)。
结论
区块链社区的社会共识是一个脆弱的东西。这是必要的——因为升级会发生,错误会发生,51% 攻击总是有可能的——但因为它有很高的导致链分裂的风险,所以在成熟的社区中应该谨慎使用。有一种自然的冲动想要尝试用越来越多的功能来扩展区块链的核心,因为区块链的核心拥有最大的经济权重和最大的关注它的社区,但每一次这样的扩展都会使核心本身更加脆弱。
我们应该警惕应用层项目采取的行动可能会将区块链共识的“范围”扩大到验证核心以太坊协议规则以外的任何事情。应用层项目尝试这样的策略是很自然的,事实上,这样的想法往往是在没有意识到风险的情况下简单地构思出来的,但其结果很容易与整个社区的目标非常不一致。这样的过程没有限制原则,并且很容易导致区块链社区随着时间的推移拥有越来越多的“授权”,将它推向一个令人不安的选择,要么是每年分裂的高风险,要么是最终控制链条的某种事实上的正式官僚机构。
相反,我们应该保留链条的极简主义,支持使用重质押来扩展以太坊共识的作用,并帮助开发人员找到实现其安全目标的替代策略。