除非躲進深山老林,否則很難不知道這波由以太坊二層可擴展方案 Rollup 掀起的熱潮,
2020 年 9 月,以太坊的 gas 價格突破歷史新高,超過 477 Gwei,或許這預示著離 gas 價格漲至 Twei 的日子不遠了,
自 2017 年的 ICO 熱潮以來,以太坊網路上還沒有如此擁堵過,可以說現在的擁堵程度更高了。區塊 gas 上限也創下了歷史新高 1250 萬,交易量達到了 2017 年的峰值的水平,區塊大小也達到了歷史最高水平。
雖然這對于提高以太坊網路的實用性來說(至少從這些指標來看)是令人鼓舞的消息,但是有人可能會爭辯說,當前底層的可擴展性不足問題極大地限制了應用程式,并嚴重影響了用戶體驗。但是,這個問題已經不新鮮了,以太坊社區早在數年前就預見了這一問題,此后也一直在探索解決方案,
目前,Eth2.0 的研究主要聚焦于底層的 PoS 和分片機制上。在接下來的幾個月中,我們很快將看到 phase 0 上線。然而,Eth2.0 的計算可擴展性(即,在分片中通過智能合約來完成狀態執行)要等到 phase 2 才能實現,目前預計要等到 2021 年以后。
在計算機科學中,所有問題都可以通過另一種迂回方式解決,—— David Wheeler
Layer 2 解決方案采用的迂回方式是,在 Layer 2 上處理交易,只在必要時使用 Layer 1。這類解決方案包括狀態通道、側鏈和 Plasma 等。多年來,已經有很多項目探究過這些方案,取得了巨大進展,
最近,Bitfinex 的姊妹公司 Tether 發行的 USDT 是目前市值最高的穩定幣,并且一直是以太坊 gas 的最大消費者,Tether 已經轉向了OMG Network 的 More Viable Plasma Layer 2 解決方案,
Reddit 舉辦了 “超強 Reddit 可擴展性方案(The Great Reddit Scaling Bake-Off)” 大賽,來提高其基于以太坊的社區積分(Community Points)計劃(目前只在兩個子 reddit 板塊實現)的可擴展性。目前,大賽已經收到了 22 項有關 Layer 2 解決方案的提案。
然而,要注意的一點是,Layer 1 和 Layer 2 解決方案不是互斥的,而是相乘的,
因此,雖然 Eth 2.0 將在未來幾年分階段上線,但是 Layer 2 解決方案有望在此之前和在此之后提供亟需的可擴展性,
過去的幾年來,Layer 2 解決方案的研究主要聚焦于狀態通道和 Plasma 項目,但是 Rollup 方案最近非常火爆,獲得了很大進展。
因此,本文將深入探究 Rollup,并從原因、定義和采用等方面對其進行總結,我們將介紹兩類 Rollup 方案—— ZK Rollups 和 Optimistic Rollups ——的概念,以及一些主要實現,最后,我們還將提到 Status Network 上可能會受益于Layer 2 方案的各種舉措,以及我們即將實現的項目,
為什么要采用 Rollups?
背景知識:構建在以太坊上且無需對底層 Layer 1 協議進行任何修改的可擴展性方案被稱為 Layer 2 方案,這些方案無需與以太坊網路交互即可處理交易,并通過智能合約將其安全性錨定在以太坊的 Layer 1 上,
Layer 2 方案之所以具有吸引力,是因為以太坊上可以運行多個類似方案,僅供那些可以感知 Layer 2 的應用使用,無需每個人都升級底層基礎設施(這是一項風險極高的大工程)。雖然 Layer 2 并不一定會提供像 Layer 1 那樣的安全性和確定性,但是相比 Layer 1 來說,它可以提高吞吐量,降低成本,并改善用戶體驗,對于某些應用來說,Layer 2 就夠了,
目前,最具潛力的 Layer 2 解決方案是狀態通道和 Plasma。
狀態通道最適合那些參與人數確定,并且需要在一段時間內多次交換狀態更新的應用;另外,它也需要極強的可用性保證,來滿足 “挑戰期” 的安全需要。Connext Network 就是使用狀態通道來幫助 dApp 實現可擴展性的典型例子。
Plasma是 2017 年 8 月由 Vitalik Buterin 和 Joseph Poon 提出的。Plasma 是一個可擴展性框架,可以通過根鏈上的智能合約將資產轉入/轉出子鏈,所有交易執行都發生在子鏈上,狀態承諾(通過根據區塊中所有狀態更新創建的默克爾根)會發布到根鏈上,等到之后退出根鏈時可以在欺詐證明中使用,Plasma 有多種變體方案,包括 Minimum Viable Plasma、More Viable Plasma、Cash、Debit 和 Prime。OMG Network 的 More Viable Plasma 是最近出現的 Plasma 項目,已經獲得市場采用。
缺點:狀態通道的最大缺點是其活性假設。用戶或其受委托方需要一直監控 Layer 1,以便處理各種挑戰。Plasma 不僅繼承了這種活性假設,還引入了數據可用性假設,即,用戶需要相信運營者會提供所有交易數據,以便在需要時使用這些數據來驗證交易的正確性。如果沒有數據可用性,在最糟糕的情況下,用戶退出 Plasma 鏈時可能會引發大規模問題。狀態通道和 Plasma 都不支持智能合約,這嚴重限制了需要具備 EVM 兼容性的應用。
查看對比圖可知(中文譯本),Rollup 不需要引入上述兩個限制性假設。這兩個假設會在很多情況下造成不便。對于大部分應用來說,Rollup 相比狀態通道和 Plasma 更有前景,
接下來就讓我們介紹一下 Rollup 的定義,以及它不需要像狀態通道和 Plasma 那樣引入限制性假設的原因,
Rollup 是什么?
Rollup 與 Plasma 非常相似,只有一處較大的差別,避免了數據可用性假設,即,所有 Layer 2 交易都會“匯總”到一個交易的調用數據(調用數據(calldata)是以太坊交易存儲數據參數的只讀區域)內,然后打包進區塊提交至 Layer 1,
鑒于調用數據在成本上比 Layer 1storage(合約存儲)低得多,Rollup 方案可以讓任何人在任何時候都能從 Layer 1 上獲取 Layer 2 上的交易數據(不像 Plasma 方案那樣只是默克爾根),用來驗證狀態轉換,因此,Layer 2 數據一旦提交,即可從 Layer 1 上獲得,這一特性可以免去活性假設和數據可用性假設的要求,讓 Rollup 相比狀態通道和 Plasma 更具優勢。
根據狀態轉換的驗證方式,我們可以將 Rollup 分為兩類:ZK Rollup 和 Optimistic Rollup。
ZK Rollup(ZKR):在 ZKR 中,運營者必須為 Layer 2 上的每個狀態轉換生成一個 zk-SNARK 有效性證明,并將這些有效性證明提交至 Layer 1 上的 Rollup 合約。Rollup 合約會驗證這些從舊的默克爾根到新的默克爾根的狀態轉換的證明是否有效。雖然使用了新的元件,但是這些保障從本質上來說是密碼學的,
Optimistic Rollup(OR):在 OR 中,運營者將新的默克爾根與交易數據一起提交至 Layer 1 上的 Rollup 合約。每個人都會假設這是有效的狀態轉換(不會像 ZKR 方案中那樣進行驗證),樂觀地向前推進。因為,如果狀態證明無效,就會有參與者使用欺詐證明來挑戰它。這些保障從本質上來說是密碼學經濟的,因為代幣獎勵以及質押和罰沒機制會激勵運營者保持誠實。
根據深層次的對比分析可知(中文譯本),ZKR 更適合那些敲定時間較短(大約 1 ~ 20 分鐘)的代幣轉賬,但是不支持通用型應用所需的兼容 EVM 的智能合約,相比之下,OR 更適合那些需要兼容 EVM 的智能合約的應用,但是在默認情況下,敲定時間較長(大約 1~2 周),因為需要等待欺詐證明挑戰期結束,(但是,有一些技術可以提供經濟保障,以縮短 OR 的敲定時間和提款時間。)
誰在開發 Rollup?
有很多團隊都在開發 ZKR 和 OR 實現,并根據不同的場景設計了不同的假設和特性。
ZKR:Matter Labs 團隊開發的 zkSync 已在以太坊主網上線。Loopring 已經使用 ZKR推出了中心化交易所和支付服務,StarkWare 團隊的 StarkEx 是一種使用 zk-STARK(而非 zk-SNARK)的 ZKR 技術,因此不依賴于可信設置,具有更強的可擴展性,而且能夠抵御量子計算攻擊,
OR:至少有 9 個項目在研究不同的 OR 變體方案(具體可以參考這篇文章中的對照表),最大的區別在于是否支持 EVM 兼容性和欺詐證明挑戰的交互性要求。例如,Celer、Nutberry 和 Optimism 支持兼容 EVM 的智能合約和非交互型欺詐證明。
Status Network
Status 的一大愿景就是成為 “以太坊上的窗口”。雖然 Status Messenger 不直接與以太坊區塊鏈交互,但是該應用整合了安全的密碼學錢包和 Web3.0 瀏覽器,這二者都需要與以太坊交互,由于上文提到的可擴展性挑戰,會直接受到 gas 價格飆升的影響。
Status Network 旗下的 Keycard 產品正在探索構建一種支付網路,旨在滿足當前以太坊網路所不具備的信用卡級別的可擴展性和即時確定性,
另外,Status Network 還采取了許多其它舉措,例如,Kudos rewards、Tribute-to-Talk 和 ENS 域名。這些舉措非常需要較低的 gas 價格,來實現可行的部署和良好的用戶體驗,
雖然 Status Network 的 Nimbus 團隊正在與其它客戶端團隊合作開發以太坊 2.0,但是上述 Status 舉措很快就能從 Layer 2 可擴展性方案中受益。
因此,我們 Status 團隊評估 Layer 2 方案已經有一段時間了,由于上述種種原因,Rollup 肯定是首選。其中,支持智能合約的 Optimistic Rollup 方案更吸引我們,因為它適用于我們的所有用例。
點對點:目前,所有 Rollup 架構都要依靠運營者聚合來自客戶端的所有交易,并使用傳統的客戶端-服務器架構來創建區塊,缺點是可能會引入中心化和審查制度,并降低隱私性,
因此,我們 Status 團隊正在探索 Layer 2 上的客戶端-運營者交互如何使用我們的去中心化點對點協議(如Waku)來提供隱私保護路由和抗審查性,例如,使用 Waku 來將交易路由至不同的運營者既能保護客戶的隱私,又能在抵抗審查的同時為他們提供不同的路徑來發布交易,
結論
雖然我們準備在接下來的幾年大規模升級至以太坊 2.0,但是過去的幾年來,Layer 2 方案在不斷發展,Rollup 成為繼狀態通道和 Plasma 之后的新秀,
在本文中,我們全面調查了 Layer 2 的環境,總結了不同的方案及其優缺點,以鼓勵更多項目方采用 Rollup。最后,我們還提到了 Status 團隊對 Layer 2 方案的探索。