本文提出了一种以太坊权益证明的快速确认规则,旨在加速区块确认过程。该规则基于诚实验验证者的投票和总验证者权重,通过计算概率和安全指标来判断区块是否可以被确认,理想情况下可在区块产生后立即确认,典型主网条件下预计在3-4个插槽内完成。

此帖子用于讨论以太坊权益证明的以下快速确认规则:
这项工作由 Francesco D’Amato @fradamt、Roberto Saltini @saltiniroberto、Luca Zanolini @luca_zanolini 和 Chenyi Zhang 共同完成。
确认规则
假设:
- 从当前 slot 开始,诚实验证者在 slot 中投出的票会在该 slot 结束前被所有验证者收到,即网络是同步的,延迟
< 8 秒
。
-
对以太坊协议的此提案:
- 如果 j 是最高的 justified checkpoint block,并且当前 epoch 是 e,那么如果 b 的 post-state 中的 latest justified checkpoint 来自 j 或 epoch \ge e-2,则允许包含 leaf block b 的分支
符号:
- n 是当前的 slot,e 是当前的 epoch。
- b 是来自当前 epoch e 的一个 block。
- 有来自 epoch e 的 S 个 FFG 投票支持 c。
- W_f 是 epoch e 中尚未投票的验证者的权重,而 W_t 是所有验证者的总权重。
- 对手控制着验证者集合的 \beta < \frac{1}{3}^{\textrm{rd}} 部分。
- 对手愿意承担 \alpha(\leq \beta) 部分验证者集合的 slashing。
规则的简短描述(请参阅 confirmation-rule-draft.pdf (396.2 KB) 或 blog post 了解解释):
- p_{b}^n = \frac{\textrm{对 block b 的诚实支持}}{\textrm{总的诚实权重}},来自 b\textrm{.parent.slot} + 1 到 n 的委员会中的验证者。
- \textrm{isLMDConfirmed}(b, n) 定义为:对于 b 链中的所有 b',p_{b'}^n > \frac{1}{2(1-\beta)}。
- 如果以下条件成立,则 \textrm{isConfirmed}(b,n):
- b 的 post-state 中的 latest justified checkpoint 来自 epoch e-1,并且
- \textrm{isLMDConfirmed}(b,n),并且
- [S - \textrm{min}(S, \alpha W_t, \beta (W_t - W_f))] + (1-\beta)W_f \ge \frac{2}{3}W_t.
如果 \textrm{isConfirmed}(b,n),则称 b 被 加粗confirmed加粗,并将保留在 canonical chain 中。
由于 p_b^n 无法观察,我们定义一个实际的 safety indicator q_b^n 来确定 p_b^n 是否在适当的范围内:
- q_{b}^n = \frac{\textrm{对 block b 的支持}}{\textrm{总权重}},来自 slot b\textrm{.parent.slot} + 1 到 slot n 的委员会
- 对于 b 链中的所有 b',q_{b'}^n > \frac{1}{2} \left(1+\frac{\textrm{proposer boost weight}}{\textrm{总的诚实权重}}\right) + \beta 意味着 \textrm{isLMDConfirmed}(b, n)
性能
在理想条件下,该规则会在其 slot 结束后立即确认一个 block。
在典型的主网条件下,我们预计该规则会在 3-4 个 slot 内(不到 1 分钟)确认大多数 block。
我们观察到 q 的以下值(使用此原型生成的图):
\
q_plot846×571 38.5 KB
当前 slot 是 6337565
,最新确认的 block 位于 slot 6337564
。
之前的工作