本文探讨了以太坊单Slot最终确定性(SSF)的Validator管理机制,提出了Orbit SSF方案。该方案旨在通过Validator集合的轮换和经济激励,实现Validator数量的限制,同时保证solo staking的可用性和足够的经济安全性。文章详细介绍了Validator集合选择、奖励调整以及激励Validator进行合并的具体方法,并讨论了相关风险和潜在的改进方案。
这篇文章的大部分内容是在与 RIG 以及像我和 Ansgar 和 Toni 这样的准 RIGs 进行为期一周的面对面头脑风暴时整理出来的。特别感谢 Anders, Ansgar, Barnabé, Thomas 的持续讨论和反馈,再次感谢 Anders 提供了关于个体激励的大部分想法,再次感谢 Barnabé 提供了关于最终性的图表。这篇文章探讨的核心思想最初由 Vitalik 在 这篇文章 中提出。
单Slot最终性 (Single Slot Finality, SSF) 路线图 有 三个主要组成部分:
自从之前链接的文章发布以来,共识算法方面取得了很大进展,有 多个 候选 协议 和 规范工作的开始。签名聚合的设计空间探索方面也做了一些努力,既有 网络 关注 也有 密码学关注。尽管如此,我们可能还远未能可靠地聚合每个Slot数百万个签名,而不会显著增加Slot时间或验证者要求。在 staking 经济学方面,过去一年有很多工作,但主要集中在理解 liquid staking 和 restaking,以及 stake 封顶,即约束 ETH 的 staking 量(如果你正在阅读本文,你可能至少在表面上熟悉发行对话,在这种情况下,你可能想深入挖掘并查看这些帖子 [1] [2])。在这里,我们更感兴趣的是 验证者封顶,即约束系统中验证者身份的数量,或者至少是在任何给定时间积极参与的验证者身份的数量,以满足技术约束。在这个 最近的帖子 中可以找到一些这方面的想法,事实上,帖子中的 方法 3 为这篇文章奠定了基础。此外,最近一个重要的发展是 EIP-7251 (MaxEB) 已经包含在 Electra 分叉 中。验证者的有效余额将被允许高达 2048 ETH,使 staking 池能够 合并其验证者,这是一项我们可以在设计中利用的新功能。
为了找到一个可以在合理的时间内进入协议的设计,我们在这里将重点关注 不 依赖于签名聚合过程的重大改进的解决方案。我们也不认为大幅增加Slot时间非常现实,这会产生许多外部影响。鉴于这些技术约束,让我们关注我们理想情况下想要实现的最少数量的属性:
如果没有这里定义的 solo staking 可行性,我们可以简单地提高最低余额,或者采用允许低最低余额但不 保证 它的方法,例如,面对大型 staker 有意拆分他们的 stake。这样的解决方案可能不得不依赖 去中心化 staking 池 或 双层 staking 以保持 staking 的可访问性,或者甚至为较小的 staker 创造更定制的角色,正如 rainbow staking 所建议的那样。虽然这些方法有其优点,并且我们相信它们(以及更广泛的 solo staking/广泛共识参与的角色)值得进一步探索,但我们在这里选择只探索与这种狭隘的 solo staking 可行性解释兼容的设计。
验证者封顶、solo staking 可行性和高经济安全性立即提出了一个问题:高经济安全性需要数百万 ETH 参与最终确定,而 32 ETH 的最低余额则意味着最坏情况下有数十万或数百万验证者(在撰写本文时约为 1M),这似乎与验证者封顶相冲突。有两种主要的方法试图解决这个问题:
在这篇文章中,我们不会 单独 关注后一种方法,但我们将提出一种将经济激励与验证者集合轮换形式相结合的方法。
当前的协议也必须处理我们在上一节中概述的问题,而选择的“解决方案”恰恰是验证者集合轮换:在任何给定的Slot中,只有 1/32 的验证者集合投票。这种设计 牺牲了最终确定时间,并且未能满足我们期望的快速最终性的属性。
那么,让我们探索是否可以使用验证者集合轮换,而不会放弃快速最终性或其他属性。
一种进行验证者集合轮换的方法是拥有快速轮换的委员会,就像当前协议中那样。为了避免高 time-to-finality,我们可以使用不同的共识协议,允许 基于委员会的最终性,即,即使一个委员会也可以提供与其 stake 成比例的经济安全性。事实上,上面链接的文章处理的是 累积的 基于委员会的最终性,其中共识协议甚至允许在多个最终确定中积累经济安全性,使得 k 个委员会连续最终确定会导致单个委员会可以提供的经济安全性的 k 倍。我们一石二鸟,既获得了快速(部分)最终性,又获得了完全 最终的 经济安全性。特别是,我们可以在 与今天相同的时间内 获得完全最终性(这给了每个委员会足够的时间通过投票两次来完成自己的最终确定),但最大的改进是经济安全性每Slot都会累积,而不是像今天这样在两个 epoch 后一次性累积。
这似乎是对今天协议的明显改进,那么我们为什么不这样做呢?一个答案来自共识协议设计空间:目前尚不清楚如何拥有一个具有 快速 轮换委员会的最优安全动态可用协议。事实上,今天协议的 LMD-GHOST 组件的大部分问题,或者至少是 根本问题,恰恰来自多个委员会的交互。简而言之,对手可以跨多个委员会积累权重,并使用它来重组支持它们的单个委员会的诚实区块。
对于感兴趣的读者,实际上有一些最优安全动态可用共识协议允许委员会(例如 [1] [2]),但所有已知的协议在即使是短暂的异步情况下也会遭受灾难性故障([1] [2])。目前尚不清楚这是否是一个根本限制,但至少到目前为止,我们不知道任何可以绕过它的协议。
然而,有一种简单的方法可以完全避免这个问题:放弃 快速 委员会轮换,而是拥有一个缓慢轮换的委员会,例如每Slot替换其一小部分。这样做的好处是,这样的委员会有效地充当完整的验证者集合,因为它的行为不会与其他委员会的行为进行交互,就像快速轮换那样。原则上,我们可以采用任何在整个验证者集合能够一次参与时有效的协议,并通过充分减慢轮换速度使其与此机制一起工作。
乍一看,一个明显的缺点是验证者集合的完整轮换将比今天慢得多,因此最终确定也会慢得多。然而,我们可以以稍微不同的方式做事,将为可用链投票的委员会(LMD-GHOST 投票)与为最终性投票的委员会(Casper FFG 投票)解耦。只有 LMD-GHOST 在快速委员会轮换方面存在问题,因此我们可以拥有一个缓慢轮换的委员会,其投票计入 LMD-GHOST,并且并行地拥有快速轮换的委员会,其投票随时间累积经济安全性,直到不超过当前两个 epoch 的完全最终性。
除了共识协议中增加的一些复杂性之外,一个剩余的缺点是我们让单个委员会在很长一段时间内“负责” LMD-GHOST。此外,虽然线性累积最终性是对今天阶跃函数最终性的严格改进,但我们没有实现更强大的东西,即立即获得高水平的经济安全性。当然,鉴于我们已经提出的约束条件,这是不可能实现的,除非我们对 stake 分布做出一些假设,例如它是 Zipfian,或者无论如何,大部分 stake 都集中在前几千个实体中。
我们的起点是 这篇文章中的方法 3,其中验证者(大致)按余额抽样,因此具有大量 stake 的验证者始终在验证者集合中。将此与先前考虑的验证者集合轮换方法进行比较,在这些方法中,验证者(隐式地)按索引抽样,就像我们今天所做的那样,这导致每个委员会都具有较小的权重,而不管 stake 分布如何。
然后,我们考虑添加合并激励,以便对单个委员会可以达到的最终性水平有更强的保证。委员会的旋转部分可以缓慢旋转,我们不需要承担解耦可用链投票和最终性工具的额外共识复杂性。此外,永远不会有负责关键共识组件的小委员会(就 stake 而言):在任何时候,我们都可以期望活跃的验证者集合持有整个 stake 的有意义的部分。
这里有两个关键组成部分:
具有 stake S \le T 的验证者以概率 \frac{S}{T} 被选中,该概率与其 stake 成比例,而具有 stake S \ge T 的验证者 总是 在验证者集合中。这里的想法当然是,拥有一个始终在活跃集合中的大型验证者的稳定核心是有帮助的,因为它们贡献了大量的经济安全性,但仍然只增加与其他任何验证者相同的负载。
总的来说,具有 stake S 的验证者的 预期 奖励是 p(S)\cdot r(S) = R\cdot\frac{S}{T} = \frac{R}{T} \cdot S. 换句话说,每单位 stake \frac{R}{T},无论它如何分配。为了帮助可视化,这里是 p(S)、r(S) 和 p(S)\cdot r(S) 的图,对于 R = 2(仅用于绘图的任意值)和 T = 1024。stake 低于 T 的验证者确实具有更高的方差,因为他们仅参与 \frac{S}{T} 的时间,但从更长的时间段来看,方差仍然非常低,因为 attestation 奖励是恒定的且非常频繁。
我们可以轻松计算从此方式从完整验证者集合 V 中抽样的活跃验证者集合 V_a 的预期大小,该集合的总存款大小为 D:
\mathbb{E}[|V_a|] = \sum_{i \in V} p(S_i) = \sum_{i \in V} \min(\frac{S_i}{T}, 1) = \frac{1}{T}\sum_{i \in V} \min(S_i, T) \le \frac{1}{T}\sum_{i \in V} S_i = \frac{D}{T}
基本上,任何具有 stake S \le T 的验证者都会对预期贡献 \frac{S}{T}。至关重要的是,这些贡献在 S 中线性缩放:将高达 T 的 stake 分成小验证者的唯一效果是增加活跃验证者集合大小的方差,而不影响预期。对于具有 stake S > T 的验证者,与最坏情况相比,它们甚至会降低预期,最坏情况是 \frac{D}{T},如果所有验证者都具有 T stake,则等于完整的验证者集合大小。
例如,我们可以设置 T = 4096 ETH,从而使我们获得 \frac{120M}{4096} \approx 30k 的 最大 预期活跃验证者集合大小。如果我们采用 stake 封顶(稍后我们将讨论如何在此上下文中进行操作),以确保(或高度保证)D 以(例如)2^{25}M ETH 为界,我们甚至可以设置 T = 1024,仍然具有至多 ~32k 的预期活跃验证者集合大小。当然,可能会出现与此预期大小的偏差,但以很高的概率,实际的活跃验证者集合大小始终会落在合理狭窄的范围内,因此我们可以对我们需要能够处理的最大负载有非常强的保证。我们在 附录 中更详细地介绍了这一点。
令 D_a 为活跃存款大小,即活跃验证者集合的总 stake,与总存款大小 D(整个验证者集合的 stake)形成对比。乐观地讲,只要有足够的合并,D_a 就会很高,这是对 先前慢速轮换方法 的明显改进。尽管如此,我们希望这不仅仅是一个乐观的属性。那么,我们剩下的要回答的问题是如何确保或至少高度激励高 \frac{D_a}{D} 比率。例如,我们希望防止所有验证者保持 32 ETH 余额(没有人合并),这将导致 \mathbb{E}[D_a] = \frac{32}{T} D,例如,对于 T = 1024,仅为 \frac{D}{32}。在今天的 D = 32M ETH 中,预期的活跃存款大小仅为 1M ETH。另一方面,我们不希望与小型验证者相比,不成比例地奖励合并的验证者。
我们探索两种互补的方法:
我们探索的第一个方法是奖励 所有人 合并,将收益扩展到合并的验证者之外,以便保持奖励无差别,同时仍然提供合并的激励。
这方面的一个初步建议是基于 D_a 而不是 D 设置奖励。例如,我们可以使用我们今天使用的相同发行曲线 I,但其中用作输入的存款大小是 D_a 而不是 D:累积发行量将是 I(D_a),并且每单位 stake 的相应收益为 \frac{I(D_a)}{D}。值得注意的是,I 是单调递增的,因此,只要 D_a < D,累积发行量 I(D_a) 就小于在具有完全合并的此存款大小下可能实现的最大发行量 I(D)。当前收益与具有完全合并的收益之间的收益差距 \frac{I(D) - I(D_a)}{D} 充当合并激励。
撇开合并激励不谈,考虑此提案的另一种方式是,我们只需为我们获得的经济安全性付费,至少来自单个委员会:如果今天我们为 X 数量的存款提供的安全预算为 Y,如 I(X) = Y 所示,那么现在我们愿意支付 Y 以获得 X 数量的 活跃 存款。为了了解这在实践中是什么样的,这是一个 (D, \frac{D_a}{D}) 收益的颜色图(从 D = 1 开始以帮助可视化)。
感谢 Anders 提出差异化风险问题并提出我们在此探索的个体激励类型
尽管我们对集体激励的探索发现它们相当强大,但我们尚未考虑一个因素:具有 stake \ll T 的验证者比具有 stake \ge T 的验证者具有更好的风险状况。这是因为它们仅在部分时间内处于活动状态,这意味着两件事:
那么,我们可能不愿意仅仅依赖集体激励,这无法正确考虑合并和非合并验证者之间的风险差异,这本身就是一种个体反合并激励。另一方面,我们不愿使用个体合并激励,因为差异化的奖励威胁到我们 solo staking 可行性的目标。面对这一难题,减轻对 solo staking 可行性影响的潜在方法是尝试设置仅抵消合并增加的风险的个体合并激励措施。目标是使风险调整后的奖励对于合并和非合并验证者大致相等,从而使更高风险、更高回报和更低风险、更低回报的可用选择同样具有吸引力。特别是,那么至少在原则上(虽然不能保证)可以拥有一个这两种设置共存的验证者集合,因此我们可以渴望同时拥有高合并率和 solo staking 可行性。
具体来说,以下是我们如何实现这一点的一种方式。给定基本收益 y(D_a, D) = \frac{I(D_a, D)}{D},我们可以调整具有 S stake 的验证者的收益为 y(D_a, D)(1 + \frac{\min(S,T)}{T}g(\frac{D_a}{D})),其中 g(x) 是递减的,并且 g(1) = 0。换句话说,具有 S stake 的验证者会获得额外的 合并收益 y_c(D_a, D, S) = \frac{\min(S,T)}{T}g(\frac{D_a}{D})y(D_a, D),或者等效地,其收益会增加 \frac{\min(S,T)}{T}g(\frac{D_a}{D}) 的系数,对于具有 S = T 的完全合并的验证者,最高可达 g(\frac{D_a}{D})。随着 \frac{D_a}{D} 的增长,此系数会降低,因为进一步合并的回报会减少(与总存款大小增长时 staking 收益下降的原因相同)。特别是,如果 \frac{D_a}{D} 变为 1,它会一直降至 0,从而恢复所有人的基本收益 y(D_a, D),并且通常会使奖励越来越少地差异化,因为发生了更多的合并。这里的想法是,将达到一个平衡,其中 g(\frac{D_a}{D}) 恰好可以补偿合并带来的额外风险,并且不会激励进一步合并。我们甚至可以设置 g 在我们乐于接受的较低合并水平达到 0,从而为使用非合并验证者进行 staking 留出更多经济上可行的空间。例如,如果 g(0.8) = 0,那么具有 32 ETH 的验证者与具有 1024 ETH 的验证者获得相同的收益,并且风险更低,即使 20% 的 stake 由 32 ETH 验证者组成。
现在让我们看一下 g 的特定形式。最简单的选择是线性函数,它完全由 g(0) 决定,g(0) 是在根本没有合并时的初始收益增加因子。那么该函数只是 g(x) = g(0)(1 - x)。例如 g(x) = \frac{1-x}{4},其中最大收益增加为 25%。具有 stake S 的验证者的额外收益为:
y_c(D_a, D, S) = g(0)\frac{\min(S,T)}{T} \cdot y(D_a, D) \cdot (1 - \frac{D_a}{D})
让我们看看这与 上一节 中介绍的集体激励措施相结合是什么样的,其中发行量基于 D_a,即 y(D_a, D) = \frac{I(D_a)}{D},I 是当前的发行曲线 I(x) = c\sqrt{x}。最大合并收益,或者合并验证者相对于普通验证者的收益优势为:
y_c(D_a, D, S=T) = g(0) \cdot y(D_a, D) (1 - \frac{D_a}{D}) = \\ = g(0) \cdot c \cdot \frac{\sqrt{D_a}}{D}(1 - \frac{D_a}{D}) = \\ g(0) \cdot c \cdot \frac{1}{\sqrt{D_a}} \frac{D_a}{D}(1 - \frac{D_a}{D})
下一个颜色图显示了 y_c(D_a, D, S=T) 作为 \frac{D_a}{D} 和 D_a 的函数,对于 g(0) = \frac{1}{4}(左上角的一些部分不可行,因为 D 将 > 120M)。在水平方向上,该函数看起来像 x(1-x):在合并水平较低时,合并收益较低,此时集体激励很强,而在合并水平较高时,我们对更多合并没有强烈要求,并且我们更担心运行非合并验证者的经济可行性。在垂直方向上,它看起来像 \frac{1}{\sqrt{y}},随着 D_a 的增长,合并收益缓慢下降,并且我们通常不太需要合并,因为活动集合的经济安全性由 D_a 决定。
我们当然可以非常容易地修改任何此类函数 g,以便在某个合并水平 r_0 \in [0,1] 之后激励降至 0,通过将 g 替换为 \tilde{g}(x) = \max(g(\frac{x}{r_0}), 0),这会将 g 挤压在 [0,r_0] 范围内,并在之后将合并收益设置为 0。例如,这是 r_0 = 80\% 的合并收益,从之前的 g(x) = \frac{1-x}{4} 开始。
让我们也获得活跃验证者集合大小方差的上限。 \mathbb{V}[|V_a|] = \mathbb{V}[\sum_{i\in V} \chi_{\{i \in V_a\}}] = \sum_{i\in V} \mathbb{V}[\chi_{\{i \in V_a\}}],因为每个验证者都是独立抽样的。此外,当 S_i \ge T 时,\mathbb{V}[\chi_{\{i \in V_a\}}] = 0,因为验证者 i 始终在 V_a 中。
对于 S_i < T,方差为 \mathbb{V}[\chi_{\{i \in V_a\}}] = p(S_i)(1 - p(S_i)) = \frac{S_i}{T}(1 - \frac{S_i}{T}),当 p(S_i) = \frac{1}{2} 时达到最大值,或者等效地,当 S_i = \frac{T}{2} 时,在这种情况下,\mathbb{V}[\chi_{\{i \in V_a\}}] = \frac{1}{4}。因此,\mathbb{V}[|V_a|] \le \frac{1}{4}|V|。
具体来说,假设我们保持 32 ETH 的最低余额,以便最大验证者集合大小|V|约为 4M。那么,|V_a|的标准偏差以 \frac{\sqrt{|V|}}{2} \approx 1000 为界。那么,超过 10k 的偏差的概率消失了。我们甚至可以显式地限制活动验证者集合大小,例如限制为 40k 个验证者。这样做只会对不同验证者的抽样引入微小的相关性,因为除了在极少数发生大规模偏差的事件中,抽样完全不受影响。
让我们从数量上更多地了解合并激励。虽然在任何可能进行合并的情况下都始终存在一些合并激励,但我们也应该考虑这些激励对于各种 stake 持有者来说有多强。特别是,激励的强度因 stake 持有者的大小而异,因为合并会增加 所有人的 收益,而不仅仅是执行合并的一方。换句话说,合并的收益是社会化的,以避免出现某种合并奖励,这实际上会不利于无法获得合并奖励的较小验证者。因此,对于较大的验证者来说,合并激励更强。一方面,这意味着足够大的验证者有强烈的合并动机,这意味着我们应该期望 D_a 始终至少代表总 stake D 的有意义的一部分。另一方面,这意味着很小但仍然有意义的 stake 持有者(例如 1%)可能没有特别的动力进行合并。 为了量化这一点,让我们看看当一个拥有总 stake D 的一部分 p 的 staker 完全整合时,发行量会增加多少,当 \frac{D_a}{D} = r 时。这里我们假设有问题的 stake pD 最初根本没有整合,并忽略它对 D_a 的微小影响(例如,如果 T = 1024,一个最小余额验证器只会增加 D_a 为其 stake 的 1/32)。发行量,以及由此产生的收益,增加的倍数为 \frac{I(D_a + pD) - I(D_a)}{I(D_a)} = \frac{I((r + p)D)}{I(rD)} - 1。代入 I 的定义,我们可以将其简化为 \sqrt{1 + \frac{p}{r}} - 1。正如预期的那样,整合激励随着 p 的增加而增长。同样可以预期的是,它们随着 r 的增加而下降,因为发行曲线 I 是凹的。事实证明,对于这种特定形式的 I,没有对 D 的依赖性。
我们现在绘制 100(\sqrt{1 + \frac{p}{r}} - 1),即当一部分 stake p 从 D_a = rD 开始完全整合时,每个验证者经历的收益增加的百分比。为了便于可视化,我们将 r 限制在 [0.1, 1] 的范围内,因为当 r 接近 0 时,整合激励会爆炸式增长,正如我们所希望的那样。请注意,对于 T = 1024 和最小余额 32 ETH,最小 r 实际上是 1/32。
另一方面,绝对收益增加 100\cdot\frac{I(D_a + pD) - I(D_a)}{D_a} 不是独立于 D 的。我们在这里专门针对 D = 30M ETH 绘制它。对于较低的 D 值,整合激励在绝对值方面只会变得更强。
最后,我们还绘制了整合带来的年度 ETH 回报,(I(D_a + pD) - I(D_a))\cdot \frac{p}{r},同样针对 D = 30M ETH。
当 I 是我们当前的发行曲线,I(x) = c\sqrt{x} 时,我们有 I(D_a) = c\sqrt{D_a} = c \sqrt{D} \sqrt{\frac{D_a}{D}} = I(D)\sqrt{\frac{D_a}{D}}。换句话说,我们可以将之前的提案视为通过直接应用基于它的发行惩罚来激励高 \frac{D_a}{D} 比率。更一般地,我们可以让发行量为 I(D_a, D) = I(D) \cdot \delta(\frac{D_a}{D}),对于任何 \delta,使得 \delta(0) = 0 且 \delta(1) = 1。有了这个,整合带来的收益增加恰好是 \frac{I(D)}{D} \cdot (\delta(r + p) - \delta(p)),即在存款规模 D 下可获得的最大收益的一部分 \delta(r + p) - \delta(r)。收益增加的百分比是 \frac{\delta(r + p) - \delta(r)}{\delta(r)}。最简单的情况是 \delta(r) = r,其中 I(D_a, D) = I(D) \cdot \frac{D_a}{D},在这种情况下,收益增加仅仅是 p \frac{I(D)}{D},在 r 中是常数,收益增加的百分比是 \frac{p}{r}。
在这种形式下,我们可以更清楚地将 stake 激励的设计与整合 stake 的激励设计分开:I(D) 提供了在给定总存款水平 D 下 stake 的最大可能的激励,而 \delta 调节了在给定比率 \frac{D_a}{D} 下整合的激励。例如,我们可以让 I 是凹的,就像目前的情况一样,但 \delta 是线性的,就像之前的例子中那样:协议然后认为 stake 存款具有递减的回报,同时它认为无论 \frac{D_a}{D} 当前位于何处,整合都同样有价值。
在任何时候,都可以通过激活具有最小余额的验证者来增加 D,同时几乎不增加 D_a。因此,发行量 I(D_a) 近似恒定,但分配给更多的 stake。这与使用恒定发行曲线或发行量上限为某个最大值时可能出现的 劝退攻击 相同,在这种情况下,收益也会像 \frac{1}{D} 一样下降。虽然比今天的情况更糟,今天的收益像 \frac{1}{\sqrt{D}} 一样下降,但这种劝退攻击与如果我们 使用发行量来针对验证者数量 时出现的超低成本的 griefing 向量完全不同。例如,假设我们开始减少发行量,超过我们理想的目标 ~30k 验证者,并且在 40k 时变为负数。那么,激活几千个最小余额验证者,大约占 stake 的 0.01% 到 0.1%,就足以使收益变为负数。另一方面,在我们这里考虑的劝退攻击的背景下,将收益降低 k 倍需要将存款规模增加 k 倍。例如,当 D = 20M 时,将发行量减半需要再存入 20M。
如果我们根据 D_a 设置发行量,我们将无法立即采用任何将发行量减少到某个存款规模以下的发行曲线,例如 这里 和 这里 讨论的那些。原因很简单:如果发行量下降到低于某个 D_a 值,但事实证明该点的收益仍然具有吸引力,那么激励机制就会使 D 仍然增长(更多的 stake 希望在这些水平上获得收益),而 D_a 不会(增加 D_a 会降低收益)。事实上,我们最终得到的不是整合激励,而是将 stake 分散到多个验证者上的激励,从而减少 D_a 并使其保持在最大发行量的位置!与此同时,stake 上限并没有实现,至少不会比我们通过将发行量限制在最大值来实现的更多,而不是在此之后减少它。
如果我们确实想采用某种形式的 stake 上限,那么我们需要以不同的方式进行操作。我们可以让发行量为 I(D_a, D) = I(D_a) - f(D),其中 f 用于减少超过某个关键总存款规模后的发行量。直观地说,目标是尝试同时确保两件事:我们有足够的 D_a,并且我们没有太多的 D。例如:
为了帮助进一步可视化这种效果,这里是保持 \frac{D_a}{D} = 0.8 时的累积发行量和收益。
最后,这是 (D, \frac{D_a}{D}) 空间中收益的颜色图。D 从 2 开始,以帮助可视化更有效。
总额外发行量为:
I_c(D_a, D) = \sum_{i \in V} y_c(D_a, D, S_i) S_i = g(0) y(D_a, D)(1 - \frac{D_a}{D}) \sum_{i \in V} p(S_i)S_i = \\ = g(0)y(D_a, D)\cdot D_a(1 - \frac{D_a}{D}) = g(0)I(D_a)\cdot \frac{D_a}{D}(1 - \frac{D_a}{D}) = \\ = g(0) \sqrt{D} \sqrt{\frac{D_a}{D}}\cdot \frac{D_a}{D}(1 - \frac{D_a}{D}) = g(0)I(D) \sqrt{\frac{D_a}{D}}\cdot \frac{D_a}{D}(1 - \frac{D_a}{D})
那么总发行量为:
I_T(D_a, D) = I(D_a) + I_c(D_a, D) = I(D_a)(1 + g(0) \frac{D_a}{D}(1 - \frac{D_a}{D})) = \\ = c \sqrt{D} \sqrt{\frac{D_a}{D}}(1 + g(0)\cdot \frac{D_a}{D}(1 - \frac{D_a}{D})) = \\ = I(D) \sqrt{\frac{D_a}{D}} (1 + g(0)\frac{D_a}{D}(1 - \frac{D_a}{D})) = I(D) \cdot h(\frac{D_a}{D}), 其中 h(x) = \sqrt{x}(1 + g(0)x(1-x))。对于 g(0) = \frac{1}{4},我们有 h(x) \le 1 对于 x \in [0,1],因此 I(D) 仍然是总发行量的上限。
更一般地,我们可以选择任何整合收益曲线 y_c(D_a, D, S) = \frac{\min(S,T)}{T} y_c(D_a, D),不一定依赖于 y(D_a, D),甚至可以选择任何具有不同 S 依赖关系的曲线 y_c(D_a, D, S)。第一种的一个有趣的例子是曲线 y_c(D_a, D, S) = \frac{\min(S,T)}{T} (y(D) - y(D_a, D)),其中 y_c(D_a, D, S) 本质上是在 deposit size D 下支付给完全整合的验证者集合的收益 y(D) = y(D_a = D, D) 与在当前整合水平下支付的基本收益 y(D_a, D) 之间进行插值。换句话说,具有 T stake 的验证者总是获得 deposit size D 的最大可能收益 y(D),而不管整个验证者集合实现的整合水平如何,而具有最小 stake 的验证者获得的收益更接近基本收益 y(D_a, D),并且随着它们的整合,它们的收益线性增加到 y(D)。在这种情况下,整合激励在较低的整合水平下要强得多。
虽然绝对收益增加随着 D_a 的增加而下降,但整合带来的收益增加百分比不会下降。事实证明,它只取决于 \frac{D_a}{D}:
\frac{y_c(D_a, D)}{y(D_a, D)} = \frac{y(D) - y(D_a, D)}{y(D_a, D)} = \frac{y(D)}{y(D_a, D)} - 1 = \sqrt{\frac{D}{D_a}} - 1
换句话说,这也符合之前的形式 y_c(D_a, D, S) = \frac{\min(S,T)}{T} g(\frac{D_a}{D}) y(D_a, D),其中 g(x) = \sqrt{\frac{1}{x}} - 1 而不是线性函数。
由于 y(D_a, D) + y_c(D_a, D, S) \le y(D),因此 I(D) 仍然是总发行量的上限。事实上,总发行量可以计算为 I_T(D_a, D) = I(D_a) + I_c(D_a, D) = I(D) \sqrt{\frac{D_a}{D}}(1 + \sqrt{\frac{D_a}{D}} (1 - \sqrt{\frac{D_a}{D}})) = I(D) h(\frac{D_a}{D}),其中 h(x) = \sqrt{x}(1 + \sqrt{x}(1 - \sqrt{x}))),我们在这里将其与之前的例子进行比较:
- 原文链接: ethresear.ch/t/orbit-ssf...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!