比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads

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

Author:

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

來源:BinaryDAO

Author:0xhhh

Editor:RedOne

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

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

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

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

一、Rollup為了給以太坊實現計算擴容

首先,我們需要明確Rollup的大概工作原理。Rollup的出現是為了給Ethereum實現計算擴容,具體的實現方法是將交易的執行外包給Rollup,然后將交易和交易執行后的狀態(State)存儲在Ethereum的合約內,由于技術路線的不同演變出了兩種類型的Rollup:

OptimisticRollup

樂觀的認為發送到Ethereum的Rollup交易(RollupTransaction)和對應的Rollup狀態(RollupState)都是正確的,任何人都可以通過提供欺詐證明(FraudProof)對還處于挑戰期的RollupState進行挑戰(Challenge)。

Zero-knowledgeRollup

ZK會為發送到Ethereum的Rollup交易和對應的Rollup狀態提供一個有效性證明(由以太坊上的合約驗證,來證明Rollup的執行對應交易后的狀態是正確的)。

參考以太坊官方定義:

Polygon zkEVM已修復阻礙L1資產橋接至L2的漏洞,沒有資金面臨風險:5月29日消息,Scroll 區塊鏈安全研究員 iczc 發推稱,在 Polygon zkEVM 中發現一個漏洞,并獲得來自 Web3 漏洞賞金平臺 Immunefi L2 漏洞賞金。該漏洞導致從 L1 橋接至 Polygon zkEVM(L2)的資產無法在 L2 中正確認領,從而阻礙了 L1 至 L2 的資產遷移。

iczc 在處理認領交易(claim tx)預執行結果的代碼邏輯中發現,惡意攻擊者可以通過將 Gas 費設置為非零來繞過對認領交易的「isReverted」預執行檢查,使其可以通過發送大量低成本的 claim 對定序器和驗證器進行 DoS 攻擊,從而增加計算開銷。此外,交易不會在執行后立即從池中刪除。狀態從「待定」更新為「選定」,并繼續存在于 PostgreSQL 數據庫中。目前,只有一個可信的定序器能夠從交易池中獲取交易并執行它們。因此,另一個漏洞是通過發送一個失敗的交易來惡意標記任何存款數。這將導致正確使用存款數的 認領交易被拒絕,因為存款數已經被使用。這使得新用戶無法使用 L2 網絡。Polygon zkEVM 團隊通過刪除認領交易的特定 gas 邏輯,修復了這一漏洞,沒有資金面臨風險。[2023/5/29 9:48:40]

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

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

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

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

Polygon和Immutable合作推出以太坊擴展網絡“Immutable zkEVM”:金色財經報道,Polygon和Immutable宣布建立“戰略聯盟”并合作推出一個專為Web3游戲設計的全新以太坊擴展網絡“Immutable zkEVM”,將Polygon zkEVM技術與專為基于區塊鏈的游戲設計的Immutable平臺相結合。據悉,Immutable zkEVM將在2023年第二季度末推出,不過開發人員目前已經可以開始構建軟件開發工具包 (SDK) 。Polygon和Immutable還特別澄清兩個平臺沒有合并,Polygon自己的zkEVM主網網絡將于3月27日推出測試版,而現有的基于StarkEx zk-Rollup技術的Immutable X網絡將會與新的Immutable zkEVM網絡一起運行。(Decrypt)[2023/3/21 13:16:19]

二、PolygonzkEVM執行流程

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

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

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

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

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

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

Polygon聯合創始人:zkEVM主網啟動日期已確定:金色財經報道,Polygon聯合創始人Sandeep Nailwal發推表示,剛從zkEVM主網啟動高級委員會出來,我們(已經)有主網啟動的日期。此前報道,去年12月Polygon zkEVM上線最終測試網版本,表示這是主網啟動前的最后一步。[2023/1/17 11:15:43]

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的PolygonzkEVM合約的交易的順序都被確定了。

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

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

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

ConsenSys推出用于zkEVM擴展技術的內測測試網:金色財經報道, Metamask 和 Infura 背后的區塊鏈基礎設施平臺ConsenSys為一種名為 zkEVM 的新擴展和隱私技術打開了一個私人測試網,該技術建立在以太坊之上。ConsenSys 正在使用測試網探索可能將以太坊的速度和交易成本提高 100 倍以上的潛在顛覆性技術。ZkEVM 代表零知識以太坊虛擬機。它允許開發人員使用他們在以太坊上習慣的相同工具和編碼語言構建應用程序,而無需學習零知識編碼所需的密碼學和數學技能。

自 12 月以來,ConsenSys 測試網已收到超過 150,000 份申請。測試版的參與者可以在 Goerli 測試網和 zkEVM 之間橋接資產,以測試智能合約、dapps、基礎設施和錢包。Goerli testnet 是一個流行的測試網絡,用于在實時環境中啟動新應用程序之前啟動和試驗新應用程序。[2023/1/11 11:05:03]

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

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

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

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

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

Polygon已開源Polygon zkEVM代碼,即將上線公共測試網:金色財經報道,Polygon 已開源 Polygon zkEVM 的代碼,并表示即將上線公共測試網,后續會發布更多文檔來詳細說明細節。據悉,Polygon zkEVM 可為開發人員和用戶提供EVM 等效解決方案、高性能 zk 證明機制(zk-proofs)與以太坊主網級別的安全性[2022/7/20 2:26:17]

當這一步在L1合約內執行成功時,這部分batch包含的所有交易也就真正達成了Finality。

三、Ethereum在Polygon-zkEVM中充當的角色

上文我們已經了解了PolygonzkEVM的整體流程,可以回顧下Ethereum為Rollup做了哪些工作:

第一步,Sequencer將Rollup的交易收集起來打包成Batch之后,提交到L1的合約中。L1不僅僅提供了DA層的功能,實際上還完成了一部分交易排序的功能;當你把交易提交到Sequencer時,交易是沒有真正被定序的,因為Sequencer有權力可以隨便改變交易的順序,但是當交易被包含在Batch里提交到L1合約上之后,任何人都沒有權利再修改其中的交易順序。

第二步,Aggregator將ValidityProof提到L1合約上來達成新的狀態,Aggregator則是類似Proposer的角色,合約則類似Validator的角色;Aggregator提供了一個ValidityProof來證明一個新的狀態是正確的,并告訴Validator我提供的ValidityProof涉及哪些交易Batch,他們都存在了L1的哪個位置。

接著Validator從合約中提取對應的Batch,與ValidityProof結合在一起就可以驗證狀態轉換的合法性了,如果驗證成功實際上合約內也會更新到對應ValidityProof的新狀態。

四、從模塊化的角度結構SmartContractRollup

如果從模塊化的角度來看,PolygonzkEVM屬于SmartContractRollup類型,我們可以嘗試解構下它的各個模塊,從Delphi給的圖中,我們也可以看出實際上PolygonZkEVM作為SmartContratRollup的ConsensusLayer,DALayer和SettlementLayer其實都是耦合在PolygonZkEVM.sol合約中,并不能很好的區分。但是我們嘗試著去解構各個模塊:

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

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

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

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

五、為什么說Polygon-zkEVM繼承了L1的安全性

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

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

六、PolygonzkEVM激勵機制

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

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

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

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

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

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

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

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

function_updateBatchFee(uint64newLastVerifiedBatch)internal

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

更改機制如下:

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

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

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

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

FunctionsetMultiplierBatchFee(uint16newMultiplierBatchFee)publiconlyAdmin

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

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

總結

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

Tags:BATatcTCHOLYBattle InfinityWatchDOHATCHpolygon幣價

歐易交易所app下載
NFT:早期探索:NFTFI 衍生品賽道及項目盤點 nftperp、tribe3、putty 等_XMALL價格

作者:Maverick 注:本文撰寫于2月14日,一些數據可能出現延遲過去一個月,NFT市場交易量久違地出現反彈,NFTFI也重新活躍起來.

1900/1/1 0:00:00
區塊鏈:歐洲議會經濟事務和內政委員會通過反洗錢條例_HELMET價格

3月28日消息,歐洲議會經濟事務和內政委員會的成員以99票贊成、8票反對和5票棄權投票通過反洗錢條例.

1900/1/1 0:00:00
區塊鏈:晚間必讀 | 全方位解構模塊化區塊鏈_AION

1.金色觀察|Bankless:加密游戲賽道指南吸引下一波用戶進入加密世界的將會是什么?這是Bankless團隊和許多其他degens在這輪熊市里問自己的問題.

1900/1/1 0:00:00
FACE:Facebook宣布將于4月11日起結束對數字收藏品的支持_facedao幣白皮書

金色財經報道,Facebook在其幫助中心發布公告稱,將逐步結束對數字收藏品的支持。這些變更將于2023年4月11日起開始生效。用戶第三方電子錢包內容不會受到影響.

1900/1/1 0:00:00
DAO:DAO已經“爛大街”?不 你需要區分真DAO與假DAO_makerdao是什么意思

在如今的Web3世界里,“DAO”已經失去了明確的含義。原文:《DefiningRealandFakeDAOs》byGabrielShapiro TLDR 在最純粹的形式下,“DAO”指的是一個.

1900/1/1 0:00:00
IGN:美國政府是否主導了加密友好銀行倒閉?_SILV幣

近期,加密友好銀行Silvergate、SVB和Signature相繼關閉,讓持續低迷的加密行業雪上加霜,多數人認為加密友好銀行的倒閉是銀行遭到擠兌,但也有人持不同觀點,認為是美國政府從中作梗.

1900/1/1 0:00:00
ads