You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Circom电路中非约束公开信号可否被敌手篡改?额外数据提交安全性咨询

问题解答

绝对不安全,敌手完全可以将证明中的消息替换为任意值,你的“签名”会彻底失去有效性。

原因分析

  • 非约束公开信号的核心问题是:这类信号完全不受电路约束逻辑绑定,电路只会验证H(x)=pk(x为私有原像,pk为公开哈希值),不会检查消息与原像、公钥的任何关联。
  • 在零知识证明体系中,非约束的公开信号相当于未被证明逻辑锚定的附加数据。敌手拿到你的证明后,无需知晓私有原像x,就能修改这个公开信号为任意值,且修改后的证明依然能通过电路验证——因为核心约束H(x)=pk仍满足,电路不会对消息的真实性做任何校验。

正确做法

必须将消息纳入电路的约束逻辑,把它和私有原像x绑定起来,确保证明只能对应特定的消息。常见的实现方式有两种:

  • 将消息与原像结合后哈希:在电路中计算H(x || m)(x为私有原像,m为公开消息),并将这个新哈希作为公开信号,同时保留原有的H(x)=pk约束。这样证明必须同时满足两个条件:你持有x使得H(x)=pk,且这个证明是针对特定消息m生成的。
  • 添加消息的绑定约束:将m作为公开输入信号,在电路中添加关联约束(比如让m参与与x相关的哈希计算,或作为验证逻辑的必要输入),确保m与x在证明生成过程中绑定,无法被单独替换。

内容的提问来源于stack exchange,提问作者Orny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 14:43:13