感谢 Nicolas Bacca、Vitalik Buterin、Nicolas Consigny、Renaud Dubois、Simon Masson、Dror Tirosh、Yoav Weiss 和 Zhenfei Zhang 提供的富有成效的讨论。
这是本系列探讨在以太坊中实现后量子签名方案可行性的第三部分。
在第一部分中,我们讨论了将以太坊过渡到抗量子未来所面临的基本挑战与关键考量;
在第二部分中,我们深入剖析了 Falcon 签名算法,分析了其优势、劣势以及将其集成到以太坊交易框架中的实际障碍;
在本篇中,我们将在此基础上进一步探索如何利用账户抽象(Account Abstraction, AA)将 Falcon 引入以太坊。我们将审视所需的架构变更、使用 AA 实现后量子安全的优势,以及使这一路径切实可行所面临的潜在挑战。
谈到账户抽象(AA),很自然会想到 ERC-4337——因为它是目前以太坊上最主流、采用最广泛的 AA 实现方案。ERC-4337 无需修改以太坊协议本身,即可实现智能合约钱包,因此成为集成 Falcon 等后量子签名方案的有力候选。
具体而言,我们可以从 SimpleWallet 智能合约 或利用 RIP-7212 的合约中汲取灵感,探索如何在 ERC-4337 框架内高效集成 Falcon。
SimpleWallet 是一种基于智能合约的钱包,旨在以太坊上实现账户抽象。它不再依赖传统的私钥进行交易,而是通过自定义验证逻辑提供更高的灵活性,并有可能支持新的密码学签名方案(如 Falcon)。例如,在后量子以太坊的背景下,SimpleWallet 可被改造为支持 Falcon 签名,从而实现更灵活、更安全且面向未来的交易处理。这种智能合约方法允许以太坊账户演进并支持后量子密码学,而无需改动底层以太坊协议。
FalconSimpleWallet 是 SimpleWallet 的一个修改版本,它用基于 Falcon 的密码学替代了 ECDSA。与 ECDSA 不同,“原生”的 Falcon 不支持从签名中恢复公钥——这意味着无法使用 ecrecover。因此,基于 Falcon 的钱包必须直接对照已存储的公钥来验证签名。
不过,正如 Renaud Dubois 所指出的,Falcon 论文第 3.12 节提出了一种公钥恢复模型。该方法确实允许恢复公钥,但代价是签名尺寸翻倍。虽然这为实现类似 ecrecover 的功能提供了一种可能的变通方案,但更大的签名尺寸会对链上效率带来额外负担。
这一差异意味着:基于 Falcon 的钱包需要显式地建立以太坊地址到公钥的映射,从而采用不同的授权机制。它不再依赖 ecrecover 推导签名者身份,而是显式存储并在验证时引用公钥。
此外,将 Falcon 集成到以太坊虚拟机(EVM)中,还需对 NIST 标准实现进行调整。Falcon 原本依赖 SHAKE 作为哈希函数,但 EVM 并未原生支持 SHAKE。因此,我们需要改用对 EVM 更友好的哈希函数,例如 Keccak。这能确保在链上验证 Falcon 签名时的兼容性与效率。
特别感谢 Zhenfei Zhang 贡献了基于 Keccak256 的 PRNG 实现,进一步弥合了 Falcon 与以太坊密码学栈之间的差距。
你可以在 GitHub 上找到 FalconSimpleWallet 的演示项目。该项目展示了一个用 Falcon 验证机制替代传统 ECDSA 的钱包,专为满足以太坊不断演进的安全需求而设计。
还要特别致敬 ZKNox 团队——他们在 Falcon 的 Solidity 实现方面做出了卓越贡献,将验证成本从惊人的 2400 万 gas 大幅降低至 360 万 gas。这一显著的 gas 优化,让后量子安全距离在区块链上的实际部署又近了一步。向 ZKNox 致以诚挚的敬意!
尽管我们已成功将智能钱包的签名机制升级为抗量子(PQ),但仍存在一个关键问题:打包器(bundler)。这意味着,即使账户抽象框架内的各个用户操作(UserOps)可以使用 Falcon,但最终提交到以太坊内存池(mempool)的交易仍由打包器使用 ECDSA 签名。
要彻底移除交易流水线中的 ECDSA,很可能需要在 L1 协议层面进行修改,例如通过 EIP-7701 或 RIP-7560。
正如第二部分“棘手之处”一节所述,目前已有持续研究致力于高效聚合 Falcon 签名,包括涉及 Labrador 的工作。如果该方法被证明足够高效,我们便可借助 EIP-7766(ERC-4337 的签名聚合提案),在 AA 框架内优化 Falcon 签名的聚合——类似于在 VerificationGateway 合约 中聚合 BLS 签名的方式。
在讨论 EIP-7702 时曾提到,该提案或许允许将一个账户转变为 ERC-4337 账户并添加 Falcon 支持,但它仍然保留了 ECDSA 密钥。EIP-7702 的问题在于:ECDSA 密钥在此框架下依然有效,这引入了潜在的安全风险。即使账户在设置代码后开始使用 Falcon,ECDSA 密钥的存在仍会使账户暴露在外。攻击者可能恢复并滥用该 ECDSA 密钥,从而攻破账户。
正因如此,从抗量子角度看,EIP-7702 存在根本性缺陷:它将易受量子攻击的 ECDSA “制度化”了。相反,我们应聚焦于原生的账户抽象(native AA),通过像 SimpleWallet 这样的智能合约钱包,彻底摆脱对 ECDSA 的依赖,提供更稳健、真正抗量子的解决方案。
在本篇中,我们探讨了如何利用账户抽象(AA)将后量子签名方案 Falcon 集成到以太坊中。通过转向基于 Falcon 的智能钱包签名,我们能够为以太坊交易构建一个面向未来、抗量子的安全机制。
尽管在 AA 框架内采用 Falcon 钱包是一个充满希望的进展,但打包器交易仍依赖 ECDSA 签名这一现状仍是重大挑战。要彻底解决此问题,需要在协议层进行变更,很可能通过 EIP-7701 或 RIP-7560,以完全清除交易流水线中的 ECDSA。
此外,正如第二部分“棘手之处”所讨论的,对 Falcon 签名聚合的研究也提供了进一步优化其在以太坊网络中集成的机会,特别是若未来采纳 EIP-7766 用于 ERC-4337。
然而,由于目前我们仍在使用智能合约实现 Falcon,单笔交易仍需约 370 万 gas,下一步的合理方向是推动一个专门针对 Falcon 的 RIP(Rollup Improvement Proposal),旨在优化其集成方式,大幅降低 gas 成本,使其真正适用于链上场景。
总而言之,尽管我们在将以太坊引入后量子安全方面已取得显著进展,但要在打包器和协议层面彻底完成向抗量子未来的转型,仍有许多关键挑战亟待解决。
原文:https://ethresear.ch/t/the-road-to-post-quantum-ethereum-transaction-is-paved-with-account-abstraction-aa/21783
免责声明:本文为c2e Labs的第三方内容,仅供信息分享与传播之目的,不代表我们的立场或观点且不构成任何投资及应用建议。版权归原作者或来源方所有,如内容或素材有所争议请和我们取得联系。