Signature

為什麼互動式零知識證明是可否認的?

  • August 26, 2022

在閱讀互動式和非互動式零知識證明的比較時,我發現非互動式零知識證明與互動式零知識證明相比是不可否認的。

是什麼讓互動式零知識證明可否認,以及在將其轉換為非互動式時該屬性如何失去?

(例如,使用 Fiat-Shamir 變換)

讓我們從互動式ZKP 開始:零知識通過存在一個模擬器來證明,該模擬器能夠產生與實際 ZKP 執行所獲得的副本無法區分的副本,即使模擬器不知道見證人(所以是秘密數據)由 Prover 持有。所以模擬器可以“作弊”:但要做到這一點,它具有“超能力”,本質上意味著它不需要遵守協議為各方之間交換消息而製定的規則。

因此,據說互動式 ZKP 對不參與實際證明的第三方是可否認的(並且僅在可能執行協議之後檢查證明記錄),因為有興趣否認證明的人總是可以假裝記錄只是來自模擬器:互動式 ZKP 可以拒絕第三方,因為它們是不可轉讓的,因為它們的魔力依賴於遵循協議規則的“實時”消息交換。

非互動式 ZKP的存在是因為有一個協議不要求 Prover 和 Verifier 同時線上非常有用,所以成績單只是 Prover 線上留下的一堆消息,供 Verifier 檢查它時使用:所以它在設計上是可傳輸的,但這當然意味著證明者一旦發布證明就不能否認證明(否則證明將無用;-))

為什麼Simulator -trick 生成的成績單不適用於 Fiat-Shamir NIZK?因為在這種情況下,模擬器需要對Random Oracle 進行程式,而在該模型中,Random Oracle 是由 Prover 和 Verifier 呼叫的**單個外部實體;**但是實現(這裡是 Fiat Shamir 的啟發式方面)使用雜湊函式作為 RO,在 Prover 和 Verifier 中作為同一算法的獨立實例出現。而且我們也說過 Verifier 可能會在很長一段時間後出現,所以:獨立的實例,而不是同時線上:在我們的現實世界中,Simulator 確實無法影響 Verifier 的雜湊程式。

所以我們這裡的“超出協議規則”的模擬器是一個離我們實現模型很遠的實體,但是理想模型和現實世界之間的差異不會影響成績單的統計不可區分性,所以這足以證明零-知識;而現實世界的雜湊處理不可否認性(具有“未程式”雜湊的驗證者無法就模擬器的成績單達成一致):之前的“設計”在這裡,作為副作用。當然,這為實際 Fiat-Shamir 實現的安全性打開了一個巨大的漏洞,但我想這是另一回事……

引用自:https://crypto.stackexchange.com/questions/101632