以太坊迈向原生后量子隐私转账还需要做什么

以太坊中文 发布于 2026-06-25 阅读 11

本文探讨了在以太坊L1上实现原生后量子隐私转账所需的密码学工作。文章指出,针对HNDL攻击的防御不足,需要全面替换现有加密原语,包括使用KEM替代密钥协商、采用哈希证明系统(如WHIR、STIR)、选择匿名性证明的KEM(如ML-KEM)、设计后量子签名方案(如SPHINCS+)、以及优化消息检索机制(如模糊消息检测)。此外,文章强调设计应支持协议退出、避免使用实验性原语,并建议渐进式池容量限制以减少初期风险。

感谢 @winderica@mmjahanaraKenny PatersonVarun Maram@keewoolee 的宝贵建议和反馈。

超越 HNDL

L1 路线图 提出了一条路径,将 L1 原生私有后量子 (pq) 转账列为北极星目标。如今,生产环境部署的隐私解决方案依赖于基于椭圆曲线的原语或基于不理想的硬件假设。有人认为,截至目前,针对“先收割后解密”(HNDL)攻击进行防御对于私有转账协议来说已经足够。然而,密码学相关量子计算机的部署意味着攻击者将能够实施不可检测的攻击,导致灾难性的资金损失。在这种情况下,任何恢复机制(例如旋转门)都可能需要重要的社交层协调,前提是用户对协议的信任没有被永久损害。

本文试图简洁地阐述我们为在 L1 中确立 pq 隐私所需进行的密码学工作。这并不简单:观察 Sapling(约 62 万枚 ZEC 被屏蔽,按当前价格约 2.5 亿美元)在其原语实例化方面的选择,就能说明为什么仅仅保护用户免受 HNDL 攻击或简单地切换证明系统,并不能准确描述交付 pq 屏蔽 ETH 所需的工作。

在使用经典密码学原语的同时准备 pq 旋转门是不够的。旋转门本质上是一种反应性、非追溯性且非预防性的技术,无法抵御攻击者销毁代币价值的能力。旋转门也需要时间,并且永远无法真正完成:用户需要多年后才能概率性地确信没有发生伪造。除此之外,旋转门通过禁用用户的交易能力极大地影响了用户。总而言之,它本质上是一种社交层防御机制,阻碍了用户真正脱离协议。

用途 原语 安全要求 实例化
加密笔记明文 非对称加密 IND-CCA2 和 IK-CCA2 :warning: DHAES
花费授权 可重随机化签名 SURK-CMA :warning: Jubjub 上的 RedDSA
非通胀(和非延展性) 具有签名密钥到验证密钥单一同态的签名 非自适应 SU-CMA,密钥单一同态 :warning: Jubjub 上的 RedDSA
提交笔记 承诺方案 绑定性和隐藏性 :warning: 窗口化 Pedersen 承诺(隐藏性可接受)
提交值 线性同态承诺方案 绑定性和隐藏性 :warning: 同态 Pedersen 承诺(隐藏性可接受)
多样化地址 多样化哈希 不可链接性 :warning: Jubjub 曲线群哈希
证明 SNARK 统计零知识 (zk)、完备性、知识可靠性 :warning: BLS12-381 上的 Groth16(zk 可接受)

ZCash 的 Sapling pq 准备情况(非详尽表格)。该表也适用于 Orchard,后者更改了 Sapling 的证明系统(Halo2、Pasta 曲线)、密钥材料派生和无效符计算公式,但即将被弃用。

在本文中,我们仅考虑处理量子对手的情况。我们将在另一篇文章中评估无状态兼容性及验证成本问题的解决方案。

证明系统

基于哈希的证明系统已达到既快速又充分理解的程度。不利用基于格的证明系统,意味着我们的屏蔽池协议可能无法为用户提供使用 SNARK 友好的基于格同态性来证明最终余额输出的能力,包括进行证明并行化的能力。

然而,这没问题。证明并行化最初是为了克服合并-分割语句在笔记合并或向多个接收者发送方面的不足而设计的。如今,基于哈希的 SNARK(WHIRSTIR)的进步提供了证明更大电路的能力,并摆脱了传统的两输入/两输出设置,使得此类证明并行化策略变得不那么相关。因此,一个经过实战检验的合并-分割 zkSNARK 语句,强制执行对笔记的 Merkle 路径和承诺、输入/输出值、无效符推导和花费授权签名有效性的检查,应该能让我们获得核心所需功能,并提供与现有协议相当的用户体验。

该语句的实例化关键取决于无效符和笔记承诺的哈希函数选择。有几种不同的 SNARK 友好哈希候选可供使用。最近关于 Poseidon 的研究表明,我们应该保持谨慎,并需要更多的密码分析研究才能将其集成(参见此处此处)。其他选择包括使用不那么算术化友好的哈希,例如 BLAKE3。

秘密分发

加密

交易检测对应于接收者能够检测到发送给他们的公开密文。我们应该确保它具有抗 DoS 能力、提供不可链接性、最小化信任点,并在资源受限设备上保持实用性。主要任务是将密钥协商 (KA) 替换为密钥封装机制 (KEM)(两者在共享密钥材料生成算法中如何贡献随机性方面有所不同)。如今,NIST PQC 过程仅标准化了 KEM,将 pq KA 搁置一旁。

Kyber 是我们的主要 KEM 候选方案。然而,直到相对较晚的时期,密码学才需要建立其匿名性(即 ANO-CCA,对手无法确定封装密钥的目标接收者),以及从它派生的 PKE 方案在 pq 环境下的匿名性。Kyber 最初使用了一个更复杂的 Fujisaki-Okamoto (FO) 变换,其中涉及嵌套哈希。然而,NIST 最终决定简化它,以便于研究人员建立其 ANO-CCA 安全性。研究最终表明,即使对于嵌套哈希,也可以获得 ANO-CCA 安全证明。总而言之,当前的 NIST 标准 ML-KEM 通过 KEM-DEM 范式中与适当的 DEM 组合,确实提供了一种匿名且鲁棒的 PKE。

与匿名性正交但密切相关的,用于秘密分发的方案还需要满足鲁棒性,使得一方能够确定自己是密文的预期接收者,即提供试解密不会出错的保证。这不是一个自然属性。例如,已有研究显示,对于任何明文 m,都可以构建一个密文 c,使得 c 在任何 Classic McEliece 私钥下都能解密为 m。不过,这里的情况不那么糟糕,因为 ML-KEM 已被发现是鲁棒的

请注意,这仅解决了 HNDL 攻击的加密方面:完整的防御需要笔记承诺和无效符用量子安全原语实例化。

混合方案

最初很可能需要结合经典和后量子算法的混合密码方案,以采取保守的安全立场,构建用于分发秘密的非对称加密方案(可能是一种“混合”公钥加密方案,此处指的是结合非对称密钥交换协议和对称加密方案)。我们将在几个方面拥有灵活性:纯 pq 与混合(例如,将 ML-KEM 与传统 ECDH 群结合)、CFRG 定义与 NIST 定义的椭圆曲线、不同安全级别(NIST 类别 3 与类别 5)。对称加密部分应保持与当前类似,尽管我们应该评估是否需要使用更长的密钥长度。

解密

然而,隐私保护协议的解密三难问题依然存在:匿名性、低延迟和小带宽使用。切换到 pq 方案使这个三难问题更加突出。

一个北极星目标仍将是大规模部署隐匿消息检索 (OMR)。此类构造是量子安全的,但线索(即所需的链上成本)和检测密钥大小已经太大,无法成为可信的 L1 候选方案。此外,即使是 SOTA 构造,服务器成本仍然是主要瓶颈,这使得短期内如何利用此类技术尚不明确。有一种选择是将检测与检索分离,使用隐匿消息检测 (OMD,OMR 的一个受限版本,用于隐匿检索索引) 结合 PIR 来获取负载。分离这两项任务将减轻服务器运行 OMR 密集计算的要求。尽管如此,结合两者目前仍无法减少线索大小。

一个可能的途径是利用模糊消息检测 (FMD) 算法。它们相比朴素扫描提供了不可忽视的改进,计算需求低得多,同时保持较小的线索大小。然而,FMD 的 pq 版本 需要的线索大小大了一个数量级。此外,这种开销是以仅提供适度的概率性隐私保证为代价的,因为 FMD 也容易受到各种统计攻击。其他近期方法,例如 Aztec 中的标签索引或 Starknet 隐私层中的通道,使用共享秘密顺序索引双方之间的交易,使所有后续交换不可链接。其局限性在于,初始化步骤需要揭示 Alice 打算与 Bob 交互。

请注意,总是有退回到带外通道发送密文的选择,这使得可以从交易中完全移除密文。

因此,在 pq 背景下,目前可能没有比使用试解密更好的方法了。即使在经典背景下,当今大多数隐私保护协议都使用某种形式的试解密配合认证标签。为了降低带宽成本,ZCash 的轻客户端下载压缩格式的交易,以使用试解密同步其状态。为了提供匿名性,用户在检测到预期交易后,被建议在正确的查询请求旁插入诱饵请求。在以太坊的情况下,当与 PIR 和网络匿名结合时,这条路径可能是当今三难问题的最佳 pq 解决方案。

签名

在可延展的 zkSNARK 情况下,我们可能需要一个临时密钥对来签署交易的哈希,将其绑定到 zkSNARK 语句。好处是,选择消息攻击下的非自适应强不可伪造性 (SU-CMA) 安全性就足够了,因为签名是一次性的。此外,绑定签名不需要电路内验证,因此我们可能可以使用基于格的方案,其签名大小远小于基于哈希的方案(如果我们真的不想使用格,甚至可以使用一次性基于哈希的签名)。

对于花费授权方案,签名方案的选择受到实际必须生成这些签名的硬件钱包的限制。有人实际上提议采用某个哈希原像的知识证明,从而免去算术化签名和决定使用哪种方案。然而,明天的钱包基础设施是否会支持并标准化证明递归 pq zkSNARK,以及该特定方案是否与 L1 中确立的方案兼容,尚不清楚。这也意味着要抛弃多年来在钱包加固方面所做的所有工作,包括在硬件钱包上生成签名所涉及的不同攻击向量。

关于有状态性,请注意大多数硬件钱包都带有非易失性存储器,能够支持有状态和无状态签名。有状态设计提供更短的签名和潜在的优化。然而,当签名者不是以规律的、可预测的间隔进行签名时,有状态性会引入一些问题。用户需要备份他们的密钥,但使用备份会导致状态重用,从而允许伪造。

有许多无状态的基于哈希的签名方案可能适合进行 SNARK 化,包括为此目的而对比特币进行的研究。一种选择是使用参数集提供较小签名验证预算的 SPHINCS+。一个特别有趣的参数集是重复使用为固件签名而设计的参数集,这启发了 SPHINCS- 的设计。

还可以有一个技巧,多次使用一次性签名 (OTS) 方案的密钥对。考虑一个完美隐藏的 zkSNARK。由于 OTS 作为见证的一部分被隐藏在 zkSNARK 内部,伪造花费证明就简化为在不知道密钥的情况下,在新鲜交易哈希上产生有效的 OTS,只要没有 OTS 在电路外部暴露,这仍然是困难的。然而,这意味着一套不同的威胁模型,要求花费授权签名永远不被暴露,以保护隐私和防止资金损失。

密钥材料

有可能仅使用伪随机函数 (PRF) 来设计密钥材料。如果选择得当,此类 PRF 是量子安全的。例如,这是 ZCash 协议早期版本 Sprout 的策略。基于格的原语可能有助于重新设计多样化地址功能,尽管这种设计在实践中如何工作以及与基于哈希的证明系统兼容性如何尚不清楚。

加固

由于 ETH 保护着数十亿美元的价值,我们避免讨论诸如私有共享状态等奇异原语。我们不考虑更复杂的密码学和功能性的理由有三点:我们希望 (1) 设计协议时考虑可脱离性,(2) 促进任何下游的形式化验证工作,以及 (3) 重用已经理解且生产部署的、当前保护着数十亿美元价值的原语。

另一个需要考虑的额外防护措施是设计渐进式池容量解锁。在协议层面定义,这种渐进式解锁将逐步提高存款金额,以在确立的池生命早期最小化灾难性的损失规模。

  • 原文链接: ethresear.ch/t/towards-n...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论