Dora Vota 与 aMACI 抗量子性分析

0. 总体结论

结论一:Dora Vota 作为 Cosmos/CometBFT Appchain,本身不具备端到端 post-quantum security。

它的链级安全主要继承 Cosmos SDK、CometBFT、IBC 与 CosmWasm 生态。Dora Vota 依赖 cosmos-sdk v0.47.17cometbft v0.37.5ibc-go/v7wasmdwasmvm,并在应用层启用了 authbankstakingslashinggovgroupibcCosmWasm 等模块。该架构的交易认证、验证人共识签名、IBC 轻客户端安全性仍然依赖传统椭圆曲线签名体系,因此面对具备密码学相关能力的量子计算机时,链级认证与共识层不具备抗量子性。(github.com)

结论二:aMACI 在经典密码学模型下是一个结构完整、设计复杂的匿名/抗合谋投票系统,但它不是 post-quantum secure。

aMACI/MACI代码包含 BabyJubJub、EdDSA-Poseidon、ECDH、ElGamal、Poseidon、Groth16/PLONK、BN254 等组件;电路侧包含 AddNewKeyProcessDeactivateProcessMessagesTallyVotes 等核心电路。这些核心组件,包括投票指令认证、加密消息隐私、deactivation/new-key 匿名性、rerandomization 隐藏性、zkSNARK 证明 soundness,均不同程度依赖椭圆曲线离散对数、配对曲线或椭圆曲线群假设。(github.com)

结论三:aMACI 最严重的抗量子问题不是哈希,而是“公钥密码层 + 证明系统”。

Poseidon、SHA-256、Merkle tree、hash chain 等哈希型组件在量子环境下会受到 Grover 类型平方根加速影响,但它们不是系统最薄弱点。真正的高危点是 BabyJubJub ECDH、BabyJubJub ElGamal、EdDSA-Poseidon、BN254 Groth16。NIST 对后量子迁移的基本判断也是:传统 RSA、DSA、ECDSA、EdDSA、ECDH 等公钥密码会受到大型量子计算机威胁,而哈希/对称类原语主要面对的是安全位数折半性质的泛型攻击。(csrc.nist.gov)


1. 分析范围与威胁模型

本文只做 post-quantum cryptographic analysis,分析对象包括:

  1. Dora Vota:基于 Cosmos SDK / CometBFT / CosmWasm 的 Appchain。
  2. aMACI:重点分析匿名投票协议、电路、合约验证与密码原语。

这里的“抗量子性”指:在攻击者拥有 CRQC,cryptographically relevant quantum computer 的前提下,系统关键安全属性是否仍然成立。核心量子攻击模型如下:


量子能力

对密码系统的影响

Shor 算法

可破坏 RSA、有限域 DLP、椭圆曲线 DLP、ECDSA、EdDSA、ECDH、ElGamal、BLS、pairing-based assumptions

Grover 算法

对哈希/对称密钥穷举提供平方根加速,例如 256-bit preimage 安全性约降至 128-bit 级别

Harvest-now-decrypt-later

攻击者现在记录链上密文、证明、公开数据,未来量子能力成熟后解密或还原历史隐私数据

NIST 已在 2024 年发布后量子密码主标准,包括用于密钥封装和签名的 FIPS 203、FIPS 204、FIPS 205;这说明传统公钥密码被量子威胁替代并非抽象学术问题,而是标准化层面已经明确处理的问题。(csrc.nist.gov)


Part I:Dora Vota 抗量子性分析

2. Dora Vota 架构与密码暴露面

Dora Vota为DoraFactory构建的appchain,支持aMACI,用于投票、加密民意调查、前沿科技治理、公共物品资助。它是一个 Go 语言为主的 Cosmos 链,依赖 Cosmos SDK、CometBFT、IBC-Go、CosmWasm/wasmd/wasmvm,并提供标准链模块与自定义 sponsor contract tx 模块。(github.com)

链级密码暴露面可以分成五层:


层级

主要功能

典型密码依赖

抗量子判断

账户层

用户交易签名、账户控制

secp256k1 / Ed25519 / multisig 等

不抗量子

共识层

验证人投票、区块 finality

CometBFT validator signatures,默认 Ed25519

不抗量子

IBC 层

跨链轻客户端验证、跨链资产/消息

对端链 validator signatures + Merkle proof

签名部分不抗量子

CosmWasm 层

合约执行、合约级加密/证明验证

取决于合约;aMACI 使用 Groth16/BN254 等

取决于合约,多数非抗量子

状态承诺层

Merkle/IAVL/哈希承诺

哈希、Merkle proof

相对抗量子,但安全位数下降

Cosmos SDK 账户体系支持 secp256k1、ed25519 与 multisig 等公钥类型;CometBFT 默认会生成 Ed25519 共识密钥,并支持若干 validator public key 类型,包括 ed25519、secp256k1、secp256k1eth、bls12381 等。无论是 ECDSA/secp256k1、Ed25519,还是 BLS12-381,这些都不是后量子签名。(docs.cosmos.network)


3. Dora Vota 关键安全属性的量子影响

3.1 用户账户认证

Dora Vota 作为 Cosmos 链,用户交易授权依赖账户私钥签名。对于 secp256k1/ECDSA 或 Ed25519/EdDSA 类型账户,一旦公钥暴露,具备 CRQC 的攻击者理论上可以通过椭圆曲线离散对数恢复私钥,从而伪造交易签名。Cosmos SDK secp256k1 签名实现本质上是 ECDSA 风格签名,CometBFT/Cosmos中Ed25519 和 secp256k1 是标准支持类型。(pkg.go.dev)

影响:高

账户层的 post-quantum 风险不是“签名长度不足”,而是签名数学假设被 Shor 算法直接击穿。攻击者不需要暴力破解 mnemonic,也不需要入侵 HSM;只要能够从公开公钥还原私钥,账户控制权就失效。

3.2 验证人共识安全

CometBFT validator consensus key 默认是 Ed25519。验证人公钥通常是公开的,因为其他节点需要验证共识投票、区块提交和 validator set 更新。若攻击者可恢复验证人私钥,则可以伪造 prevote/precommit、制造双签、破坏 finality 或构造伪造 commit。(docs.cometbft.com)

影响:高

在 BFT 共识中,攻击者控制或伪造足够比例的验证人签名后,风险从单账户盗用上升到链级安全:超过三分之一可导致 liveness/finality 问题,达到三分之二级别则会威胁安全性与错误 finalization。量子攻击对验证人密钥的风险尤其严重,因为 validator public keys 是长期公开的信息。

3.3 IBC 与跨链安全

Dora Vota 代码中启用了 IBC core、transfer、fee、interchain accounts、Tendermint light client 等模块。IBC 的安全性依赖对端链区块头、validator set、签名与 Merkle proof 的组合验证。Merkle proof 本身主要依赖哈希,抗量子性相对较强;但 Tendermint/CometBFT 风格 validator signatures 不是抗量子的。(raw.githubusercontent.com)

影响:高

即使 Dora Vota 自身应用逻辑没有问题,只要跨链信任链中的任一关键链仍使用非 PQ(非抗量子) validator signatures,IBC 的最终安全也不是 post-quantum secure。IBC 的量子风险是组合式的:它继承了两端链及中间轻客户端所依赖签名体系的最弱点。

3.4 CosmWasm 与链上合约

Dora Vota 集成了 CosmWasm/wasmd/wasmvm。CosmWasm 本身是执行环境,并不自动提供 post-quantum 安全;合约是否抗量子取决于合约内使用的密码原语。aMACI 合约使用 Groth16 proof verification、BN254 相关验证逻辑和 BabyJubJub/Poseidon 相关工具,因此从合约级来看,它也不具备完整 PQ 安全性。(raw.githubusercontent.com)

3.5 哈希、Merkle、状态承诺

状态承诺、Merkle proof、哈希链等组件相较于签名和 ECDH 更抗量子。Grover 算法会降低哈希 preimage 搜索复杂度,但 SHA-256 这类 256-bit 输出在 preimage 层面仍有约 128-bit 级别的量子安全边际。NIST 对 PQ 安全级别也把哈希/对称类攻击与公钥崩溃区别对待。(csrc.nist.gov)

影响:中。

Dora Vota 的哈希/状态承诺不是最主要 PQ 风险点。真正高危的是账户签名、共识签名、IBC validator signatures、合约内椭圆曲线/配对证明系统。


4. Dora Vota 抗量子风险评级


组件

当前安全依赖

量子攻击面

PQ 评级

风险

用户账户交易签名

secp256k1 / Ed25519 等

Shor 恢复私钥、伪造签名

验证人共识签名

CometBFT validator signatures

伪造 prevote/precommit/commit

IBC 轻客户端

对端链签名 + Merkle proof

签名层非 PQ,继承跨链 finality 风险

高/关键

CosmWasm 执行环境

合约自定义密码

取决于合约,aMACI 为非 PQ

混合

中到关键

状态树/Merkle/哈希

哈希函数

Grover 降低安全位数

Governance/staking/slashing

链级签名与共识

账户/验证人密钥被伪造后间接受影响

Dora Vota 总体判断:

Dora Vota 是一个典型现代 Cosmos appchain,在经典安全模型下依赖成熟生态组件;但从 post-quantum 角度看,基础链并不抗量子。其抗量子瓶颈位于签名与共识,而不是业务模块。


Part II:aMACI 协议抗量子性分析

5. aMACI 架构与核心安全目标

aMACI电路包括:


电路

作用

AddNewKey

aMACI 新 key 添加与 deactivation proof

ProcessDeactivate

处理 deactivation messages

ProcessMessages

处理投票/状态变更消息

TallyVotes

计票与 tally commitment

MessageValidator

验证签名、nonce、pollId、余额、vote option

StateLeafTransformer

更新 state leaf、vote weights、nonce、active state

这些电路还共享 ECDH、ElGamal encryption/decryption、Poseidon hashing、signature verification、Merkle/quinary tree、message parsing 等组件。(github.com)


6. aMACI 的经典安全逻辑

aMACI 的核心目标是解决原始 MACI 中 operator/coordinator 能够观察身份关联的问题。原 MACI 中链上消息对外隐藏,但 operator 由于需要解密和处理消息,可能看到用户行为与身份之间的关系;aMACI 使用 deactivation、new key、ElGamal rerandomization、nullifier 等机制,使旧 key 与新 key 的关联在经典假设下难以被 operator 证明或识别。(ethresear.ch)

从代码与电路看,aMACI 的经典安全结构大致如下:

  1. 用户拥有 BabyJubJub 私钥/公钥。
  2. 投票或状态变更消息通过 ECDH 派生 shared key,再用 Poseidon cipher 解密成 command。
  3. command 使用 EdDSA-Poseidon 签名验证。
  4. deactivation 与 add-new-key 流程使用 ElGamal rerandomization 隐藏旧 key 与新 key 的关联。
  5. nullifier 使用 Poseidon(oldPrivateKey, pollId),防止同一旧 key 重复激活/重复添加。
  6. Groth16 proof 证明状态转换、deactivation、tally 等步骤正确执行。
  7. 链上 CosmWasm 合约验证 proof 与 public input hash。

这些逻辑在经典安全模型下相当严密:电路验证 pollId、nonce、签名、余额、投票选项、Merkle path、state root、deactivation root、tally commitment 等条件。(raw.githubusercontent.com)


7. aMACI 核心原语的抗量子性逐项分析

7.1 BabyJubJub 私钥、公钥与 ECDH

aMACI 电路中 Ecdh 使用 BabyJubJub 椭圆曲线 scalar multiplication,从 coordinator public key 与 voter private key 派生 shared key。PrivToPubKey 也通过 BabyJubJub base point scalar multiplication 从私钥得到公钥,并检查私钥小于 subgroup order。(raw.githubusercontent.com)

PQ 判断:不抗量子。

BabyJubJub 是椭圆曲线群。其安全性基于椭圆曲线离散对数困难性。Shor 算法一旦可在相应规模群上运行,攻击者可从公钥恢复私钥,进而破坏 ECDH shared secret。该问题直接影响 aMACI 的 encrypted command、deactivation status、匿名 key-change 机制。

具体影响:


受影响对象

量子后果

voter public key

可恢复 voter private key

coordinator public key

可恢复 coordinator private key

ECDH shared key

可被第三方重算

encrypted message

历史密文可被解密

nullifier 隐私

可由恢复出的 oldPrivateKey 重新计算并匹配

这意味着 aMACI 存在明显的 harvest-now-decrypt-later 风险:链上或公开记录的 encrypted messages、encrypted deactivation data、public keys、nullifiers 在未来量子能力出现后可能被重新解释和解密。


7.2 EdDSA-Poseidon 签名验证

VerifySignature 电路使用 EdDSA-Poseidon 逻辑:对 command preimage 与 new public key 等字段做 Poseidon hash,然后在 BabyJubJub 上验证签名。MessageValidator 再将签名验证与 state index、vote option index、nonce、pollId、voice credit 等检查结合,最终决定 command 是否有效。(raw.githubusercontent.com)

PQ 判断:不抗量子。

EdDSA-Poseidon 的哈希部分是 Poseidon,但签名安全性仍然来自 BabyJubJub 离散对数。量子攻击者若可从 public key 恢复 private key,即可伪造有效 command 签名。Poseidon hash 并不能把椭圆曲线签名变成 PQ 签名。

具体影响:


安全属性

经典模型

量子模型

command authenticity

依赖 EdDSA-Poseidon

可被私钥恢复破坏

nonce 防重放

防止旧消息重放

无法阻止新伪造消息

pollId 绑定

防止跨 poll 重放

无法阻止拥有私钥后的本 poll 伪造

vote authorization

只有 key owner 可签

攻击者可冒充 key owner

因此,aMACI 的“投票指令来自合法用户”这一属性在 CRQC 模型下不成立。


7.3 ElGamal rerandomization 与 deactivation anonymity

aMACI 的匿名性重点在 deactivation/new-key 流程。AddNewKey 电路中,nullifier 被设为 Poseidon(oldPrivateKey, pollId);deactivation leaf 绑定 c1c2 与 ECDH shared key hash;随后通过 ElGamal rerandomization 将旧密文转换为新的 d1d2,同时证明该转换正确。(raw.githubusercontent.com)

aMACI 通过 ElGamal 可重随机化,使 operator 难以把 deactivation key 与新 key 直接关联。ElGamal 形式为 c1 = g^yc2 = m * pk^y,rerandomization 则计算 d1 = g^z * c1d2 = pk^z * c2。(ethresear.ch)

PQ 判断:不抗量子。

ElGamal 的隐藏性、rerandomization unlinkability 依赖离散对数困难性。量子攻击者可解离散对数后,恢复 randomness、解密密文、分析 ciphertext relation。更重要的是,aMACI 的 public nullifier 是 Poseidon(oldPrivateKey, pollId):一旦 old public key 对应 private key 可由量子攻击恢复,攻击者就可以对所有 old keys 计算 nullifier,并与链上 public nullifier 匹配,从而直接破坏 old key 与 new key 的匿名关联。

这是 aMACI 中最关键的 PQ 匿名性失败点之一。


aMACI 匿名机制

经典安全直觉

量子后果

oldPrivateKey 隐藏

nullifier 不可被外部枚举匹配

oldPrivateKey 可从 oldPubKey 恢复

ElGamal rerandomization

隐藏旧密文与新密文关联

DLP 被破坏后可分析/解密

deactivation status 加密

只有 operator 可解

coordinator key 或 voter key 被恢复后可解

new key anonymity

operator 难以证明或识别旧/新关联

可通过私钥恢复/nullifier 匹配破坏


7.4 Poseidon hash / Poseidon cipher

aMACI 大量使用 Poseidon:message hash、state commitment、nullifier、input hash 辅助、Merkle tree、Poseidon encryption/decryption 等。电路工具中有多种 Poseidon hasher、Poseidon decrypt、message hash、hash-left-right 等组件。(github.com)

PQ 判断:相对较强,但不是系统性 PQ 保障。

作为哈希/置换类原语,Poseidon 面对量子攻击主要是 Grover 型泛型加速,而不是 Shor 式直接崩溃。如果输出空间约为 254-bit field element,preimage 级别可粗略理解为约 127-bit 量子安全边际。但这只是泛型判断;Poseidon 并不是 NIST 后量子标准中的签名/KEM,也不能补偿 ECDH、ElGamal、EdDSA、Groth16 的非 PQ 问题。

尤其需要注意:当 Poseidon cipher 的密钥来自 BabyJubJub ECDH 时,真正的风险不是 Poseidon 被直接量子破解,而是 ECDH shared key 被量子攻击恢复,导致 Poseidon 加密内容被正常解密。


7.5 Groth16 / BN254 zkSNARK

aMACI 合约使用 Groth16 proof verification,并导入 pairing_ce::bn256::Bn256bellman_ce_verifier 等组件。run_groth16_verify 会解析 verifying key 与 proof,并以 public input hash 作为输入执行 Groth16 验证。maci-crypto 也明确依赖 ark-bn254,并称 BN254/BN128 是 MACI 主要使用的曲线。(raw.githubusercontent.com)

PQ 判断:不抗量子。

Groth16 的 soundness/knowledge soundness 依赖 pairing-friendly elliptic curve groups 上的计算假设。这类假设属于 Shor 算法威胁范围。BN254/BN128 本身是配对友好曲线,不是后量子证明系统基础。

具体影响:


证明对象

经典含义

量子风险

ProcessMessages proof

消息处理与状态更新正确

soundness 假设失效

ProcessDeactivate proof

deactivation 批处理正确

可被伪造风险上升

AddNewKey proof

新 key 添加与 rerandomization 正确

证明不再提供 PQ 保障

TallyVotes proof

tally commitment 正确

错误 tally 可能获得可接受 proof

这里需要精确表述:并不是说当前现实攻击者已经能伪造 Groth16 proof,而是说 Groth16/BN254 的安全假设不是 post-quantum assumptions。在 CRQC 模型下,链上 verifier 接受某个 proof 不再等价于“该状态转换在后量子意义下可信”。


8. aMACI 电路级 PQ 分析

8.1 AddNewKey 电路

AddNewKey 的关键逻辑包括:

  • 输入 old private key、new public key、coordinator public key、deactivation root、ElGamal ciphertext 等。
  • 计算 nullifier = Poseidon(oldPrivateKey, pollId)
  • 使用 old private key 与 coordinator public key 做 ECDH。
  • 验证 deactivation leaf 在 deactivation root 中。
  • 对 ElGamal ciphertext 做 rerandomization。
  • 将 public inputs 压缩成 inputHash。(raw.githubusercontent.com)

PQ 评价:高风险。

该电路在经典模型下可证明“知道 old private key 的用户可以匿名添加 new key”。但在量子模型下,old private key 可由 old public key 恢复,nullifier 可被外部枚举匹配,ECDH shared key 可被重算,ElGamal rerandomization 隐藏性失效。因此 AddNewKey 的匿名性与授权性均不具备 PQ 安全。

8.2 ProcessDeactivate 电路

ProcessDeactivate 会:

  • 验证 message hash chain。
  • 由 coordinator private key 派生 coordinator public key 并检查一致性。
  • 使用 ECDH/Poseidon 解密 deactivate messages。
  • 验证签名、pollId、state leaf、active state。
  • 更新 deactivation tree 与 active state root。(raw.githubusercontent.com)

PQ 评价:高风险。

该电路依赖 coordinator private key、ECDH 解密、BabyJubJub signature verification、Merkle proof 和 Groth16 proof。Merkle proof 本身相对抗量子;但 coordinator key、voter key、签名和 Groth16 均不抗量子。量子攻击者可以恢复 coordinator private key 解密消息,也可以恢复 voter private key 伪造 deactivate command。

8.3 ProcessMessagesStateLeafTransformer

ProcessMessages 验证 message hash chain、pollId、state commitment、deactivation commitment、active state root,并通过 ECDH 解密 command 后交给 state transformer。StateLeafTransformer 调用 MessageValidator,同时解密 active flag,检查 message 是否有效,进而更新 state leaf、nonce、vote weights。(raw.githubusercontent.com)

PQ 评价:关键风险。

这个流程承担投票系统最核心的“谁投了什么、状态如何变更、票权如何扣减”逻辑。其经典安全性高度依赖签名不可伪造、ECDH 不可解、Groth16 proof soundness。量子模型下,这三项同时失效,因此不能称为 PQ-secure vote processing。

8.4 MessageValidator

MessageValidator 验证:

  • state index 是否有效;
  • vote option index 是否有效;
  • nonce 是否等于旧 nonce + 1;
  • command pollId 是否等于 expected pollId;
  • EdDSA-Poseidon 签名是否有效;
  • voice credit 是否足够;
  • vote weight 是否在安全范围内;
  • 最终 isValid 由多项检查共同决定。(github.com)

PQ 评价:逻辑完整,但认证基础不是量子安全。

nonce、pollId、余额和 vote option 检查是良好的协议约束;但这些约束不能抵御“攻击者已恢复合法 private key”的量子攻击。量子模型下,攻击者可生成新签名、新 nonce、新 command,而不是重放旧 command。

8.5 TallyVotes

TallyVotes 验证 state commitment、state root、vote option tree roots、tally commitments、batch index、public input hash,并更新 tally result tree。(raw.githubusercontent.com)

PQ 评价:哈希承诺部分相对稳健,证明 soundness 不是量子安全。

tally commitment、Merkle root、salt/hash 结构不是主要量子短板;真正问题是 Groth16 proof。若 proof system 的 soundness 在量子模型下不成立,链上 verifier 对 tally correctness 的保证也不具备 PQ 意义。


9. aMACI 攻击场景分析

场景 A:外部攻击者记录链上数据,未来量子解密

aMACI 的 encrypted messages、public keys、proofs、commitments、nullifiers 等数据可能长期保留在链上或归档系统中。若未来攻击者拥有可攻击 BabyJubJub 的量子能力,则可以:

  1. 从 coordinator public key 恢复 coordinator private key;
  2. 重算 ECDH shared keys;
  3. 解密历史 encrypted commands;
  4. 从 voter public keys 恢复 voter private keys;
  5. 计算 Poseidon(oldPrivateKey, pollId) 并匹配 public nullifier;
  6. 重建 old key 与 new key 的关联。

结果:历史投票隐私和匿名性不具备长期 PQ 保密性。

场景 B:攻击者伪造用户投票或 key-change 消息

若 voter public key 已知,量子攻击者可以恢复 voter private key,然后生成符合 MessageValidator 要求的新 command,包括正确签名、正确 pollId、递增 nonce、合法 vote option 等。nonce 和 pollId 只能防止重放,不能防止私钥被恢复后的新消息伪造。(github.com)

结果:投票授权性不具备 PQ 安全。

场景 C:恶意 operator/coordinator 获得量子能力

在普通 MACI 中,operator 本就能解密投票消息以完成计票;aMACI 的价值在于降低 operator 对身份关联的认知能力。量子能力会让 operator 从公开 old public keys 恢复 old private keys,并计算 public nullifier,从而把 old identity/key 与 new key/deactivation 流程关联起来。(ethresear.ch)

结果:aMACI 相对 MACI 增强的匿名性在 PQ 模型下被严重削弱。

场景 D:伪造 zkSNARK proof 或破坏 tally soundness

aMACI 合约使用 BN254 Groth16 verifier。Groth16 在经典模型下可高效证明电路约束被满足;但在量子模型下,底层 pairing curve assumptions 不成立。攻击者若能够攻击证明系统所依赖的群假设,则可能构造 verifier 接受但 witness/statement 不真实的 proof。(raw.githubusercontent.com)

结果:链上 proof acceptance 不再提供 post-quantum tally correctness guarantee。

场景 E:Dora Vota 基础链与 aMACI 叠加风险

即使 aMACI 协议本身修补了某些应用层问题,部署在 Dora Vota 上时仍继承 Dora Vota 基础链的非 PQ 安全态势:交易签名、validator signatures、IBC security、治理和合约调用入口都不是 post-quantum secure。(raw.githubusercontent.com)

结果:aMACI 的 PQ 安全不能单独脱离底层链讨论。


10. aMACI 组件级风险


组件

当前原语

经典安全目标

PQ 评级

量子风险

Voter keypair

BabyJubJub scalar multiplication

用户身份/签名密钥

公钥可导出私钥

Coordinator keypair

BabyJubJub scalar multiplication

消息解密、处理证明

coordinator private key 可恢复

Message encryption

ECDH + Poseidon cipher

外部不可读投票消息

ECDH shared key 可恢复

Command signature

EdDSA-Poseidon

投票指令认证

签名可伪造

ElGamal rerandomization

BabyJubJub ElGamal

old/new key unlinkability

DLP 破坏隐藏性

Nullifier

Poseidon(oldPrivateKey, pollId)

防重复且隐藏 old key

低/中

oldPrivateKey 可恢复后可匹配

Message hash chain

Poseidon hash

消息顺序/完整性

主要受 Grover 泛型影响

Merkle/quinary trees

Poseidon hash

状态/路径一致性

非主要短板

Tally commitment

Poseidon/hash commitments

计票承诺一致性

哈希层相对稳健

Groth16 proof

BN254 pairing SNARK

电路执行正确性

pairing assumptions 非 PQ

CosmWasm verifier

BN254 Groth16 verify

链上 proof 验证

接受结果不具 PQ soundness

Dora Vota 交易/共识

secp256k1/Ed25519 等

链级认证/finality

签名可被量子破坏


11. aMACI 哪些部分“相对抗量子”

严格说,当前 aMACI 不能称为 post-quantum secure。但为了区分风险重点,可以说以下组件 相对不是第一优先级的量子薄弱点

  1. SHA-256 input hash compression

    inputHash 使用 SHA-256 或 hash compression 将 public inputs 压缩给 verifier。SHA-256 在量子模型下面临 Grover 加速,但不是像 ECDH/ECDSA 那样被 Shor 直接击穿。(raw.githubusercontent.com)

  2. Poseidon Merkle trees / message hash chains

    Poseidon-based Merkle tree、message hash chain、state root、tally commitment 在量子模型下主要面对泛型搜索加速。它们仍需保守参数分析,但不是 aMACI 最主要 PQ 失败点。(github.com)

  3. pollId、nonce、balance、vote option validation

    这些是协议级约束,不直接依赖椭圆曲线难题。它们在经典模型下对 replay、跨 poll 复用、非法 vote option、余额不足等问题有效。但一旦签名私钥可被恢复,它们只能约束消息格式,不能防止合法格式的伪造消息。(github.com)


12. 最终判断

Dora Vota

Dora Vota 的基础链抗量子性评级为:

原因很明确:它是 Cosmos/CometBFT 架构,链级安全依赖传统公钥签名。用户交易、验证人共识、IBC finality、治理操作、合约调用入口都需要非 PQ 签名体系。哈希和 Merkle 状态承诺相对稳健,但无法弥补账户与共识层的量子脆弱性。

一句话总结:

Dora Vota 在经典安全模型下是标准 Cosmos appchain;在 post-quantum 模型下,基础认证与共识层不是抗量子的。

aMACI

aMACI 的协议/电路抗量子性评级为:

它的经典设计相当完整:有 encrypted commands、EdDSA-Poseidon 认证、ECDH shared key、ElGamal rerandomization、nullifier、deactivation root、active state、message hash chain、state/tally commitments、Groth16 proof。但这些关键安全属性大多建立在 BabyJubJub 和 BN254 这类非 PQ 原语上。

最严重的三类问题是:

  1. 长期隐私失败:历史 encrypted messages 可被 harvest-now-decrypt-later,带来强迫投票和买票风险。
  2. 匿名性失败:old private key 可由 old public key 恢复后,public nullifier 可被匹配,old/new key unlinkability 被破坏。
  3. 证明 soundness 失败:Groth16/BN254 不是 post-quantum proof system,链上 verifier 的接受结果不提供 PQ 级正确性保证。

一句话总结:

aMACI 是一个强经典安全设计,但不是 post-quantum 匿名投票协议;在 CRQC 模型下,它的隐私、匿名性、认证和证明正确性都会受到根本性影响。


13. 最简评级表


项目

子系统

抗量子评级

主要原因

Dora Vota

账户签名

secp256k1/Ed25519 等传统签名

Dora Vota

共识签名

CometBFT validator signatures 非 PQ

Dora Vota

IBC

继承对端链 validator signatures

Dora Vota

状态哈希/Merkle

Grover 影响,但非主要短板

aMACI

消息加密

BabyJubJub ECDH 非 PQ

aMACI

用户认证

EdDSA-Poseidon 非 PQ

aMACI

deactivation/new key 匿名

ElGamal + nullifier 依赖 oldPrivateKey 隐藏

aMACI

zkSNARK correctness

Groth16/BN254 非 PQ

aMACI

Merkle/hash commitments

哈希型组件相对稳健

aMACI

整体协议

核心安全属性依赖非 PQ 公钥密码和 pairing SNARK

最终结论:

Dora Vota 与 aMACI 当前都不能被描述为 post-quantum secure。Dora Vota 的短板在链级签名/共识/IBC;aMACI 的短板更集中在 BabyJubJub ECDH、EdDSA-Poseidon、ElGamal rerandomization、BN254 Groth16。aMACI 的哈希、Merkle、nonce、pollId、commitment 设计在经典协议层面是有条理的,但它们无法抵消椭圆曲线和 pairing-based proof system 在量子模型下的根本脆弱性。