一文理解以太坊各個Layer2 擴容解決方案

買賣虛擬貨幣

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

這次,分散式課堂邀請了Celer團隊的Michael著重講述「鏈下」技術,它們包括狀態通道、Plasma、Roll Up等。

(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會越低。側鏈的延遲是相對低的,比狀態通道的毫秒級高一些,比主鏈的十幾秒幾十秒延遲低很多。

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

Roll up/Plasma

Plasma:缺點是無法應用到智慧合約上

使用者跑節點的負擔重

Roll Up:優點是資料在鏈上,

可以隨時驗證(也是和Plasma唯一的區別)

鏈下支付可以用任何代幣支付

而鏈上支付只能用ETH

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

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

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

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

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

Optimistic Roll UP / ZK Roll Up

Optimistic Roll UP:

可以支援通用的智慧合約

缺點:需一到兩週時間去跑證明

ZK Roll UP:可以支援支付以及DEX

缺點:耗記憶體和CPU/無法支援智慧合約

離落地還有時間

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

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

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

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

Hybrid Roll Up

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

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

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

免責聲明:

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

推荐阅读

;