Zero-Knowledge-Proofs
SNARK 寄存器的線性組合 IOP
斯塔克論文說
我們的 ZK-STARK 對每個寄存器使用單獨的 Reed-Solomon 碼字,從而產生
w
許多碼字,每個碼字的度數都較低n · c
。乍一看,這種權衡似乎很浪費,因為我們現在必須為這些w
程式碼字中的每一個解決一個 RPT 問題。然而,IOP 模型允許的隨機性的互動和使用再次幫助我們:它足以解決單個 RPT 問題,應用於所有w
碼字的隨機線性組合。我的理解是
- 證明者發送一個包含每個寄存器的踪蹟的預言,據稱被編碼為一個程式碼字。
- 驗證者為每個寄存器選擇一個隨機係數。
- 證明者使用#2 中的係數發送一個據稱包含這些寄存器軌蹟的線性組合的預言。
- 驗證者以某種方式測試兩個預言機之間的一致性。
然後有一個 IOPP 來讓驗證者相信線性組合接近一個碼字。如果是這樣,那麼每個寄存器的軌跡很可能接近一個碼字。
我的問題是,一致性測試(#4)如何工作?如果驗證者已經確信每個寄存器跟踪都是一個程式碼字,那麼驗證者就會知道線性組合是正確的,或者在許多索引處都不正確。所以他們可以在少數指標上測試一致性,如果這些指標是正確的,那麼整個線性組合一定是正確的,機率很高。
但在這種情況下,上述技術似乎無濟於事,因為驗證者尚未確信每個寄存器跟踪都接近一個程式碼字。那麼驗證者如何測試所謂的線性組合是否正確呢?
證明者不會像您在 #3 中建議的那樣發送另一個預言機。相反,雙方都為作為隨機線性組合(在#2 中選擇的隨機係數)的函式呼叫 FRI 協議。現在,通過查詢所有 oracles #1 併計算線性組合 #2(這是驗證者所做的)來回答您在 #3 中引用的函式的每個查詢。因此,該函式的健全性誤差為 0,並且通過構造具有完美的一致性。