SNARK 的透明設置
STARK的論文指出
第三,也是最重要的一點,ZK-PCP 是透明的(或“公共隨機性”),這意味著驗證者使用的隨機性是公開的;特別是,設置 ZK-PCP 不需要外部可信設置階段
作為其優於 SNARK 的主要優勢之一。這個聲明對我來說並不完全清楚。哪些屬性依賴於這個“公共隨機字元串”?如果他/她相信公共隨機字元串是均勻隨機選擇的,驗證者是否只“信任”收到的證明?如果不是,如果不需要信任設置,為什麼證明者不能簡單地自己選擇一個隨機字元串並將其與證明一起發送?這樣就根本沒有設置。
這是一個很好的問題。首先,請注意,一般來說,只要您希望您的證明系統處理 BPP 之外的語句,就必須使用通用隨機字元串(或任何其他形式的可信設置)來獲得任何可證明的安全保證。事實上,眾所周知,沒有任何可信設置的非互動式零知識證明只能存在於 BPP 中的語言。
因此,“某事”必然依賴於以可信方式隨機採樣的公共參考字元串。那個“東西”可以是健全性、零知識,或者兩者兼而有之(因為這是我們關心的兩個安全屬性)。對於大多數現有的證明系統,實際上兩者都需要 crs:
- 如果證明者自己選擇字元串,他可以破壞證明的可靠性(即證明不正確的陳述)
- 如果驗證者自己挑選字元串,他可以打破證明的零知識屬性。
是否可以緩解這個問題已經以抗顛覆的名義進行了研究。這是一項嘗試建構 NIZKs/SNARGs 的工作,即使公共引用字元串遭到破壞,也能保持一些安全保證。它是在這篇論文中發起的。本質上,它表明在顛覆下同時實現零知識和保持健全性是不可能的——然而,相反的方式是可能的。幾個後續(1、2 )已經建立了各種抗顛覆的 SNARG。
STARK 的透明設置基本上通過依賴 Fiat-Shamir 變換避免了這個問題;在隨機預言機模型中,實際上有可能在沒有設置任意語言的情況下擁有 NIZK,所以這就是他們所做的(簡而言之)。當然,最終,他們的非互動式參數在普通模型中沒有可證明的安全保證,而只有 ROM 中分析給出的啟發式安全保證。
所以得出結論:
- 標準 SNARG:您需要執行可信設置或找到難以操縱的全域可驗證隨機性來源(例如,最近 100 次抽籤的結果,或從太陽上的黑點中提取的隨機性,或任何您喜歡的 - 成為老實說,任何無所謂的數字都應該在實踐中起作用,所以你可以只取 Pi 的數字)。但作為交換,它們可以在標準模型中的某些(非標準)假設下被證明是安全的。
- STARKs:沒有可信的設置,你有一個可證明的安全結構,但只能在一個帶有隨機預言的理想模型中。當您用真正的散列函式替換隨機預言時,這為您提供了啟發式安全的東西,但沒有正式的安全參數。然而,它消除了尋找全球可驗證隨機性來源的負擔。