零知识证明: 让量子电路"隐私化"
Google量子AI团队利用zk证明隐藏并验证能够破解主流加密算法的量子电路
一键发币: x402兼容 | Aptos | X Layer | SUI | SOL | BNB | ETH | BASE | ARB | OP | Polygon | Avalanche
零知识证明如何让量子电路实现"隐私化"
我写这篇文章的主要动机是帮助读者理解如何解读量子计算领域的论文,特别是随着该领域变得更加主流,各种耸人听闻的说法广泛传播时。
在一份新的白皮书中,Google量子AI、斯坦福大学和以太坊基金会的研究人员开发了更小、资源消耗更少的量子电路,即运行在量子计算机上的程序,能够破解椭圆曲线密码学(ECC)。

解决256位椭圆曲线离散对数问题(椭圆曲线密码学ECC的数学基础)所需的逻辑量子比特(量子计算单元)和Toffoli门(计算操作)数量的对比。Google量子AI团队提出的电路在一个设计中减少了84%的逻辑量子比特,在另一个设计中大约减少了73%的门数量。白皮书第8页。
这很重要,因为现在估计在功能较弱的量子计算机上运行较少的时间就能破解ECC,这是一种广泛使用的加密方案,保护着互联网和数字协议的大部分内容。
同样值得注意的是,研究团队没有公开发布量子电路,而是使用了零知识证明来验证电路而不披露其内容。
零知识证明(zk证明)是一种密码学方法,一方可以向另一方证明某件事是真实的,而无需透露任何信息。
那么我们如何验证这些量子电路确实存在呢?
本文解释了这些电路,并专注于回答这个确切的问题:如何独立验证这些zk证明,并确认这些"私有"量子电路确实存在。
1、为什么要使用零知识证明
业界领袖强调越来越多地使用zk证明来保护重要的量子电路,强调理解和验证它们的必要性。
这暗示了一个新兴趋势:研究人员希望将电路商业化,或者将其保密,或者面临政府压力要求不向恶意行为者公开。
白皮书指出他们不会公开发布电路,这与以前的研究人员不同,因为一旦实用的量子计算机可用,恶意行为者可能会利用它们:
然而,详细的密码分析蓝图可能被敌对行为者武器化的风险不断升级,这 necessitates 改变披露做法。
Justin Drake,白皮书合著者、以太坊基金会研究员,暗示更有价值、更重要的电路将保持未发布状态:
从现在起,假设最先进的算法将被审查。可能出于道德或商业原因进行自我审查,或因为政府压力。学术出版物的 blackout 将是一个明显的迹象。
Nic Carter,比特币主要投资者、Castle Island Ventures联合创始人,将zk证明的使用比作原子弹开发过程中核研究的保密:
这[使用零知识证明隐藏Google量子AI的量子电路]让人想起原子弹开发前物理学界发生的事情。1940年,美国国家科学院自愿采用了自我审查制度。一旦曼哈顿计划开始,所有正式出版物都停止了。1945年7月,第一颗裂变炸弹在新墨西哥州白沙导弹靶场引爆。
随着更多研究人员采用zk证明来隐藏但"证明"特定量子电路的存在,理解如何验证它们变得至关重要。
2、Google的量子电路意味着什么
Google量子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传统上对于加密数字数据非常安全,如本视频所解释的:
因此,解决9,024个这样的问题并非易事。如Google量子AI研究人员声称的那样,能够解决9,024个实例的量子电路表明它能够可靠地执行完整ECC攻击所需的椭圆曲线运算。
Google量子AI提供了满足此标准的两个电路的详细信息;每个电路针对不同的目标进行了优化。
拥有针对不同目标优化的两个电路允许它们在更适合特定任务(如硬件或性能)的各种类型的量子计算机上运行。
3、电路元数据
尽管这些量子电路比其他能够破解ECC的电路需要的资源少70-80%,但它们仍然太大而无法作为程序在量子计算机上运行。它们的性能仍然基于理论假设,尽管不应该被忽视。

显示破解RSA-2048(一种流行的加密方案)所需估计值的图表,作为物理量子比特数量(左)的函数,即用于保护逻辑量子比特的原始硬件量子比特,以及[Toffoli门](http://A graph showing the published estimates needed to break RSA-2048, a popular cryptographic scheme, with the number of physical qubits (left) and number of Toffoli Gates (right).)数量(右),特定的量子逻辑操作。白皮书第10页。
电路元数据包括非Clifford门的数量,即通用量子计算所需的操作,以及逻辑量子比特的数量,即在被许多周围物理量子比特保护免受噪声和错误的同时执行计算的量子比特。
具有更少量子比特的量子电路,或"低量子比特量子电路",包括:
- 2,700,000个非Clifford门
- 1,175个逻辑量子比特
具有更少门的量子电路,或"低门数量子电路",包括:
- 2,100,000个非Clifford门
- 1,425个逻辑量子比特

4、验证元数据
零知识证明是如何创建的
为每个量子电路生成了一个零知识证明,产生了三个用于验证其元数据的标识符。
以下是白皮书中提出的低量子比特量子电路的标识符:
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:
0x00ca4af6cb15dbd83ec3eaab3a0664023828d90a98e650d2d340712f5f3eb0d4
电路SHA-256哈希

首先,研究人员为每个电路创建了电路SHA-256哈希。
包含量子电路代码的KMX文件使用SHA-256函数转换为"哈希"或唯一的66字符字符串。SHA-256哈希不容易被反向破解以显示原始文本。
Groth16证明字节和验证密钥
然后,研究人员创建了一个ELF二进制文件,即零知识证明需要"证明"或验证的规则列表。
ELF二进制文件是一个RISC-V程序,用汇编语言或C/C++编写,代码必须反映如下示例陈述,以证明量子电路存在:
零知识证明陈述1(低量子比特变体)
我们拥有一个量子kickmix电路C低量子比特(通过其加密哈希唯一承诺),资源计数最多为:
2,700,000个非Clifford门(CCX + CCZ)
1,175个逻辑量子比特
17,000,000次总操作
在椭圆曲线secp256k1上正确计算所有9,024个伪随机输入的点加法,这些输入是确定性地从电路自身的哈希派生出来的。
这引入了一个重要的信任假设。读者必须相信研究人员创建了一个诚实和准确的ELF二进制文件,因为电路是隐藏的。独立审计ELF二进制文件至关重要,但目前尚未进行(尽管我自己考虑过做一个;可以使用Ghidra等工具评估ELF二进制文件)。
然后,研究人员使用ELF二进制文件和电路来验证电路是否满足ELF二进制文件中指定的所有规则。
研究人员会在SP1零知识虚拟机(zkVM)中运行ELF二进制文件,并将电路作为其输入,这是一个由Succinct Labs开发的沙盒计算环境,执行指令(如ELF二进制文件中的指令),验证计算,并在验证后生成零知识密码学证明。
在这种情况下,首先,zkEVM处理ELF二进制文件并将其哈希以创建验证密钥。

然后,zkVM按照ELF二进制文件指令检查电路是否正确计算了所有9,024个测试输入的椭圆曲线点加法。
验证后,zkEVM生成一个STARK证明,一个(是的,后量子安全)密码学字符串,确认验证并可与验证密钥和ELF二进制文件交叉检查。
原始STARK证明相对较大且验证较慢,因此它被压缩为**Groth16证明字节**,这是一种SNARK(另一类零知识证明)的版本,更小且验证成本更低。

任何人都可以使用Groth16证明字节和验证密钥在第2步中在毫秒内验证结果,无需原始电路、重新计算或信任研究人员。
5、如何独立验证证明
验证证明的最简单方法是使用公共Zenodo档案中提供的标识符和验证程序,这是一个用于研究和数据的通用开放存储库,可在任何典型计算机上使用。我在Mac笔记本电脑上运行了即将介绍的终端命令。
验证证明确认存在满足ELF二进制文件中定义的要求的量子电路。这些要求是解决9,024个椭圆曲线加法问题,在Google量子AI白皮书中描述的低量子比特和低门数量子电路指定的资源限制内。
它不能确认量子电路已成功在量子计算机上执行(事实并非如此),也不能确认ELF二进制文件本身包含正确的验证逻辑。
第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:验证程序,将在以下章节中进一步解释
第2步:安装依赖项
验证器是用Rust编写的,依赖于SP1 SDK,后者依赖于protobus作为其数据序列化格式。
brew install protobuf
第3步:查看verifier.rs,验证程序
验证程序位于verifier/verifier.rs,确认zk证明对应于验证逻辑的有效执行。
换句话说,它验证电路是否按照ELF二进制文件进行了评估,并满足量子电路声称的规范,如"零知识证明是如何创建的"部分所解释的。
它通过根据验证密钥检查Groth16证明字节来实现这一点,验证密钥是ELF二进制文件约束的压缩表示。
首先,它读取验证密钥:
let vk_bytes = std::fs::read(&vkey_path).expect("failed to read vkey file");
然后,它加载Groth16证明字节:
let mut proof = SP1ProofWithPublicValues::load(&args.proof).expect("failed to load proof");
它使用SP1 SDK根据验证密钥验证证明。
client.verify(&proof, &vk, None).expect("failed to verify proof");
如果验证成功,它将返回如第5步所示的输出。
第4步:运行验证器
一旦理解了验证逻辑,就可以执行程序来检查证明。
验证程序需要两个输入:Groth16证明字节和特定电路的验证密钥。
低量子比特电路
对于低量子比特电路,Groth16证明字节存储在proofs/low_qubits/proof_9024.bin中。在zkp_ecc_zenodo文件夹中运行以下命令以验证低量子比特电路:
RUST_LOG=info cargo run --release -p verifier -- \
--proof proofs/low_qubits/proof_9024.bin \
--vkey proofs/vkey.bin
低门数量子电路
对于低量子比特电路,Groth16证明字节存储在proofs/low_toffoli/proof_9024.bin中。在zkp_ecc_zenodo文件夹中运行以下命令以验证低门数量子电路:
RUST_LOG=info cargo run --release -p verifier -- \
--proof proofs/low_toffoli/proof_9024.bin \
--vkey proofs/vkey.bin
第5步:查看输出
如果验证成功,验证程序确认zk证明对应于验证逻辑的有效执行并返回输出。
输出应匹配每个电路提供的元数据。
✅ 低量子比特电路:
- 电路SHA-256哈希 / 电路哈希承诺:0xcc8f532ffea1583ceed3c9af75de3263ebaddd5fdf3cddfb3dea848b94d0396a
- 验证密钥 / 验证密钥(十六进制)):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
✅ 低门数量子电路:
- 电路SHA-256哈希 / 电路哈希承诺: 0x24f5758f2216aa87aa2806af32a0db788767b873cf6869510cca3d893b3f8a69
- 验证密钥 / 验证密钥(十六进制): 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: 17000000
6、结束语
Google量子AI研究人员开发了能够破解ECC的量子电路,这些电路未公开发布,但可以使用零知识证明进行验证。
研究人员可能越来越依赖zk证明来商业化电路、防止滥用,或响应政府压力,同时仍然公开证明他们取得了突破。
运行验证器确认存在满足证明中承诺的陈述的量子电路。然而,它不能确认量子电路是否曾在量子计算机上成功运行,或者ELF二进制文件本身是否包含正确的验证逻辑。
随着更多研究人员使用零知识证明来支持关于未公开量子电路的主张,对证明的独立验证和审计将变得越来越重要。
原文链接: How zero-knowledge proofs make quantum circuits "private"
DefiPlot 翻译整理,转载请标明出处
免责声明:本站资源仅用于学习目的,也不应被视为投资建议,读者在采取任何行动之前应自行研究并对自己的决定承担全部责任。