1. 引言
Algorand 已在其主网上使用美国国家标准与技术研究院(NIST)选定的 Falcon 签名完成了首笔后量子交易。该交易表明,抗量子签名如今已经可以在真实的公共区块链上保护实际的数字资产。
当 Peter Shor 在 1994 年提出用于分解大整数和计算离散对数的量子算法时,他证明了可扩展的量子计算机将会攻破 RSA 和椭圆曲线密码学。三十年后,争论已经从"是否会发生"转变为"何时发生"。尽管一些研究人员认为实用化的量子硬件仍需数十年时间,其他人(包括 Vitalik Buterin)则引用预测称,在 2030 年之前出现具有密码学意义的量子计算机的概率为 20%。尽管时间表仍不确定,但其含义已十分明确:所有依赖传统公钥密码学的系统,都必须在量子攻击变得可行之前,提前采用后量子策略。
近期,Algorand 证明后量子安全已不再停留在理论阶段。Algorand 基金会的协议团队在主网上使用 Falcon 签名方案执行了Algorand 上的首笔后量子交易。该交易由 Falcon(NIST 选定的一种基于格的签名方案)保护,展示了抗量子签名可以在真实运行的公共区块链上保护数字资产。虽然许多团队仍在制定后量子路线图,Algorand 已经部署了可运行的代码、在线基础设施以及支持当下实验的开发者工具。
量子威胁对区块链而言尤为严峻。每一笔交易、验证者消息以及共识投票都依赖于公钥签名,而这些签名正是 Peter Shor 的算法可以攻破的对象。具备量子能力的对手可能伪造区块、窃取资金,甚至篡改交易历史。即使大规模量子计算机的出现仍需数年时间,"先收集、后解密(harvest now, decrypt later)"的问题也意味着,任何今天使用前量子方案签名的数据,一旦这些机器问世,都可能被破解。对于那些设计为需要安全运行数十年的系统来说,现在就开始准备不是杞人忧天,而是工程上的必然要求。由于每 256 轮使用 Falcon-1024 签名生成状态证明,Algorand 的账本已经具备抗量子能力,但账本只是后量子图景中的一部分。
在生产环境中实现后量子密码学会带来显著的技术挑战。Falcon 签名相比 Ed25519 签名要大得多------大约是 Ed25519 64 字节签名的 10 倍。这些更大的密码原语会影响消息传播、存储需求以及验证成本。Algorand 的方法(本文稍后会详细介绍)利用其 Logic Signature 功能,将 Falcon 公钥嵌入到无状态智能合约中,用于验证交易 ID 上的签名。这些合约会被编译为标准的 Algorand 地址,使用户可以像操作普通账户一样为其注资并与之交互。再结合用于密钥生成、地址推导和交易签名的命令行工具,就形成了一套完整的开发者后量子实验工作流。
本文将探讨 Algorand 如何构建其首笔后量子交易,实现这一目标的技术架构,以及开发者如今可以如何使用这些工具。本文呢将深入分析 Falcon 的密码学设计、逻辑签名的验证流程、性能方面的考量,以及随着量子计算发展的推进,这些技术对区块链安全带来的更广泛影响。
2. Falcon 概述:一种被 NIST 选定的后量子签名方案
Falcon 的实现基于开创性的 GPV 工作,该工作由 Craig Gentry(Algorand 基金会前研究员)、Chris Peikert(Algorand Technologies 密码学负责人)以及 Vinod Vaikuntanathan(麻省理工学院教授、Algorand 科学顾问)共同完成。来自 Algorand 的 Zhenfei Zhang 与其合作伙伴也对 Falcon 提案做出了贡献,该提案最终被选为 NIST 推荐的数字签名算法之一。
Falcon 是一种基于格(lattice-based)的数字签名方案,于 2022 年被 National Institute of Standards and Technology(NIST)选定进行标准化,对应名称为 Falcon-512 和 Falcon-1024。它基于 NTRU 格结构,在保持签名紧凑和验证高效的同时,提供了对量子攻击的强抗性。Falcon 的设计目标是在安全性上可与 RSA-3072 或 Ed25519 相当,同时具备适用于区块链等对带宽和延迟敏感环境的抗量子基础。
2.1 设计权衡
Falcon 的签名过程依赖浮点运算和快速傅里叶采样(FFT sampling),因此相比于像 Dilithium 这类完全基于整数运算的方案,其实现更加复杂。这种对数值精度的要求意味着,在实现过程中必须谨慎处理舍入和采样,以避免细微的安全问题。NIST 的参考实现以及优化库(如 PQClean 和 liboqs)通常采用双精度浮点运算并结合确定性舍入,以确保跨平台结果的一致性。
在实际参数下,Falcon-1024 的签名大小约为 ~1280 字节,公钥约为 ~1793 字节。由于高斯采样步骤的存在,签名生成计算开销较大,但验证过程仅使用整数运算,速度极快------在现代 CPU 上通常低于 100 微秒。 这种"签名复杂、验证高效"的非对称特性,使 Falcon 特别适合区块链协议,因为验证操作的频率远高于签名操作。再结合其较小的体积,这些特性使 Falcon 成为对带宽和性能敏感应用的一个极具吸引力的选择。
2.2 标准化与安全级别
NIST 在其后量子密码学第三轮评选过程中选定了 Falcon。其安全级别大致相当于:Falcon-512 对应 AES-128,而 Falcon-1024 对应 AES-192(NIST 第 5 级)。该算法拥有坚实的数学基础,并经过多年的密码分析审查。当前 Falcon 生态系统同时支持确定性和随机化签名模式,并提供了关于常数时间实现的指导,以降低时间侧信道攻击的风险。
NIST 同时选择 Falcon 和 Dilithium,体现了一种在性能与可实现性之间的刻意平衡。Dilithium 更强调简单的整数运算和易于集成,而 Falcon 则在带宽占用和验证成本方面更具优势。在实际应用中,这种权衡使 Falcon 在那些签名大小和验证速度直接影响协议吞吐量的场景中尤为适用,如 Algorand 的状态证明和交易验证。
3. 为什么 Falcon 适合 Algorand 的设计
Algorand 协议对签名验证有严格的性能要求。每个区块都包含多层验证机制,整个网络每秒可能需要验证成千上万个签名。Falcon 的紧凑签名大小和高效验证速度与这些要求高度契合。与更大的基于哈希或基于编码的方案不同,Falcon 使 Algorand 能够在不显著增加区块大小、也不破坏共识时间假设的前提下,引入后量子签名。
Algorand 已经在其状态证明机制中使用 Falcon,在该机制中,紧凑且可聚合的证明使外部链能够在无需信任中介的情况下验证 Algorand 的状态。使 Falcon 在状态证明中表现出色的特性(如签名体积小、验证速度快以及确定性算术)同样也使其成为通用交易签名的自然选择。通过将现有的 Falcon 集成从状态证明扩展到交易层,Algorand 在密码学实现和开发者工具链上实现了一致性。不过需要注意的是,尽管 Falcon 是一个很有前景的后量子密码方案,但它仍处于实验阶段,在将其应用于账户体系和共识层等协议核心组件时,仍面临额外的实现挑战。
4. Falcon 在 Algorand 中的实现
Algorand 提供了一个生产级别的 Falcon 实现,支持确定性签名模式,并采用常数时间编码实践。该实现的贡献者包括负责核心 C 代码的 Thomas Pornin,以及负责确定性模式设计与实现的 David Lazar 和 Chris Peikert。这套代码基础同时支撑了状态证明以及本文后续介绍的后量子交易演示。
4.1 目标与约束
该集成方案主要围绕三个目标展开:
- 最小化对共识的影响:确保验证过程是确定性的且开销可控,从而使区块时间和委员会选择仍能维持在既有的时间预算内。Algorand 节点已经将密码学计算划分到专用的验证线程池中,这也简化了新密码原语的引入。
- 协议兼容的授权机制:复用 Algorand 的无状态授权路径,使后量子账户在网络视角下与普通账户行为一致。Logic Signature 执行本身就是交易授权的标准无状态入口。
- 可操作性:提供密钥生成、地址推导、签名以及交易提交的工具支持,并确保数据大小和执行成本符合 Logic Signature 的限制要求。
4.2 链上验证原语:falcon_verify
Falcon 验证作为一个原生操作码 falcon_verify 暴露给 Algorand 虚拟机(AVM)。在 TEAL 或编译为 TEAL 的高级语言中,该操作码接收 (data, signature, public_key) 作为输入,并返回一个布尔值。签名格式采用压缩的 Falcon 编码。该操作码在 AVM v12 中可用,并且既可用于无状态程序,也可用于有状态程序。
Logic Signature(逻辑签名)和智能合约在执行时都有明确的操作码预算限制;无状态程序具有总成本上限,这对附加在交易上的密码学计算工作形成约束。这种预算模型对于在大规模下保持区块验证的可预测性至关重要。
4.3 使用逻辑签名的无状态授权
Algorand 使用逻辑签名来实现交易授权,而不绑定于特定的签名方案。编译后的逻辑签名程序对应一个标准的 Algorand 地址(即合约账户模式)。向该地址注资后,它就成为一个可支配账户,而任何支出都必须满足该程序的约束。这正是 Algorand 用来承载 Falcon 公钥并强制对交易 ID 进行 Falcon 签名验证的机制。

在验证过程中,节点会执行逻辑签名程序。如果程序执行结束时栈顶为非零值,则交易被授权。在无状态模式下这一流程是统一的,因此由 Falcon 保护的交易与传统交易走的是同一条验证流水线。
4.4 程序验证的内容
逻辑签名会针对交易 ID 验证一个 Falcon 签名。在 Algorand 中,Hash(Tx) 表示对交易字段按规范 MsgPack 编码后的规范哈希。逻辑签名程序会计算或接收该摘要,然后调用 falcon_verify(Hash(Tx), sig, pk) 来决定是否授权。这一过程构成了一次密码学校验,将交易支出与其精确、规范化的编码形式绑定在一起。
4.5 地址派生与"曲线外(off-curve)"安全性
为了避免与 Ed25519 账户空间发生任何意外重叠,相关工具会先编译逻辑签名程序,然后通过对一个小的计数器进行确定性调整,直到该程序对应的地址落在"曲线外"(off-curve)点上。这样可以确保不存在任何对应的传统私钥,能够通过旧路径为该地址授权支出。最终实现的是在保持标准地址格式的同时,将后量子账户与传统账户进行清晰隔离。
4.6 性能与成本
Falcon 的验证被设计为足够高效,以支持高吞吐系统。虽然具体的操作码成本取决于实现,但逻辑签名的总预算保证了包含 falcon_verify 以及常规校验的程序可以满足单笔交易的资源限制。这使得中继节点和验证者在构建和验证区块时具备良好的可预测性。作为对比,平台对诸如 ed25519verify 等密码学操作码设定了较高成本,并对所有密码学验证统一采用相同的预算模型。
4.7 在状态证明中的应用
Algorand 已经使用 Falcon 来对状态证明进行签名。状态证明为轻客户端和其他区块链提供了一种简洁且可验证的区块历史承诺。在该机制中,同样使用了确定性的 Falcon 实现以及压缩签名处理,这减少了开发者需要掌握的技术复杂度。
4.8 安全性与互操作性
作用范围与限制:由 Falcon 保护的账户可以抵御具备后量子能力的攻击者进行资金盗取,但这并不意味着共识机制已经升级------那是一个独立的工作方向。换句话说,即使今天存在量子计算机能够攻击或干扰共识,它也无法为 Falcon 保护的账户生成有效签名,从而窃取资金(或签署任何其他类型的交易)。
可证明的不当行为:任何能够通过 Falcon 公钥验证的未授权签名,都会生成一个自包含、可由第三方验证的证明(包括公钥、消息和签名)。在确定性签名和固定盐版本的前提下,对于同一消息出现冲突签名,或使用不被允许的盐值,都会成为签名者违规或密钥泄露的明确证据。这使得事后取证以及后续策略(例如告警与密钥轮换)变得更加直接和可操作。
5. 使用 Falcon 签名 CLI 创建后量子交易
Algorand协议团队构建了 Falcon Signatures CLI,使开发者可以在 Algorand 上实验 Falcon 签名。该工具链提供了从密钥生成到链上支出的完整流程,并可直接对接主网(mainnet)、测试网(testnet)和 betanet 的公共节点。
从整体上看,该 CLI 将一个后量子账户建模为一个无状态逻辑签名(logic signature):它持有 Falcon 公钥,并对交易 ID 上的 Falcon 签名进行验证。可以生成一个 Falcon 密钥对,从公钥推导出一个标准的 Algorand 地址,用任意钱包为其注资,然后发送交易,由逻辑签名使用相应的Falcon 签名进行授权。这样就把后量子签名转化为一个可以在 Algorand 上端到端重复执行的工作流程。
该 CLI 同时包含通用的密码学工具和 Algorand 专用命令。可以创建密钥(随机生成 24 词助记词并可选密码、无助记词的更高熵随机生成,或基于种子确定性生成)、查看密钥信息、签名消息以及验证签名。在链上使用方面,falcon algorand address 用于派生地址,而 falcon algorand send 用于从该地址构建、签名并提交交易。
在接下来的示例流程中,将使用 CLI 创建一个 Falcon 密钥,推导 Algorand 地址,为该地址注资,最后向 Algorand 测试网发送一笔由 Falcon 签名的交易。
5.1 生成 Falcon 密钥
falcon create 命令可以通过多种方式生成新的 Falcon-1024 密钥对:
- 随机生成一个 24 词的 BIP-39 助记词种子,并基于其派生密钥对(提供 256 位熵);
- 使用
--no-mnemonic随机生成一个不带助记词的新密钥对(提供 384 位熵); - 使用
--seed基于种子口令确定性生成密钥对(熵取决于口令强度)。
在本示例中,将使用默认选项:

这会将一个新的 Falcon-1024 密钥对生成到 falcon_keys.json 文件中,下面是截断后的示例:

5.2 推导 Algorand 地址
falcon algorand address 命令会基于 Falcon 公钥生成一个由其控制的 Algorand 地址,并支持可选的助记词口令。计数器拒绝循环(counter rejection loop)可确保生成的逻辑签名地址不是一个有效的 Ed25519 密钥,从而避免任何传统密钥对能够为该账户授权。
现在使用上一步生成的密钥对来推导地址:

将生成如下地址:

5.3 为账户注资
现在已经从 Falcon-1024 密钥对推导出了一个地址,接下来需要为该账户注资。这里使用 Lora 提供的 Testnet 发币工具(dispenser):

5.4 从后量子 Falcon 控制账户发起转账
最后,使用 falcon algorand send 命令,从 Falcon 控制的账户发送 Algos:

该命令会执行以下操作:
- 从 Falcon 公钥推导出一个后量子逻辑签名账户;
- 将公钥和一个 1 字节计数器嵌入到预编译的 TEAL 程序中,该程序会对交易 ID 调用
falcon_verify; - 构建支付交易,设置逻辑签名地址为发送方、接收地址、转账金额、可选备注,以及 close-to 地址(此处为空)。
如果执行成功,falcon algorand send 命令将返回交易 ID:

通过 Lora,可以在 Testnet 上确认该笔交易已成功,并查看编译后的逻辑签名:

这段演示表明,在 Algorand 上应用后量子密码学并不仅仅是一个停留在构想层面的"后量子战略",而是已经具备现实落地的实现。开发者如今就可以创建并使用具备抗量子能力的账户进行交易。通过生成 Falcon-1024 密钥对、推导一个由后量子签名控制的 Algorand 地址,并成功执行链上交易,展示了一个抗量子账户的完整生命周期。Falcon Signatures CLI 将 NIST 标准化的格密码学集成复杂性进行了抽象,使开发者可以立即使用并开展实验。尽管当前实现是通过逻辑签名作为通向量子安全的桥梁,而非直接修改核心协议,但它证明了区块链系统可以在无需等待共识层升级的情况下,从现在开始迈向后量子安全。
6. 影响、局限性与未来路径
尽管 Algorand 对 Falcon 签名的实现标志着区块链抗量子能力的重要里程碑,但要全面评估其当前能力与长期潜力,仍需理解其适用范围、局限性以及未来发展方向。
6.1 当前的保护范围
当前实现通过逻辑签名对交易 ID 上的 Falcon 签名进行验证,从而保护单个用户账户,使用户无需修改协议即可创建抗量子账户。这并非构建和使用后量子账户的最终解决方案,而是为开发者提供一个在 Algorand 上实验后量子密码学的工具。此外,Algorand 的状态证明同样使用 Falcon 签名,为区块链状态提供抗量子的证明机制,将 256 个区块轮次的区块头压缩为证书,使外部链和轻客户端能够在无需信任的情况下进行验证,从而保障链历史在未来量子攻击下的完整性。
然而,一些关键组件仍然对量子攻击敏感。共识机制仍依赖传统的 Ed25519 签名来进行区块提议和委员会投票。用于基于抽签(sortition)的委员会选择的可验证随机函数(VRF)同样基于前量子密码学,容易受到 Shor 算法的影响(具体而言,量子攻击可能提前预测委员会成员)。因此,虽然单个账户和历史状态已经具备抗量子能力,但共识层本身仍然暴露在未来的量子威胁之下。
6.2 性能权衡
向后量子密码学的转型并非没有代价。Falcon 签名相比 Ed25519 签名要大得多,不过其优势在于签名大小基本保持稳定(约 1--2 KB),不随被签名数据的大小变化。尽管 Falcon 的验证速度依然较快,但逻辑签名中的操作码预算限制使得复杂的多重签名方案成本更高。这些权衡也解释了为什么目前无法立即进行全面的密码体系替换,因此需要采用本文所展示的这种混合式方案。
6.3 近期应用
这一基础已经支持当下的实际抗量子应用。钱包开发者可以集成 Falcon 密钥生成与签名功能,为用户同时提供抗量子账户和传统账户。多重签名方案也可以通过基于智能合约的多签机制引入 Falcon 签名,从而实现具备抗量子能力的资金管理(如金库管理)。
6.4 协议演进路线
要保护共识层,需要更深层次的协议变更。为委员会选择开发抗量子的可验证随机函数(VRF)是一个具有挑战性的研究问题,需要同时满足随机性与效率。协议团队采取的渐进式策略------先保护用户账户和状态证明------为未来迁移到共识层提供了宝贵的实践经验。
6.5 生态影响与标准化
Algorand 采用 National Institute of Standards and Technology(NIST)标准化的 Falcon,使其在跨链后量子互操作性方面处于领先地位。随着其他区块链逐步实现抗量子能力,Falcon 为安全的跨链通信提供了一个通用基础。状态证明已经展示了这种潜力,使外部链能够以抗量子的方式验证 Algorand 的状态。
开源的 Falcon Signatures CLI 既是一个实用工具,也是一个学习资源。研究人员可以复现首笔后量子交易,研究实现细节,并尝试各种改进方案。通过提供可运行的代码而非仅停留在理论提案层面,Algorand 加速了业界对后量子区块链实际部署的理解。
7. 下一步
通过将 Falcon 公钥嵌入到无状态智能合约中,并对交易 ID 上的签名进行验证,Algorand 在无需修改核心协议代码的情况下,实现了具备抗量子能力的账户。Falcon 签名能够满足逻辑签名的大小限制,且尽管其安全性基于复杂的格密码学,其验证过程仍可在 200 微秒以内完成。状态证明已经使用这一相同的 Falcon 实现,每 256 个区块生成一次具备抗量子能力的区块链状态证明。
这标志着从理论走向实践的转变。当研究人员仍在争论能够破解 RSA-2048 的量子计算机究竟会在 2030 年还是 2040 年出现时,Algorand 已经提供了当下即可应对这一威胁的工具。开发者可以使用开源 CLI 生成 Falcon 密钥对、推导抗量子地址,并执行交易。
参考资料
1\] Algorand团队2025年11月3日博客 [Technical Brief: Quantum-resistant transactions on Algorand with Falcon signatures](https://algorand.co/blog/technical-brief-quantum-resistant-transactions-on-algorand-with-falcon-signatures)