前面提到過,ZKEVM 是靠兩種 Proof 所去驗證,分別為 State Proof 和 EVM Proof。
State Proof 與 EVM Proof 是相關連的概念,分別是用來在 off-chain(鏈下)證明鏈上數據的正確性,證明 (Proof) 是之中的核心概念。它提供一種方法,讓我們在其他機器不需要重新驗證所有交易,就能確認區塊或智慧合約的最終狀態是否正確。
State Proof 和 EVM Proof 主要被用來保證 Ethereum Virtual Machine (EVM) 的運行狀態和交易的執行結果的正確性。
再來分別用懶人包的形式解釋一下這兩個 Proof:
EVM Proof 的主要目標是通過驗證區塊中包含的所有交易有正確的執行結果來辯護狀態trie根的轉換是有效的。給定一個或多個交易,EVM Proof 必須確認從初始狀態到結束狀態的轉換遵循 EVM 的規則。EVM Proof 並不是直接執行所有交易,而是使用 EVM 的規則和運行軌跡來檢查狀態的合法性。
要在 EVM Proof 中證明 State 和取得狀態的正確性,可以分為幾個步驟:
State Proof 則專注於確保所有隨機讀寫存取記錄的正確性。它通過將它們首先通過它們的唯一索引進行分組,然後通過訪問順序對它們進行排序來輔助 EVM Proof。這裡的每一種操作(如 Memory, Stack, Storage 等)都有其特定的規則和約束,以確保它們的正確性。
要證明 OP (操作) 的正確性,你可以通過以下幾個方面:
在EVM Proof和State Proof的框架下,我們可以有效地驗證智慧合約和其他交易的執行是否正確、安全、並且沒有做壞事。
在這邊為前面幾篇介紹 Proof 做個簡單的解釋,整體來說 ZKEVM 就是用電路來將執行過程和結果跑一次,產出證明後提交到驗證證明的位置(可能是合約或一個程式)。而對於每個 OpCode 操作,都要用 EVM Proof 去證明執行是有效且轉換 State 的過程是可以被證明的,而這些 State 也是需要透過證明去確認讀寫操作都是正常的。