以太坊后量子安全之路:利用账户抽象集成 Falcon 签名方案

本文探讨了如何利用账户抽象(ERC-4337)在以太坊中集成 Falcon 后量子签名方案。重点分析了 FalconSimpleWallet 的实现逻辑、Gas 费用的显著优化,以及目前 Bundler 环节仍依赖 ECDSA 的安全局限性,并强调了实现原生账户抽象以应对量子威胁的必要性。

感谢 Nicolas Bacca, Vitalik Buterin, Nicolas Consigny, Renaud Dubois, Simon Masson, Dror Tirosh, Yoav Weiss 和 Zhenfei Zhang 的富有成果的讨论。

这是我们探索为以太坊实现后量子签名方案可行性的系列文章的第 3 部分。在 第 1 部分 中,我们讨论了以太坊向抗量子未来过渡所涉及的基本挑战和注意事项。在 第 2 部分 中,我们深入研究了 Falcon,分析了它的优缺点,以及将其集成到以太坊交易框架中的实际障碍。在本篇中,我们在此基础上探索如何利用账户抽象 (AA) 将 Falcon 集成到以太坊中。我们将研究所需的架构变更、使用 AA 实现后量子安全性的好处,以及使该方法可行的潜在挑战。

你说的是 ERC-4337 吗?

在讨论账户抽象 (AA) 时,最自然的结论是想到 ERC-4337,因为它是目前在以太坊上实现 AA 最突出且被广泛采用的方法。ERC-4337 提供了一种在不需要更改以太坊协议的情况下实现智能合约钱包的方法,使其成为集成像 Falcon 这样后量子签名方案的有力候选者。

特别是,我们可以从 SimpleWallet 智能合约或利用 RIP-7212 的智能合约中汲取灵感,探索如何在 ERC-4337 框架内高效地集成 Falcon。

SimpleWallet

SimpleWallet 是一个旨在以太坊上实现账户抽象的基于智能合约的钱包。SimpleWallet 智能合约不使用传统的私钥进行交易,而是通过启用自定义验证逻辑并潜在地支持像 Falcon 这样的新密码学签名方案,从而提供更大的灵活性。例如,在后量子以太坊的背景下,SimpleWallet 可以适配以支持 Falcon 签名,从而实现更灵活、安全且面向未来的交易处理。这种智能合约方法将允许以太坊账户进化并支持后量子密码学,而无需更改底层的以太坊协议。

FalconSimpleWallet

FalconSimpleWallet 将是 SimpleWallet 的修改版本,它将 ECDSA 替换为基于 Falcon 的密码学。与 ECDSA 不同,“普通”的 Falcon 支持从签名中进行公钥恢复——这意味着无法使用 ecrecover。相反,基于 Falcon 的钱包必须直接针对存储的公钥验证签名。

然而,正如 Renaud Dubois 指出的,Falcon 论文第 3.12 节引入了一种密钥恢复模型。这种方法允许进行公钥恢复,但代价是签名大小翻倍。虽然这可以为类似 ecrecover 的功能提供潜在的变通方法,但增加的密钥大小给链上效率带来了额外的考虑。

这种差异意味着基于 Falcon 的钱包需要以太坊地址到公钥的显式映射,这需要一种不同的授权方法。FalconSimpleWallet 不再依赖 ecrecover 来派生签名者的身份,而是显式存储并引用公钥进行验证。

此外,将 Falcon 集成到 以太坊虚拟机 (EVM) 需要偏离 NIST 标准实现。Falcon 依赖 SHAKE 进行哈希,但由于 EVM 本身不支持 SHAKE,我们需要使用更符合 EVM 特性的哈希函数,例如 Keccak。这确保了在链上验证 Falcon 签名时的兼容性和效率。

Zhenfei Zhang 致敬,他贡献了一个 基于 Keccak256 的 Falcon PRNG 实现,进一步弥合了 Falcon 与以太坊密码学栈之间的鸿沟。

给我看演示!

你可以在 GitHub 上的 FalconSimpleWallet 找到演示。该项目展示了一个将传统 ECDSA 替换为基于 Falcon 的验证的钱包,专为以太坊不断演进的安全需求而定制。

特别向 ZKNox 致以谢意——他们在 Falcon Solidity 实现 上的卓越工作将验证成本从 2400 万 Gas 降低到了 360 万 Gas。这一令人印象深刻的 Gas 优化使后量子安全性向区块链上的实际部署又迈进了一步。向 ZKNox 的杰出贡献表示赞赏!

房间里的大象

虽然我们成功地将智能钱包签名转变为后量子 (PQ) 抗性,但仍然存在一个关键问题:Bundler 交易仍然依赖传统的 ECDSA 签名方案。这意味着,尽管账户抽象框架内的单个用户操作 (UserOps) 可以使用 Falcon,但提交到以太坊 Mempool 的最终交易仍然由 Bundler 使用 ECDSA 签名。

要从交易流水线中完全移除 ECDSA,可能需要在 L1 协议层进行更改,特别是通过 EIP-7701/ RIP-7560

(加餐部分) 批量处理

正如 第 2 部分“棘手 (Gnarly)”章节中所提到的,目前已有关于高效聚合 Falcon 签名的 持续研究,包括涉及 Labrador 的工作。如果这种方法被证明是高效的,我们可以利用 EIP-7766 (针对 ERC-4337 的签名聚合) 在 AA 框架内优化 Falcon 签名聚合——类似于 此 VerificationGateway 合约 中聚合 BLS 签名的方式。

别想用 EIP-7702!

正如在 EIP-7702 的背景下所讨论的,该提案可能允许将账户转换为 ERC-4337 账户并添加 Falcon 支持,但它仍然保留了 ECDSA 密钥。EIP-7702 的问题在于 ECDSA 密钥在该框架内仍然有效,这引入了潜在的安全风险。即使账户在设置代码后开始使用 Falcon,ECDSA 密钥的存在仍会使账户暴露在风险之中。攻击者可能会恢复并滥用 ECDSA 密钥来入侵账户。

这就是为什么从量子抗性角度来看 EIP-7702 是有问题的:它确立了 ECDSA 的地位,而 ECDSA 容易受到量子攻击。相反,重点应该放在原生账户抽象 (AA) 上,它消除了对 ECDSA 的任何依赖,并通过像上述 SimpleWallet 方案那样的智能合约钱包提供更强大、抗量子的方法。

结论

在本篇中,我们探索了如何利用账户抽象 (AA)Falcon(一种后量子签名方案)集成到以太坊中。通过过渡到基于 Falcon 的智能钱包签名,我们可以确保以太坊交易采用面向未来、抗量子的方法。

虽然在 AA 框架内采用基于 Falcon 的钱包是充满希望的一步,但 Bundler 交易ECDSA 签名的持续依赖仍然是一个挑战。克服这一挑战需要协议层面的更改,可能通过 EIP-7701RIP-7560,以从交易流水线中完全消除 ECDSA。

此外,针对 Falcon 签名聚合的研究(如 第 2 部分“棘手”章节所述)提供了一个进一步优化 Falcon 在以太坊网络中集成的机会,特别是随着 ERC-4337 可能采用 EIP-7766

然而,由于我们仍在使用智能合约处理 Falcon,目前每笔交易的成本约为 370 万 Gas,下一个逻辑步骤是转向针对 Falcon 的 RIP,旨在优化其集成并降低实际链上使用的 Gas 成本。

总之,虽然我们在将后量子安全性集成到以太坊方面取得了重大进展,但在 Bundler协议层面 仍有关键挑战需要解决,以确保完全过渡到抗量子的未来。

  • 原文链接: ethresear.ch/t/the-road-...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
以太坊中文
以太坊中文
以太坊中文, 用中文传播以太坊的最新进展