协议和质押池的变化可以改善去中心化并减少共识开销

 
 留言

特别感谢 Mike Neuder、Justin Drake 和其他人的反馈和审查。Смотритетакже: Mike NeuderDankrad Feist 和 arixon.eth 关于类似主题的早期帖子

以太坊的现状可以被描述为包括很大一部分新兴的两层质押。我所说的两层质押,是指有两类参与者的质押模型:

  1. 节点运营商,他们运行节点并将自己的声誉或自己的一些固定数量的资本作为抵押品
  2. 委托人他们投入一定数量的 ETH,没有最低承诺,也没有严格的要求,除了携带抵押品之外,没有以任何其他方式参与

这种新兴的两层质押是通过参与提供流动性质押代币 (LST) 的质押池的大量质押者的行为产生的,例如。 火箭池丽都

现状有两个主要缺陷:

  • 节点运营商的中心化风险。在现有质押池中选择节点运营商的机制要么不是很去中心化,要么存在其他缺陷。
  • 不必要的共识层负担。以太坊 L1 每个纪元验证 ~800,000 个签名并且单个插槽的终结性可能会增加到每个插槽 800,000 。这是一个很大的负载。此外,由于流动性质押的份额很大,网络没有获得承担这种负载的全部好处。如果网络可以被简化为去中心化和安全,而不需要每个质押者在每个插槽中签字,那么我们可以更加努力地依赖该解决方案,并将每个插槽的签名数量减少到例如。10,000。

这篇文章将描述这两个问题的可能解决方案。它将特别采取以下角度:假设我们假设大多数资金由那些不愿意以当前形式亲自运行质押节点的人持有,在每个插槽中签署消息并锁定他们的存款并对其进行削减。他们还能发挥哪些其他作用,对网络的去中心化和安全性做出有意义的贡献?

如今,两层质押是如何运作的?

当今最受欢迎的两个去中心化质押池 Lido 和 RocketPool 都在创建新兴的两层质押生态系统。在 Lido 的案例中,这些层级是:

  • 节点运营商:这些运营商是通过 Lido DAO 中的投票选出的,因此由 LDO 持有者有效地选择
  • 委托人:持有 stETH 的人。 stETH 是在有人将 ETH 存入 Lido 智能合约系统时创建的,该系统允许节点运营商对其进行质押(但是,由于提款凭证绑定到智能合约 ETH 地址,因此他们不能将其据为己有)

在 Rocket Pool 的案例中,这些层级是:

  • 节点运营商:任何人都可以通过提交 8 ETH 存款以及一定数量的 RPL 代币成为节点运营商
  • 委托人:持有 rETH 的人。 rETH 是在有人将 ETH 存入 Rocket Pool 智能合约系统时创建的,该系统允许节点运营商质押它(但不能据为己有)

委托人的角色

在这些系统(或由未来潜在的协议变化启用的新系统)中要问的一个关键问题是:从协议的角度来看,拥有委托人有什么意义?

要了解为什么这个问题有意义,让我们考虑以下世界。在最近的帖子中提出的协议更改,即将削减罚款限制为 2 ETH,已经实施。作为回应,Rocket Pool 将节点运营商的存款减少到 2 ETH。Rocket Pool 的市场份额增加到 100%(不仅在质押者中,而且在 ETH 持有者中:随着 rETH 变得无风险,几乎所有 ETH 持有者都成为 rETH 持有者或节点运营商)。

假设 rETH 持有者获得 3% 的回报(包括协议内奖励和优先费用 + MEV),节点运营商获得 4% 的回报。我们还假设 ETH 的总供应量为 1 亿。

以下是数学计算方法。为了避免处理复利问题,我们将查看每日回报而不是每年回报,以便二阶项变得足够小,可以忽略

  • 节点运营商质押的 ETH:100�∗232=6.25�
  • 质押在 rETH 中的 ETH:100�−6.25�=93.75�
  • 节点运营商每日名义收益:0.04365.25=0.01095%
  • 委托人名义收益:0.03365.25=0.00821%
  • ETH供应量增长:6.25�∗0.0001095+93.75�∗0.0000821≈8380
  • 节点运营商持有的 ETH 总供应量百分比变化:1.00010951.0000838−1=0.00257%
  • 委托人持有的 ETH 总供应量百分比变化:1.00008211.0000838−1=−0.00017%

现在,让我们考虑一个不同的世界。Rocket Pool 不存在。每个质押者的最低存款减少到 2 ETH,质押的 ETH 总量上限为 6.25M。此外,节点运营商的回报率降低到1%。让我们来算一算:

  • 质押的 ETH:6.25�
  • 质押者名义每日回报:0.01365.25=0.00274%
  • ETH供应量增长:6.25�∗0.0000274≈170
  • 质押者持有的 ETH 总供应量百分比的变化:1.00002741.0000017−1=0.00257%
  • 非质押者持有的 ETH 总供应量百分比的变化:11.0000017−1=−0.00017%

现在,让我们从攻击成本的角度来考虑这两种情况。在第一种情况下,攻击者不会注册为委托人:委托人没有权力,所以没有意义。因此,他们会将所有的 ETH 都用于注册为节点运营商。为了获得所有赌注的 1/3,他们需要投入 2.08M ETH(公平地说,这仍然相当多!例如,请参阅关于超级委员会的讨论,这是一个质押扩展提案,该提案也将攻击成本降低到类似的值)。在第二种情况下,攻击者只会下注,要获得所有下注的 1/3,他们需要投入......2.08M 以太币。

从赌注经济学和攻击成本的角度来看,这两种情况下的最终结果完全相同。节点运营商持有的ETH总供应量份额每天增加0.00256%,非节点运营商持有的ETH总供应量份额每天减少0.00017%。攻击成本为 208 万 ETH。因此,在这个模型中,委托感觉变成了一台毫无意义的鲁布·戈德堡机器:我们不妨去掉中间人,大幅减少质押奖励,并将质押的 ETH 总量限制在 6.25M

这个论点的目的不是主张将质押奖励减少 4 倍,并将质押的 ETH 总数限制在 6.25m。相反,它指出了一个运作良好的质押系统应该具备的一个关键属性:即委托人应该做一些 真正重要的事情。此外,如果委托人在很大程度上受到社区压力和利他主义的激励而采取正确的行动,那也是可以的;毕竟,这是促使人们以分散式安全增加(但工作量更大)的方式而不是集中式安全威胁(但工作量更小)的方式进行投资的主要力量。

如果委托人可以扮演一个有意义的角色,那么这个角色可能是什么?

我看到两类答案:

  • 受托人选择:受托人可以选择将股份委托给哪些节点运营商。节点运营商在共识中将有一个“权重”,该权重与委托给他们的总权益成正比。今天,代表选择已经以有限的形式存在,从某种意义上说,rETH 或 stETH 持有者可以提取他们的 ETH 并切换到不同的池子,但代表选择的实际可用性可以大大提高。
  • 共识参与:委托人可以选择在共识中扮演角色,这比完全质押“更轻”,不受较长的提款期和削减风险的影响,但仍将起到制衡节点运营商的作用。许多委托人不想这样做,他们更喜欢最简单的界面,即拿着 ERC20 而不做其他事情,但有些人会接受这个选项。

扩大代表遴选权

有三种方法可以扩展委托人的选择权:

  • 池内更好的投票工具
  • 泳池之间的竞争更加激烈
  • 供奉代表团

矿池内投票今天并不存在:在 Rocket Pool 中,任何人都可以成为节点运营商,而在 Lido 中,投票的是 LDO 持有者,而不是 ETH 持有者。Lido 提出了 LDO + stETH 双重治理的提案,这将使 stETH 持有者有发言权,因为他们可以激活一个小工具来阻止新的投票,从而阻止节点运营商被添加或删除。也就是说,这是有限的,而且可能会更强大。

跨池竞争今天存在,但很弱。主要挑战是,较小的质押池的质押代币 (i) 流动性较低,(ii) 更难信任,以及 (iii) 应用程序支持较少。

我们可以改进前两个问题,将处罚上限限制在较小的金额,例如 2 或 4 ETH。然后,剩余的(不可削减的)ETH 可以立即安全地存入和提取,使基于 ETH 的 LST 可以与 ETH 双向转换,即使是最小的池子。我们可以通过为 LST 创建一个中央发行合约来改进第三个问题——有点类似于钱包的 ERC-4337 和 ERC-6900,这样我们就可以保证通过该合约发行的任何质押代币都是安全的。 可以强烈鼓励应用程序(例如支持质押 ETH 的 RAI 版本)支持通过该注册表发行的所有质押代币。

目前,协议中不存在供奉的授权,但可能会被引入。它将涉及与上述想法类似的逻辑,但在协议级别实现。请参阅这篇文章,了解将事物纳入其中的利弊。

所有这些想法都是对现状的改进,但它们能提供多少好处是有限的。 代币投票治理很糟糕,最终任何形式的无激励代表选择都只是一种代币投票;这从一开始就是我对委托权益证明感到不适的主要来源。因此,似乎有必要考虑实现更强有力的共识参与形式。

共识参与

即使不考虑当前围绕流动性质押的问题,目前的单独质押方法也存在局限性。假设单插槽终结性,我们的最佳估计建议每个插槽可以处理的 ~100k - 1M BLS 签名的限制,这是假设插槽时间显着增加。即使我们使用递归 SNARK 来聚合签名,签名问责制(出于削减目的)也需要每个签名都具有参与人员的位字段。如果以太坊成为一个全球规模的网络,那么即使以某种方式使用完整的 danksharding 来存储位字段也是不够的:每个插槽 16 MB 只能支持 ~6400 万质押者。

在这里,从这个角度来看,将质押拆分为一个复杂度更高的可削减层是有价值的,该层在每个插槽中都起作用,但可能只有 10,000 名参与者,以及一个较低复杂性的层,只是偶尔被调用参与。较低复杂度的层可以完全免于削减,或者它可以随机为其参与者提供临时(即少数插槽)存款并受到削减的机会。

在实践中,这可以通过提高验证者余额上限来实现,然后实施余额阈值(例如 2048 ETH),以确定哪些现有验证者进入更高和更低的复杂度层。

以下是关于这些小赌注角色如何运作的一些想法

  • 每个插槽,随机选择10000个小质押者,他们可以在他们认为是该插槽的头部上签字。LMD GHOST 分叉选择规则使用小质押者作为输入来运行。如果小质押者驱动的分叉选择节点操作员驱动的分叉选择出现分歧,则用户的客户端不会接受任何最终的区块,并显示错误。这迫使社区调解这种情况。
  • 委托人可以向网络发送一笔交易,声明他们在线并愿意在接下来的一小时内充当小额质押者。要使来自节点的消息(阻止或证明)计数,节点和随机选择的委托人都必须签字
  • 委托人可以向网络发送一笔交易,声明他们在线并愿意在接下来的一小时内充当小额质押者。每个纪元,随机选出 10 名委托人作为包含列表提供者,另外 10000 人被选为投票者。这些是预先选择的k个插槽,并给出一个k插槽窗口,用于在链上发布消息,确认它们在线。每个已确认选择的包含列表提供商都可以发布包含列表,并且区块无效,除非对于每个包含列表,它 (i) 它包含该包含列表中的交易,或 (ii) 它包含来自 1/2 选定选民的投票,表明包含列表不可用。

这些小质押角色都有一个共同点,即它们不涉及积极参与每个插槽,不可削减(因此密钥管理风险非常低),并且非常“轻”,因为它们甚至不需要一个完整的节点来运行。仅验证共识层 就足够了。因此,它们可以通过应用程序或浏览器插件来实现,这些插件大多是被动的,具有非常低的计算开销、硬件要求或技术知识要求,甚至不需要像 ZK-EVM 这样的技术进步。

这些小规模的赌注角色也都有一个共同的目标:他们阻止51%的大多数节点运营商参与交易审查。第一个和第二个也阻止了多数人参与终局回归。第三种更直接地关注审查制度,尽管它更容易受到节点运营商多数也会选择审查包含列表提供商确认消息的可能性的影响。


 

这些想法是从协议中实现的神圣两层质押解决方案的角度编写的,但它们也可以作为质押池功能实现。以下是一些具体的实现思路:

  • 在协议层面,每个验证者被允许指定两个质押密钥: 持久质押密钥 ,以及一个以太坊地址,当调用该地址时,会输出一个 快速质押密钥 .节点跟踪由-密钥消息签名者 -钥匙;如果两人不同意,他们不接受任何最终确定的区块。质押池负责随机选择委托人作为-当前插槽的密钥持有者。
  • 或者,该协议可以基本保持不变,但该插槽的验证者的质押公钥将设置为�+�.请注意,对于斜杠,两条可斜杠消息可能具有不同键,但它们会具有相同的钥匙;斜线设计需要处理这个问题。
  • 或者,-keys 只能在协议中用于对块中的包含列表进行签名和验证。在本例中, 可以是一个智能合约,而不是一个单一的密钥,因此矿池可以使用它来实现更复杂的投票逻辑,接受来自随机选择的提供者的包含列表,或者接受足够多的投票,表明包含列表不可用。

结论

如果做得好,对质押设计的调整可以解决一石二鸟的问题:

  1. 给那些今天没有资源或能力单独质押的人一个参与质押的机会,让他们掌握更多的权力:i)选择他们支持的节点的权力,以及(ii)以某种方式积极参与共识的权力这种方式比完全质押节点操作更轻,但仍然有意义。并非所有参与者都会选择其中一种或两种选择,但任何这样做的人都会显着改善现状。
  2. 将以太坊共识层需要在每个插槽中处理的签名数量减少到更小的数量,例如 ~10,000。这也将有助于去中心化,使每个人都更容易运行验证节点。

对于许多这样的解决方案,存在不同的抽象层,问题的解决方案可以存在:在质押池协议中授予用户的权力,用户在质押池协议之间的选择,以及协议内的供奉。这种选择应该仔细考虑并且通常最好采用最小的可行供奉,在实现预期目标的同时,最大限度地减少协议复杂性和对协议经济性的变化程度。