簡明解讀以太坊二層擴容方案:Rollup、狀態通道與側鏈

買賣虛擬貨幣

自從 defi 熱潮席捲以太坊,導致以太坊擁堵,gas 費用創歷史新高。我們一直以來關心的以太坊擴容的現實問題:在以太坊 2.0 尚未推出,更為貼合實際的 layer2 方案有望解決以太坊的擴容問題。

這次,分散式課堂邀請了 celer 團隊的 michael 著重講述「鏈下」技術,它們包括狀態通道、plasma、rollup 等。michael 畢業於麻省理工學院(mit),獲得計算機碩士學位。michael 目前在 celer 負責對於區塊鏈技術,特別是各種二層擴容技術的研究,他參與了通用狀態通道、狀態守衛者側鏈 (sgn) 以及 hybrid rollup 等的核心設計和開發工作。

狀態通道

  • 優點:延遲低,實時性高
  • 缺點:使用者人數有限,資金利用率低
  • 用途:小額支付 / 預測市場 / 賭球賽馬

一般情況下是雙方會在鏈下建立一個狀態通道,透過交換私鑰進行簽名以後的資訊,並在鏈下進行交易。當時比特幣比特幣實現了名為閃電網路的支付通道網路,把這個狀態通道互相連線起來:即使使用者沒有直接狀態通道,也可以透過幾箇中間節點把它一一層一層地轉發過去,相當於 channel network。

基本上,狀態通道的延遲能做到網際網路的延遲。比如說伺服器之間的延遲是多少,這個狀態通道的延遲就是多少。市面上透過其他鏈傳送交易的速度是秒級的。但是狀態通道的話,一般都是毫秒級的。另外,它還有一個優點就是實時性非常高。

狀態通道是一種 scale up (擴容)的手段。scale up 的意思是用技術手段線性地將區塊鏈擴容,比如說像分片。比如說以太坊 2.0 要啟動 64 個分片,然後它的容量就增加了 64 倍。而對於狀態通道來說,他現在能支援 1000 個使用者同時線上,未來可能最多支援到 64000 個使用者,這個數字還是很低的。

儘管狀態通道的 scale up 是說你節點數量越多,你的網路越大,你的容量越大。這只是一個很美好的設想,實際上它受到了一個很大的限制——low liquidity utilization (低資金利用率)。狀態通道是要這個雙方都把這個錢存到鏈上的通道,之後再互相進行傳送支付。第一步,就是要把錢存到鏈上去,這個錢是有限的。就是你比如說手上你有 1000 個以太,狀態通道只能傳送 1000 個以太。如果你突然傳送一筆 2000 以上的以太,它就無能為力了。

因為容量可以擴容,然而資金流動性卻沒有辦法擴容。如果一個使用者給另一個使用者傳送一大筆錢,那中間每一個轉發的節點都要有這麼大的容量,在現實生活中是不太可能的。等大家把這麼多錢都鎖到一個狀態通道里邊,如果只能用狀態通道轉發的話,這個效率是非常低下。

狀態通道只能支援小額支付。像閃電網路其實並不大,可能和資金利用率低是有關係的。另外,把一般的 dapp 搬到狀態通道是相當難的。我們曾經嘗試把五子棋搬到狀態通道上。儘管我們寫了 sdk,讓別的專案的開發去用,他們還是覺得這個開發是相當難的。

另外,狀態機只適用於這個固定的人數。就是你要把 uniswap 放在狀態機上是不現實的。因為在這個 dapp 的使用者是無限量的,沒有一個固定的使用者集。即使你把棋類遊戲或是稍大的 pc 遊戲搬到狀態通道上,這些遊戲也必須寫成狀態機的形式。他們每一個狀態的轉移,要非常清楚地寫出來。

理論上,你可以把任意單機遊戲都搬到狀態通道上。但現實中沒有人會去這樣做,除非你是非常不信任遊戲伺服器。一般來說,預測市場以及賭球賽馬(大家對及時變化很快的場景做預測),是可以搬到狀態通道上的。

側鏈

  • 優點: 程式碼和資料獨立,不增加主鏈的負擔
  • 缺點:安全性弱

側鏈的本質就是在這個基礎層上再搭一個鏈,然後用完全另外一套驗證人。它的整個安全性是分開的:主鏈有主鏈的安全性,側鏈有側鏈的安全性。

主鏈從 pow 轉到 pos 會有更強的安全性,但側鏈的驗證人偏少,安全性也較弱:比如說 cosmos 才只有 100 個驗證人。

側鏈的 tps 取決於它的驗證人。驗證的人數越多,它的 tps 會越低。側鏈的延遲是相對低的,比狀態通道的毫秒級高一些,比主鏈的十幾秒幾十秒延遲低很多。

狀態通道的安全性就是雙方互相簽過名,就具備主鏈的安全性。只要一方做惡,另外一方都可以提交到主鏈,把它這個爭議解決掉。而側鏈的話就是你要信任多數的驗證人是好人,所以它的安全性要比主鏈低很多。

rollup/plasma

  • plasma:缺點是無法應用到智慧合約上,使用者跑節點的負擔重
  • rollup:優點是資料在鏈上,可以隨時驗證(也是和 plasma 唯一的區別),鏈下支付可以用任何代幣支付而鏈上支付只能用 eth

rollup 是 19 年慢慢火起來的一個概念。和 rollup 類似的 plasma,是以太坊上也是 v 神認為大有希望的一個解決方案。plasma 的問題是它只能夠把支付做好,對於稍微複雜的智慧合約卻無能為力。作惡的一方是不會把資料給你提交上鍊,以至於這種爭議至少要等兩個星期才能解決。這個過程是對於使用者來說難以接受的。另外,由於 plasma 的資料都在鏈下,使用者跑 plasma 的節點負擔是很重的:你跑的時間長了,就會消耗幾十個 g 或者幾百個 g,是手機無法承受的。

19 年有人提出了 rollup,在我看來是一箇中間道路。rollup 就是鏈下的計算+鏈上的資料+fraud proof。然後它最關鍵的一個點就是不是所有資料都在鏈上,它的鏈上資料僅僅限於它每一筆交易的輸入,但不包括它的最終狀態。比如說,你從 a 走到 b ,我只是把路徑告訴你了;但是你具體在 a 做了什麼事,在 b 做了什麼事,這種狀態是記錄在鏈下的。

任何人任何使用者都可以去看 rollup 的區塊,也就是打包後的交易,然後把它這個狀態的轉移重新更換。如果狀態轉移是錯的,使用者就可以在鏈上提交 fraud proof,並將驗證人淘汰掉。因為驗證人在鏈上是有質押的,如果他作惡的話,他的質押會被沒收掉。且雖然不是每一筆 rollup 都會進行驗證,但是驗證人會一直跑,一旦發現有 fraud (比如說 a 給 b 發了 1 塊錢,但記錄的是 a 給 b 發了 3 塊錢),就可以拿到相應獎勵。這個過程可以理解為任何人都可以進行抽查以及督察。

他的好處是資料都在鏈上,可以任憑使用者隨時去驗證,不會出現像 plasma 那樣的資料可用性問題。且驗證的結果具有唯一性,驗證人鏈下把這個智慧合約跑一遍,就會發現驗證鏈下的計算是否按照鏈上的智慧合約。從經濟學角度來說,一般的驗證人不太會去做惡,因為他的質押額太大了。

rollup 和 plasma 其實非常類似。只是 rollup 把資料放到鏈上去,fraud proof 的過程會非常簡單。rollup 的 tps 會在主鏈的幾百倍左右,一般是在幾百上千的級別;根據不同業務,如果應用簡單一些的話,應該可以做到幾千級別。而 plasma 的 tps 最高能到上萬。

optimistic rollup / zk rollup

  • optimistic rollup:可以支援通用的智慧合約,缺點是需一到兩週時間去跑證明
  • zk rollup:可以支援支付以及 dex,缺點是耗記憶體和 cpu/ 無法支援智慧合約,離落地還有時間

optimistic rollup 從技術來說要比 zk rollup 簡單很多。它的好處是可以支援通用的智慧合約。zk 和 optimistic 的區別是,fraud proof 變成了 validity proof。這兩種驗證方式相當於兩種不同的思維方式:optimistic rollup 是樂觀思維,就是說相信驗證人是不會做惡的;zk 是悲觀思維,相信驗證人還是會作惡的,所以要生成一個零知識證明,然後和 rollup 一起打包到鏈上去。大家去驗證不需要跑狀態轉移,因為這個轉移已經透過零知識證明跑過一遍了。

這就類似法律上的舉證證明,是自證清白還是別人證明你是好人。zk rollup 相當於自證清白。其實,optimistic 和 zk 都牽涉到一個最終性的問題。optimistic rollup 的最終性是比較長的,使用者沒有跑過這個證明,提現期需要一到兩週。這期間系統會給足夠多的視窗,讓足夠多的人去驗證這個事情。zk 不會碰到這個問題,因為一旦它的零知識證明上鍊,它的最終性也就確認了。

那麼 zk rollup 的問題是什麼呢?它對於這個節點要求是非常非常高的。zk rollup 就是耗 cpu 和記憶體,並需要很強的伺服器去做這個打包。而 optimistic rollup 對於打包者的要求並不那麼高。唯一要求的就是驗證人在鏈上質押來保證不會作惡。

由於這個 zk 的複雜性,導致它目前只能用於一些特定的應用:比如說像那個支付和 dex。另外 zk 還包含了零知識電路,它是密碼學中非常新的概念,目前存在安全隱患的可能。

hybrid rollup

  • 避免了中心化的問題,引入了側鏈做打包人

hybrid rollup 是結合了側鏈和 rollup。我們發現了一個問題打包者可能很中心化,比如說路印。而 zk roll 因為對打包者要求很高,它的中心化問題更加嚴重。這會引發一個問題:假設路印的伺服器到期以後,機器就會發生宕機,交易所會進入提現模式,相當於變相被解散。為了預防這種風險,我們犧牲了一些 tps,引入了側鏈的驗證人。

hybrid rollup 的好處:第一,不會出現打包人只有一個以及單點故障這個情況,因為這需要一個側鏈共同去打包。第二,作惡的可能性更小了,因為需要所有節點共同加強才能去作惡。且安全性是雙重的:側鏈以及 rollup 的雙重安全性會防止有人作惡。

來源連結:mp.weixin.qq.com

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;