Vitalik:不要让以太坊共识过载
以太坊网络的共识是目前安全性最高的加密经济系统之一。1800万枚 ETH(约 340 亿美元)的验证者每 6.4 分钟最终确定一个区块,运行许多不同的协议实现以实现冗余。如果加密经济学共识失败,无论是由于错误还是故意的 51% 攻击,由数千名开发人员和更多用户组成的庞大社区都会仔细监察,以确保链正确恢复。一旦链恢复,协议规则确保攻击者可能会受到严厉惩罚。
多年来,有许多想法,通常在思想实验阶段,将以太坊验证者集,甚至以太坊社会共识用于其他目的:
终极预言机:一个用户可以通过发送 ETH 来投票决定哪些事实是真实的提案,使用SchellingCoin机制:发送 ETH 投票给多数答案的人都将获得发送给少数答案的所有 ETH ,按比例分配。提案说:“所以原则上这是一个对称博弈(译者注:对称博弈指博弈收益只依赖于选手所选择的策略而不依赖于进行博弈的选手)。打破对称性的是 a) 真相是协调的自然点,更重要的是 b) 如果对真相进行押注的人失败了,可以分叉以太坊。”
Re-staking :一组技术,被包括EigenLayer在内的许多协议使用,其中以太坊质押者可以同时使用他们的质押作为另一个协议中的存款。在某些情况下,如果根据其他协议规则,他们的行为不当,其存款也会被惩罚。在另一些情况下,没有协议内激励,质押只是用于投票。
L1 驱动的 L2 项目恢复:此目的已经多次提出,如果 L2 有错误,L1 可以通过分叉来恢复它。最近例子是optimism上的一个设计,使用 L1 软分叉来恢复 L2 故障。
这篇文章的目的是详细解释为什么在我看来,这些技术的某些子集会给以太坊生态系统带来高系统性风险,应该被阻止和抵制。
这些提案通常是出于善意的方式提出的,因此本文目标不是针对个人或项目;相反,目标是专注于技术。这篇文章将试图捍卫的一般经验法则如下:双重使用验证者质押的 ETH,虽然有一些风险,但从根本上来说是好的,但试图为你的应用程序自身的目的“利用”以太坊社会共识则不是。
复用(re-using)验证者(低风险)和社会共识过载(overloading)(高风险)之间的区别示例
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 回答:“如果攻击者获胜,我们将放弃使用这个预言机”。中低风险(不是很“低”,只是因为该机制确实创造了一大群参与者,他们在 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 万人口)国家实际发生的事件的拼凑——甚至像良性的货币预言机也可能会撕裂社区。
以下是一些可能的情况:
预言机追踪的一种货币(甚至可能是美元)简单地过度通胀,市场崩溃到在某些时间点没有明确的具体市场价格的程度。
如果以太坊为另一种加密货币添加了价格预言机,那么像上面故事中那样有争议的分裂就不是假设了:它已经发生了,包括在比特币和以太坊本身的历史中。
如果严格的资本管制开始运作,那么两种货币之间的合法市场价格将成为一个政治问题。
但更重要的是,我认为存在一个谢林围墙(Schelling fence,译者注:由Scott Alexander 提出,指的是让人们预先作出的可信承诺成为谢林点,就好像是具有约束力的合约一样)在起作用:一旦区块链开始将现实世界的价格指数作为 1 层协议功能,它很容易屈服于解释越来越多的现实世界信息。在1 层引入价格指数还扩大了区块链的法律攻击面:它不再只是一个中立的技术平台,而是更明确地成为一种金融工具。
价格指数以外的例子的风险如何?
以太坊共识“职责”的任何拓展都会增加运行验证者的成本、复杂性和风险。验证者被要求承担起关注、运行和更新额外软件的人工努力,以确保他们根据引入的任何其他协议正确行事。其他社区获得了将他们的争议解决需求外化到以太坊社区的能力。验证者和整个以太坊社区被迫做出更多的决定,每个决定都有导致社区分裂的风险。即使没有分裂,避免这种压力的愿望也会产生额外的激励,通过质押池将决策外部化给中心化实体。
分裂的可能性也会极大地加强不正当的“太大而不能倒”的机制。以太坊上有太多的 Layer-2 和应用层项目,以太坊社会共识愿意分叉来解决他们所有的问题是不切实际的。因此,较大的项目不可避免地会比那些较小的项目获得更大的救助机会。这反过来会导致更大的项目获得护城河:你会将你的代币放在 Arbitrum 或 Optimism 上(它们如果出现问题,以太坊会分叉以转危为安),还是放在 Taiko 上(它更小,并且来自非西方开发者,因此与核心开发圈的社会联系较少,L1 支持的救援几乎不太可能)?
但是bug是一种风险,我们需要更好的预言机。那我们该怎么办呢?
在我看来,这些问题的最佳解决方案是视具体情况而定,因为各种问题在本质上彼此之间是如此不同。一些解决方案包括:
价格预言机:不是完全加密经济学的去中心化预言机,或者明确承诺其紧急恢复策略的基于验证者投票的预言机,而不是诉诸 L1恢复共识(或两者的某种组合)。例如,价格预言机可以依赖于投票的参与者慢慢被破坏的信任假设,因此用户会收到攻击的预警,并可以退出任何依赖于预言机的系统。这样的预言机可以有意地在长时间延迟后才给予奖励,因此如果该协议实例被废弃(例如,因为预言机失败并且社区转向另一个版本),参与者将无法获得奖励。
报告比价格更主观事实的更复杂的真相预言机:某种建立在不太加密经济学的 DAO上的去中心化法庭系统。
Layer 2 协议:
在短期内,依靠部分训练轮(本文称为第 1 阶段)
在中期,依赖于多个证明系统。受信任的硬件(例如 SGX)可以包含在这里;我强烈反对对类似SGX的系统作为安全的唯一保证做背书,但作为 2-of-3 系统的成员,它们可能很有价值。
从长远来看,希望诸如“EVM 验证”之类的复杂功能最终会被纳入协议中
跨链桥:与预言机类似的逻辑,但也尽量减少你对桥的依赖程度:将资产保存在它们起源的链上,并使用原子交换协议在不同链之间转移价值。
使用以太坊验证者集来保护其他链:上面示例列表中为什么狗狗币方法可能(较安全)的一个不够充分的原因是,虽然它确实可以防止 51% 的最终确定性逆转攻击,但它不能防止 51% 的审查攻击。然而,如果你已经在依赖以太坊验证者,那么一个可能的方向是放弃尝试完全管理一个独立的链,并成为一个将证明锚定在以太坊中的validium。如果一条链这样做,它对最终确定性逆转攻击的保护就会变得与以太坊一样强大,并且它可以安全地抵御高达 99% 的审查攻击(而不是 49%)。
结论
区块链社区的社会共识是一个脆弱的东西。这是必要的,因为升级会发生,错误会发生,51% 攻击总是有可能的。但因为它有很高的导致链分裂的风险,所以在成熟的社区中应该谨慎使用。有一种自然的冲动想要尝试用越来越多的功能来拓展区块链核心,因为区块链核心拥有最大的经济权重和社区的最大关注,但每一次这样的拓展都会使核心本身更加脆弱。
我们应该警惕应用层项目采取的行动可能会将区块链共识的“范围”扩大到验证核心以太坊协议规则以外的任何事情。应用层项目尝试这样的策略是很自然的,事实上,这样的想法往往是在没有意识到风险的情况下简单地构思出来的,但其结果很容易与整个社区的目标非常不一致。这样的过程没有限制原则,并且很容易导致区块链社区随着时间的推移拥有越来越多的“授权”,将其推向一个令人不安的选择,要么是每年分裂的高风险,要么是某种事实上的形式官僚主义对链的最终控制。
相反,我们应该保持链的极简主义,支持使用看起来不像有滑坡效应(译者注:slippery slopes,指如果一件坏事如果一开始不加制止就会越来越糟糕)的再抵押来拓展以太坊共识的作用,并帮助开发人员找到实现其安全目标的替代策略。
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场