Menu

  • Home
  • Trending
  • Recommended
  • Latest

分類

  • #2021 新年特輯
  • 100天區塊鏈挑戰
  • 2019 台灣區塊鏈產業指南
  • 2020 台灣區塊鏈產業年鑑
  • 2022 台灣年度最影響力人物榜
  • 2023 台灣年度影響力人物榜
  • 2023 新春特輯
  • 2024 TON Hacker House
  • 2024新春特輯
  • ABS 2018 專題報導
  • AI
  • CBDC是什麼?為何全球都在積極研究、有什麼優點與隱憂
  • Cefi
  • dao
  • dApps
  • defi
  • DePIN 如何開啟去中心化物理網路革命?
  • Entertainment
  • EOS
  • EOS insights
  • Gaming
  • Howto & Style
  • ICO
  • JiaJia
  • Layer 2
  • Libra
  • Movie
  • Music
  • News
  • nft
  • Plurality 多元宇宙
  • Starknet 空投落地,後續帶來什麼影響?
  • TON的崛起之路》背靠 Telegram 如何實現 Web3 大規模應用?
  • Uncategorized
  • Web3.0
  • 中國
  • 亞太
  • 交易所
  • 人物專訪
  • 以太坊
  • 以太坊
  • 以太坊 Dencun 坎昆升級將臨,你需要知道的所有事
  • 以太坊再質押協議為何成為最熱門賽道?
  • 供應鏈
  • 保險
  • 債券
  • 元宇宙
  • 全台最大詐騙案!Ace交易所涉垃圾幣詐騙
  • 全球加密貨幣監管最新動態統整
  • 其他國家
  • 其他幣別
  • 分散式帳本技術
  • 創投
  • 加密貨幣「詐騙手法」整理,學習如何保護你的資產
  • 加密貨幣市場
  • 區塊鏈平台
  • 區塊鏈新手全攻略,你需要知道的加密貨幣基礎
  • 區塊鏈新手教學
  • 區塊鏈活動
  • 區鍵禧
  • 即時新聞
  • 台灣
  • 哈希派
  • 國際組織報告
  • 多元宇宙Plurality有多重要?未來20年人類躍進關鍵
  • 央行
  • 娛樂平台
  • 安全
  • 專欄作者
  • 巴拉區塊事
  • 市場分析
  • 幣安與美國司法部達成 43 億美元和解,CZ認罪
  • 影片測試的分類
  • 快訊
  • 技術
  • 抓住空投爆擊!值得埋伏的項目、互動教學總整理
  • 投資分析
  • 挖礦
  • 推薦閱讀
  • 搶先看
  • 支付
  • 政府報告
  • 數位產權
  • 數據報告
  • 概念
  • 歐洲
  • 比特幣
  • 比特幣現貨ETF上市,真帶來了增量資金?
  • 比特幣第四次減半將臨,行情怎麼走?
  • 比特幣銘文大爆發,Oridinal 如何改變 BTC 生態?
  • 比特彭
  • 汪彪
  • 法規
  • 測試網
  • 灰度
  • 物聯網
  • 犯罪
  • 獨立觀點
  • 瑞波
  • 環境永續
  • 社交
  • 私人機構報告
  • 稅務
  • 穩定幣
  • 管制
  • 美國
  • 肺炎
  • 能源
  • 訴訟
  • 評級報告
  • 財金哥 & 區塊妹
  • 身份驗證
  • 遊戲
  • 鄧庶杭
  • 金融市場
  • 銀行
  • 錢包

Subscriptions

  • 零壹財經 01 binary
    01 Binary
  • 0xdt
  • 0xJigglypuff
  • aaaaYYYY
  • ABCDELabs

Recent News

  • 圖解多元宇宙》V神、Glen力推的Plurality是什麼?為何協作技術是人類社會進步關鍵
  • 精選文章搶先看!動區登入Access質押訂閱服務,解鎖寶貴資訊快人一步
  • ABS獨家專訪》Gitcoin共同創辦人Scott:台灣是現實與Web3治理的重要交匯點
動區動趨-最具影響力的區塊鏈新聞媒體
  • Home
    • Home Layout 1
    • Home Layout 2
    • Home Layout 3
  • Browse
    • News
    • Movie
    • Music
    • Technology
    • Howto & Style
    • Entertainment
    • Gaming
  • Features
    • Youtube Video
    • Vimeo Video
    • Dailymotion Video
    • Self-hosted Video
    • User Profile
    • Playlists
    • User-created Playlist
    • Favorite Playlist (Private)
    • Watch Later Playlist (Private)
    • All JNews Features
No Result
View All Result
  • Login
  • Register
UPLOAD
動區動趨-最具影響力的區塊鏈新聞媒體
No Result
View All Result
Home 技術 以太坊

乾貨|深入理解 OVM (Optimistic Rollup):兼容 EVM、以太坊Layer 2擴容方案大躍進

Rosie Wu by Rosie Wu
2020-05-26
in 以太坊, 技術
706 37
0
乾貨|深入理解 OVM (Optimistic Rollup):兼容 EVM、以太坊Layer 2擴容方案大躍進
1k
SHARES
4.6k
VIEWS
Share on FacebookShare on Twitter

OVM的出現代表著以太坊 L2 的飛躍,因為它不同於變著招使用以太坊,它就是以太坊本身的進步。只要加上幾行代碼,就能夠實現快速且低成本的 Solidity 智能合約遷移。本文源自於 Ethereum Optimistic Blog 刊載的《OVM Deep Dive》,由專欄作者 以太坊愛好者 編譯、撰寫及整理。

本文目錄

  • RelatedPosts
  • 圖解多元宇宙》V神、Glen力推的Plurality是什麼?為何協作技術是人類社會進步關鍵
  • 6 Sci-fi Gadgets in Movie We Wish Actually Existed
  • Tesla’s Chinese factory just delivered its first cars
  • 為什麼需要OVM ?
  • 什麼是OVM ?
  • 問題描述:EVM 中的EVM
  • 為什麼很難構建EVM 中的EVM
    • 天真的想法:將L2 的智能合約重新部署到L1
  • 解決之道:OVM
    • 容器化:執行管理器
    • 安全性:容器純度檢查
    • 開發體驗:轉譯器
  • 展望
    • 以太坊 1.0 和 2.0 有什麼區別?關於 Ethereum 2.0 的 「17 個常見問題」
    • 技術知識入門|Chainlink「預言機Oracle」的基本原理 —— 讓LINK暴漲十倍的背後技術
    • 隱私議題專欄|讀懂什麼是「洋蔥路由 Onion Routing」?改進區塊鏈的匿名技術

 

RelatedPosts

圖解多元宇宙》V神、Glen力推的Plurality是什麼?為何協作技術是人類社會進步關鍵

6 Sci-fi Gadgets in Movie We Wish Actually Existed

Tesla’s Chinese factory just delivered its first cars

為什麼需要OVM ?

我們團隊中的許多成員都曾參與過致力於支持智能合約的第一代通用 plasma 網路(plapps)的架構設計。然而,部署 plapps 需要藉助一整套新的開發工具(包括功能受限的“predicate”合約)。我們很快意識到,人們對於以太坊 Layer 2 的期待遠不止此——以太坊L2不只意味著擴展以太坊的應用,還要擴展以太坊本身。

延伸閱讀:Vitalik Buterin:如何區分側鏈、Plasma和分片?

延伸閱讀:文組也該知道的區塊鏈技術知識《1》 從一筆交易來看 ETH 與 BTC 之異同

以上原因促使我們開發了Optimistic Rollup —— 首個能將以太坊智能合約的全部功能引入擴展層的 L2 架構。Unipig.exchange 展示了這個前所未見的新功能:這是Uniswap 第一次部署在L2 上;不過如果要讓Uniswap 套用 rollup,仍然要求我們編寫特定的 L2 智能合約。為了創造更好的開發體驗,我們還有很長的路要走。

什麼是OVM ?

OVM 是個功能完備、與 EVM 完全兼容的執行環境,適用於 L2 系統。我們可以通過 OVM 在 rollup 鏈進行在以太坊主鏈上能做的所有操作—— 編寫 Solidity 智能合約,並通過Web3 API 與區塊鏈進行交互。

有了 OVM 後,將 dApp 移植到 L2 不再是架構級別的大工程,只剩下簡化的部署操作。當然,dApp 的構建仍然要考慮緊耦合( tight coupling )及可組合性( composability ),但只要你需要,新的智能合約隨時能夠部署到使用OVM 的鏈上。換言之,在 L2 打造貨幣樂高( money lego,泛指 DeFi 產品)依然可以非常方便。

延伸閱讀:專題|五分鐘看懂 Layer 2:Bitcoin, Ethereum和 Nervos 第二層解決分案背後的設計邏輯

所以,OVM 是怎麼辦到的?OVM 實現起來為什麼這麼困難?讓我們一探究竟!

問題描述:EVM 中的EVM

所有樂觀的 L2 方案都是圍繞著執行結果及其分歧來打造的:從plasma 到rollup,其關鍵都在於「樂觀性執行( optimistic execution )」—— 樂觀性執行的意思是:任何人(或群體)都能宣稱「嘿,Layer 1,這些交易的執行結果是X,不用再執行驗證了!」;如果結果不為X ,(我們假設)會有其他群體願意支付主鏈的執行成本,來證明結果 X 是錯誤的。

8211 樂觀性執行具備很好的擴展性因為 L2 的 transaction 可以在 L1 重放如果有需要的話 8211

理想情況下我們不需要在主鏈上執行 transaction,這也是為什麼樂觀性執行能很大程度上提高鏈的吞吐量。然而考慮到安全性,一旦出現錯誤的情況(如上圖 tx2),我們也需要有 transaction 回溯機制!

Unipig的自定義代碼基本上就是 Unipig 編碼形式的 execute_L2_tx(),你也可以稱之為 xecute_uniswap_tx()!

總的來說,其實我們需要的是Unipig 編碼實現 execute_EVM_tx() —— 一個能夠讓我們在L1 transaction 中,嵌套執行任何以太坊L2 transaction的函數(以實現fraud proof “錯誤性證明”功能)。但是理想很豐滿,現實很骨感,要讓以太坊 transaction 嵌套執行本來就非常困難,更何況有些 L2 transaction 根本不適合L1 !

8211 transactinceptionjpg 8211

為什麼很難構建EVM 中的EVM

在我們深入解釋我們所提出的獨特解決方案之前,我們先想想—— 為什麼這會成為一個問題 ?難道EVM 不是執行 EVM transaction 的完美環境嗎?它可是 EVM 呢!

天真的想法:將L2 的智能合約重新部署到L1

EVM的核心定義了一組電腦指令,以及定義了在transaction中每個指令對應地該執行什麼。智能合約就像是個巨大又醜陋的指令集合——舉個簡單的例子,下圖是Solidity的 SafeMath.sol 庫在部署之前的部分編譯:

8211 這只是成千上萬個智能合約的其中之一

如果我們想要在 L1 上執行 L2 transaction,直觀的做法就是獲取 L2 使用的代碼(智能合約),然後放到L1;簡言之,就是直接在 L1 上部署對應的 L2 智能合約!

8211 在L1 上執行L2 transaction 這是個很天真的辦法

 

然而不能這樣做,因為:不同的鏈,不同的結果

這個方法可能適用於某些情況。比如邏輯非常簡單的智能合約—— SafeMath 庫,它只執行加、減等數學運算;如果我們將 L2 的 SafeMath 合約部署到L1上,則它在L1上也能正確執行!畢竟加就是加、減就是減,跟在哪條鏈執行無關。

但對於其他智能合約來說,事情就變得複雜了。舉個簡單的例子,下面的智能合約執行後會返回「當前的以太坊(區塊)的時間戳+ 42」:

contract TimeShifter {
  function getShiftedTime() returns(uint) {
    return block.timestamp + 42;
  }
}

(在錯誤性挑戰中)把這個合約重新部署到L1 上之後,還能返回相同的值嗎?

8211 不同的鏈不同的結果 8211

明顯不行!(重部署在當前塊「之後的區塊」,返回結果肯定不同。)即使是在同一條L1上,如果將智能合約重部署在不同的兩個區塊,返回值也不一樣——因為重部署的合約會獲取 L1 的時間戳,而正確執行 execute_l2_tx 則應該返回 L2 的時間戳。

如果你深入思考,你會發現這個問題幾乎會發生在所有智能合約上。比如對於某個 ERC 20 智能合約來說,你將合約重部署在 L1 上之後,你要怎麼設置 L2 上的餘額呢?諸如此類,不可勝數。

解決之道:OVM

過去曾出現過兩種解決「 EVM 中的EVM 」問題的辦法:要麼是對EVM 進行分叉,要麼是硬著頭皮用Solidity 重新實現整個EVM ;OVM 是一種全新的方法,對於當前的以太坊1.0 有著更好的性能和靈活性,而且不需要分叉!

容器化:執行管理器

OVM 能夠解決問題的最重要原因是,它引入了一個全新的智能合約(Execution Manager,執行管理器)—— 作為OVM 智能合約的虛擬容器。執行管理器會虛擬化所有可能導致L1、L2 出現不同結果的執行,包括:

  • 智能合約存儲內容
  • 交易內容——如區塊高度、時間戳、tx.origin (Solidity的一個全局變量,它遍歷整個調用棧並返回最初發送調用(或事務)的帳戶的地址),等等。
  • 跨合約訊息的路由

基本上,對於可能導致L1 、 L2 出現不同結果的EVM 功能, 執行管理器都提供了保證其結果一致的函數。舉例來說,我們構造一個容器來解決上述提到的時間戳不一致的問題:

contract TimestampManager {
  uint storage ovmTimestamp;

  function setOvmTimestamp(number: uint) {
    ovmTimestamp = number;
  }

  function getOvmTimestamp() public returns(uint) {
    return ovmTimestamp;
  }
}

現在我們重部署上面的合約,這回我們使用虛擬容器:

contract OvmTimeShifter {
  function getShiftedTime() returns(uint) {
    return timestampManager.getOvmTimestamp() + 42;
  }
}

如此一來,我們就能夠在驗證 fraud proof 的時候,設置L1 容器中的「虛擬區塊高度」,來保證正確的返回值!

8211 新的TimeShifter 函數使用TimestampManager 作為容器

這就是 「EVM 中的EVM 」 —— OVM 的核心概念:虛擬化所有可能在不同鏈上返回不同結果的EVM 組件。具體點來說,約有15 條以太坊指令需要被虛擬化,你可以從以下入口查看真正的執行管理器長什麼樣子。

安全性:容器純度檢查

當然我們還需要稍微修改上面的合約,才能真正調用 timestamp 容器而不是拿到錯誤的 block.timestamp。

雖然我們解決了結果差異性的問題,但這只作用於該智能合約而已。因此,為了保障 L2 的安全性,我們需要確保L2上的所有合約都使用了 timestamp 容器,沒有錯誤使用 block.timestamp 的漏網之智能合約。

OVM提供了「容器純度檢查」的服務——檢查目標智能合約「是否只通過執行管理器來調用虛擬化指令」,而不允許像是 block.timestamp 這樣的操作!不論有沒有其他智能合約調用了目標合約,只要(目標)合約未通過檢查,就無法部署到OVM。這樣就能保證L2的安全性。

開發體驗:轉譯器

要讓智能合約只通過執行管理器來調用某些指令,還有一個問題就是開發體驗——如果開發者需要遍歷整份智能合約,然後把所有 block.timestamp 替換為 getOvmTimestamp(),這種費力不討好的活肯定沒人願意做。

為了解決這個問題,我們搭了一個轉譯器——輸入普通EVM字節碼,然後轉譯器會輸出使用上述容器的OVM字節碼。對於使用轉譯器的開發者來說,完全不需要和OVM直接打交道 ——只需要在Waffle 、Truffle等你喜歡的測試套件中加入我們的 solc-transpiler 包。

展望

我們認為OVM的出現代表著以太坊 L2 的飛躍,因為它不同於變著招使用以太坊,它就是以太坊本身的進步。只要加上幾行代碼,就能夠實現快速且低成本的 Solidity 智能合約遷移,這也是當前關於以太坊擴展方面最令我們興奮的議題 。如果你想要自行體驗一把,可以關注我們最近的OVM測試——在標準的以太坊工具中(如Graph和Burner錢包),實時運行部分的Synthetix複雜交易合約(見此處)。

📍相關報導📍

以太坊 1.0 和 2.0 有什麼區別?關於 Ethereum 2.0 的 「17 個常見問題」

技術知識入門|Chainlink「預言機Oracle」的基本原理 —— 讓LINK暴漲十倍的背後技術

隱私議題專欄|讀懂什麼是「洋蔥路由 Onion Routing」?改進區塊鏈的匿名技術


讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。

LINE 與 Messenger 不定期為大家服務

加入好友

加入好友

Tags: Layer 2OVM以太坊智能合約

Recommended videos

23:25

Get Ready for Apple’s New 8K VR/AR Headset in 2020

2.5k Views
2024-07-24
    1:37

    FedEx Pilot Detained in China for Item Found in Luggage

    2.5k Views
    2024-06-18
      動區獨家專訪|中本聰最堅定的信仰者——Charlie Lee,沒有之一

      動區獨家專訪|中本聰最堅定的信仰者——Charlie Lee,沒有之一

      5.3k Views
      2019-10-13
        全球獨家專訪 | 幣安快速崛起的秘密與全球戰略佈局

        全球獨家專訪 | 幣安快速崛起的秘密與全球戰略佈局

        6.8k Views
        2018-07-28
          Show More
          Copyright (c) 2019 by Jegtheme.
          • About
          • Buy JNews
          • Request A Demo
          • Contact
          No Result
          View All Result
          • Account
          • BlockTempo Beginner – 動區新手村
          • Change Password
          • Forgot Password?
          • Home 1
          • Home 2
          • Home 3
          • Jin-homepage
          • Latest
          • Login
          • Profile
          • Register
          • Reset Password
          • Trending
          • Users
          • Users List Item
          • 不只加密貨幣,談談那些你不知道的區塊鏈應用|動區新手村
          • 所有文章
          • 關於 BlockTempo

          © 2025 JNews - Premium WordPress news & magazine theme by Jegtheme.

          Welcome Back!

          Login to your account below

          Forgotten Password? Sign Up

          Create New Account!

          Fill the forms below to register

          All fields are required. Log In

          Retrieve your password

          Please enter your username or email address to reset your password.

          Log In

          Add New Playlist