1. 引言
Google Quantum AI 使用 zk 证明来隐藏,但仍可验证能破解主流密码学的量子电路。
2026年3月30日,来自 Google Quantum AI、Stanford 和 Ethereum Foundation 的研究人员发布的Securing Elliptic Curve Cryptocurrencies against Quantum Vulnerabilities:
Resource Estimates and Mitigations论文中声称其开发出了体积更小、资源消耗更低的量子电路(即运行在量子计算机上的程序),能够破解椭圆曲线密码学(ECC)。
上图展示了破解 256 位椭圆曲线离散对数问题(ECC 的数学基础)所需的逻辑量子比特(量子计算单位)和 Toffoli 门(计算操作)的对比。Google Quantum AI 提出的电路,在一种设计中将逻辑量子比特数量减少了 84%,在另一种设计中将门数量减少了约 73%。详情见Securing Elliptic Curve Cryptocurrencies against Quantum Vulnerabilities:
Resource Estimates and Mitigations论文第 8 页。
这一成果意义重大,因为现在预计,未来使用更少时间和更低性能的量子计算机,就可能破解 ECC——一种广泛应用于互联网和数字协议安全的密码学方案。
同样值得注意的是,该团队并没有公开发布量子电路本身,而是使用ZKP零知识证明来验证这些电路的正确性,同时不披露其具体内容。
零知识证明(zk proof)是一种密码学方法,使得一方可以向另一方证明某件事情为真,而无需透露任何额外信息。
那么,如何验证这些量子电路确实存在呢?
本文将解释这些电路,并重点回答以下问题:
- 如何独立验证这些 zk 证明,从而确认这些“隐身”的量子电路确实存在。
2. 为什么使用ZKP?
行业领袖强调,zk 证明正越来越多地被用于隐藏重要的量子电路,这也凸显了理解和验证zk proof的重要性。
这表明一个新趋势:
- 研究人员可能希望将这些电路商业化,
- 或者出于安全考虑不对外公开,
- 甚至可能受到政府压力而避免其落入不法分子之手。
Securing Elliptic Curve Cryptocurrencies against Quantum Vulnerabilities:
Resource Estimates and Mitigations论文中指出,他们不会像以往研究者那样公开电路,因为一旦实用量子计算机出现,恶意行为者可能会利用这些成果:
然而,随着详细密码分析蓝图被对抗性行为者武器化的风险不断上升,披露实践需要发生转变。
该论文作者之一、以太坊基金会研究员 Justin Drake 表示,更有价值、更重要的电路未来可能不会公开:
从现在开始,应假设最先进的算法将被审查。这可能是出于道德或商业原因的自我审查,也可能是政府压力所致。如果学术出版出现“黑暗期”,那将是一个明显信号。
比特币重要投资人、Castle Island Ventures 联合创始人 Nic Carter 将这种使用 zk 证明隐藏量子电路的做法,与原子弹研发时期对核研究的保密制度进行了类比:
这种[Google Quantum AI 使用零知识证明来隐藏量子电路]让人想起物理学界在原子弹研制前夕的情况。1940 年,美国国家科学院自愿采用了自我审查制度。一旦曼哈顿计划启动,所有正式出版物都停止了。1945 年 7 月,第一颗裂变炸弹在新墨西哥州白沙导弹试验场被引爆。
随着越来越多研究人员使用 zk 证明来“隐藏但证明”量子电路的存在,理解如何验证这些证明变得至关重要。
3. Google 的量子电路意味着什么?
Google Quantum AI 的研究人员提供了两种可破解 ECC 的量子电路的元数据。
如果一个量子电路能够破解 9,024 个不同输入的椭圆曲线点加法问题,就可以认为它具备破解 ECC 的能力。
在椭圆曲线上,给定两个起始点 P 和 Q,电路可以找到第三个点(-R),即通过 P 和 Q 的直线与曲线再次相交的点。随后,将点(-R)关于 x 轴对称,得到点 R。点 R 即为 P 和 Q 的“和”(加法结果)。
用更直接的数学语言描述:
- 在椭圆曲线 secp256k1(比特币所使用的椭圆曲线类型)上,对由该电路自身哈希确定性生成的 9,024 个伪随机输入,正确计算点加法
上图为点 R 的计算示例。在椭圆曲线上,通过两个点(P 和 Q)的直线总会与曲线在第三个点(R)再次相交。将点(-R)关于 x 轴对称即可得到 R,即 R = P + Q。来源:NordPass
大多数椭圆曲线不像这个示例那样规则,对于一个普通的经典计算机来说,很难直接判断第三个点的位置。这也是 ECC 传统上在数字数据加密中非常安全的原因,正如视频14 Point Addition on Elliptic Curve所解释的那样。
因此,破解 9,024 个此类问题并非易事。正如 Google Quantum AI 的研究人员所声称的,能够破解 9,024 个实例的量子电路,表明其可以可靠地执行完整 ECC 攻击所需的椭圆曲线运算。
Google Quantum AI 提供了两种满足该标准的量子电路的详细信息;每种电路都针对不同目标进行了优化:
- 第一种方法使用更少的量子比特(量子计算单元),因此更适合硬件受限的场景。
- 第二种方法使用更少的门操作(计算操作),因此在运行性能方面更优。
拥有两种针对不同目标优化的量子电路,使其能够更好地适配不同类型的量子计算机,如针对硬件约束或性能需求的场景。
3.1 电路元数据
尽管这些量子电路相比其他可破解 ECC 的电路减少了约 70–80% 的资源消耗,但它们仍然过于庞大,无法作为程序在量子计算机上实际运行。目前它们的性能仍基于理论假设,不过仍不应被忽视。
上图展示了破解 RSA-2048(一个常用加密方案)所需资源的已发布估计值:纵轴为物理量子比特数量(左图),即用于保护逻辑量子比特的底层硬件比特数量;以及 Toffoli 门 数量(右图),即特定的量子逻辑操作。见Securing Elliptic Curve Cryptocurrencies against Quantum Vulnerabilities:
Resource Estimates and Mitigations论文第 10 页。
这些电路的元数据包括:
- 非 Clifford 门 的数量(实现通用量子计算所需的操作)
- 逻辑量子比特 的数量(在大量物理量子比特保护下执行计算、抵抗噪声和错误的量子比特)
“低量子比特电路”(使用较少 qubits)包含:
- 2,700,000 个非 Clifford 门
- 1,175 个逻辑量子比特
“低门数电路”(使用较少 gates)包含:
- 2,100,000 个非 Clifford 门
- 1,425 个逻辑量子比特
3.2 元数据的验证
3.2.1 零知识证明是如何生成的
每个量子电路都生成了一个零知识证明,并分配了三个标识符,用于验证其元数据。
以下是白皮书中“低量子比特电路”的标识符:
Circuit SHA-256 Hash: 0xcc8f532ffea1583ceed3c9af75de3263ebaddd5fdf3cddfb3dea848b94d0396a Verification Key: 0x00ca4af6cb15dbd83ec3eaab3a0664023828d90a98e650d2d340712f5f3eb0d4 Groth16 Proof Bytes: 0x0e78f4db0000000000000000000000000000000000000000000000000000000000000000008cd56e10c2fe24795cff1e1d1f40d3a 324528d315674da45d26afb376e86700000000000000000000000000000000000000000000000000000000000000000215c7fe4fc59 7b861d82370ab556684ae36e98cf073e7f754f2788ad58721dbd012927516f316e7b4f3effb1dbd567732611cb0334f2d75e529c5e3 becd0629c17605c7ff87c6f23324328744454bdec0df425a4a63e3358c10079c85ef757412ae86ae1f85bf47ef6980852d6f65423be 2d90adb5b29896493324128b1cda0a0042f7138c850a1ca441210ba770a2eee39d56f6f90bf68b7a346e1658c6529715334621b6e1a 63b85875b8c8a610e0d885662879755803027dad57d97140afb2498bbb63215b236575f95b0019f2b9713bc810e1e044d47ab360e92 b899c46512fc97460609186bf1fe01c892a8015fb00e7fdea11b08f88c6adb79b1243518以下是“低门数电路”的标识符:
Circuit SHA-256 Hash: 0x24f5758f2216aa87aa2806af32a0db788767b873cf6869510cca3d893b3f8a69 Groth16 Proof (Hex): 0x0e78f4db0000000000000000000000000000000000000000000000000000000000000000008cd56e10c2fe24795cff1e1d1f40d3a 324528d315674da45d26afb376e867000000000000000000000000000000000000000000000000000000000000000000a11fe07d3af e9d5e9b5af9fdb37fc38bd529d09b92e08350556a3a38ad03f1b2ed337741ecfeae1a65849d1927cdfc3ea4d211734cd747fc4a5534 449ebfd1e2130fde87661e0e0fba6ec2055c130d875c7fa3358e25e2236e928520eddfa992a9e6510d0635161c62e0e29f4c28921f5 6126a908b286c4d910089780441a5811799d5c7dbf293ac3e6d5f51267efbf95cf8643cb28c5f7c2bac8ee9d4b55c830475b328ff9f 9b257f2383e7934aaab12616e04645bf6a2b9820cafba4fd3830655d676b7ff376817bbd18a178cf091ad4f4e53b2e322a1d75b3e14 00d9b66e1feb401eae0df274d7a774f0bd2fc471ce574348daeaac3ee288dcd282456a33 Verification Key: 0x00ca4af6cb15dbd83ec3eaab3a0664023828d90a98e650d2d340712f5f3eb0d43.2.2 Circuit SHA-256 Hash
首先,研究人员为每个电路生成了一个 Circuit SHA-256 Hash。
包含量子电路代码的 KMX 文件被转换为一个“哈希值”(即一个 66 字符的唯一字符串),使用的是 SHA-256 函数。SHA-256 哈希值无法轻易反推出原始内容。
3.2.3 Groth16 证明字节与验证密钥
随后,研究人员创建了一个 ELF 二进制文件,其中包含了一组规则,用于让零知识证明“证明”或验证相应内容的正确性。
ELF 二进制文件是一个用汇编语言或 C/C++ 编写的 RISC-V 程序,其代码必须能够表达类似如下的证明语句,用以证明该量子电路的存在:
零知识证明Statement 1(低量子比特版本):
- 拥有一个量子 kickmix 电路 C(low-qubit 版本,通过其密码学哈希唯一承诺),其资源消耗不超过:
- 2,700,000 个非 Clifford 门(CCX + CCZ)
- 1,175 个逻辑量子比特*
- 17,000,000 次总操作*
并且该电路能够在由其自身哈希确定性生成的全部 9,024 个伪随机输入上,正确计算椭圆曲线 secp256k1 上的点加法。
这引入了一个重要的信任假设:
- 由于电路本身是隐藏的,在此必须信任研究人员构建了一个真实且准确的 ELF 二进制文件。
对 ELF 二进制进行独立审计至关重要,但目前尚未有人进行(尽管Jennifer Tran曾考虑过做一个;可以使用诸如 Ghidra 这样的工具来分析 ELF 二进制)。
随后,研究人员使用该 ELF 二进制和电路本身,来验证电路是否满足 ELF 中定义的所有规则。
他们在一个 SP1 零知识虚拟机(zkVM)中运行该 ELF 二进制,并将电路作为输入。该 zkVM 是由 Succinct Labs 开发的一个沙盒计算环境,能够执行指令(如 ELF 中的指令)、验证计算过程,并在验证通过后生成零知识加密证明。
在这个过程中,首先 zkEVM 会处理 ELF 二进制并对其进行哈希,从而生成一个验证密钥。
然后,zkVM 按照 ELF 二进制中的指令执行,检查该电路是否在全部 9,024 个测试输入上正确完成椭圆曲线点加法计算。
验证完成后,zkVM 会生成一个 STARK 证明,这是一段(是的,后量子安全的)密码学字符串,用于确认验证结果,并且可以与验证密钥和 ELF 二进制交叉校验。
由于原始的 STARK 证明体积较大且验证较慢,因此进一步被压缩为 Groth16 Proof Bytes,这是一种 SNARK(另一类零知识证明),体积更小且验证成本更低。
任何人都可以将 Groth16 Proof Bytes 与第 2 步中的验证密钥结合使用,在毫秒级时间内完成验证,而无需原始电路、无需重新计算,也无需信任研究人员。
3.3 如何独立验证该证明
验证该证明最简单的方法,是使用提供的标识符以及 公开的 Zenodo 存档中的验证程序。Zenodo 是一个通用的科研数据开放仓库,可在普通计算机上使用。
验证该证明可以确认:
- 确实存在满足 ELF 二进制中定义条件的量子电路。
- 这些条件包括:
- 在 Google Quantum AI 白皮书描述的资源限制下(低量子比特或低门数电路),解决 9,024 个椭圆曲线点加法问题。
但需要注意的是,这并不能证明这些量子电路已经在量子计算机上成功运行(事实上还没有),也不能证明 ELF 二进制本身的验证逻辑是完全正确且严谨的。
3.3.1 步骤 1:下载并解压
从提供的 Zenodo 存档下载zkp_ecc_zenodo.zip并解压。
目录结构如下:
zkp_ecc_zenodo/ ├── verifier/ │ ├── verifier.rs ← 验证程序 │ └── Cargo.toml ← 依赖配置 ├── proofs/ │ ├── zkp_ecc-program ← ELF 二进制 │ ├── vkey.bin ← 验证密钥 │ ├── low_qubits/ │ │ └── proof_9024.bin ← 低量子比特电路的证明 │ └── low_toffoli/ │ └── proof_9024.bin ← 低门数电路的证明 └── run_proofs.sh ← 重新生成证明的脚本(需要 GPU)最关键的五个文件是:
proofs/zkp_ecc-program:ELF 二进制proofs/vkey.bin:验证密钥proofs/low_qubits/proof_9024.bin:低量子比特电路的 Groth16 证明proofs/low_toffoli/proof_9024.bin:低门数电路的 Groth16 证明verifier.rs:验证程序(将在后续章节进一步说明)
3.3.2 步骤 2:安装依赖
验证程序是用 Rust 编写的,并依赖于 SP1 SDK,而 SP1 SDK 又依赖于 protobuf 作为数据序列化格式。
brewinstallprotobuf3.3.3 步骤 3:查看验证程序verifier.rs
验证程序位于verifier/verifier.rs,用于确认 zk 证明是否对应于一次有效的验证逻辑执行。
换句话说,它验证该电路是否按照 ELF 二进制中的规则被执行,并满足量子电路声明的规格(如“零知识证明是如何生成的”一节所述)。
其实现方式是:使用验证密钥(即 ELF 二进制约束的压缩表示)来校验 Groth16 Proof Bytes。
首先,读取验证密钥:
letvk_bytes=std::fs::read(&vkey_path).expect("failed to read vkey file");然后,加载 Groth16 Proof Bytes:
letmutproof=SP1ProofWithPublicValues::load(&args.proof).expect("failed to load proof");接着,使用 SP1 SDK 对证明与验证密钥进行校验:
client.verify(&proof,&vk,None).expect("failed to verify proof");如果验证成功,将返回步骤 5 中所示的输出。
3.3.4 步骤 4:运行验证程序
在理解验证逻辑之后,就可以执行程序来验证证明。
该验证程序需要两个输入:某个电路对应的 Groth16 Proof Bytes 和其验证密钥。
3.3.4.1 低量子比特电路(low-qubit circuit)
对于低量子比特电路,其 Groth16 Proof Bytes 存储在:
proofs/low_qubits/proof_9024.bin在zkp_ecc_zenodo目录下运行以下命令:
RUST_LOG=infocargorun--release-pverifier --\--proofproofs/low_qubits/proof_9024.bin\--vkeyproofs/vkey.bin3.3.4.2 低门数电路(low-gate circuit)
对于低门数电路,其 Groth16 Proof Bytes 存储在:
proofs/low_toffoli/proof_9024.bin在zkp_ecc_zenodo目录下运行以下命令:
RUST_LOG=infocargorun--release-pverifier --\--proofproofs/low_toffoli/proof_9024.bin\--vkeyproofs/vkey.bin3.3.5 步骤 5:查看输出结果
如果验证成功,验证程序会确认该 zk 证明确实对应于一次有效的验证逻辑执行,并输出结果。
该输出应与每个电路提供的元数据相一致。
低量子比特电路(Low-qubit circuit):
- 电路 SHA-256 哈希 / 电路哈希承诺:
0xcc8f532ffea1583ceed3c9af75de3263ebaddd5fdf3cddfb3dea848b94d0396a - 验证密钥 / Verifying Key(Hex):
0x00ca4af6cb15dbd83ec3eaab3a0664023828d90a98e650d2d340712f5f3eb0d4 - 非 Clifford 门 / 要求的平均非 Clifford 数量:2,700,000
- 逻辑量子比特数量 / 要求的量子比特数量:1,175 个逻辑量子比特
输出:
Verifying Key (Hex): 0x00ca4af6cb15dbd83ec3eaab3a0664023828d90a98e650d2d340712f5f3eb0d4 Proof (Hex): 0x0e78f4db0000000000000000000000000000000000000000000000000000000000000000008cd56e10c2fe24795cff1e1d1f40d3a324528d315674da45d26afb376e86700000000000000000000000000000000000000000000000000000000000000000215c7fe4fc597b861d82370ab556684ae36e98cf073e7f754f2788ad58721dbd012927516f316e7b4f3effb1dbd567732611cb0334f2d75e529c5e3becd0629c17605c7ff87c6f23324328744454bdec0df425a4a63e3358c10079c85ef757412ae86ae1f85bf47ef6980852d6f65423be2d90adb5b29896493324128b1cda0a0042f7138c850a1ca441210ba770a2eee39d56f6f90bf68b7a346e1658c6529715334621b6e1a63b85875b8c8a610e0d885662879755803027dad57d97140afb2498bbb63215b236575f95b0019f2b9713bc810e1e044d47ab360e92b899c46512fc97460609186bf1fe01c892a8015fb00e7fdea11b08f88c6adb79b1243518 Successfully verified Groth16 SNARK proof. Circuit hash commitment: 0xcc8f532ffea1583ceed3c9af75de3263ebaddd5fdf3cddfb3dea848b94d0396a Demanded Number of tests: 9024 Demanded Qubit count: 1175 Demanded Average non-Clifford count: 2700000 Demanded Total ops: 17000000低门数电路(Low-gate circuit):
- 电路 SHA-256 哈希 / 电路哈希承诺:
0x24f5758f2216aa87aa2806af32a0db788767b873cf6869510cca3d893b3f8a69 - 验证密钥 / Verifying Key(Hex):
0x00ca4af6cb15dbd83ec3eaab3a0664023828d90a98e650d2d340712f5f3eb0d4 - 非 Clifford 门 / 要求的平均非 Clifford 数量:2,100,000
- 逻辑量子比特数量 / 要求的量子比特数量:1,425 个逻辑量子比特
输出:
Verifying Key (Hex): 0x00ca4af6cb15dbd83ec3eaab3a0664023828d90a98e650d2d340712f5f3eb0d4 Proof (Hex): 0x0e78f4db0000000000000000000000000000000000000000000000000000000000000000008cd56e10c2fe24795cff1e1d1f40d3a324528d315674da45d26afb376e867000000000000000000000000000000000000000000000000000000000000000000a11fe07d3afe9d5e9b5af9fdb37fc38bd529d09b92e08350556a3a38ad03f1b2ed337741ecfeae1a65849d1927cdfc3ea4d211734cd747fc4a5534449ebfd1e2130fde87661e0e0fba6ec2055c130d875c7fa3358e25e2236e928520eddfa992a9e6510d0635161c62e0e29f4c28921f56126a908b286c4d910089780441a5811799d5c7dbf293ac3e6d5f51267efbf95cf8643cb28c5f7c2bac8ee9d4b55c830475b328ff9f9b257f2383e7934aaab12616e04645bf6a2b9820cafba4fd3830655d676b7ff376817bbd18a178cf091ad4f4e53b2e322a1d75b3e1400d9b66e1feb401eae0df274d7a774f0bd2fc471ce574348daeaac3ee288dcd282456a33 Successfully verified Groth16 SNARK proof. Circuit hash commitment: 0x24f5758f2216aa87aa2806af32a0db788767b873cf6869510cca3d893b3f8a69 Demanded Number of tests: 9024 Demanded Qubit count: 1425 Demanded Average non-Clifford count: 2100000 Demanded Total ops: 170000004. 结论
Google Quantum AI 的研究人员开发出了能够破解 ECC 的量子电路,这些电路并未公开发布,但可以通过零知识证明进行验证。
研究人员可能会越来越多地依赖 zk 证明,在实现电路商业化、防止滥用或应对政府监管压力的同时,仍然向公众证明他们取得了突破性进展。
运行验证程序可以确认:确实存在满足证明中声明条件的量子电路。但这并不能证明这些量子电路已经在量子计算机上成功运行,也不能证明 ELF 二进制本身包含完全正确的验证逻辑。
随着越来越多研究人员使用零知识证明来支撑对未公开量子电路的声明,对这些证明进行独立验证与审计将变得愈发重要。
参考资料
[1] Jennifer Tran 2026年4月10日博客 How zero-knowledge proofs make quantum circuits “private” 或 How zero-knowledge proofs make quantum circuits “private”