Zero-Knowledge-Proofs
zk-SNARK 可以用在不是 NP 問題的證明中嗎?
我對zk SNARK的理解是:通過(flattening -> R1CS -> QAP),將原命題的答案綁定到QAP的解向量s上,然後因為QAP是一個NP問題。所以如果驗證通過,驗證者就可以確定證明者知道s。並且由於NP問題,證明者知道s的唯一方法,除了運氣好,就是解決原命題
但如果原命題不是NP,證明者可能作弊
如果原始命題的答案是唯一的怎麼辦?例如,我想證明我知道 x-5=0 的 x 是什麼?當然,這樣一來,QAP的維數可能太小,攻擊者可以生成很多合法的s,那麼如果我把待解方程的維數改成100萬
@Maeher 的評論指出您正在考慮的語言是 NP。
但是,您的問題的直接答案是:**我們目前沒有針對 NP 以外的語言的 zk-SNARK。**我們所擁有的是適用於 UNSAT 的實用零知識證明。因此,我們為 CoNP 提供了實用的 ZK(有關實用的具體定義,請參閱論文)。
以零知識證明 UNSAT的著作發表在CCS22 上。需要注意的是,這是 ZK 而不是 ZK-SNARK,因為我們不知道如何使論文中的協議非互動或簡潔。