Polygon zkEVM的整體架構和交易執行流程
BlockBeats 律動財經 2023-03-29 19:03
3 月 27 日,Polygon zkEVM 主網測試版本正式上線,Vitalik 在上面完成了第一筆交易。
本文是 Polygon zkEVM 系列文章的第一篇,簡要闡述了 Polygon zkEVM 的整體架構和交易執行流程,並且分析了 Polygon zkEVM 是如何實現計算擴容並同時繼承以太坊的安全性的。
同時還會在接下來兩篇文章里詳細介紹 Polygon zkEVM 的 zkEVM Bridge 和 zkEVM 的設計細節,以及 Polygon zkEVM 接下來的去中心化 Sequencer 的路線圖。
一、Rollup 為了給以太坊實現計算擴容
首先,我們需要明確 Rollup 的大概工作原理。Rollup 的出現是為了給 Ethereum 實現計算擴容,具體的實現方法是將交易的執行外包給 Rollup,然後將交易和交易執行後的狀態 (State) 儲存在 Ethereum 的合約內,由於技術路線的不同演變出了兩種類型的 Rollup:
Optimistic Rollup
樂觀的認為發送到 Ethereum 的 Rollup 交易 (Rollup Transaction) 和對應的 Rollup 狀態 (Rollup State ) 都是正確的,任何人都可以通過提供欺詐證明 (Fraud Proof) 對還處於挑戰期的 Rollup State 進行挑戰 (Challenge)。
Zero-knowledge Rollup
ZK 會為發送到 Ethereum 的 Rollup 交易和對應的 Rollup 狀態提供一個有效性證明 (由以太坊上的合約驗證,來證明 Rollup 的執行對應交易後的狀態是正確的) 。
參考以太坊官方定義
Zero-knowledge Rollup 和 Optimistic Rollup 最大的區別就是由於驗證狀態有效性的不同方式導致達成 Finality 的時間不同;
Optimistic Rollup 樂觀的認為提交到 Ethereum 上的交易和狀態都是正確的,所以存在 7 天的挑戰期(達成 Finality 的時間是 7 天),期間任何人發現在 Ethereum 上的交易對應狀態不正確都可以通過提交正確的狀態進行挑戰。
Zero-knowledge Rollup( zk-Rollup ) 達成 Finality 的時間,則取決於:交易對應的有效性證明 ( Validity Proof ) 提交到以太坊並且驗證通過所花費的時間。目前可能在 1 個小時左右的 Finality 居多 (因為需要考慮到 Gas 成本問題)。
二、Polygon zkEVM 執行流程
接下來我們以一個簡單的交易被確認流程來看看 Polygon zkEVM 是怎麼工作的,從而對整體協議有一個具體的理解,它的整個過程可以主要分為三個步驟:
1. Sequencer 將多個用戶交易打包成 Batch 提交到 L1 的合約上;
2. Prover 為每筆交易生成有效性證明 (Validity Proof),並將多個交易的有效性證明聚合成一個有效性證明;
3. Aggregator 提交聚合了多個交易的有效性證明 (Validity Proof) 到 L1 的合約中。
3) 當 PolygonZkEvm.sol 收到 Sequencer 提供的 Batches 後,它會依次在合約內計算每個 Batch 的哈希,然後在後一個 Batch 里記錄前一個 Batch 的哈希,於是我們就得到了下圖的 Batch 結構。
4) 每個 Batch 里的交易順序也是確定的,所以當 Batch 的順序確定之後,我們認為所有被包含在 Batch 提交到 L1 的 Polygon zkEVM 合約的交易的順序都被確定了。
2. Aggregator 為多個 Batch 的交易生成 Validity Proof
1) 當 Aggregator 監聽到 L1 的 PolyonZKEVM.sol 合約中已經有新的 Batch 被成功的提交之後,它會把這些 Batch 同步到自己的節點裡,然後給 zkProver 發送這些交易。
2) zkProver 接收到這些交易之後會並行為每筆交易生成 Validity Proof,再將多個 Batch 包含的交易的 Validity Proof 再聚合成一個有效性證明 (Validity Proof)。
合約內接下來會執行以下操作來驗證狀態轉換是否正確。
當這一步在 L1 合約內執行成功時,這部分 batch 包含的所有交易也就真正達成了 Finality(對應 OP 的 7 天挑戰期結束)。
三、 Ethereum 在 Polygon-zkEVM 中充當的角色
上文我們已經了解了 Polygon zkEVM 的整體流程, 可以回顧下 Ethereum 為 Rollup 做了哪些工作:
第一步,Sequencer 將 Rollup 的交易收集起來打包成 Batch 之後,提交到 L1 的合約中。L1 不僅僅提供了 DA 層的功能,實際上還完成了一部分交易排序的功能;當你把交易提交到 Sequencer 時,交易是沒有真正被定序的,因為 Sequencer 有權力可以隨便改變交易的順序,但是當交易被包含在 Batch 里提交到 L1 合約上之後,任何人都沒有權利再修改其中的交易順序。
第二步,Aggregator 將 Validity Proof 提到 L1 合約上來達成新的狀態,Aggregator 則是類似 Proposer 的角色,合約則類似 Validator 的角色;Aggregator 提供了一個 Validity Proof 來證明一個新的狀態是正確的,並告訴 Validator 我提供的 Validity Proof 涉及哪些交易 Batch,他們都存在了 L1 的哪個位置。
接着 Validator 從合約中提取對應的 Batch,與 Validity Proof 結合在一起就可以驗證狀態轉換的合法性了,如果驗證成功實際上合約內也會更新到對應 Validity Proof 的新狀態。
五、為什麼說 Polygon-zkEVM 繼承了 L1 的安全性
從上面介紹的整體流程上看,實際上 Sequencer 做了類似以太坊 Proposer 的工作,提議了一批交易是有效交易,並且給出了這批交易執行後的新狀態;而 L1 合約的驗證邏輯,相當於所有 L1 的 Validator 都會在自己的以太坊客戶端里執行一遍,實際上是所有的以太坊驗證者充當了 Rollup 的驗證者,因此我們認為 Polygon zkEVM 繼承了以太坊的安全性。
從另外一個角度上看,因為 Rollup 的所有交易以及狀態都儲存在以太坊上,所以即便 Polygon zkEVM 這個團隊跑路了,任何人都還是有能力依託以太坊上儲存的數據,恢復整個 Rollup 網路。
六、Polygon zkEVM 激勵機制
Rollup 激勵機制主要指的是如何讓 Sequencer 和 Aggregator 有利可圖,從而保持持續性的工作的?
首先用戶需要支付自己在 Rollup 上的交易手續費,這部分的手續費是採用 ETH 計價的,用 Bridged ETH 支付。
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 加入鉅亨買幣LINE官方帳號索取免費課程
- 掌握全球財經資訊點我下載APP
文章標籤
上一篇
下一篇