作者:Vitalik
编译:Web3大航海
以太坊网络的共识机制是目前最安全的加密经济系统之一。价值1800万ETH(约340亿美元)的验证节点每6.4分钟就会确认一个区块,这些验证节点运行了多种不同的协议实现以保证冗余。如果加密经济共识出现问题,无论是由于bug还是有意的51%攻击,一个由数千名开发者和更多用户组成的庞大社区都会仔细监控,确保链正确地恢复。一旦链恢复,协议规则将确保攻击者可能会遭受严重的惩罚。
多年来,有许多想法(通常在思考实验阶段)提出利用以太坊验证节点集合,甚至以太坊社会共识,来达到其他目的:
最终的预言机:提出一个用户可以通过发送ETH来投票表明事实真相的提案,采用SchellingCoin机制:每个投票给多数答案的人都可以获得所有投票给少数答案的ETH的比例份额。
该描述继续说明:“所以原则上这是一个对称的游戏。打破对称的是 a) 真相是协调的自然点,更重要的是 b) 投注真相的人可以在他们输掉的情况下,威胁要分叉以太坊。”
Re-staking:许多协议(包括EigenLayer)使用的一套技术,在此基础上,以太坊的持币人可以同时把他们的股份作为在另一个协议中的存款。在某些情况下,如果他们违反了其他协议的规则,他们的存款也会被处罚。在其他情况下,没有协议内激励,股权仅用于投票。
L1驱动的L2项目恢复:多次提出,如果L2有一个bug,L1可以分叉来恢复它。最近的一个例子是这个设计,使用L1软分叉来恢复L2的失败。
这篇文章的目的将详细解释为什么,我认为,这些技术中的一部分会给生态系统带来高度的系统风险,应该被阻止和抵制。
这些提议通常是以良好的意图提出的,因此目标不是关注个人或项目,而是关注技术。本文将试图防守的一般原则是这样的:虽然验证者质押的ETH的双重使用存在一些风险,但基本上是可以接受的,然而,试图将以太坊社会共识"招募"来服务于你的应用的目的则是不可取的。
重用验证者(低风险)和社会共识过载(高风险)之间区别的例子:
– Alice 创建了一个web3社交网络,如果你能加密证明你控制了一个活跃的以太坊验证者的密钥,你就会自动获得"验证"的状态。低风险。
– Bob 通过加密证明他控制了十个活跃的以太坊验证者的密钥,以此证明他有足够的财富满足某些法律要求。低风险。
– Charlie 声称他已经反驳了孪生素数猜想,并声称知道最大的p,使得p和p+2都是素数。他将其质押提现地址更改为一个智能合约,任何人都可以提交一个声称的反例q > p,连同一个SNARK证明,证明q和q+2都是素数。如果有人提出了有效的主张,那么Bob的验证者就会被强制退出,提交者得到的是Bob剩下的ETH。低风险。
– Dogecoin 决定转向权益证明,并为了增加其安全池的规模,它允许以太坊的持币人进行"双重质押",同时加入其验证者集合。为了做到这一点,以太坊的持币人需要将他们的质押提现地址更改为一个智能合约,任何人都可以提交一个证明,证明他们违反了Dogecoin的质押规则。如果有人提交了这样的证明,那么持币人的验证者就会被强制退出,他们剩下的ETH将被用来购买并销毁DOGE。低风险。
– eCash 与Dogecoin做了相同的事情,但是项目领导者进一步宣布:如果大多数参与的ETH验证者串通起来审查eCash的交易,他们期望以太坊社区将通过硬分叉来删除这些验证者。他们认为,由于这些验证者被证明是恶意和不可靠的,因此以太坊有兴趣这样做。高风险。
– Fred 创建了一个ETH/USD价格预言机,它通过允许以太坊验证者参与和投票来运作,没有激励。低风险。
George创建了一个ETH/USD价格预言机,该预言机通过允许ETH持有者参与和投票来运行。为了防止懒惰和潜在的贿赂,他们增加了一个激励机制,即给出在中位数答案1%范围内的参与者获取超过中位数1%答案的参与者的1%的ETH。
当被问到“如果有人可信地提供贿赂所有参与者,每个人都开始提交错误的答案,那么诚实的人会被夺走1000万ETH怎么办?”
George回答道:那么以太坊将不得不剥离掉不良参与者的资金。高风险。
George明显避免回答中高风险(因为该项目可能创造激励以试图进行这样的分叉,因此即使没有正式的鼓励,也有可能会尝试进行分叉)
George回答:“那么攻击者就赢了,我们将放弃使用这个预言机。”中低风险(并不完全是“低风险”,只是因为该机制确实创造了一大批在51%攻击中可能被激励去独立倡导分叉以保护他们存款的行为者)
Hermione创造了一个成功的二层,并声称因为她的二层是最大的,所以它天生就是最安全的,因为如果有一个错误导致资金被盗,损失将如此巨大,以至于社区别无选择,只能通过分叉来恢复用户的资金。高风险。
如果你正在设计一个协议,即使一切完全崩溃,损失也被限制在选择参与和使用你的协议的验证者和用户中,那么这是低风险的。另一方面,如果你有意引入更广泛的以太坊生态系统社会共识以通过分叉或重组解决你的问题,那么这是高风险的,我认为我们应该强烈抵制所有试图创建这种期望的尝试。
中间地带的情况是从低风险类别开始,但让其参与者有动机滑向更高风险类别的情况;SchellingCoin式的技术,特别是对背离多数派有重大惩罚的机制,是一个主要的例子。
那么,过度利用(stretching)以太坊共识有什么问题呢?
假使现在是2025年,对现有选项感到沮丧的一群人决定创建一个新的ETH/USD价格预言机,该预言机通过允许验证者每小时投票一次来确定价格。如果一个验证者投票,他们将无条件地从系统中获得一部分手续费作为奖励。但是不久,参与者开始变得懒散:他们连接到中心化的API,当这些API遭到网络攻击时,他们要么退出,要么开始报告错误的值。为了解决这个问题,他们引入了激励机制:预言机也会对一周前的价格进行投票,如果你(实时或回顾性)的投票与中位数的投票相差超过1%,你将被严重惩罚,惩罚金将给予那些“正确”投票的人。
一年之内,超过90%的验证者参与了进来。有人问:如果Lido联合其他几个大的质押者对投票进行51%的攻击,强行通过一个虚假的ETH/USD价格值,从所有不参与攻击的人那里抽取重罚呢?此时,预言机的拥趸们已经深度投资在这个计划中,他们回答说:如果真的发生这种情况,以太坊肯定会分叉,把坏人踢出去。
起初,这个计划只限于ETH/USD,看起来非常稳定。但是随着时间的推移,其他的指数也被添加进来:ETH/EUR,ETH/CNY,最后是G20所有国家的汇率。
然而,在2034年,事情开始出错。巴西发生了一场意想不到的严重政治危机,导致选举争议。一个政党控制了首都和75%的国土,但另一个政党却控制了一些北部地区。主要的西方媒体认为,北方的政党显然是合法的胜者,因为它的行为是合法的,而南方的政党的行为是非法的(而且他们是法西斯)。然而,印度和中国的官方消息源,以及Elon Musk,认为南方的政党实际上控制了大部分国土,国际社会不应试图充当世界警察,而应该接受这个结果。
此时,巴西已经有了一种CBDC,它分裂成两个分叉:(北方的)BRL-N和(南方的)BRL-S。在预言机投票时,60%的以太坊质押者提供ETH/BRL-S的汇率。大部分社区领导人和企业都谴责质押者对法西斯的卑劣屈服,并提议对链进行硬分叉,只包括提供ETH/BRL-N汇率的"好验证者",并将其他验证者的余额减少到接近零。在他们的社交媒体泡泡中,他们认为他们将明显胜出。然而,一旦分叉发生,BRL-S一方的力量出人意料地强大。他们预期的压倒性胜利,实际上几乎是一个50-50的社区分裂。
此时,两方各自在两个独立的宇宙中,各自有两条链,实际上无法重新聚在一起。以太坊,一个部分为了摆脱国家和地缘政治的影响而创建的全球无权限平台,却因为G20成员国中的任何一个国家出现意想不到的严重内部问题,而被一分为二。
这是一个很好的科幻故事,甚至可以拍成一部好电影。但是我们实际上可以从中学到什么呢?
区块链的"纯粹性",在它是一个纯粹的数学结构,只试图在纯粹的数学事物上达成共识的意义上,是一个巨大的优势。只要一个区块链试图"钩住"外部世界,外部世界的冲突就开始影响区块链。如果发生一个足够极端的政治事件,事实上,考虑到上述故事基本上是对过去十年内各个主要(>2500万人口)国家实际发生的事件的模仿,即使是一个货币预言机也可能撕裂社区。
以下是一些可能的场景:
预言机追踪的货币(甚至可能是美元)简单地发生了超级通货膨胀,市场崩溃到某些时间点上没有明确的市场价格。
如果以太坊将价格预言机添加到另一种加密货币,那么像上述故事中那样的争议性分裂并非假设:这是已经发生的事情,包括比特币和以太坊本身的历史。
如果实施严格的资本管制,那么在两种货币之间报告哪一个价格作为合法市场价格将成为一个政治问题。
但更重要的是,我认为存在一个Schelling围栏:一旦区块链开始将现实世界的价格指数作为一层协议特性,它很容易屈服于解释越来越多的现实世界信息。引入一层价格指数也扩大了区块链的法律攻击面:它不仅仅是一个中立的技术平台,它更明显地成为了一个金融工具。
除了价格指数之外,其他的风险呢?
以太坊共识的"职责"的任何扩展都会增加运行验证者的成本、复杂性和风险。验证者被要求付出人力去关注,并运行和更新额外的软件,以确保他们根据被引入的其他协议正确地行动。其他社区获得了将其纠纷解决需求外部化到以太坊社区的能力。验证者和整个以太坊社区都被迫做出更多的决策,每个决策都有导致社区分裂的风险。即使没有分裂,避免这种压力的愿望也会创造出额外的激励,通过抵押池将决策外部化到中心化的实体。
分裂的可能性也会大大增强不良的过大而不能倒机制。在以太坊上有这么多的第二层和应用层项目,以至于以太坊社会共识愿意为解决所有这些问题而进行分叉是不切实际的。因此,更大的项目无可避免地会有更大的机会获得救助。这反过来会导致大项目获得壕沟:你宁愿把你的币放在Arbitrum或Optimism上,如果出了什么问题,以太坊会分叉来挽救局面,还是放在Taiko上,因为它规模较小(且非西方,因此在核心开发者圈子中社会联系较少),L1支持的救援可能性较小?
但是,漏洞是一个风险,我们需要更好的预言机。那么我们应该怎么做呢?
我认为解决这些问题的最佳方案是因情况而异,因为各种问题本质上是如此不同。一些解决方案包括:
价格预言机:要么是非完全加密经济的去中心化预言机,要么是基于验证者投票的预言机,它们明确承诺他们的紧急恢复策略是除了求助于L1共识进行恢复之外的其他方式(或两者的某种结合)。例如,价格预言机可以依赖于一个信任假设,即投票参与者的腐败速度慢,因此用户会提前警告攻击并可以退出任何依赖于预言机的系统。这样的预言机可以故意在长时间延迟后才给予奖励,这样如果协议的实例停止使用(例如,因为预言机失败和社区分叉到另一个版本),参与者就不会得到奖励。
关于比价格更主观的事实的更复杂的真理预言机:建立在非完全加密经济DAO上的某种去中心化法院系统。
Layer2 协议:
短期内,依赖部分训练轮子(本帖称之为第一阶段)
中期内,依赖多个证明系统。可信的硬件(例如SGX)可以包括在此;我强烈反对把类似SGX的系统作为安全的唯一保证,但作为3选2系统的一员,它们可能是有价值的。
长期内,希望如"EVM验证"这样的复杂功能最终会被纳入协议。
跨链桥:与预言机相似的逻辑,但也尽量减少你依赖桥的程度:在它们源链上持有资产,并使用原子交换协议在不同的链之间转移价值。
使用以太坊验证者集来保护其他链:上面例子列表中(更安全的)狗狗币方法可能不足的一个原因是,虽然它确实防止了51%的终结性反转攻击,但它并不能防止51%的审查攻击。然而,如果你已经依赖于以太坊的验证者,那么一个可能的方向是停止试图管理一个独立的链,而是成为一个以以太坊为锚定的有效验证系统。如果链做了这样的改变,其对终结性反转攻击的保护就会和以太坊一样强大,而且它能够防止高达99%的审查攻击(相比之下,以前是49%)。
结论:
区块链社区的社会共识是一件脆弱的事情。因为需要升级、漏洞的存在,以及51%的攻击始终可能发生,社会共识是必要的,但是因为它有如此高的导致链分裂的风险,在成熟的社区中,我们应谨慎使用它。有一种自然的冲动想要扩展区块链的核心功能,因为区块链的核心拥有最大的经济权重和最大的社区观察者,但每一次这样的扩展都会使核心本身变得更加脆弱。
我们应警惕应用层项目采取可能增加区块链共识“范围”的行动,除非这些行动是验证核心以太坊协议规则。应用层项目尝试这样的策略是很自然的,而且这样的想法通常是在没有意识到风险的情况下产生的,但其结果很容易与社区整体的目标产生极大的不一致。这样的过程没有限制原则,可能会导致区块链社区随着时间的推移越来越多地拥有"职责",将其推入了每年面临高风险分裂和某种事实上的官僚机构对链具有最终控制权之间的不舒适选择。
我们应该保持链的极简主义,支持那些看起来不像滑坡的 re-staking 的用途,扩大以太坊共识的角色,帮助开发者找到其他策略来实现他们的安全目标。