本文针对以太坊后量子路线图中的签名聚合优化,提出了一种基于分隔符(separator)的参与承诺方案。
感谢 Arnav Anirudha 的审阅与反馈。
公共后量子以太坊路线图指向更大的基于哈希的验证者签名,例如 leanXMSS,以及通过 leanVM / leanMultisig 进行的基于证明的聚合,因为后量子签名太大,无法依赖 BLS 风格的原生聚合。如果我理解正确,当前基于 folding 的方案工作原理如下:Aggregate 和 Merge,在陈述中保留确切的签名者参与,并将见证的移动视为网络问题而非仅证明问题。该路线图还正在转向独立的聚合者角色、传播协议,以及每个消息递归合并为一个最终聚合。 (后量子以太坊路线图)。我的基础是最近的 folding 文章。
我建议的变更如下:不是在每次内部合并中都携带一个全局参与对象,而是让每个叶子为一个验证者集合的补丁携带一个本地参与对象,连同与相邻补丁重叠部分的确切承诺。内部合并检查这些重叠部分的一致性并合并子节点。完整的签名者集合仅在根节点处重建一次,仲裁检查也仅在根节点处进行一次。
换句话说,尽可能长时间地保持签名者账目的本地性。每个小型验证者组记录该补丁内部谁签了名,以及共享边界上的情况。如果相邻补丁在共享验证者上一致,那么在树覆盖上就只有一个与所有本地视图一致的全局签名者集合。
如果实施,这个提议改变的唯一事情是递归内部问责对象的形式。
将验证者集合想象成一张非常大的签到表。在通常的递归算法中,一个全局签到对象贯穿许多内部合并。验证者集合被分解成重叠的邻域,每个邻域保留自己的本地签到表,相邻补丁只比较共享的条带。
关键直觉是:如果每一对相邻补丁在共享条带上达成一致,那么全局签到表就已经确定了。分隔符是两边唯一需要通信的地方;一旦边界固定,内部可以保持本地。这是 Observers Are All You Need (OAAYN, r1378) 中的分隔符定理,定理 2.3 (§2.3,第 9 段;证明在 §2.3,第 14–24 段)。
固定所考虑的认证或最终性对象的消息 $m$、验证者快照根 $R$ 和验证者全集 $V$。
选择一个确定性覆盖
$$V = \bigcup_{i=1}^k P_i$$
满足以下性质:
补丁邻接图是一棵树;
覆盖满足运行交集性质;
补丁标识符和每个补丁内的验证者排序是规范的,并且从 $R$ 和该 Slot 或纪元的协议随机性中导出。
在树上,本地重叠协议足以确定一个全局部分。在有环的图上,路径依赖和上循环类型的障碍更容易出现。对于第一个协议版本,这是不必要的复杂性。树形覆盖是安全的起点。这是 OAAYN (r1378) 中引理 3.2b (§3.4.2,第 4 段) 中的树与环的区分。
对于每个补丁 $P_i$,定义一个本地聚合对象
$$L_i = (m, R, P_i, b_i, C_i, {\alpha_{ij}}_{j \sim i}, \pi_i),$$
其中:
$b_i \in {0,1}^{P_i}$ 是本地参与位域;
$C_i$ 是该补丁本地见证数据的承诺;
$\alpha_{ij}$ 是重叠部分 $S_{ij} = P_i \cap P_j$ 的分隔符承诺;
$\pi_i$ 证明在 $m$ 和 $R$ 下签名和本地承诺的本地有效性。
分隔符承诺可以实例化为
$$\alpha_{ij} = H\Big( m \mid R \mid \mathrm{id}(P_i) \mid \mathrm{id}(P_j) \mid \mathrm{id}(S_{ij}) \mid b_i|{S{ij}} \mid C_i|{S{ij}} \Big).$$
见证承诺 $C_i$ 需要一个规范的序列化。否则,两个诚实的聚合者可能用不同的根描述相同的本地数据,导致无法合并。因此,序列化必须固定验证者排序、块布局、默克尔树分支数、领域标签以及重叠部分受限打开的编码。
给定两个子对象 $L_u$ 和 $L_v$,定义 MergeSep(u,v) 如下:
验证两个子节点使用相同的消息 $m$、验证者快照根 $R$ 和兼容的补丁元数据;
验证两个子节点的证明;
在 $S_{uv} = P_u \cap P_v$ 上验证精确的分隔符相等性;
组合非重叠的参与者集合;
保留重叠状态的一个规范副本;
将见证承诺折叠或累积到父对象中。
父对象位于 $P_t = P_u \cup P_v$。
请注意,内部合并不计算仲裁或尝试求和证明权重。它只检查精确的本地一致性并组合本地声明。仲裁或证明权重检查仅在根节点处进行一次,在规范重建全局签名者集合之后。这修复了一个潜在的重复计数错误,当验证者存在于两个重叠的补丁中时就会出现这个问题。
以下是承载共识路径的确切陈述。
命题. 设 ${P_i}$ 是一个具有运行交集性质的确定性树形覆盖。对于每个补丁 $P_i$,设 $b_i$ 是一个由 $P_i$ 索引的本地参与位域。如果对于每条边 $(i,j)$,
$$b_i|{P_i \cap P_j} = b_j|{P_i \cap P_j},$$
那么在 $V$ 上存在唯一的全局位域 $b$,使得
$$b|_{P_i} = b_i \quad \text{对所有 } i \text{ 成立}.$$
一旦序列化和承诺方案被规范固定,同样的陈述适用于底层的见证关系。相邻补丁在共享验证者上达成一致,因此它们只能来自一个全局签名者集合。
同样的形式出现在 OAAYN (r1378) 中:定理 3.1 (§3.4.1,第 1 段) 给出了树形覆盖上的构造性粘合,定理 2.3 (§2.3,第 9 段;证明在 §2.3,第 14–24 段) 将分隔符隔离为左和右通信的地方,引理 3.2b (§3.4.2,第 4 段) 解释了为什么树是简单情况。
这里涉及三种不同的成本:
首先,是精确签名者恢复的不可降低成本。这个成本无法消除。较早的签名合并文章指出:如果你想精确提取签名者集合,系统某处必然存在一个线性大小的组件。 (大规模共识的签名合并)
其次,是在每次内部合并中携带该信息的成本。分隔符承诺减少了这个成本。精确签名者集合仍然存在并且仍然可以恢复,但它只在根节点处被实例化一次,而不是作为一个全局对象在整个递归树中被拖拽。
第三,是证明者成本。这取决于证明后端,无论是 leanMultisig、WHIR 风格的递归还是其他,并且与本提案提出的几何变更大致正交。
在这个设计中,问责对象在递归期间存在于补丁级别的本地承诺中,仅在根节点处作为一个全局签名者集合重建。改进在于内部合并只携带分隔符本地的问责数据,而不是完整的全局签名者对象。
对于第一个版本,我相信协议需要以下条件。
分叉选择、最终性和罚没应仅依赖于精确的分隔符相等性和精确的根重建。近似恢复应保持在共识路径之外。
近似恢复定理仍然有用,当跨分隔符的条件互信息很小时,它给出了一个真实的迹距离界限。在 OAAYN (r1378) 中,§2.2,第 1 段,论文陈述
$$I(A:C \mid B) \le \varepsilon \quad \Longrightarrow \quad | \rho_{ABC} - (\mathrm{id}A \otimes \mathcal R)(\rho{AB}) |_1 \le 2 \sqrt{\ln 2, \varepsilon},$$
然后在定理 3.1 (§3.4.1,第 5 段) 中将其扩展到跨步骤具有加性误差的树形粘合。这对于本地修复很有趣,但不应作为共识的有效性规则。当前的 folding 基线已经将见证处理视为 P2P 问题,这恰好是近似方法应属之地。
考虑补丁 $P_1 = {v_1, v_2}$ 和 $P_2 = {v_2, v_3}$。如果 $v_1$ 和 $v_2$ 签名了,那么本地计数是 2 和 1,而真正的唯一签名者集合大小为 2。任何允许内部节点在不进行精确去重的情况下对本地计数求和的协议都会产生直接的重复计数攻击。
安全的第一个版本是仅根节点阈值化。内部节点合并精确的本地声明。根节点重建规范的全局位域,并计算一次证明权重。
优化的后期版本可以使用确定性所有者映射 $h(v)$,将每个验证者分配到一个主补丁。这可能最终有用,但这是额外的机制,第一个版本不需要它。
聚合者使用的覆盖必须从验证者快照和协议随机性中确定性地导出。合并树必须是规范的。见证承诺的序列化也必须是规范的。
如果诚实的聚合者可以选择不同的覆盖或不同的编码,那么路径依赖就会出现,没有好的理由。参见 OAAYN (r1378) 引理 3.2b (§3.4.2,第 4 段) 中的树与环分析。一旦出现环,路径独立性就成为一个问题。 树在第一个版本中避免了整类的歧义。
以太坊需要精确的问责制。一个最终的聚合必须支持后续形式的证明“验证者 $v$ 签署了消息 $m$”或“验证者 $v$ 签署了冲突消息 $m$ 和 $m'$”。因此,本地承诺需要每个验证者的打开,并且保留足够长的时间以覆盖罚没窗口。
分隔符扣留是一个明显的活性问题。恶意聚合者可以扣留一个小的重叠打开,从而阻止合并。基于 folding 的基线已经将见证视为网络问题。在这个构造中,分隔符数据成为扣留的特别自然的目标,因此它应该能够从多个对等节点获取,并且如果某个提供者停滞,另一个聚合者应该能够从叶子重建合并。 (后量子签名聚合:一种 folding 方法)
一个简单的粗略模型给出了扩展直觉。采用一个玩具树形覆盖,其中:
$$N = 131{,}072, \qquad k = 64, \qquad s = 256.$$
如果精确计数关系为
$$N = km - (k-1)s,$$
那么
$$m = \frac{N + (k-1)s}{k} = 2300.$$
假设朴素的递归实例在每次内部合并时携带一个完整的 $N$ 位全局签名者对象。那么内部问责载荷为
$$B_{\mathrm{naive,int}} = (k-1)N = 63 \cdot 131{,}072 = 8{,}257{,}536 \text{ bits} \approx 1008 \text{ KiB}.$$
在分隔符方案中,内部合并只携带面向分隔符的问责数据:
$$B_{\mathrm{sep,int}} = (k-1)s = 63 \cdot 256 = 16{,}128 \text{ bits} \approx 1.97 \text{ KiB}.$$
这是因子
$$\frac{N}{s} = 512$$
在内部递归问责载荷中的缩减。
如果包括叶子本地的补丁位域和一次性的完整位域根节点物化,玩具总和变为
$$km + (k-1)s + N = 147{,}200 + 16{,}128 + 131{,}072 = 294{,}400 \text{ bits} \approx 35.9 \text{ KiB}.$$
在这个玩具账目模型下,递归内部的重复问责载荷大幅下降,而完整的问责对象仍然在根节点精确地存在一次。关键在于,如果分隔符宽度远小于总验证者数量,那么递归问责载荷随分隔符大小而非完整验证者集合大小扩展。这些数字也只覆盖了问责组件;端到端的证明者时间仍然取决于签名验证成本、见证获取模式和证明后端。
最近的 folding 文章是最接近的基线,我认为本提案是对该基线的修改而非替代。Aggregate 仍然处理原始签名,Merge 仍然合并聚合对象,精确参与仍然重要,因为奖励、惩罚和罚没都依赖于它。唯一的改变是内部合并携带的公共问责对象。不是每一步都有一个全局位域形状的对象,递归陈述携带本地补丁承诺和精确的重叠承诺。 (后量子签名聚合:一种 folding 方法)
WHIR 针对证明引擎。分隔符承诺位于其上一层。它们改变被折叠或递归验证的对象几何结构,而不是底层证明原语。所以我的期望是这两个想法可以相当干净地组合。 (WHIR 用于以太坊)
最近的共识文章主张快速心跳链和尾随最终性层。一个约 256 个验证者的采样心跳可以使用串联签名,并避免在关键路径上进行大规模 PQ 聚合。这使得全集合最终性层成为递归聚合仍然重要的地方。分隔符承诺直接针对该层。 (LMD GHOST 与约 256 个验证者和快速跟随最终性工具)
最近的 SSF 聚合文章提出一个大型分层分组过程,可以并行吸收许多认证。这在方向上类似。分隔符视图为重叠添加了更明确的规则:重复签名者位于分隔符上,精确去重是合并条件的一部分,本地不匹配证明存在于一个重叠上,而不是强制全局重新计算。 (基于仲裁认证的单 Slot 最终性的去中心化认证聚合)
大规模共识的签名合并是有用的背景,因为它陈述了这里仍然重要的确切要求:一个合并对象应该允许提取签名者集合,并且这个要求会在数据中产生一个线性大小的组件。分隔符承诺尊重这个事实。线性成本在根节点支付一次,而不是在每次内部合并中全局携带。 (大规模共识的签名合并)
最近的帖子也探讨了执行层聚合的权衡,甚至更激进的替代方案,例如完全从授权路径中移除签名对象。这些讨论是有用的,因为它们强调了正确答案是多么依赖于上下文。共识比交易聚合有更严格的问责要求,因为签名者集合直接影响证明权重和可罚没性。因此,本提案严格保持在验证者认证设置中,并保留显式签名和显式签名者身份。 (重新审视用于 PQ Mempool 的 Falcon 签名聚合)
一个看似确实有用,但肯定不是共识关键的,是丢失见证块后的修复。如果一个节点拥有两个子补丁的大部分本地数据,但缺少少量内部见证数据,分隔符可能仍然能告诉它足够的信息来决定合并是否可修复、首先获取哪些块,或者哪个候选父节点与本地视图一致。
在论文中,这是以下内容:
$$I(A:C \mid B) \le \varepsilon \Longrightarrow \text{跨 } B \text{ 的可恢复性},$$
以及 OAAYN (r1378) 中定理 3.1 (§3.4.1,第 5 段) 的加性树形粘合界限。同一论文的 §2.3,第 37–38 段,以及 §5.9,第 7–10 段,随后表明在适当范围内,分隔符缺陷可以随分隔符宽度呈指数衰减。
这暗示了一个有用的未来工作计划:
基于分隔符状态的见证预取;
基于可修复性估计的本地合并调度;
丢包或延迟打开后的部分恢复。
分叉选择、最终性和罚没应继续使用精确的分隔符相等性和精确的根重建。
一个认真的第一个原型可以通过三步完成。
使用当前的 lean 栈,并将内部全局位域递归对象替换为本地补丁对象和精确分隔符承诺的树形覆盖。根节点一次性地发出重建的完整位域,因此共识机制的其余部分可以保持接近当前基线。这直接符合当前的路线图,因为 pq-devnet-3 和 pq-devnet-4 已经在处理独立的聚合者角色、传播、递归聚合以及每条消息一个最终聚合。 (Lean 共识路线图)
模拟延迟或缺失的分隔符打开、重复交付以及对抗性扣留重叠块。目标是衡量:
失败的合并拒绝成本;
回退重建成本;
本地冲突见证的大小;
当分隔符从多个对等节点获取时的恢复时间。
仅在全集最终性侧使用该方案。让心跳路径保持简单和采样,符合近期共识讨论的精神。这为提案提供了更干净的部署表面,并避免了将相同的机制强制施加到协议中不需要它的部分。 (LMD GHOST 与约 256 个验证者和快速跟随最终性工具)
我认为主要的未解决问题是:
最好的确定性覆盖是什么:基于委员会的、基于子网的、延迟感知的,还是权益平衡的?
根节点是否应该总是物化完整位域,还是未来版本应该转向仅承诺根节点,按需显式打开?
最好的分隔符承诺是什么:受限位域根、受限见证根,还是一个联合根?
分隔符不匹配证明能否成为针对聚合者不当行为的紧凑欺诈证明?
最佳块放置规则是什么,以便分隔符局部性也能改善网络侧的见证获取?
一旦系统经过基准测试,所有者映射变体在实践中是否优于仅根节点阈值化?
以太坊的后量子路径已经足够具体,聚合接口本身值得优化。后量子以太坊路线图 已经指向 leanXMSS 加上基于证明的聚合,而后量子签名聚合:一种 folding 方法 已经给出了正确的 Aggregate 加 Merge 抽象。
基于分隔符的参与承诺是一个自然的合适方案。它们保持递归问责局部化,使重复处理显式化,并将冲突证明定位到重叠部分。精确的共识定理很简单。OAAYN (r1378) 贡献了定理 2.3 (§2.3,第 9 段;证明在 §2.3,第 14–24 段) 的分隔符优先视角,以及 §2.2,第 1 段和定理 3.1 (§3.4.1,第 1 和第 5 段) 中的树形粘合/修复工具包;Reality as a Consensus Protocol (r1378) 在引言第 1–3 段和定理 3.5 (§3,第 9 段) 中给出了专门的共识通道。
Observer-Patch Holography (OPH) 将现实本身建模为重叠的主观观察者视角之间的共识。这使其成为现实共识工程的丰富思想来源,直接源自自然。
修复预算。 近似恢复加上树形粘合为局部缺陷累积提供了一个预算。收益:更好的获取/调度决策,在不可恢复的部分状态上减少浪费的工作。参见 OAAYN (r1378),§2.2,第 1 段和定理 3.1 (§3.4.1,第 5 段)。
重叠大小。 指数缺陷界限建议根据目标缺陷预算而非启发式方法选择分隔符宽度。收益:对于相同的可靠性目标,更低的覆盖载荷、见证流量和证明者工作。参见 OAAYN (r1378),§2.3,第 37–38 段,以及 §5.9,第 7–10 段。
障碍审计。 树/环和上循环视角建议检查去中心化合并计划中的环障碍和路径依赖。收益:更好的正确性和可审计性,以及更早的故障检测和更紧凑的不一致性证书。参见 OAAYN (r1378),引理 3.2b (§3.4.2,第 4 段)。
拓扑调整。 本地吉布斯/最大熵视角建议根据显式的本地成本选择树的形状、重叠宽度和聚合者放置。收益:对于固定安全目标,更低的延迟、带宽和证明成本。参见 OAAYN (r1378),§2.3,第 31–42 段。
实时障碍监控。 循环障碍定理建议使用分隔符承诺作为本地输入数据,持续审计实时聚合图。收益:在网络漂向易分叉形状之前,更早发出警告,而不是在分叉实际形成之后。参见 Reality as a Consensus Protocol (r1378),定理 4.1 (§4,第 2 段;证明在 §4,第 3–4 段)。
- 原文链接: ethresear.ch/t/separator...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!
作者暂未设置收款二维码