你想要以太坊后量子交易签名
感谢Vitalik Buterin、Justin Drake、Renaud Dubois、Marius Van Der Wijden和Zhenfei Zhang的富有成果的讨论。
介绍
2024年可能会被记为量子计算机威胁加速的一年。谷歌在CEO Sundar Pichai的带领下,终于通过一条响亮的推文发布了其量子芯片Willow!
世界上最著名的量子专家之一Scott Aaronson,已经改变了他对人们是否应该担心量子计算机的信息。他从之前的说法
...也许,最终,有人需要开始考虑从RSA、Diffie-Hellman和椭圆曲线密码学迁移到基于格的密码学或其他可能抵御量子攻击的系统,...
转变为
是的,毫无疑问,现在就要担心这个问题。要有一个计划。
Vitalik已经写过如何通过硬分叉来拯救大多数用户资金的量子紧急情况。此外,几天前,他在一个播客中强调了以太坊可能受到量子攻击的四个主要组成部分。它们是:
- 以太坊交易签名(特别是使用ECDSA)
- 共识中的BLS签名
- 数据可用性抽样(利用KZG承诺)
- Verkle树(如果与Bandersnatch一起发货)
一个注意的读者可能已经注意到,这四个要点有一个共同点 - 是的,这是我的挚爱椭圆曲线。不幸的是,椭圆曲线离散对数问题(ECDLP)被Shor算法打破,这是一种著名的量子算法。
在这个简短的笔记中,我们将分析一种可能的后量子替代方案,即潜在的后量子以太坊交易签名。
哪种PQ签名?
现在,一个合理的问题是:我们应该使用哪种后量子(PQ)签名?幸运的是,如果我们现在必须选择,我们不需要过多地思考这个问题。前以太坊基金会密码学家Zhenfei Zhang已经写过关于NIST后量子密码学标准化过程的文章。如果我们分析三种可能的签名选择(其中两种利用基于格的密码学),很明显(至少目前来看)Falcon似乎是最有前景的候选人。验证者的计算应该与其他基于格的签名方案(如Dilithium)大致相同,即受FFT的约束。然而,Falcon确实有更小的签名大小。
发货!!!
既然我们已经"确定"了要使用的签名,下一个问题是:我们如何发货?现在有一个很大的二分法:一种需要硬分叉,另一种不需要。让我们深入探讨一下。
账户抽象方式
我们将讨论的第一种方法,可能是最优雅和最有前景的,涉及账户抽象(AA)。Justin Drake和Vitalik在各种场合都提倡过这种方法。
对于不熟悉的人来说,AA是一个提议的改进,旨在通过改变交易和账户的管理方式,使以太坊生态系统更加灵活和用户友好。它将某些功能从外部拥有的账户(EOA)转移到智能合约中,有效地"抽象"了EOA和智能合约账户之间的差异。
以太坊开发者已经提出了实施AA的各种建议,包括ERC-4337。这是一个实用的解决方案,在不需要共识层升级的情况下实现了AA。它使用一种称为用户操作对象的机制,并引入了一个单独的捆绑器层来处理交易。
在这种情况下,添加Falcon作为以太坊交易签名意味着编写一个Falcon验证器合约,负责在入口点合约执行之前验证用户操作对象的有效性。
现在,这可能听起来一片阳光和彩虹,但至少有一个实质性的潜在问题。在Solidity中编码Falcon可能不是最好的体验(而且可能相当耗费gas)。除此之外,还有更糟糕的问题,比如Falcon处理13位数字,而Solidity只支持U256。后者是一种可以通过添加SIMD和EVMMAX到EVM来解决的问题。
- 优点:优雅。
- 缺点:耗费gas。
硬分叉方式
我们在这里讨论的方法可能是技术上最简单的。它受到Marius Van Der Wijden之前工作的启发,本质上涉及引入一种新的交易类型,使用Falcon签名而不是BLS签名。这里最大的问题是,通过这样做,我们会被一个首选的主签名方案(通过一个新的EIP)紧密绑定。
总结一下这种方法:
- 优点:这是一种优雅和灵活的解决方案。
- 缺点:在gas消耗方面是昂贵的。
混合
一个非常诱人的方法是将上述两种方法的最佳部分结合起来。简单来说,我们可以以类似于RIP-7212的方式利用AA,但当然,我们需要一个新的RIP来使用Falcon。这可能会提供时间来在rollups中试验这个功能,并确定Falcon是否真的是正确的方向。然而,需要注意的是,这种方法并没有解决在L1层引入新签名方案的原始问题。
- 优点:易于编码和快速。
- 缺点:暂时性(不解决L1用例)。
结论
量子计算的崛起要求我们采取紧急行动来保护以太坊,特别是它的交易签名,这些签名容易受到Shor算法的攻击。基于格的签名方案Falcon由于其效率和紧凑的大小而成为一个强有力的候选人。部署策略,包括账户抽象、硬分叉或混合方法,各有不同的优缺点。仔细评估至关重要,以确保以太坊在抵御量子威胁的同时保持可扩展性和可用性。