MoleEdu Web3 系列公開課回顧:以太坊和 Layer2 筆記
作者:Moledao
Moledao 和 OGBC 聯合舉辦的 Web3 系列課終於在 2023 年 1 月 16 日正式開始啦!第一週為 Web3 基建之週,內容涵蓋了區塊鏈基礎,以太坊和 Layer2,Layer0,存儲。
今天帶大家回顧 2023 年 1 月 18 日 Neil Han 導師的"以太坊和 Layer2"課程!課程錄屏已經上傳 Moledao 的 Bilibili:
那下面我們就一起來學習"以太坊和 Layer2"課程的筆記吧!
導師介紹
Neil HAN, Reddio Founder\&CEO 前 Twilio 亞太第三名員工,帶領團隊 4 年時間實現亞太營收 30 倍增速,前 PingCAP/TiDB 海外商業化第一名員工,亞太及歐洲區 GM。
Neil 導師 2021 年底離職創辦 Reddio,Web3 基礎設施公司,以新加坡為總部面向全球開發人員提供了解決以太坊擴容的 PaaS 服務,讓他們以更高並發、更低 Gas Fee、更安全快速地將資產上鏈,Reddio 是 Paradigm 投資的亞太第一家 Infra 公司。
Neil 導師同時也是天使投資人,專注投資美國 SaaS 公司,是 growrk.com, getbean.com, mynurse.ai 和 mileauto.com 等公司的天使投資人。
學習收穫
在本次課,Neil 導師講解了以太坊及其局限性,側鏈,Layer2 擴容方案,Layer2 的三難選擇,技術棧的進化等。
01 以太坊及其局限性
為什麼是以太坊?即便是在 2022 年狀態不是特別好的情況下,以太坊在整個生態裡的霸主地位依舊沒變。同時,2022 年主要的 NFT 交易都是發生在以太坊上。以太坊是進入區塊鏈行業不得不看的鏈。但是以太坊有兩個很大的局限性限制了發展:
第一 :以太坊要做任何操作,都会產生 Gas Fee,而且 Gas Fee 很高
上圖中,GAS 為計量單位。在轉帳過程中將會產生 21000 個 GAS。根據交易發起人是否需要交易盡快處理,GAS 的價格會在一個區間內波動。以一個 GAS 為 100 個 GWEI 為例。GWEI 是一個計量單位,等於 10 的 -9 次方的 ETH。所以在上圖所示的轉帳過程中,Gas Fee 即為 0.0021ETH。假設 ETH 的價格為 $1800,這筆轉帳就花費了 $3.78。
需要注意:這個 Gas Fee 不是恆定不變的,如果有交易發起方對交易的確認很急切,Gas Fee 就會增加。這是因為礦工的競價機制,即誰出的 Gas Fee 高,就會先選誰。因此急切的交易發起方就會出更高的 Gas Fee。在 2021 年曾經發生過最高 Gas Fee 到 $150 做了一次 NFT 的交易的情況,這個金額很誇張,如果所有交易都如此昂貴,整個鏈上交易系統幾乎無法使用。
第二:可擴展性
由上圖我們可以看到,以太坊的 TPS 大概為 20 筆 / 秒。但是相比 VISA 的 24000TPS 還是太少了。
因為有此局限性的存在,中心化交易所只有通過中心化的方式來處理交易。關於這點,Duke 導師在區塊鏈基礎的課程中給大家做過詳細介紹。但是這種方式就與 Web3 的理念背道而馳,也發生過 FTX 暴雷這種惡性事件。
以太坊自己當然知道這個問題,這是以太坊的產品路線圖。以太坊去年從 POW 轉到 POS,主要是解決了耗電的問題,礦工的工作被打消掉了。這樣的改變很大程度上節省了資源,省去了整個以太坊生態裡 99% 的電量。並不能有效地提高 TPS 和有效降低 Gas Fee。所以暫時以上兩個限制並沒有很好的改觀。而之後的 Data Sharding 能比較好的解決這兩個問題,但在這之前僅靠以太坊本身就沒辦法解決了。
02 區塊鏈拓展
基於以上兩個局限性,業內在區塊鏈擴容方面做過各種不同嘗試,以上是羅列的各種不同方案。以下我們針對以太坊的擴容做重點解釋。
2.1 側鏈
側鏈比較有代表性的是 Polygon 的 PoS 鏈,他所做的事情是:既然以太坊的 Gas Fee 高,而且處理能力有限,那就新建立一條鏈,這條鏈裡,所有節點、共識和安全都由鏈本身控制。如果以太上的資產想轉移到側鏈中,首先資產要鎖在屬於 Polygon 的以太坊的錢包裡,然後在側鏈上生成對應的代幣到側鏈上對應的錢包。從側鏈取回代幣的流程類似。
此方案中,側鏈要證明這筆錢是確實存在的,利用了一個叫做 Merkle Proof 的證明機制。
2.1.1 Merkle Proof
Merkle Proof 包括一個數據塊,Merkle Root,以及從數據塊到根路徑上的所有 Hash 組成的"分支"。閱讀證明者可以驗證給定數據塊的 Hash( 至少對於當前分支 ) 以及到 Root 路徑上的所有節點的 Hash 的一致性,並最終驗證給定的數據塊是否真正在樹中的節點上。這種方式在區塊鏈被大量使用。
2.1.2 優缺點
側鏈解決方案的好處在於:
- 因為相對比較中心,所以可以用高性能機器來提高交易吞吐量。
- 交易手續費是由側鏈控制,所以交易 Gas Fee 會比較低。
- 交易的私密性可以被保證。因為數據被側鏈控制,所以可以利用一些手段將數據隱藏掉。因此可能一些企業會選擇側鏈作為上鏈的解決方案。
但是缺點同樣突出:
- 最大的問題就是安全性問題,因為整個安全都是由第三方來中心化控制,比如 Polygon PoS 就是由 Polygon 控制安全。
- 跨鏈橋是由相對比較少的節點來驗證,這樣容易被黑客攻擊,歷史上也發生過無數次黑客攻擊事件。
Neil 導師並不認為側鏈是 Layer2,因為他的安全性不是借助以太坊,而是側鏈依賴於自己的安全性。因為繼承了以太坊的安全性,Layer2 才能被稱為 Layer2.
03 Layer2 擴容方案
所有 Layer2 的擴容方案,都是做是將大部分交易放到 Layer2 上做鏈下計算,這樣只需要把整個交易狀態放到 Layer1 上做確權就行了。這樣 Layer1 的性能就被優化了。
3.1 State Channel
State Channel 是個相對早期的 Layer2 擴容方案,方法也比較簡單粗暴。我們可以看到上圖的上半部分,Player1 和 Player2 之間可能發生很多筆交易。但是對於 Layer1 來講,過程並不重要,最終結果才是最重要的。在這兩個人的交易發生之前,這兩個人都要用私鑰登錄,然後就可以開啟這個 State Channel。Channel 開啟時,兩個人都必須在線,直到所有交易完成,Channel 關閉。所以整個交易在 Layer1 上只記錄了開始和結束的狀態,節省了大量計算資源。
但是 State Channel 的缺點在於:
- 交易雙方都要用私鑰登錄。私鑰一直暴露在鏈上可能被攻擊。
- 交易雙方要一直保持登錄,否則 channel 將自動關閉。
- 交易的資產在交易開始時就要被鎖住,所以在交易期間就不能挪作他用。
- 不能運行智能合約。
但這種模式對比特這種沒有合約功能的鏈反而比較合適,Payment Channel 被用在比特幣的擴容,也是 lightning network 運轉的基本原理。
3.2 Layer2 架構
Layer2 主流方案裡可以分為數據鏈上和鏈下存儲。證明也可以分為兩種,一種是有效性證明(Validity Proof),一種是欺詐證明(Fraud Proof)。這也引申出了不同的解決方案。
3.3 欺詐證明(Fraud Proof)
驗證者從 Layer11 合約下載交易數據後,可以在本地重建(Layer2 狀態的)merkle tree。驗證者可以通過比較本地和合約的 merkle root(狀態根)確認是否存在作假行為。如果發現作假,驗證者需要向 Layer1 合約提供 merkle proof,也就是圖中的綠色部分,從而發起挑戰。
3.4 Plasma 方案
Plasma 是 Layer2 的一種方案,其基本原理是操作通過對應智能合約處理,然後通過操作員(Operator)將交易放在子鏈上。不同的子鏈會處理不同的事情。這樣就能把很多操作放在不同子鏈上。為了確保安全,當用戶想把子鏈上的資產轉移到 Layer1 上,Plasma 預留 7~14 天,讓欺詐證明節點來進行挑戰。
這種方案的好處:
- 可以將資產轉移給任何人
- 由主鏈保障安全
缺點在於:
- 取錢操作需要 7-14 天的審核,這段時間預留給欺詐證明節點進行驗證。
- 不能運行任意智能合約,因為智能合約在一開始就已固定且不能更改。
- 只有 Merkle roots 被記錄在了主鏈上,所以安全性會有一定的折扣。
3.5 Rollups 方案
Rollups 的實現
首先在 Layer1 上要寫一個合約,合約的目的是將 Layer2 上所有要打包的操作生成一個 Merckle root,然後把這個 Merckle root 狀態放到 Layer1 中。一旦打包的操作產生變化,這個 Merckle root 就會改變,需要通過 Layer1 中的合約對狀態進行更新。如果操作產生問題,有兩種方式來證明操作是否有效。所有 Rollups 操作都是基於以上邏輯來實現的。
主要派系
針對 Layer2 上交易的有效性證明,目前有兩個主要派系,一個是 Optimistic rollups,另一個是 zkRollup。目前 Optimism 是全球鎖倉量最大的。但是它的一個很大的問題,因為是利用欺詐證明方式,所以不能很快地將資產取出來。zK-Rollup 是更好的解決方案,但是它現在可部署合約的方案還沒有完全成熟。
Optimism 如果想取款,需要把數據全都下載下來然後跑 Merkle tree,然後驗證欺詐證明,非常費時。而且機制中有個悖論,就是跑欺詐證明的節點沒發現欺詐,那節點掙不到錢。但是有欺詐的話,這條鏈就會變得非常慢。
Arbitrum 做了個小改進,就是不需要把所有涉及到交易的數據都下載下來跑,它利用二分法,只需要證明特定節點的結果有效就行。但還是會花費大量時間在欺詐證明上。
3.5.1 zK-Rollup
zK-Rollup 中有個非常重要的概念叫零知識證明 (zero-knowledge proof)。我們可以用餐館收據的例子來簡單理解。
餐廳收據中的具體項目其實大多數人是不在乎的,一般客戶只是簡單的把每個菜的費用做個加和跟收據中的總賬做個對比來驗證。所以可以在不知道細節的情況下證明效交易有效。這個只是對零知識證明一個非常生活化的比喻,具體原理大家可以去好好研究一下。
所以在 zK-Rollup 中 proof 的速度很快,大概只需要幾百毫秒,可以實時驗證,大概只需要幾分鐘就能在 Layer1 上做確權。這種革新方案被很多人看好,包括 V 神。這種方案可以大大提高 Layer1 的效率。比如 StarkEx 可以讓 Layer1 上一個區塊的 NFT 存儲量從 150 個提高到一百八十萬個,這樣在 Layer2 上發 NFT 幾乎就不用花 Gas Fee 了。
Validium 方案
一些相對固化的操作,比如 NFT 轉移,被轉化為標準合約。再將這些操作通過 zero-knowledge proof 在 Layer1 上證明。因為數據放在 Layer1 上永遠都受以太坊 TPS 的局限,所以一些數據放在線下或者 Layer2 上就是更高的方案。雖然對於安全性有一定折扣,但是對於一些安全性要求沒有那麼高的項目,卻是更好的解決方案。
zkRollup 方案
zkRollup 則是將 Validium 的鏈下存儲的 calldata 全部放在 layer1 上存儲,交易放在 Layer2 上,再將這些操作通過 zero-knowledge proof 在 Layer1 上作證明。
Volition 方案
Volition 就是將 Validium 的鏈下方案和 zK-Rollup 的鏈上方案進行一個整合。用戶可以自由選擇。
StarkEx 項目
這是目前最為成熟的 zkRollup/Validium 解決方案。
它的 Validium 處理能力能達到 9000 個交易每秒,zK-Rollup 的處理能力達到 2000 個交易每秒。在 2022 年 4 月,StarkEx 一天處理了四百萬個交易,創下了有史以來鏈上交易日處理量最多的記錄。
3.5.2 zK-Rollup and zKEVM
StarkEx 最大的局限性是不能寫合約。以下項目把合約功能加了進來。圖中綠色框越多說明對 EVM 的兼容越好,目前這些方案還沒有到可以大規模產線使用階段,最接近的可能是 StarkNet,其他項目還需要幾年的時間才能接近成熟。
EVM 兼容雖然能幫助很多已經寫了 EVM 合約的工程師很容易的遷移過來,然而越兼容 EVM,性能就越打折扣,以下圖表做了詳細說明。對於完全兼容 EVM 的 zkRollup,它的性能上線便是以太坊的上限,而從 zkRollup 原理出發所設計的 zkRollup 方案,雖然無法很好的兼容 EVM,然而它的想像空間巨大。
3.5.3 Optimistic Rollup 和 zK-Rollup 對比
04 Layer2 的三難選擇
Layer2 的三難選擇和以太坊的三難選擇並不相同。以下列出了兼顧兩種特性的項目和鏈。
- 性能(Performance)
- 可組合性(Composability):即能不能寫合約。
- 去中心化(Decentralization)
項目方可以根據自己的側重點來選擇相應的方案,比如對於 Web3 的應用或者遊戲,它的邏輯和交易比較固化,在目前看 StarkEx 便是更好的選擇,而對於 DeFi 等對合約要求比較高的項目方,如果在意性能,Polygon Pos 可能是比較好的選擇,而對於去中心要求比較高由不在意提現時間長的場景,Optimistic Rollup 可能是更加方案。
05 技術棧的進化
有了 zkRollup 的支撐,我們看到去中心方案的技術棧發生了很大變化。我們以比較有代表性的去中心化交易所 dYdX 為例,用戶在交易所裡相對中心化的伺服器上做買單和賣單的匹配,然後所有交易都發生在 zK-Rollup 中。用戶使用的是監護錢包,說白了就是資產還是屬於用戶,隨時都能提款。
下面是 Reddio 的技術棧,我們通過開發人員熟悉的語言,以 API 和 SDK 的方式來服務開發者,讓開發者快速的部署 ERC20 和 NFT 到以太坊和 Layer2 zkRollup 上,進而可以更高並發(高達 10K TPS)非常穩定的去用我們的產品和 Layer2 的方案,同時我們也把在 Layer2 專有的鏈上語言轉化為開發人員常用的 API 和 SDK,從而大大的縮減了開發人員去集成 Layer2 和以太坊的時間。這樣即便不是 EVM 兼容的 zkRollup,開發人員也能很快的使用。如果對 Reddio 的方案感興趣,歡迎大家到 www.reddio.com 來免費測試。
隨著 zkRollup 的完善,我們將會看到更多完全去中心的全鏈上 DeFi、Web3 App、遊戲得以部署和爆發,而 Web3 的格局也會因此發生很大變化,這也為更多創業者提供了前所未有的機會,期待跟大家一起搭建這樣的未來。
06 鳴謝
感謝以下組織對本次公益課程的支持!
贊助方支持:
One Global Blockchain Centre (OGBC)
https://www.ogbc.com/
OGBC 是 Web 3.0 的領先孵化器,他們與新興的加密貨幣初創公司合作,建立未來的基礎設施。通過利用 OGBC 在加密貨幣領域的專業知識、網絡和資源,公司和項目可以充分發揮其潛力,努力為區塊鏈行業越來越多的用戶開發創新和有價值的解決方案。
其它合作方支持:
07 關於 Moledao
MoleDAO是一個區塊鏈開發者社區,供所有區塊鏈愛好者了解區塊鏈的最新動態,並在經驗豐富的區塊鏈先驅者和創新者的幫助下成長,為構建 Web 3 生態系統貢獻更多創新想法。
我們旨在通過搭建區塊鏈愛好者交流社區、提供區塊鏈項目支持、舉辦全球黑客松系列活動、幫助項目人才匹配、提供項目贊助和指導,將區塊鏈理念帶給每個人並發展區塊鏈生態系統。
我們的願景是成為一個精心策劃的一站式區塊鏈生態系統。無論你是區塊鏈愛好者、區塊鏈開發者、機構還是投資者,都可以在 Moledao 找到適合自己的定位。
更多內容請查看?:Moledao 是誰?在做什麼?你能在這兒收穫什麼