Circom 电路中的对手可以改变不受约束的公共信号吗?

Can a non-constrained public signal be changed by an adversary in a Circom circuit?

提问人:Orny 提问时间:11/8/2023 最后编辑:Orny 更新时间:11/12/2023 访问量:22

问:

我有一个电路来验证证明器是否具有哈希的前映像,并且我想另外提交一些额外的数据。

有点像签名方案,其中私钥是前映像,公钥是哈希值,我想对一些消息进行签名。

将消息作为不受约束的公共信号发送到电路是否安全? (电路将验证我是否拥有哈希的前映像,其中前映像是私有信号,哈希是公共信号)

或者,攻击者可以接受我的证明并将消息(公共信号)交换为他们想要的任何值,因为它是不受约束的?

电路 CIRCOM ZK-SNARK

评论


答:

0赞 Orny 11/12/2023 #1

看起来如果我添加一个中间信号来平方公共信号,它会使其不可篡改

正如您在信号量电路中看到的那样:

    // Dummy square to prevent tampering signalHash.
    signal signalHashSquared;
    signalHashSquared <== signalHash * signalHash;

https://github.com/semaphore-protocol/semaphore/blob/main/packages/circuits/semaphore.circom#L83