Polygon zkEVM 是一個由多篇文章組成的系列,第一篇文章簡要介紹了該協議的整體架構和交易執行流程,并分析了它如何在實現計算擴容的同時繼承以太坊的安全性。接下來的兩篇文章將詳細介紹 Polygon zkEVM 的 zkEVM Bridge 和設計細節,以及其去中心化 Sequencer 的路線圖。
- Rollup: 為以太坊實現計算擴容的技術
- 不同 Rollup 路線之間的區別
- Polygon zkEVM 的具體執行流程及整體架構
- 從模塊化
區塊鏈角度解析 Polygon zkEVM
- Polygon zkEVM 如何繼承 L1 的安全性
- Polygon zkEVM 激勵機制
首先,需要明確 Rollup 的工作原理,即將交易的執行外包給 Rollup,然后將交易和執行后的狀態存儲在以太坊
合約內,實現計算擴容。根據技術路線的不同,演變出了兩種類型的 Rollup:
- Optimistic Rollup: 樂觀認為提交到 Ethereum 上的 Rollup 交易(Rollup transaction)和對應的狀態(Rollup state)都是正確的,存在 7 天的挑戰期,期間任何人發現不正確的交易對應狀態都可進行挑戰。
- Zero-knowledge Rollup: 為 Rollup 交易和狀態提供有效性證明,時間取決于有效性證明提交到以太坊并驗證通過的時間。
Zero-knowledge Rollup 和 Optimistic Rollup 最大的區別在于達成 finality 的時間,即樂觀認為提交到 Ethereum 上的交易和狀態都是正確的,所以存在挑戰期;而 Zero-knowledge Rollup 則取決于有效性證明提交到以太坊并且驗證通過所花費的時間。
接下來以一個簡單的交易確認流程來了解 Polygon zkEVM 如何工作:
整個過程分為三個步驟:
1. Sequencer 將多個用戶交易打包成 Batch 提交到 L1 的合約上。
2. Prover 為每筆交易生成有效性證明,并將多個交易的有效性證明聚合成一個有效性證明。
3. Aggregator 提交聚合多個交易的有效性證明到 L1 的合約中。
具體流程如下:
1)Sequencer 將用戶交易打包成 Batch 提交到 L1 合約上
- 用戶將交易發送給 Sequencer,在 Sequencer 內部的 Mempool(交易池)中按收到的時間順序進行處理,當 Sequencer 在本地將交易執行成功后,如果用戶相信 Sequencer 是誠實的,那么這個時候的交易已經達成 finality 。
- Sequencer 會將多筆交易打包進一個 Batch 里,然后在收集到多個 Batches 之后,通過 L1 上的 PolygonZKEvm.sol 的 sequenceBatch 函數將多個 Batch 一起送到 L1 的交易 calldata 上。
以上是 Polygon zkEVM 簡介及其工作原理總結。