作者:Vitalik Buterin
编译:Techub News-Barry
校对:Dan
当前以太坊的现状可以被描述为包括大量新兴的双层质押。所谓双层质押,指有两类参与者的质押模式:
1. 节点运营者,他们运营节点,并以自己的声誉或一定数量的自有资本作为担保。
2. 委托人,他们质押一定数量的ETH,没有最低额度,除了提供抵押品外,没有严格的其他参与要求。
这种新兴的双层质押是通过大量参与提供流动性质押代币(LSTs)的质押池产生的。如:Rocket Pool和Lido。
而当前的双层质押有两个主要缺陷:
1. 节点运营者的中心化风险:在现有的质押池中,节点运营者的选取机制要么过度中心化,要么有其他缺陷。
2. 不必要的共识负担:以太坊Layer1每个epoch要验证约80万个签名,并且最终可能增加到每个slot80万个签名(一个Epoch由32个slots组成)。这将会造成很大的负荷。此外,由于大份额的流动质押,网络并没有从承担这种负荷中充分获益。如果以太坊网络能够实现合理的分散性和安全性,而不需要每个质押者在每个slot签名,那么我们就可以更加依赖这类解决方案,并将每个slot签名的数量减少到10,000。
这篇文章将描述解决上述两个问题的方案,且将从以下角度出发:
假设我们认为大多数资本都掌握在那些不愿意以当前形式亲自运行质押节点的人手中,他们不愿意在每个slots上签署信息,锁定他们的存款并验证其削减。那么他们还能扮演怎样的角色来对网络的去中心化和安全性做出有意义的贡献呢?
当前的双层质押是如何运作的?
目前最受欢迎的两个去中心化质押池Lido和RocketPool都在创建新兴的双层质押生态。
在Lido中,参与的双方是:
1. 节点运营者:由Lido DAO投票选出,因此实际上是由LDO持有者选择的。
2. 委托人:持有stETH的人。当有人将ETH存入Lido智能合约系统时,就会产生stETH,该系统允许节点运营者将其质押(但由于提款凭证绑定到智能合约ETH地址,因此他们无法将其占为己有)。
而Rocket Pool则分别是:
1. 节点运营者:任何人都可以通过提交8 ETH押金和一定数量的RPL代币成为节点运营者。
2. 委托人:持有rETH的人。当有人将ETH存入Rocket Pool智能合约系统时,就会产生rETH,该系统允许节点运营者将其质押(同样不能据为己有)。
委托人的作用
在这些系统(或未来可能的协议变更启用的新系统)中,有一个关键问题是:从协议的角度来看,拥有委托人的意义何在?
为什么这个问题是有意义的?我们首先思考,对于帖子中提到的协议变更,将削减惩罚限制在2 ETH。Rocket Pool会将节点运营者的质押金额减少到2 ETH,而Rocket Pool的市场份额将增加到100%(对于质押者与ETH持有者而言,随着rETH变得无风险,几乎所有ETH持有者都成为rETH持有者或节点运营者)。
假设rETH持有者获得3%的回报(包括协议内奖励和优先权费用+ MEV),节点运营者获得4%的回报。我们还假设ETH的总供应量是1亿。
计算结果如下。为了避免处理复利,我们将考虑日收益而不是年收益,这样二阶项就变得足够小,可以忽略不计:
现在,假设Rocket Pool不存在。每个质押者的最低存款额减少到2 ETH,流动性总量上限为625万个ETH。此外,节点运营者的回报率降至1%。让我们再算算:
现在,让我们从攻击成本的角度来考虑这两种情况。在第一种情况下,攻击者不会以委托人的身份注册:委托人没有任何提款权力,所以没有意义。因此,他们会把所有的ETH都用来质押并成为节点运营者。为了达到质押总量的三分之一,他们需要投入208万个ETH(公平地说,这仍然是相当多的!请参阅关于超级委员会的讨论,这是一个将攻击成本降低到类似值的质押扩容提案)。在第二种情况下,攻击者只需投入资金,要达到质押池总量的三分之一,他们需要投入208万个ETH。
从质押经济学和攻击成本的角度来看,这两种情况的最终结果都是完全相同的。节点运营者持有的ETH总供应量每天增加0.00256%,非节点运营者持有的ETH总供应量每天减少0.00017%。攻击成本为208万ETH。因此,在这个模型中,委托就像是一个毫无意义的戈德堡机械(形容以复杂的方法去完成一项简单的工作):不妨砍掉中间人,大幅减少质押奖励,并将总质押限制在625万个ETH。
这一论点的目的不是提倡将质押奖励减少到四分之一,同时将总质押ETH限制在625万。相反,它是要指出一个运作良好的质押系统应该具备的一个关键属性:即委托人应该做一些真正重要的事情。此外,如果委托人在很大程度上受到社区压力和利他主义的激励而采取正确行动,那也没关系;毕竟,这是激励人们推行去中心化、高安全性的质押解决方案的主要力量。
如果委托人可以作为一个有意义的角色,将会是什么?
我想到了两类答案:
1. 委托选择:委托人可以选择将其质押委托给哪些节点运营者。节点运营者将在共识中拥有一个“权重”,这与委托给他们的总质押量成正比。从某种意义上说,委托人选择如今已存在,rETH或stETH持有者可以提取他们的ETH并切换到不同的池。但委托人选择的实际可用性还可以大幅提高。
2. 共识参与:委托人可以选择在共识机制中发挥作用。这将比全体质押“更轻”且不会有很长的退出期和削减风险,但仍将起到对节点运营者的制衡作用。大部分委托人不希望这样做,他们更喜欢最简单的接口,即持有ERC20而不做任何其他事情,但仍有一些委托人会选择这样做。
扩大委托人的选择权力
扩大代委托人的选择权力的方法有三种:
更好的池内投票工具
增强池间竞争
将委托人固定化
池内投票目前并不真的存在。 在Rocket Pool中,任何人都可以成为节点运营者,而在Lido中,投票的是LDO持有者,而不是ETH持有者。 Lido提出了LDO + stETH双重治理的建议,这将使stETH持有者在某种意义上拥有发言权,他们可以激活一个阻止新投票的小工具,从而阻止节点运营者被添加或删除。尽管如此,这种权力还是有限的,可以更强大。
跨池竞争现在是存在的,但相对较弱。 主要问题是较小的质押池的质押代币(i)流动性较差 (ii)难以获得信任 (iii)应用程序支持较少。 我们可以在前两个问题上加以改进,办法是将罚款的上限削减到较小的数额,例如2或4 ETH。然后,剩余的ETH可以安全地存入和立即取出,使得即使对于最小的池基于ETH双向转换的LST可转化为ETH。我们可以通过为LSTs创建一个总发行合约来改进第三个问题——有点类似于钱包的ERC-4337和ERC-6900,这样我们就可以保证通过该合约发行的任何代币都是安全的。并鼓励应用程序(如支持ETH质押的RAI版本)支持所有通过该合约发行的质押代币。
固定化的委托人目前在协议中不存在,但可能会在将来引入。它将涉及与上述想法类似的逻辑,但在协议级别实现。 参阅:https://vitalik.ca/general/2023/09/30/enshrinement.html 了解固定化委托人的利弊。
所有这些想法都是对现状的改进,但它们能提供的好处是有限的。代币投票治理很糟糕,最终任何形式的非激励委托人选择都只是代币投票的形式;这一直是我对委托人PoS机制感到不舒服的主要原因。因此,考虑加强共识参与的形式似乎也很有价值。
共识参与
即使不考虑当前围绕流动性质押的问题,目前的独立质押方法也存在局限性。假设使用single-slot finality,理想状态下每个slot可以处理10万 - 100万个BLS签名。即使我们使用递归SNARKs来聚合签名,签名责任制(出于削减目的)也需要每个签名都有一个参与者的位字段。如果以太坊成为一个全球规模的网络,那么完全分散化存储位字段也不够:每个slot中16MB只能支持约6400万质押者。
从这个角度来看,将质押分为更高复杂度的可减持层是有价值的,它的每个slot都起作用,但可能只有10,000个参与者,而较低复杂度的层只偶尔被调用参与。复杂度较低的一层可以完全免于减持,或者它可以随机赋予参与者机会,在几个slot内存款并成为减持对象。
在实践中,这可以通过提高验证者余额上限来实现,随后增加余额阈值(例如2048 ETH),以确定哪些现有验证者进入较高或较低的复杂层。
以下是这些小额质押者如何发挥作用的一些想法:
每个slot,会随机选择10000名小额质押者,他们可以签署他们认为能够代表该slot的内容。使用小额质押者作为输入运行LMD GHOST分叉选择规则。如果小额质押者驱动的分叉选择和节点运营者驱动的分叉选择出现分歧,用户的客户端不接受任何区块作为最终确认,并显示错误。这将迫使社区介入调解。
委托人可以向网络发送一个交易,声明他们是在线的,并且愿意在接下来的一个小时里作为一个小股东。要验证使来自节点的消息,节点和随机选择的委托方都必须签名。
委托人可以向网络发送一个交易,声明他们是在线的,并且愿意在接下来的一个小时里担任小额质押者。每个epoch,随机选择10个委托人作为包含列表提供者,并选择10000名委托人作为选民。他们提前选择了k个slot,并给了k个slot窗口来在链上发布消息,确认他们在线。每个被确认的包含列表提供者都可以发布一个包含列表。除非对于每个包含列表,它要么(i)包含该包含列表中的交易,要么(ii)包含一半选民的投票,显示该包含列表不可用,否则区块被视为无效。
这些小型质押者都有一个共同点,它们不需要积极参与每个slot,不可削减(因此具有非常低的管理风险),并且非常“轻”,因为它们甚至不需要一个完整的节点来运行,只验证共识层就足够了。因此,它们可以通过应用程序或浏览器插件来实现,这些应用程序或浏览器插件大多是被动的,具有非常低的计算开销、硬件要求或技术知识要求,甚至不需要像ZK-EVM这样的先进技术。
这些小额质押者也都有一个共同的目标:防止51%的节点运营者参与交易审查。第一种和第二种也防止了大多数人参与终局性还原。第三种方法更直接地关注审查,尽管它更容易受到节点运营者选择的影响。
这些想法是协议中实施的双层质押解决方案的角度编写的,但它们也可以作为质押池功能来实现。以下是一些具体的实施思路:
在协议级别,每个验证者都能设定两个质押密钥:一个持续质押密钥P,以及绑定的以太坊地址,当被调用时,该地址会输出一个快速的质押密钥Q。 节点对分叉选择的信息跟踪以P表示,签署的信息以Q表示。如果PQ存储结果不一致,则不接受任何区块的最终确定。质押池负责随机选择委托人作为Q密钥的当前slot的持有者。
或者,协议可以基本保持不变,但将该slot的验证者的质押公钥设置为P+Q。注意,对于减持而言,两个可减持的消息可能具有不同的Q密钥,但它们应该具有相同的P密钥,减持设计需要处理这种情况。
或者,Q密钥只能在协议中用于对区块中包含列表的签名和验证。在这种情况下,Q更像是一个智能合约,而不是一个单一的密钥,因此质押池可以使用它来实现更复杂的投票逻辑,接受来自随机选择的提供者的包含列表,或足够多的表示包含列表不可用的投票。
结论
如果正确实施,对质押设计的微调可以一举解决两个问题:
1. 给那些今天没有资源或能力单独参与质押的人一个机会,保留更多权力在他们手中: (i)选择支持哪些节点的权力 (ii)以某种方式积极参与共识的权力,这种方式比完全运营权益证明节点操作更轻,但仍然有意义。并非所有参与者都会选择其中一种或两种选择,但任何这样做的人都会显著改善现状。
2. 减少以太坊共识层在每个slot中需要处理的签名数量,即使在单slot最终性制度下,也将其减少到约10000个之类的较少数量。这也有助于去中心化,使每个人都更容易运行验证节点。
对于这些解决方案,可以在不同的抽象层次上找到解决问题的方法:
在质押池协议内授予用户的权限、在质押池协议之间的用户选择以及协议内设定。应该谨慎考虑这个选择,在最小化可行设立、最小化协议复杂性和最小协议经济学的更改程度的基础上,同时仍能实现预期目标,通常是最好的选择。


