零知識證明
可信設置
可信設置是一場一次性的儀式,產出 SNARK 在任何人能製造或驗證證明之前所需的公開參數——也就是結構化參考字串(SRS)。它得名的玄機在於:產生 SRS 需要抽取祕密的隨機值(通常是一個數 τ 與另外幾個),雖然只保留它們公開的「指數中」編碼,但任何學到底層祕密的人,都能偽造出仍能通過驗證的詐騙性證明。那個祕密被生動地稱作「有毒廢料」,整套系統的安全性,端賴它被銷毀且永不被重建。
有兩種風味。電路專屬設置(如 Groth16)把特定電路烤進 SRS 裡,因此每一個新的或更動過的程式都需要重辦一次儀式——安全但僵硬。通用且可更新的設置(如建立在 KZG 之上的 PLONK 或 Marlin)產出一份 SRS,可供任何不超過某尺寸上限的電路使用,並允許新參與者隨時間持續貢獻新的隨機性。關鍵在於,這些儀式以多方計算的形式進行,最終祕密是每位參與者貢獻的乘積,因此只要至少有一位誠實參與者抹除了自己那一份,有毒廢料就安全無虞——這就是「N 取 1 誠實」假設。
可信設置是人們對 SNARK 最反感的一點,因為它引入了一個信任假設與一份後勤負擔,而一場有臭蟲或心懷惡意的儀式可能會悄悄地把它破壞掉。這正是 STARK 與 Bulletproofs 藉由「透明」(它們的設置只是公開隨機性)所避開的弱點。在實務上,像 Zcash 與以太坊的 KZG 這類大型儀式,會招募數千名貢獻者,把「N 取 1」假設變得安全到壓倒性的地步。
外洩或從未被銷毀的設置祕密,並不會破壞隱私或洩漏任何人的見證——它破壞的是可靠性,讓攻擊者得以鑄造出假陳述的證明(偽造的屏蔽幣、無效的彙整批次)。這正是它被如此慎重看待的原因。
又称
另见