一文看懂 Polygon zkEVM Etrog 升级

深潮發佈於 2024-08-07更新於 2024-08-07

此次更新提升了 Polygon zkEVM 与 Ethereum 的兼容度,为节点的执行、查询效率带来了巨大的优化,也拓宽了 Polygon CDK 生态的可能性。

Etrog 升级概览

Polygon zkEVM 的 Etrog 升级于 2024 年 2 月完成。该升级是 Polygon zkEVM 自主网上线以来最重大的一个升级,它不仅在底层电路完成了数个预编译合约的支持,也优化了链本身的打包、出块机制,同时重构了整个合约架构,为后续的 Polygon CDK 生态,以及 AggLayer、Unified Bridge 等新特性提供了基础。整体而言,这次更新提升了 Polygon zkEVM 与 Ethereum 的兼容度,为节点的执行、查询效率带来了巨大的优化,也拓宽了 Polygon CDK 生态的可能性。

本文将从Polygon zkEVM 合约和节点代码的视角出发,深入剖析此次升级的技术细节,同时基于开源的 Rollup 升级方案,全面梳理并补全 CDK Validium 早期版本向 Etrog 版本的升级路径。

合约重构

在 Etrog 升级之前,Polygon zkEVM 的合约主要由共识合约与桥合约两个部分组成。

共识合约

共识合约会记录二层链的大部分信息,包括链 ID、版本等一些基本信息以及 batch 、证明提交记录等二层链的实时状态信息。另外,对于 Validium 而言,batch 内的原始交易数据不会记录在共识合约内,而是通过一个额外的 committee 合约在链下的 DA 节点组内保存。通过结合这些基本信息和实时状态信息,任意一个人都能完整恢复一份二层链的状态。

桥合约

另一方面,桥合约则使用一组退出根状态管理、记录所有一层和二层之间的跨链状态,并通过 Lock/Mint 的模式完成一二层之间的资产流动。退出根的子节点由桥合约和共识合约同时更新,前者维护一层到二层的 deposit 交易状态,后者通过 ZK 证明的提交维护二层到一层到 withdraw 状态。

Etrog 升级在合约层面上带来的最大改动是引入了一套多网络方案,使用一套合约支持多个,而非原来的单个二层网络的管理和维护,同时依靠新引入的 Unified Bridge 打通这些二层网络之间的资产互操作性,为整体生态的未来发展提供了更好的基础。

由于原本的合约结构并不支持多网络的部署,Etrog 升级对整体合约结构都进行了重构

  1. 引入了 RollupManger 合约管理所有二层网络信息;

  2. 修改了桥合约和 GlobalExitRoot 的结构,使其能够维护所有网络的跨链状态,以保证不同二层网络间的资产互操作。

详细合约结构可参考

对于运行在 Etrog 版本以下的 Polygon zkEVM 二层网络而言,这些修改对合约数据具有很强的破坏性,因此对应的升级方案是一个不小的挑战。这里我们依旧从共识合约和桥合约两部分分别详细介绍升级方案背后的具体细节。

共识合约

Etrog 升级在共识合约部分最大的改动就是引入了一个全新的 RollupManager 合约。由于新版本中大部分的权限管理等合约操作集中在新引入的 RollupManager 合约内,因此在 Polygon 官方的升级方案中,会将原有的 Polygon zkEVM 代理的实现更新为 RollupManager 合约,同时将一个新部署的子网络合约 PolygonZkEVMExistentEtrog 作为原网络的新共识合约,并在新 RollupManger 合约的初始化调用时写入 Rollup 网络的全局信息。该 PolygonZkEVMExistentEtrog 相比于 Etrog 升级后通常的二层网络合约 PolygonZkEVMEtrog 多实现了一个 initializeUpgrade 方法,用于升级过程中的过渡逻辑。

为了保证升级后代理合约变量的 slot 一致,RollupManager 继承了一个专门用于存放旧版变量的 LegacyZKEVMStateVariables 合约。另一方面,为了保证升级前后 batch 状态的一致,RollupManager 也在初始化的时候进行了一系列操作,将历史数据重新赋值到新的合约中,并按照升级后的规则在一层产生了一个 forcedBatch 作为 Etrog 升级的过渡 batch,供节点处理。

桥合约

Etrog 升级给桥合约提供了自定义 gas token 的功能,同时也修改了 globalExitRoot 的生成方案,保证原有数据一致的情况下兼容多个二层链的退出根的更新,以实现多二层间的资产互操作。

节点更新

在节点方面,Etrog 升级主要更新了 sequencer、synchronizer 两个模块,同时也更新了合约 abi,用于和新版本的合约进行交互。

sequencer 模块

  1. 此次升级修改了区块与 batch 的打包逻辑。在 Etrog 之前,每个二层的区块都只包含一笔交易,且区块时间和区块所在的 batch 时间是一致的。这样的设计与以太坊的模式差别较大,对于链上应用而言,常用的依照区块遍历交易的逻辑非常不兼容。因此在 Etrog 升级后,整个二层区块的打包逻辑都进行了调整,改为了固定时间出块,且单个区块能够包含多笔交易,改善了历史版本中的不兼容问题。

  2. synchronizer 模块

Etrog 的改动则分为两块。首先是适配新版合约的事件及相应处理逻辑,包括如何处理过渡 batch,如何处理新的 batch/proof 提交事件及 info_tree 更新事件等。另一部分则是对整体的同步逻辑做了重构。在 Etrog 前的版本,同步逻辑整体是串行的。对于 permissionless 的节点而言,需要等待一层数据按照 batch 顺序完全同步完成后才会继续从主节点同步待提交的数据。这使得这些节点和主节点的数据之间总是会存在一个延迟。Etrog 升级将这部分逻辑完全进行了重构,将一层、二层的同步任务拆分到了各自的线程之中进行管理,在解决上述延迟问题的同时,也加快了一层数据的同步效率。

Lumoz 的 CDK Validium 升级

常规 zkEVM 网络可以完全使用官方仓库的开源代码完成升级流程,但官方并未支持 Validium 的升级方案。Lumoz 团队经过调研、开发,完成了 Validium 的升级方案,并成功进行了基于 CDK Validium 的数个测试网和 Merlin 主网的升级。本节会主要介绍对 Validium 具体的升级路径。

代码实现

合约方面

Validium 的升级方案可以基本参照官方 Rollup 的改动,实现一个为 Validium 共识合约使用的 PolygonValidiumExistentEtrog 合约。这个合约会基于原版的 CDKValidium 合约,和 zkEVMExistentEtrog 一样需要实现一个 initializeUpgrade 方法,在升级交易的执行过程中继承历史数据,并产生一个升级 batch 给节点处理。和 zkEVM 不一样的地方是,新版 CDK Validium 的 DataCommittee 地址会由新部署的 PolygonValidiumExistentEtrog 合约进行维护,因此在升级流程中需要重新将原来的 CDKDataCommittee 的地址设置到 dataAvailabilityProtocol 变量中。

节点方面

官方的新版 Validium 节点代码并没有实现对事件 updateEtrogSequence 的处理逻辑,因此无法直接使用,但此处依然可以参照 Rollup 的处理流程进行实现。另一方面,也需要修改代码中依赖的合约 abi,使其适配 Valdium 的合约接口,替代原有的 Rollup 合约接口。

注意,如果选择跳过 Etrog,直接升级到 Eldberry 版本以上,由于 batch 数据的处理方式不同,节点需要进行一些额外的修改。在合约升级的过程中,一层产生的过渡 forcedBatch 仍是以 Etrog 版本的方式生成的,节点在处理该 batch 时不能使用默认的 Eldberry 的处理器,而是需要重新使用 Etrog 版本的处理器,否则会产生不兼容问题。

升级流程

在升级前,需要预先在一层和二层网络上分别部署好所有新版本的合约,包括 RollupManager、ValidiumExistentEtrog、GlobalExitRootV2、BridgeV2 等。具体可参照官方升级脚本,将 zkEVM 相关合约替换为 Validium 相关合约即可。相关合约部署完成后,即可预生成一层上升级 CDKValidium 的 Proxy 的交易数据,调用新实现的 initialize 方法完成上述的数据重新赋值及过渡 batch 的生成等操作。之后由 Timelock 合约的相关权限地址调用 schdule 方法预约升级交易,并等待 timelock 合约的锁定时间。类似于一层上的操作,在二层上也需要预生成桥合约的升级交易数据,在二层的 Timelock 合约中预约升级交易。

由于 RollupManager 的 initialize 逻辑中需要检查 Proof 是否提交到最新,以保证升级前后 batch 的执行和证明在同一版本下,因此在到达锁定时间之后,仍需要对可信节点做一些调整。为了尽量减少升级中的停机时间,可以提前预设好 sequencer 服务中的 StopSequencerOnBatchNum 参数,使其在到达该 batch 后停止交易的打包,以留足时间给 batch 和对应证明的提交。另一方面,由于新旧版 Validium 在 pool_db 的 migration 文件上有所修改,需要手动、或在节点代码中将数据库内 'supernets-0001.sql' 的相关记录处理掉,以对齐新版本节点的数据库结构。

在 Proof 提交到最新,且数据库整理完毕后,即可使用一层 Timelock 合约的相关权限地址调用 execute 方法执行之前预约的升级操作,更新所有配置文件,并同时更新可信节点的所有服务版本。在可信节点恢复服务,并重新开始打包交易后,所有 permissionless 节点也需要更新配置文件,并用使用新版本代码重启服务。而二层的升级操作也可以在到达 Timelock 所设置的时间后执行 execute 方法,完成二层桥合约的升级。

作为Polygon CDK 生态内的重要组成部分,Lumoz一直关注Polygon CDK的每一次升级,展开多次调研、开发和优化,并以通俗易懂的方式向公众解读升级背后的细节,希望能全面梳理并补全 CDK Validium 早期版本向 Etrog 版本的升级路径,从而有效拓宽 Polygon CDK 乃至整个区块链行业发展的边界。

你可能也喜歡

交易

現貨
合約

熱門文章

什麼是 ETH 2.0

ETH 2.0:以太坊的新時代 介紹 ETH 2.0,廣為人知的以太坊 2.0,標誌著對以太坊區塊鏈的一次重大升級。這次過渡不僅僅是表面上的改造;其目標是從根本上增強網絡的可擴展性、安全性和可持續性。ETH 2.0 透過從能量密集型的工作量證明(PoW)共識機制轉向更高效的權益證明(PoS),承諾為區塊鏈生態系統帶來變革性的改變。 什麼是 ETH 2.0? ETH 2.0 是一系列獨特且相互連接的更新,專注於優化以太坊的能力和性能。這次全面改革旨在解決現有以太坊機制所面臨的主要挑戰,特別是交易速度和網絡擁堵問題。 ETH 2.0 的目標 ETH 2.0 的主要目標圍繞著改善三個核心方面: 可擴展性:旨在顯著提升網絡每秒可以處理的交易數量,ETH 2.0 希望突破目前約每秒 15 笔交易的限制,潛在地達到數千筆。 安全性:增強的安全措施是 ETH 2.0 的核心,特別是提高抵抗網絡攻擊的能力以及保護以太坊的去中心化精神。 可持續性:新的 PoS 機制旨在不僅提高效率,還大幅降低能耗,讓以太坊的運營框架與環保考量相符。 誰是 ETH 2.0 的創造者? ETH 2.0 的創建可追溯至以太坊基金會。這個非營利組織在支持以太坊發展方面發揮著關鍵作用,由著名的聯合創始人 Vitalik Buterin 主導。他對於更可擴展和更可持續以太坊的願景,是這次升級的推動力,並吸引了來自全球的開發者和愛好者的貢獻,共同致力於改善協議。 誰是 ETH 2.0 的投資者? 雖然有關 ETH 2.0 的投資者的具體信息尚未公開,但以太坊基金會已知方向來自區塊鏈及技術領域的各種組織和個人支持。這些合作夥伴包括創投公司、技術公司和慈善機構,它們共同致力於支持去中心化技術和區塊鏈基礎設施的發展。 ETH 2.0 如何運作? ETH 2.0 以引入一系列關鍵特性而著稱,使其與前身有所區別。 權益證明(PoS) 轉向 PoS 共識機制是 ETH 2.0 的標誌性變化之一。與依賴於能量密集型挖礦進行交易驗證的 PoW 不同,PoS 允許用戶根據他們在網絡中抵押的 ETH 數量來驗證交易和創建新區塊。這導致能量效率的提升,能耗降低約 99.95%,使以太坊 2.0 成為一個相當綠色的替代方案。 分片鏈 分片鏈是 ETH 2.0 的另一個關鍵創新。這些較小的鏈與主要的以太坊鏈平行運行,使得多筆交易可以同時處理。這種方法增強了網絡的整體容量,解決了困擾以太坊的可擴展性問題。 信標鏈 在 ETH 2.0 的核心是信標鏈,它協調網絡並管理 PoS 協議。它在某種程度上充當了組織者:它監督驗證者,確保各分片與網絡的連接,並監控整體區塊鏈生態系統的健康狀況。 ETH 2.0 的時間軸 ETH 2.0 的旅程標誌著幾個關鍵里程碑,描繪了這次重大升級的演變: 2020年12月:信標鏈的啟動標誌著 PoS 的引入,為 ETH 2.0 的遷移鋪平了道路。 2022年9月:“合併”的完成代表著以太坊網絡成功從 PoW 轉型為 PoS 框架,預示著以太坊的新時代。 2023年:預期分片鏈的推出旨在進一步增強以太坊網絡的可擴展性,鞏固 ETH 2.0 作為去中心化應用和服務的強大平台。 主要特性和優勢 改進的可擴展性 ETH 2.0 最重要的優勢之一是其改進的可擴展性。PoS 和分片鏈的結合使網絡能夠擴大容量,允許其處理的交易量遠超舊有系統。 能源效率 PoS 的實施對於區塊鏈技術中的能源效率來說是一個巨大的進步。通過大幅降低能源消耗,ETH 2.0 不僅減少了運營成本,還與全球可持續發展目標更加一致。 增強的安全性 ETH 2.0 的更新機制提高了網絡的安全性。PoS 的部署,加上通過分片鏈和信標鏈建立的創新控制措施,確保了對潛在威脅更高程度的保護。 降低用戶成本 隨著可擴展性的改善,交易成本也會明顯降低。預期增強的容量和減少的擁堵將轉化為用戶更低的手續費,使以太坊在日常交易中變得更可及。 結論 ETH 2.0 標誌著以太坊區塊鏈生態系統的一次重要演變。隨著其解決可擴展性、能源消耗、交易效率和整體安全性等關鍵問題,這次升級的重要性不言而喻。轉向權益證明、引入分片鏈以及信標鏈的基礎性工作,顯示出以太坊未來能夠滿足去中心化市場日益增長的需求。在一個由創新和進步推動的行業中,ETH 2.0 是區塊鏈技術在為更可持續和高效的數字經濟鋪路方面能力的見證。

166 人學過發佈於 2024.04.04更新於 2024.12.03

什麼是 ETH 2.0

什麼是 ETH 3.0

ETH3.0 與 $eth 3.0:以深入分析以太坊的未來 介紹 在快速發展的加密貨幣和區塊鏈技術領域,ETH3.0,通常標記為 $eth 3.0,已成為一個備受關注和猜測的話題。該術語包含兩個主要概念,值得說明: 以太坊 3.0:這代表潛在的未來升級,旨在增強現有的以太坊區塊鏈的能力,特別集中於提高可擴展性和性能。ETH3.0 表情符號代幣:這個獨特的加密貨幣項目旨在利用以太坊區塊鏈創建一個以表情符號為中心的生態系統,促進加密貨幣社區的參與。 理解這些 ETH3.0 的方面不僅對加密愛好者至關重要,也對觀察數字空間中的更廣泛技術趨勢的人有所幫助。 什麼是 ETH3.0? 以太坊 3.0 以太坊 3.0 被認為是對已建立的以太坊網絡的擬議升級,自其誕生以來,它一直是許多去中心化應用程式(dApps)和智能合約的支柱。預想的增強主要集中於可擴展性——整合先進技術,如分片和零知識證明(zk-proofs)。這些技術創新旨在促進每秒交易數量的前所未有(TPS),潛在地達到數百萬筆,從而解決當前區塊鏈技術面臨的最重大限制之一。 這次改進不僅是技術性的,更是戰略性的;它旨在為以太坊網絡的普遍採用和未來的實用性做準備,因為該未來將面臨對去中心化解決方案日益增長的需求。 ETH3.0 表情符號代幣 與以太坊 3.0 不同,ETH3.0 表情符號代幣進入了一個更輕鬆和更具玩樂性的領域,通過將互聯網表情符號文化與加密貨幣動態相結合。該項目使用戶能夠在以太坊區塊鏈上購買、出售和交易表情符號,提供一個促進社區通過創造力和共同利益參與的平台。 ETH3.0 表情符號代幣旨在展示區塊鏈技術如何與數字文化交匯,創造出既有趣又具有經濟價值的使用案例。 誰是 ETH3.0 的創造者? 以太坊 3.0 對以太坊 3.0 的倡議主要由以太坊社區內的一個開發者和研究人員的聯盟推動,特別是包括 Justin Drake。他因對以太坊演變的見解和貢獻而聞名,Drake 在關於將以太坊轉變為新共識層的討論中是一個重要人物,這被稱為「Beam Chain」。 這種協作開發的方式標誌著以太坊 3.0 不是單一創造者的產品,而是集中精力促進區塊鏈技術進步的集體智慧的體現。 ETH3.0 表情符號代幣 關於 ETH3.0 表情符號代幣的創造者的詳細資料目前無法追溯。表情符號代幣的特性通常導致更分散和社區驅動的結構,這可以解釋為什麼缺乏具體的歸屬感。這與更廣泛的加密社區的精神相符,該社區的創新往往源於協作而非個人努力。 誰是 ETH3.0 的投資者? 以太坊 3.0 對以太坊 3.0 的支持主要來自以太坊基金會以及一個充滿熱情的開發者和投資者社區。這種基礎聯繫提供了相當程度的合法性,並增強了成功落實的前景,因為它利用了多年網絡運營建立的信任和可信度。 在快速變化的加密貨幣氣候中,社區支持在推動開發和採用中發揮了關鍵作用,將以太坊 3.0 置於未來區塊鏈進步的重要競爭者地位。 ETH3.0 表情符號代幣 雖然目前可用的來源並沒有明確提供支持 ETH3.0 表情符號代幣的投資機構或組織的具體信息,但這反映出表情符號代幣典型的資金模型,通常依賴於基層支持和社區參與。此類項目的投資者通常由因社區驅動的創新潛力以及在加密社區中發現的合作精神而受到激勵的個人組成。 ETH3.0 如何運作? 以太坊 3.0 以太坊 3.0 的區別特點在於其擬議的分片和零知識證明技術的實施。分片是一種將區塊鏈劃分為更小、更易管理的單元或「分片」的方法,這些分片能夠同時處理交易,而不是按序處理。這種處理的去中心化有助於避免擁堵,並確保即使在高負載下,網絡也能保持響應。 零知識證明(zk-proof)技術通過允許交易驗證而不揭示涉及的基本數據,增加了一層複雜性。這一方面不僅增強了隱私性,還提高了整個網絡的效率。還有討論將零知識以太坊虛擬機(zkEVM)納入此次升級,進一步擴大網絡的能力和實用性。 ETH3.0 表情符號代幣 ETH3.0 表情符號代幣通過利用表情符號文化的受歡迎程度而脫穎而出。它建立了一個市場,讓用戶參與表情符號交易,不僅僅是為了娛樂,也是為了潛在的經濟利益。通過整合質押、流動性供應和治理機制等特性,該項目營造了一種促進社區互動和參與的環境。 通過提供娛樂和經濟機會的獨特結合,ETH3.0 表情符號代幣旨在吸引多樣的觀眾,範圍從加密愛好者到隨便的表情符號愛好者。 ETH3.0 的時間表 以太坊 3.0 2024年11月11日:Justin Drake 暗示即將到來的 ETH 3.0 升級,重點是可擴展性改進。這一公告標誌著關於以太坊未來架構正式討論的開始。2024年11月12日:預期中的以太坊 3.0 提案將在曼谷的 Devcon 上公佈,為更廣泛的社區反饋和潛在的開發後續步驟奠定基礎。 ETH3.0 表情符號代幣 2024年3月21日:ETH3.0 表情符號代幣正式在 CoinMarketCap 上列出,標誌著其進入公眾加密領域,並增強了其基於表情符號的生態系統的可見性。 關鍵要點 總之,以太坊 3.0 代表了以太坊網絡內的重要演變,集中於通過先進技術克服可擴展性和性能的限制。其擬議的升級反映出對未來需求和可用性的主動應對。 另一方面,ETH3.0 表情符號代幣 encapsulates 加密貨幣領域中以社區為驅動文化的本質,利用表情符號文化來創建鼓勵用戶創造力和參與的平台。 理解 ETH3.0 和 $eth 3.0 的不同目的和功能對於任何對加密領域中正在進行的發展感興趣的人來說都是至關重要的。隨著這兩個倡議鋪展獨特的道路,它們共同凸顯了區塊鏈創新動態和多樣化的本質。

169 人學過發佈於 2024.04.04更新於 2024.12.03

什麼是 ETH 3.0

如何購買ETH

歡迎來到HTX.com!在這裡,購買Ethereum (ETH)變得簡單而便捷。跟隨我們的逐步指南,放心開始您的加密貨幣之旅。第一步:創建您的HTX帳戶使用您的 Email、手機號碼在HTX註冊一個免費帳戶。體驗無憂的註冊過程並解鎖所有平台功能。立即註冊第二步:前往買幣頁面,選擇您的支付方式信用卡/金融卡購買:使用您的Visa或Mastercard即時購買Ethereum (ETH)。餘額購買:使用您HTX帳戶餘額中的資金進行無縫交易。第三方購買:探索諸如Google Pay或Apple Pay等流行支付方式以增加便利性。C2C購買:在HTX平台上直接與其他用戶交易。HTX 場外交易 (OTC) 購買:為大量交易者提供個性化服務和競爭性匯率。第三步:存儲您的Ethereum (ETH)購買Ethereum (ETH)後,將其存儲在您的HTX帳戶中。您也可以透過區塊鏈轉帳將其發送到其他地址或者用於交易其他加密貨幣。第四步:交易Ethereum (ETH)在HTX的現貨市場輕鬆交易Ethereum (ETH)。前往您的帳戶,選擇交易對,執行交易,並即時監控。HTX為初學者和經驗豐富的交易者提供了友好的用戶體驗。

3.6k 人學過發佈於 2024.12.10更新於 2025.03.21

如何購買ETH

相關討論

歡迎來到 HTX 社群。在這裡,您可以了解最新的平台發展動態並獲得專業的市場意見。 以下是用戶對 ETH (ETH)幣價的意見。

活动图片