你知道區塊鏈的熱門主力方案Rollup是什么嗎?_鏈金投研_火星財經
發表於 2022-02-22 13:41 作者: 區塊鏈情報速遞pro
最近,以太坊創始人Vitalik Buterin在一篇題爲“混合式二層協議的曙光” 的文章裏對Rollup方案大加贊賞,認爲它爲智能合約的可擴展性打开了大門。
那么什么是Rollup?它包括哪些主流方案?這些方案各自有什么優缺點?它們未來發展的前景如何?
Rollup的出現
最近幾年,以太坊二層(LAYER-2)擴容技術得到了迅猛發展。
所謂二層,就是將一部分資金存儲在主鏈智能合約裏,在保證足夠安全的前提下,把一部分交易放到主鏈之外進行,就好像鏈下多出來了一層網絡。
在二層方案裏表現比較突出的就是狀態通道和 Plasma側鏈。雖然這兩種方案誕生時間很早,但是發展的卻比較緩慢。其背後的原因歸根結底是數據的可用性問題。
就在二層擴容技術舉步維艱的時候,一種名叫 Rollup的新方案被提了出來。
但是與狀態通道和Plasma不同的是,它可以“打包”交易,並將“打包”後的交易數據連同一個SNARK零知識證明發布到鏈上。
打包的正確性可以通過零知識證明來見證,負責“打包”的操作者不可能發布惡意或無效的交易。這就是後來被Vitalik Buterin稱之爲ZK Rollup 的二層擴容方案。
ZK Rollup並非萬能,它遇到的最大問題就是通用性。除非要證明的交易非常簡單,否則創建SNARK證明的成本會非常高。
因此,一種名叫Optimistic Rollup的折中方案被提了出來。
Optimistic Rollup同樣也是把交易數據都放到鏈上,但不是用SNARK做見證,而是採用“加密經濟學有效性博弈”來實現有效性驗證。
作爲一種提高區塊鏈吞吐量的技術,Rollup可以在有效提高網絡吞吐量的同時,避免對協議層進行大量的更改,部署Rollup也不需要對網絡發起硬分叉升級。
目前已經有許多以太坊上的項目(如Celer,ANON等)採用了Rollup協議來提高Dapp的吞吐量和用戶體驗。
Rollup是如何工作的?
鏈上有一個智能合約,它維護狀態根:rollup狀態的Merkle根(意思是,“余額”內的帳戶余額,合同代碼等)。
任何人都能夠以高度壓縮的形式發布批處理,交易集合以及先前的狀態根和新的狀態根(處理交易後的Merkle根)。
合同檢查批處理中的先前狀態根是否與其當前狀態根相匹配;如果是這樣,它將狀態根切換到新的狀態根。
爲了支持存款和提款,我們增加了使輸入或輸出處於rollup狀態“之外”的交易的功能。
如果批次具有來自外部的輸入,則提交該批次的事務也需要將這些資產轉移到rollup合同中。
如果某個批次有外部輸出,則在處理該批次時,智能合約會啓動這些提款。
就是這樣!除了一個主要細節:如何知道批次中的狀態後根是正確的?
如果某人可以提交具有任何後期狀態根源的批次而沒有任何後果,那么他們可以將rollup中的所有Token轉移給自己。
這個問題很關鍵,因爲有兩個非常不同的解決方案系列,而這兩個解決方案系列就導致了兩種rollup方式。
Optimistic Rollup與ZK Rollup
Rollup的兩種類型分別是Optimistic rollup和ZK Rollup。
1
Optimistic Rollup
Optimistic rollup,使用欺詐證明—rollup合同會跟蹤其整個狀態根歷史以及每個批次的哈希值。
如果有人發現某個批次的狀態後根不正確,則發布需要鏈的證明,以證明該批次的計算不正確。合同將驗證證明,並還原該批次及其之後的所有批次。
2
ZK rollup
ZK rollup,使用有效性證明—每個批次都包含一個稱爲ZK-SNARK的加密證明(例如,使用PLONK協議),這證明後狀態根是執行批次的正確結果。
無論計算量有多大,都可以在鏈上非常迅速地驗證證明。
總的來說,我個人認爲,在短期內,對於通用EVM計算而言,樂觀可能會勝出;而對於簡單付款,交易和其他特定於應用的用例,ZK可能會勝出。
隨着ZK-SNARK技術的改進,中長期ZK將在所有用例中勝出。
Rollup工作細節
在Optimistic Rollup中,首先我們需要設立一個可信任的節點,這個節點負責收集所有的交易信息、驗證然後打包.
打包後的信息集合將帶上該節點的籤名發送到區塊鏈網絡中。
當一個可信節點設置成功後,該節點將成爲Rollup節點,這個節點需要同全節點一樣,下載整個區塊數據並實時更新區塊狀態。
我們仍舊以之前那個公司爲例,假設目前有2000筆交易正在等待執行,公司的員工會將2000筆交易發給Rollup節點。
之後,Rollup節點需要根據已有的狀態和區塊數據,對交易進行驗證,並保存以下數據集(交易內容,交易前狀態,交易後狀態)。
當Rollup節點對所有交易完成了驗證與執行並生成數據集後,節點需要對這個數據集進行籤名,即Sig Rollup節點(交易內容,交易前狀態,交易後狀態)。
最後將籤名與數據集整合到一筆交易中,這個交易被稱作斷言Assertion,發送到區塊鏈網絡等待其他節點驗證即可。
需要注意的是,網絡中的其他節點並不會驗證Rollup節點發來的數據集,僅僅只驗證其籤名,驗證完畢後將根據數據集更新區塊鏈網絡狀態。
正如它的名稱“Optimistic Rollup”,實際上所有的Rollup協議由於將交易驗證從鏈上轉移到了鏈下,因此都是一種基於“樂觀”的假設—假設大多數情況下Rollup節點不會作惡。
但光有樂觀假設是不足的,節點總會因爲各種各樣的原因出現問題。
爲了避免這些節點惡意行爲,提高作惡成本,Optimistic Rollup中還有如下機制:
一方面,Rollup節點需要向網絡質押一定額度的Token,這些Token有一定的解鎖時間,並會在Rollup節點做出惡意行爲時被罰沒。
另一方面,Rollup節點所提交斷言不會被網絡立即認可,所以存在一定時間的窗口期(一般是1周)。
如果其他節點認爲該Rollup節點提交的斷言存在惡意行爲,節點可以質押一定押金並對該斷言發起挑战。
並且區塊鏈中的出塊/驗證節點會對該斷言中的所有內容(包括數據集)進行重新驗證、執行,比對交易狀態的差距。
如果的確存在惡意行爲,那么Rollup節點的押金會被罰沒,則發起挑战的節點則會獲得一定獎勵。如果不存在惡意行爲,則發起挑战節點的押金會被罰沒。
另外,在窗口期結束時沒有其他節點對斷言發起挑战的話,斷言中的狀態信息將會被系數更新至區塊鏈狀態中。
Optimistic Rollup可以將多個交易信息經可信第三方聚合爲單筆信息,由於交易中的狀態變更情況是由鏈下節點驗證而非鏈上節點驗證。
因此降低了區塊鏈上節點的驗證難度(僅需要驗證Rollup節點所提交的籤名,並更新由該節點提交的狀態信息即可)。
數據集雖然看起來並沒有較單個交易的疊加更小,但數據集因爲不會受鏈上節點的驗證,故不需要爲其支付高昂的手續費。
依靠這種Layer2處理方案,可以很容易的提高區塊鏈的有效吞吐量。
ZK rollup是如何工作的?
一個簡單的以太坊交易(發送ETH)需要約110個字節。但是,Rollup上的ETH傳輸僅佔用約12個字節。
ZK特有的一個重要壓縮技巧是,如果事務的一部分僅用於驗證,而與計算狀態更新無關,則可以將該部分留在鏈下。
這不會完全在樂觀的狀態下完成,因爲如果以後需要在欺詐證明中檢查數據,則仍需要將數據包含在鏈上。
而在ZK中,SNARK證明批次的正確性已證明任何數據提供了驗證所需的信息。
還有一個重要的例子是隱私保護,在樂觀的狀態下,每筆交易中用於隱私的約500字節需要進行保留,而在ZK中,覆蓋整個批次的ZK-SNARK已經沒有了。
這些壓縮技巧是Rollup可伸縮性的關鍵。沒有它們,Rollup可能只會使基礎鏈的可伸縮性提高約10倍,而採用壓縮技巧時,縮放系數幾乎可以超過100倍所有應用程序。
鏈金分析
Rollup的基本概念現在已經得到了很好的理解,但我們可以肯定它們在根本上是可行且安全的,並且已經將多個Rollup部署到了主網上。
但仍有很多Rollup設計領域尚未得到很好的探索,充分利用以太坊的可伸縮性,將以太坊生態系統的大部分完全整合到Rollup中還將面臨很多挑战。
投資有風險,本文觀點和意見僅代表作者本人,並不構成任何建議。
標題:你知道區塊鏈的熱門主力方案Rollup是什么嗎?_鏈金投研_火星財經
地址:https://www.coinsdeep.com/article/134.html
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。