硬核科普:以動物園為例,剖析 zkSync 電路工作原理

浩天
2024-03-04 10:29:29
收藏
一個複雜電路就是形形色色的邏輯門和規則共同構建。

作者:Haotian

不少人看了@zkSync 新發的動物園科普圖文大呼懵圈,把動物園比做電路 circuit,把擁有特殊技能的動物視為「邏輯門 Gate」,把動物們都開心的合影當成「證明 Proof」,這樣輸入電路的數據在不透露具體內容的前提下,經過一系列複雜計算,生成一個 Proof,就完成一次零知識證明過程。來,我試著硬核科普一下:

1)動物園對應的是「電路」,電路其實是一系列邏輯門約束(加、減、乘、除等公式)的聚合,相當於所有動物們能力的一次集中表現,它也是構成計算機的基本元素。因此傳入電路的「數據」一定可被套進各種公式內被執行運算。

在 layer2 環境都是一些交易哈希值、賬戶、數據餘額之類的數據,這些數據可以轉變成公式進行計算,若不能公式化則需進行其他編碼轉化讓其原始數據可以變成公式,這是電路執行處理的前提。

2)各種動物對應電路裡的邏輯門,在動物園模式裡,分別有:木箱------代表不公開顯示的數字,被稱之為「變量」;玻璃箱------代表公開顯示的數字,為「公開輸入」;石頭------代表無法移動的數字,被視為「常數」;

斑馬具有比較兩個數是否「相等」的能力,結果相等斑馬就開心;鱷魚則表示「小於」,只有右邊的數小於左邊的數,鱷魚才會開心;蜘蛛代表更複雜的多選擇門,輸入 0 則返回一定是 true,輸入 1 則返回是 false;此外還可以讓河狸表示除法、松鼠指代百分比;毛毛蟲代表加法等等。不同的動物代表不同的加減乘除運算公式,動物們開心或傷心代表公式運算的結構。

很多個動物 + 不同種類的箱子組合起來就是一個電路,比如:要計算一個公式 2 x + 3 = Y,x 代表木箱,Y 代表石頭,2 個木箱 和毛毛蟲、斑馬等前來工作,最後來驗證該公式是否成立。注意,不用糾結為啥不同動物具備不同能力,這就是電路元素工作基礎原理,是計算機執行計算的基本規則。

一個複雜電路就是形形色色的動物(邏輯門)和箱子(規則)共同構建。

3)假設剛才輸入的公式 2x+3 =Y 成立了,相當於斑馬 毛毛蟲等動物都開心了,然後就會為該公式生成一個「Proof」,需要有一個角色能識別這個 Proof 是否準確才行。因此,為了確保證明的可信性,動物園管理員即電路的構建者,模擬了一個特別的動物叫 Zeek,Zeek 能看出其他動物是否開心,在 layer2 系統中相當於 Verifier。

Zeek 觀察動物是否開心的過程其實就是 Prover 系統的驗證過程,都開心了則驗證通過,Proof 證明才會真正通過上傳到主網,並最終確認。當然,動物園成千上萬的動物,產生大量證明,Zeek 不可能挨個看,因此 Zeek 也可以觀察千千萬萬個 Zeek 自己的分身狀態是否開心,這個過程就叫 Recursive Proof 递归证明。

4)拍照的過程相當於生成 SNARK 證明或 KZG 承諾的過程,而打印的底片則相當於 STARK\SNARK 證明本身,動物園的遊客相當於一個個進入的 Transaction 交易,只有動物開心合照才會完成並生成 Proof 證明,最終遊客拿著照片出了動物園留底證明才能被上鏈最終確定。

一個動物園有很多動物,不可能同時都開心並按照預定規則工作,有很多邏輯門,也難免會出現掉線等情況。這樣就會出現一些,擁堵卡頓以及報錯的情況,因此會產生無效的狀態轉化,Under- Constrained,也就無法通過最終的驗證。

鏈捕手ChainCatcher提醒,請廣大讀者理性看待區塊鏈,切實提高風險意識,警惕各類虛擬代幣發行與炒作,站內所有內容僅係市場信息或相關方觀點,不構成任何形式投資建議。如發現站內內容含敏感信息,可點擊“舉報”,我們會及時處理。
banner
ChainCatcher 與創新者共建Web3世界