加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > Luna > Info

zkEVM系列第一篇:Polygon zkEVM的整體架構和交易執行流程_atc:bitwatchtoken

Author:

Time:1900/1/1 0:00:00

來源:Binary DAO

Author: 0xhhh(Twitter:@hhh69251498 )

Editor:Red One

本文是Polygon zkEVM系列文章的第一篇,簡要闡述了Polygon zkEVM的整體架構和交易執行流程,并且分析了Polygon zkEVM是如何實現計算擴容并同時繼承以太坊的安全性的。

3月27日,Polygon zkEVM主網測試版本正式上線,Vitalik 在上面完成了第一筆交易。

同時還會在接下來兩篇文章里詳細介紹Polygon zkEVM的zkEVM Bridge和zkEVM的設計細節,以及Polygon zkEVM接下來的去中心化Sequencer的路線圖。

首先,我們需要明確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 的執行對應交易后的狀態是正確的)。

參考以太坊官方定義:

https://ethereum.org/en/developers/docs/scaling/#rollups

Zero-knowledge Rollup 和 Optimistic Rollup 最大的區別就是由于驗證狀態有效性的不同方式導致達成 Finality 的時間不同;

DeFi借貸協議Timeswap已上線Polygon zkEVM:7月21日消息,DeFi借貸協議Timeswap在推特上表示,已上線Polygon zkEVM。

據悉,Timeswap已部署至 Polygon、以太坊、Arbitrum One和Mantle Network。[2023/7/21 15:51:02]

Optimistic Rollup 樂觀的認為提交到 Ethereum 上的交易和狀態都是正確的,所以存在7天的挑戰期(達成Finality的時間是7天),期間任何人發現在 Ethereum 上的交易對應狀態不正確都可以通過提交正確的狀態進行挑戰。

Zero-knowledge Rollup( zk-Rollup ) 達成 Finality 的時間,則取決于:交易對應的有效性證明( Validity Proof )提交到以太坊并且驗證通過所花費的時間。目前可能在1個小時左右的Finality居多(因為需要考慮到Gas成本問題)。

接下來我們以一個簡單的交易被確認流程來看看 Polygon zkEVM是怎么工作的,從而對整體協議有一個具體的理解,它的整個過程可以主要分為三個步驟:

1. Sequencer 將多個用戶交易打包成 Batch 提交到L1的合約上;

2. Prover 為每筆交易生成有效性證明(Validity Proof),并將多個交易的有效性證明聚合成一個有效性證明;

3. Aggregator 提交聚合了多個交易的有效性證明(Validity Proof) 到 L1 的合約中。

1 Sequencer 將用戶交易打包成 Batch 提交到 L1 合約上.

1) 用戶將交易發送給Sequencer,Sequencer會在本地按照收到交易的快慢順序進行處理(FRFS),當Sequencer在本地將交易執行成功后,如果用戶相信Sequencer是誠實的,那么他可以認為這個時候的交易已經達成了Finality。這里需要注意,目前大多數Sequencer內部的Mempool(交易池)都是私有的,所以暫時可以獲取的MEV是比較少的。

Aave社區關于在zkEVM主網上部署Aave V3 MVP版本的ARFC提案現已開啟投票:3月26日消息,Aave 社區關于在 zkEVM 主網上部署 Aave V3 的 MVP 版本的 ARFC 提案現已開啟投票,zkEVM 是由 Polygon 團隊開發的 EVM 等效 zk-rollup L2,預計將于 3 月 27 日部署,Aave V3 已成功部署在 ZkEVM 測試網上大約 6 個月。該 ARFC 提案應被視為溫度檢查,允許開發和風險服務提供商對 zkEVM 網絡進行更深入的分析,將于 3 月 29 日 18:00 結束投票。[2023/3/26 13:27:34]

2) Sequencer 會將多筆交易打包進一個Batch里(目前是一個Batch里只包含一個交易) 然后在收集到多個Batches之后, 通過L1上的 PolygonZKEvm.sol的SequenceBatch()函數將多個Batches一起送到L1的交易Calldata上。

(需要注意這里一次性提交多個Batches是為了盡可能減少L1的Gas消耗)

3) 當PolygonZkEvm.sol 收到 Sequencer 提供的 Batches 后,它會依次在合約內計算每個Batch的哈希,然后在后一個Batch里記錄前一個Batch的哈希,于是我們就得到了下圖的Batch結構。

4) 每個Batch里的交易順序也是確定的,所以當Batch的順序確定之后,我們認為所有被包含在Batch提交到L1的 Polygon zkEVM合約的交易的順序都被確定了。

以上實際過程也是L1充當Rollup DA層需要完成的工作(這個時候并沒有完成任何狀態檢驗或推進的工作)。

多鏈DEX ZKEX已上線測試網2.0版本,并推出用戶激勵計劃:1月9日消息,Layer2零知識證明多鏈訂單薄DEX ZKEX已上線測試網2.0版本,更新包括:交易執行速度提高10倍的新匹配引擎、對移動端友好的界面設計,移動端錢包存款功能,地址簿,更多代幣以及在L2網絡上更高的可靠性和正常運行時間。此外,ZKEX推出用戶改進激勵計劃,完成任務提供反饋者有機會獲得積分、NFT、空投贈品等獎勵。[2023/1/9 11:02:27]

2. Aggregator 為多個Batch的交易生成 Validity Proof

1) 當Aggregator監聽到L1的 PolyonZKEVM.sol 合約中已經有新的 Batch 被成功的提交之后,它會把這些 Batch 同步到自己的節點里,然后給 zkProver 發送這些交易。

2) zkProver 接收到這些交易之后會并行為每筆交易生成 Validity Proof,再將多個Batch包含的交易的 Validity Proof再聚合成一個有效性證明(Validity Proof)。

3) zkProver 將聚合多個交易的Validity Proof發送給 Aggregator。

3. Aggregator 提交聚合證明到 L1 的合約

Aggregator 會將這個有效性證明(Validity Proof)以及對應的這些 Batch 執行后的狀態一起提交到 L1 的Polygon zkEvm.sol 合約內,通過調用以下方法:

合約內接下來會執行以下操作來驗證狀態轉換是否正確。

Reddio創始人兼CEO:不認為zkEVM重要:金色財經現場報道,在Coinlive舉辦的峰會上,Reddio的創始人兼首席執行官Neil Han以“2022年及以后的Layer 2生態”為主題發表了演講。他說第1層以太坊的問題是擴容,并比較了Layer2主要生態StarkNet, zkSync和Scroll。三難困境包括性能、可組合性和去中心化。他表示,他不認為layer2要為了兼容zvm而犧牲性能。他最后介紹了Reddio如何幫助Web2開發者幾分鐘就可以集成Layer2,即便是不兼容evm的layer2。[2022/12/22 22:01:21]

當這一步在L1合約內執行成功時,這部分batch包含的所有交易也就真正達成了Finality(對應OP的7天挑戰期結束)。

上文我們已經了解了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的新狀態。

Scroll聯創張燁公布路線圖:將在zkEVM主網上線后部署去中心化排序器:9月22日消息,在萬向區塊鏈實驗室主辦的第八屆區塊鏈全球峰會上,Scroll聯合創始人張燁發表《Scroll的設計與架構》主旨演講,Scroll正在建立一個EVM等效的ZK Rollup,其設計決策遵循安全性、效率、EVM等效性和去中心化,其架構由Scroll節點、鏈上的智能合約、去中心化的證明器網絡三部分組成。Scroll當前已經完成了預Alpha的測試網,接下來第二階段將邀請開發者基于其網絡部署一些智能合約,并且開發一些額外的應用;第三階段將啟動二層證明的外包,邀請社區參與成為證明節點;第四個階段到達zkEVM主網階段,將在經過嚴格的代碼審計以及性能提升后部署并且上線主網;第五個階段將部署去中心化的排序器,從而使得zkEVM更加高效。[2022/9/22 7:14:15]

如果從模塊化的角度來看,Polygon zkEVM 屬于Smart Contract Rollup 類型,我們可以嘗試解構下它的各個模塊,從 Delphi 給的圖中, 我們也可以看出實際上 Polygon ZkEVM 作為 Smart Contrat Rollup的Consensus Layer,DA Layer 和 Settlement Layer其實都是耦合在PolygonZkEVM.sol合約中,并不能很好的區分。但是我們嘗試著去解構各個模塊:

數據可用層(Data Availability Layer): Rollup交易存放的地方,對于Polygon-zkEVM來說,當Sequencer調用SequenceBatch()方法的時候,實際上就包含了往DA層提交交易數據。

結算層(Settlement Layer): 具體指的是Rollup和L1之間的資金流動機制,具體指的是Polygon-zkEVM的官方橋(在下一篇文章會有詳細介紹)。

共識層(Consensus Layer): 包含交易排序和如何確定下一個合法狀態(分叉選擇),Sequencer 調用L1合約中的SequenceBatch()的時候完成了交易排序的工作,當Aggregator調用L1合約中的TustedVerifyBatches()的時候完成了確認下一個合法狀態的工作。

執行層(Execution Layer): 執行交易并且得到新的世界狀態,當用戶向Sequencer提交交易,并且Sequencer執行完之后得到新狀態的過程(所以我們往往說Rollup是計算擴容,因為L1把執行交易得出新狀態的這個過程外包給了Rollup,同時Sequencer會通過Aggregator委托zkProver幫忙生成Validity Proof。

從上面介紹的整體流程上看,實際上Sequencer做了類似以太坊 Proposer的工作,提議了一批交易是有效交易,并且給出了這批交易執行后的新狀態;而L1合約的驗證邏輯,相當于所有L1的Validator都會在自己的以太坊客戶端里執行一遍,實際上是所有的以太坊驗證者充當了Rollup的驗證者,因此我們認為 Polygon zkEVM 繼承了以太坊的安全性。

從另外一個角度上看,因為Rollup的所有交易以及狀態都存儲在以太坊上,所以即便Polygon zkEVM 這個團隊跑路了,任何人都還是有能力依托以太坊上存儲的數據,恢復整個Rollup網絡。

Rollup激勵機制主要指的是如何讓Sequencer和Aggregator有利可圖,從而保持持續性的工作的?

首先用戶需要支付自己在Rollup上的交易手續費,這部分的手續費是采用ETH計價的,用Bridged ETH支付。

Sequencer 則需要支付這些包含Rollup交易的Batch上傳到L1交易的Calldata上的成本(調用SequenceBatch(batches()的成本),同時需要在上傳Batch的同時支付一定的Matic到L1合約中,用于之后支付Aggregator為這些Batches提供Validity Proof的成本。

Aggregator 在調用trusted VerifyBatches 為L1合約內還沒有被Finality的Batches提供Validity Proof的同時,也可以取出Sequencer提前支付在合約內的MATIC代幣,作為提供Validity Proof的報酬。

Sequencer的收入 = Rollup所有交易的Gas費用 - 將Batches上傳到L1花費的L1網絡Gas費用 - 支付給Aggregator的證明費用(MATIC計價)。

Aggregator的收入 = Sequencer支付的MATIC報酬 - 提交到Validity Proof到 L1的Gas費用 - Validity Proof生成花費的硬件費用。

調整支付給Aggregator的證明費用,同時為了避免Sequencer因為無利可圖罷工,提供了以下的機制來調整Sequencer支付給Aggregator 的證明費用。

合約中存在這樣一個方法用來調整為Batch提供證明的費用:

function _updateBatchFee(uint64 newLastVerifiedBatch) internal

它會更改合約中一個名為BatchFee的變量,而這個變量決定了Sequencer為每個Batch支付的MATIC代幣數量。

更改機制如下:

合約中維護了這樣一個變量VeryBatchTimeTarget ,代表每個Batch被Sequencer提交到L1之后期望在這個時間內被驗證狀態。

合約內會記錄所有超過了VeryBatchTimeTarget之后還沒有被驗證狀態的Batches, 并且將這些Batches的總數量記為DiffBatches。

于是當有Batches遲到的時候,會用以下公式來調整BatchFee:

MultiplierBatchFee 是一個被限制在1000~1024范圍的數,可以通過函數setMultiplierBatchFee() 由合約管理員更改:

FunctionsetMultiplier BatchFee(uint16newMultiplierBatchFee) public onlyAdmin

需要注意這里的 采用MultiplierBatchFee 和10^3是為了實現3個小數點后的調整精度。

同理假如Batches提前了也會觸發相應的batchFee調整機制:DiffBatches 表示提前驗證狀態的Batches的數量。

在這篇文章里我們梳理了Polygon zkEVM的核心機制,并分析了它實現以太坊計算擴容的可行性。有了一個整體的大綱后,在接下來的文章里我們會深入到協議內部,依次解析zkEVM Bridge的設計細節以及Sequencer的去中心化路線,zkProver的實現以及zkEVM的設計原理。

金色財經 善歐巴

金色早8點

白話區塊鏈

歐科云鏈

Odaily星球日報

Arcane Labs

MarsBit

深潮TechFlow

BTCStudy

鏈得得

Tags:atcBATTCHROLLbitwatchtokenbat注意力幣太狠了coinwatch手表價格圖片roll幣可以roll坐騎嗎

Luna
上海升級后 我們可以在哪里監控 ETH 取款量?_以太坊:SEN

作者:0×711、FYJ, BlockBeats 這幾個平臺,你用得著。 以太坊上海升級已于今晨 6 點 28 分在 Epoch 194048 高度完成.

1900/1/1 0:00:00
加密技術和人工智能可以協同工作嗎?_人工智能:比特幣

編譯:Dali@Web3CN.Pro2023年,圍繞“加密技術與人工智能”的爭論越來越多,但我認為我們不應該以消極的態度去看待這兩者的關系。對于所有的新興技術來說,這樣的爭論是不可避免的.

1900/1/1 0:00:00
Web3基礎設施:為多鏈世界做好準備_WEB:web3幣有哪些

在2022年所經歷的一切之后,我們可以合理地得出結論,建立不需要信任的基礎設施是我們前進的唯一方式。我們需要建立分散化、不需要信任和無需授權的基礎設施.

1900/1/1 0:00:00
為什么說web3域名是元宇宙基礎設施_元宇宙:區塊鏈

2021年上半年元宇宙概念出圈以來,引起社會各界廣泛關注,學者、業界、監管界、作家、投資機構等都對于如何理解元宇宙進行了深入研究,因職業不同視角而各有側重點.

1900/1/1 0:00:00
Voolacoin:引領數字資產市場新潮流_COIN:kucoin交易所上班有風險嗎

Voolacoin是一種數字資產,即將在區塊鏈領域進行布局,這對Voolacoin及其生態系統來說是一項重要的里程碑,將能夠吸引更多的投資者和交易者參與,從而增加交易活躍度和流動性.

1900/1/1 0:00:00
再獲大額融資 一文梳理Sei Network的最新進展和生態版圖_NBS:ORK

原文作者:flowie,ChainCatcher昨日,Layer 1 公鏈  Sei Network 宣布繼完成一輪估值為  8  億美元的 3.

1900/1/1 0:00:00
ads