原文標題:《LD Research:一文詳解以太坊擴容全方案》
原文作者:0xRJ_eth(Twitter:@0xRJ_eth)
原文來源:LD Capital Research
今天主要是從一個自上而下結合時間發展的視角整理了以太坊擴容方案,內容涵蓋了一些市場如今已經不再提及的舊方案,有些可能大家聽都沒聽說過。但我認為把大框架和相互邏輯理清楚是非常重要的,這有助於我們理解擴容的發展經歷了哪些創新和組合,遇到了哪些問題,不同時期市場的關注點是什麼,以及為何目前 Rollup 方案勝出。這些也都有助於我們看清大方向。
個人在做 research 的時候,發現網上基本沒太多文章從這個角度來全面的匯總和對比。我最初純粹是因為完全不了解擴容,感覺方案很多,各有利弊,有些還很相似,也想不明白為什麼,所以花了大量的時間挖不同時期的文章。但這兩周下來,我意識到結合了時間角度的整理對我的幫助特別大。不過今天資訊量應該會很大,因為不可避免地會涉及很多的技術和概念,如果能耐心讀完,相信對構建整個擴容賽道的大框架和邏輯梳理很有幫助。
在第一層以太坊區塊鏈上,不斷增長的網路使用需求,導致了網路擁擠,推高了交易成本。提高存儲、網路速度和吞吐量是有意義地大規模採用以太坊的基礎。
因此,需要進行擴容(Scaling)。
擴容的核心目的便是在保持去中心化和安全性的前提下,提升交易速度(更快確定交易)和交易吞吐量(提高每秒交易量 TPS)。
擴容方案:可以分為兩大類——On-Chain(layer 1)和 Off-Chain(側鏈+layer 2)
對區塊鏈本身的性能提升,這需要對第一層主網/以太坊協議進行變更:這就涉及到了「Layer 1」。Layer 1 網絡是底層區塊鏈的別稱。除了以太坊(ETH)之外,比特幣(BTC)、Solana、Polkadot、Near、Cosmos、Aptos、Sui 等都屬於 layer1 協議,因為它們是所在生態系統中的主要網路。Layer 1 協議能夠在自身的區塊鏈上處理並完成交易,同時自帶用於支付交易費用的原生通證。
(整個 Layer1 擴容是以太坊升級非常重要的一環,這部分未來可以在以太坊升級整理分享裡細說,今天 Layer1 就簡單歸納一下概念,就不太細說了)
On-Chain Layer 1 擴容的可選方案包括:
a. 更改共識機制。以太坊升級就採用了這一方案。幾周前的 beacon 信標鏈和主網成功合併就是完成了共識機制從 PoW 到 PoS 的轉換。
b. 實施分片 sharding。分片是一種常見的 Layer 1 擴展解決方案,主要是用於增加交易的吞吐量。這是計算機學中的一種數據庫分割技術,網路連同上面的節點一起被分割成不同的分片,來平攤工作量並提升交易速度。每個分片處理整個網路的一部分活動,即每個分片都有自己負責的交易、自己的節點和獨立的區塊。
分片還可以減輕每位驗證者的負擔(因為他們不再需要處理和保存整個網路的所有交易)。每個節點會將完成的工作寫入主鏈,實時共享本地數據。這是之前 eth 2.0 原升級計劃涉及到的擴容方案,現已被 danksharding 所取代。
c. 擴大區塊規模。使每個區塊能夠處理更多交易(目前以太坊升級 proto-danksharding 就是類似方案,升級這部分以後會單出一個分享)。
Layer 1 擴容需要大費周折。很多情況下,不是所有網路用戶都會同意這樣的變更。從而可能會導致社區分裂,甚至發生硬分叉。(2017 年比特幣分裂出比特幣現金就是硬分叉的後果)
所有的鏈下擴容都是與第一層主網分開實施,無需更改現有以太坊協議。Rollup 大致上可以分為兩大類:I. 侧鏈;II. layer2 二層解決方案。
侧鏈是獨立運行的區塊鏈,其安全性全靠自身協議機制。這也是侧鏈和目前主流鏈下擴容方案 layer2 二層擴容最大的區别。
而侧鏈作為一條獨立的鏈和一些 layer1 公鏈相比,區别在於侧鏈專門用於處理以太坊的過剩容量,而不是與整個以太坊競爭。這些生態系與以太坊社區緊密結合,以互補的方式托管以太坊應用。
關於這部分分類,我發現網上很多文章都比較混亂,會把侧鏈歸類在 layer2 中。這部分我主要是參考了以太坊基金會和侧鏈白皮書對侧鏈的定義。

https://ethereum.org/zh/developers/docs/scaling/sidechains/
第二類鏈下擴容是剛才提到的 也是大家常聽說的 layer2 二層解決方案:基本想法是鏈下計算/執行,結果上鏈;離線批量處理。直接從第一層以太坊共識中獲得安全性。那不同的 layer2 方案會在安全性、擴容效率、去中心化程度、通用性之間尋找平衡。
先來說說側鏈:
側鏈 Side Chains 是一個獨立的區塊鏈,與以太坊主網並行且獨立地運行。
它們通常是為高效處理交易而設計的。與第二層擴容方案最大的不同在於側鏈不會將狀態更改和交易數據發布回以太坊主網,這也是為什麼它們並不繼承以太坊的安全屬性。
側鏈通常是選擇犧牲了一些去中心化或安全性來實現高吞吐量。
側鏈主要是通過雙向錨定的跨鏈橋(two way pegged cross chain bridge)來實現與主網的連接、以及互相操作(這個概念我們很快就會細說)。而這裡所謂的雙向錨定式主要是指支持資產的雙向錨定,即資產在主鏈與側鏈之間的互轉。不過這裡需要注意一下,實際上資產並非實現真正意義上的轉移,只是通過「一條鏈鎖定,另一條鏈鑄造相同面額資產」的方式來進行「跨鏈」。但凡是架設雙向錨定跨鏈橋的項目都可以被視為側鏈。
我們先來了解一下什麼是雙向錨定的跨鏈橋(two way pegged cross chain bridge):
這個概念是 BlockStream 在 2014 年發表的側鏈白皮書中提出的。雙向錨定是指把主鏈上某筆資產比如 10eth 鎖定到一個特定地址; 同時,在側鏈上提供這筆「鎖定交易」發生的證據,等量的數字資產以 wrapped token 的形式就會在側鏈上被鑄造 比如側鏈上 mint 出了 10 weth,現在這 10weth 便可以在側鏈上進行交易了。反之亦然,用戶想在主鏈取出 eth 時,在側鏈上銷毀同面額的剩餘的 wrapped eth 就可以。
在主鏈鎖定(lock)token,在側鏈鑄造(mint)(wrapped)token。在側鏈銷毀/燒燬 token,在主鏈提取 token。

https://medium.com/techskill-brew/layer-2-blockchain-scaling-solutions-channels-sidechains-rollups-and-plasma-part-16-79819e058ef6
側鏈的工作環境和主鏈相同,同樣基於 EVM(以太坊虛擬機)。但側鏈有自己的帳本系統、共識算法(例如權威憑證、委托權益憑證、拜占庭容錯)腳本合約等。但為了實現各種不同的目標,它們獲得安全性的方式也有所不同。
這裡舉幾個例子:
a. 单一托管模式 中心化(基本第三方权威):这是现阶段最简单的在区块链之间转移数字资产的方式——将主链上的资产发送到一个单一托管方(比如交易平台),托管方收到这笔资产后,在侧链上激活等额资产,这笔资产就能在侧链上流通了。这种方式最大的缺点是过于中心化。

b. 联盟模式 联盟 - 多重签名联盟:联盟模式是使用公证人联盟来取代单一的保管方,利用公证人联盟的多重签名对侧链的数字资产流动进行确认。在这种模式中,如果要想盗窃主链上冻结的数字资产就需要突破更多的机构,但是侧链安全仍然取决于公证人联盟的诚实度。这种方式还是中心化的。
c. SPV(简单支付验证) 模式:以上两种方案都是通过中间人来保证安全的,都属于中心化的。
SPV(Simplified Payment Verification),即简单支付验证则是安全性更高的去中心化方式。
SPV 是 Nakamoto 在《比特币白皮书》(《Enabling Blockchain Innovations with Pegged Sidechains》大家感兴趣可以读读,我把链接放在下面了)中提到的概念。这也是比特币底层技术中很重要的一个概念。
SPV 是一种用于证明交易存在的方法,它的特点是只需通过少量数据就可以验证某个特定区块中交易是否存在。在 SPV 模式中:
1. 用户在主链上将资产发送到主链的一个特殊的地址,来锁定主链的该资产。
2. 在主链上等待一个确认期,是指币在转移至侧链之前,在父链上必须被锁定的期间。此确认期目的是生成足够多的工作量,让下一个等待期内的拒绝服务攻击变得更困难。典型的确认期的量级可以是一或两天。
當父鏈上生成了特殊輸出後,用戶等待確認期結束,然後在側鏈上生成一個引用該輸出的交易,提供出一個它已被創建並在父鏈上被足夠工作量覆蓋的 SPV 證明,確認期是一個依側鏈而定的安全參數,要在跨鏈交易速度和安全性間做權衡。
3. 主鏈確認期結束資產確定被鎖定後,會創建一個 SPV 證明並發送到側鏈上。然後一個對應的帶有此 SPV 證明的交易會出現在側鏈上,這筆交易就在側鏈上生成了相同價值的側鏈 Token 資產。
4. 生成的側鏈資產先處於鎖定狀態,接下來,用戶必須等待一個競賽期。這個期間,新轉移過來的幣不能在側鏈上花費。競賽期的目的是防止重組時出現雙花,在重組期間轉走先前鎖定的幣。在這個延遲期內的任何時刻,如果有一個新的工作證明發布出來,對應的有著更多累積工作量的鍊中沒有包含那個生成鎖定輸出的區塊,那麼該轉換將被追溯為失效。我們稱此為重組證明,需要等待一個爭奇期來防止雙花。如果在爭奇期內,用戶把主鏈上鎖定的幣轉走,其他用戶可以用最新的 SPV 證明此事,則側鏈鑄幣交易失效,稱此證明為重組證明。
只要有可能,所有側鏈上的用戶都會有動力來制發重組證明,因為對不良證明的承認會稀釋所有幣的價值。
5. 典型的競賽期也是一或兩天。競賽期結束後,側鏈 Token 生成,可以在側鏈內自由轉移,不需要與父鏈進一步互動。不過,它仍保留着父鏈幣的身份,僅能轉回到它所來的那一條鍊上。
6. 當用戶想把幣從側鏈上轉回父鏈時,流程重復上述步驟:在側鏈上將幣發送至一個 SPV 鎖定的輸出,產生一個充分的 SPV 證明來表明該輸出已完成,使用這個證明來解鎖父鏈上先前被鎖定的那個等面值的輸出。

d.(Not very important) 驅動鏈模式 Drivechain:驅動鏈概念是由 Bitcoin Hivemind 創始人 Paul Sztorc 提出的。在驅動鏈中,礦工作為『演算法代理監護人』,對側鏈當前的狀態進行檢測。礦工相當於資金的託管方,驅動鏈將被鎖定資產的監管權發放到礦工手上,並且允許礦工們投票何時解和將解鎖的資產發送到何處。礦工觀察側鏈的狀態,當他們收到來自側鏈的要求時,他們會執行協調協定以確保他們對要求的真實性達成一致。誠實礦工在驅動鏈中的參與程度越高,整體系統安全性也就越大。
e.(Not very important) 混合模式:驅動鏈 +公證人/側鏈的混合模式則是將上述獲得雙向錨定的方法進行有效的結合的模式。由於主鏈與側鏈在實現機制存在本質的不同, 所以對稱的雙向錨定模型可能是不夠完善的。混合模式是在主鏈和側鏈使用不同的解鎖方法,例如在側鏈上使用 SPV 模式,而在主鏈網路上則使用驅動鏈模式。
數據可用性(DA):
在數據有效性方面,因為側鏈說把數據存儲在側鏈上,並不錨定回,所以只能由側鏈自己的的 validator 來保證,安全性就弱了很多。
側鏈項目:
Polygon - 項目範圍從單一的 Layer 2 plasma 解決方案(前身為 Matic Network),最終擴展為目前的一種擴容框架,可用於創建與以太坊兼容的區塊鏈網絡和擴展解決方案。(它更像是一種協議,而不是單一的解決方案。)其目標是為圍繞以太坊打造一個像多邊形一樣的多鏈網絡現在正在開發 7 種擴容方案(從 zk-rollup、側鏈、軟件開發工具包)。其中 Polygon POS 側鏈算是賽道龍頭。Polygon 團隊認為,在未來,以太坊仍然是高價值交易和價值存儲的主導區塊鏈,而日常交易將轉移到 Polygon 的低成本區塊鏈。所以 polygon pos 側鏈是通過協助以太坊擴容提供價值,而非直接和以太坊主網競爭搶奪市場。
Gnosis Chain - 前身是 xDai 側鏈,後與 Gnosis 合併開發的 Gnosis Chain。低成本和以太坊兼容是 Gnosis Chain 兩個主要的賣點。
Skale - 定位賽作為以太坊的「彈性側鏈網絡」,能夠支持成千上萬個獨立區塊鏈、側鏈、存儲鏈和其他類型子鏈。這些區塊鏈都與以太坊主網相連接,並且完全兼容以太坊生態。
Palm - 以太坊聯創 Joseph Lubin、ConsenSys 創始人、電影製片人兼 Heyday Films 所有者 David Heyman,藝術科技集團 HENI Group 創始人 Joe Hage。這是一個允許用戶建立 NFT 的以太坊側鏈。
Ronin - 由鏈遊 Axie Infinity 開發商 Sky Mavis 推出的以鏈遊為主的側鏈。由於遊戲需要快速交互和低手續費,以擴展和促進每天發生的成千上萬甚至數百萬的交易活動。用戶體驗必須是友好絲滑的。所以團隊幹脆自己動手上。
分片鏈 - 在原 eth 升級方案(eth 2.0)中的分片鏈,也屬於 eth 自己的側鏈變體。
優缺點:

+ve:
1)側鏈的兼容性是非常好的,支持通用計算,EVM 兼容,可以支持智能合約。
2)涉及到大規模複雜的交易,側鏈的 tps 可以達到非常高。比較側鏈的設計本就是犧牲了一些去中心化或安全措施來實現高吞吐量(這部分可以參考區塊鏈不可能三角)。
3)側鏈的設計主要是為了減少主鏈上的擁塞,降低每個人的成本,增加以太坊生態系統的可用性和可擴展性。
4)開發人員還可以使用側鏈來探索和測試主鏈上不可用的新功能和用例。比如最早側鏈的概念是怎麼出現的?就是 2012 年,當時比特幣的核心開發團隊正在考慮如何可以安全的升級比特幣協議,以增加新的功能,但是擔心直接在比特幣區塊鏈上進行功能添加比較危險,因為如果新功能在實踐中發生軟體故障,會對現有的比特幣網路造成嚴重影響。另外,由於比特幣的網路結構特性,如果進行較大規模的改動,還需要獲得多數比特幣礦工的支持。這時,比特幣核心開發者便提出了側鏈方案。
所以最早側鏈本就是允許開發人員探索性質地將新功能附加在其他的區塊鏈,再將這些側鏈附著在現有比特幣區塊鏈上。以保護比特幣父鏈網路。
-ve:
1)側鏈和以 rollup 和 channel 之間的主要區別在於,rollup 和 channel 都繼承了以太坊主網路的安全性,但側鏈因為採用自己的的共識機制,通常是為特定類型的交易設計的(目的是為了交易能夠更快、更實惠),這也意味著它們通常不會繼承以太坊的安全屬性。從技術上而言,側鏈方案不屬於 layer2。
2)去中心化程度低。
3)和通道方案比起來,側鏈的隱私性弱一些,因為在側鏈上,每筆交易都會發布到側鏈上,無論是否跟側鏈上的所有參與者互動,交易都會被側鏈上每個參與者接收。
基本想法是鏈下計算/執行,結果上鏈;數據離線批量處理。這種方式是直接從第一層以太坊共識中獲得安全性,方案包括:
A. Channel 通道
這是一個非常早期、存在已久的區塊鏈擴展方案,他最出名的應用是比特幣的閃電網絡。更注重安全性,而非可用性。
參與者必須將以太坊的一部分狀態,如 ETH 存款,鎖定在一個多簽合約中。鎖定初始狀態是第一個交易,並打開了通道。然後參與者可以在鏈下快速自由地進行交易。當互動結束後,把最終狀態提交上鏈,關閉通道。
這邊可以再細分為兩種支付通道 Payment Channel 和狀態通道 State Channel:
・Payment Channel:現在主鏈上建一個多簽合約地址,比如,A 和 B 創建了這樣的多簽合約,資金只有經過他們共同同意才能轉移。把各自的錢存進去,假設 A 和 B 各存 10eth,這個初始狀態就相當於是打開了一個支付通道。然後在鏈下他們之間進行了幾十甚至上千筆交易,每筆交易雙方都需要簽名和蓋時間戳。最後 A 有 5eth,B 有 15eth。但他們不需在區塊鏈上記錄這麼多筆交易,只用記錄兩筆——初始資金交易和所有交易結束後的最終餘額分配。當他們把最終餘額上傳到主鏈,相當於關閉了這個支付通道。
對於 A 和 B 來說,鏈下的那些交易沒有手續費並且幾乎即時成交。雙方無需支付礦工費用,也不必等待區塊確認。
・State Channel:這其實是對 Payment Channel 的一種衍生,從名字就可以判斷,這種方案是圍繞「狀態」,也就是說不僅僅是交易狀態,也可以是遊戲狀態、活動狀態等。舉個例子,開始一場五子棋遊戲,他們需要先創建一個新的「評判」程序,並為其提供初始押注,這樣就算開啟狀態通道了。他們走棋的過程不會作為交易提交給區塊鏈。但每走一步雙方都需要簽名且附上時間戳,然後再走下一步。只有當程序根據規則判定一方勝出時,結束遊戲,A 和 B 簽署一個狀態更新,根據遊戲的結局簡單地分配押注。這就相當於狀態通道關閉了。
數據可用性 Data Availability(DA):
所有的資料都存儲在 Layer2,由雙方通道保證 DA(轉帳或遊戲過程需要由 a 和 b 參與者自行維護)
狀態有效性 State Validity(SV):
通道結束後,任何一方都可以將最終狀態提交至 Layer1,但 Layer1 不會進行驗證,而是要求提交者先進行质押。然後將有一周時間進行 Fraud Proof,任何人都可以提出該筆交易的疑點,然後提交證明(證明狀態不正確)。這個质疑是可驗證的。如前所述,每筆線下轉帳和行為都需要雙方簽名,並附上時間戳。因此,只要质疑者提供的欺詐證明顯示已簽名且**時間比之前的更新晚**,這就是可驗證的欺詐證明。該證明將成為最新狀態,同時先前提交該狀態的那個人所质押的代幣將被扣除。
通道項目:
比特幣的閃電網絡 Lightning Network
優缺點:

+ve:
1)通道主要用於高頻、小額支付。
2)節省大量交易時間和費用。特別是在交易費用方面,建立通道需要初始成本。但一旦設置完成,通道內每個狀態的更新都非常便宜。實際上,鏈上只記錄了兩筆交易。
3)狀態有效性 SV 可以通過欺詐證明得到很好的保證。
4)狀態通道具有很強的隱私性能 - 因為所有事情都在通道中發生,而不是公開廣播和記錄在區塊鏈上。只有開啟和關閉交易必須是公開的。但在側鏈系統中,每筆交易都會被發佈在側鏈上,然後側鏈上的每個參與者都將收到。
5)狀態通道具有即時的最終確定性 - 也就是說只要兩方簽署了狀態更新,就能認為狀態結束了。
-ve:
1)提幣慢,還需要 1 週時間進行欺詐證明才能提幣
2)對於偶爾轉帳給對方的用戶來說,創建和結算通道的時間和經濟成本都比較高,不太友好。因為你還需要創建多簽合約,簽名,設計評斷程序…
3)不支援開放式參與。通道不能用於向尚未參與的人發送鏈下資金
4)TPS 一般,更適合少數參與者,如果是大規模的複雜的交易性能就跟不太上。
5)不支援智能合約,畢竟不是一個鏈。
6)狀態通道需要所有參與者 100% 的在線,如果參與者中途離開也會被扣除質押 Token。
7)通道不能用於表示沒有明確邏輯所有者的對象(例如 Uniswap)。所以說通道只適合用於有已定義好參與者集的應用,雖然說可以添加和移除參與者,但是需要每次都對合約進行改變。
B. Plasma
由於 Channel「無法支援大規模、大資金和複雜交易」的局限性,Plasma 方案應運而生。其結合了側鏈的一些設計,解決了將資產發送給任意目標人的問題,同時也能夠確保 TPS 的提升。事實上在開發者們研究 Layer2 解決方案的開始很長一段時間裡,Plasma 一度被認為就是「the right one」。
但隨著後來因為一些硬傷被 Layer 2 取代了,這邊來簡單給大家說說:
Plasma 是一條獨立的區塊鏈,最初的設計也是想保留側鏈的主要用途,可以通過鏈下交易來擴容,同時能一定程度解決側鏈自身的安全性問題(也就是說當子鏈遇到攻擊時,存儲在子鏈上的資產始終是安全的)因此在取捨後放棄了側鏈的一些性能(比如執行智能合約等),卻通過區塊錨定回主網來增加安全性。他和側鏈最大的 2 點不同在於:
1)侧鏈使用橋的方式來和主鏈互動資產,但侧鏈的安全性依靠自身的共識機制。而且侧鏈往往 比主網小很多。但 plasma 將自身的每一個區塊的狀態資訊以區塊根的形式發布到以太坊主網。因此在以太坊主網上是可以確認到 plasma 鏈上的狀態資訊的(只不過子鏈上的具體交易數據存儲需要用戶自行下載保存。以太坊主鏈在這個過程中只承擔了確認者的角色,而非驗證者,所以其安全級別是較差的)。因此 Plasma 鏈也被稱為「子」鏈,因為它們本質上是「父鏈」以太坊鏈的較小複製。這意味著它繼承了主鏈的部分安全性,所以也屬於 layer2 的方案。
2)plasma 上是不支持智能合約的,僅支持基本的 Token 轉移、交換和其他一些交易類型。
・無限創建「鏈中鏈」:
每一條 Plasma 可以無限創建更多的子鏈,以減輕父鏈的工作量,每條子鏈都有一個叫做「Operator(運營商)」的角色。

・運營商周期性的「狀態承諾」:
所有鏈下交易會先匯總到子鏈的運營商,然後(因為子鏈要鏈定回主鏈)運營商周期性地把子鏈計算結果匯總,通過默克爾樹的形式打包壓縮成一個區塊根,最後將區塊跟提交回主鏈做狀態記錄。也就是所謂的周期性的提交「狀態承諾」。通過這樣的方式,無論在兩次提交期間,子鏈上發生了多少筆交易,子鏈只需要將交易執行造成的狀態資訊提交到主鏈上即可。而交易的數據是不會提交給主鏈的。
・入口——主網合約:
像側鏈一樣,Plasma 使用在以太坊上運行的主合約來處理用戶的進入和退出。用戶必須在主合約中存入 ETH 或任何 ERC-20 Token。監視合約存款的 Plasma 運營商重新創建與戶的初始存款相等的金額,並將其釋放到用戶在 Plasma 鏈上的地址。
・退出——欺詐證明:
然後在推出 plasma 鏈,也就是提款的時候,plasma 引入了之前提到的「挑戰期」,通過欺詐證明的方式來懲罰不誠實行為,保證狀態有效性。該主合約還負責追踪狀態承諾(前面已解釋),並通過欺詐證明懲罰不誠實行為。「欺詐證明」意味著任何人在這段挑戰期(通常是 7 天或更久)內,都可以通過默克爾樹驗證的方式提交證明用戶資產的退出是不合法的。

繪製者:RJ
・狀態根 State Root:
首先剛才提到了 Plasma 在主鏈上擁有一個(或者一系列相互關聯的)合約,用來維護 plasma 子鏈中的狀態記錄,這個狀態記錄實際上是一棵默克爾樹的根節點存儲的哈希值,這個哈希值被稱為 state root。
具體解釋:默克爾樹(一顆二進制樹),在二進制樹的葉子節點上記錄著當前 rollup 層帳戶的狀態信息。
對於每兩個狀態信息(例如 State 1/State 2),我們可以根據某種哈希公式計算出一個唯一的哈希值(例如:Hash(1,2))來作為這兩個葉子節點的父節點,依次一層一層往上類推,最終得到一個哈希值存儲在根節點中:你不需要知道怎樣計算哈希值,你只需要記住幾件事情。
1) 任何一個狀態的變化都會導致 Root hash 發生變化。
2) 如果兩棵樹的根哈希值相同,那說明他們的葉子節點存儲的資訊完全一致(因此只需要對比兩個根節點哈希值就可以確認底層狀態資訊的一致性)。
3) 根據根節點的哈希值和下載相鄰哈希值,我們可以確認某一個狀態資訊存在於這棵哈希樹中。

Drawn by RJ
當 rollup 上發生交易的時候,會產生新的 state root。任何子鏈的用戶這時候都可以根據自己在子鏈上下載記錄的交易資訊來對比、證明新的狀態根是否正確。(因為剛才提了,但凡記錄的交易/葉子節點上完全一致的,根哈希值一定會相同。
為了保證他們的資金完全安全,用戶(也就是潛在「驗證者」)需要每隔一段時間觀察一次離子鏈,去記錄鏈上的交易資訊。這包括運行一個自動同步(下載)離子鏈並確保一切按預期運行的軟體。用戶應至少每隔幾天運行一次該軟體,但具體時間取決於 Plasma MVP 智能合約設定的參數。
如果離子鏈運行正常,那麼用戶不需要做任何其他事情。但是,如果出現不可逆轉的錯誤(希望極少發生),那麼用戶的錢包將自動開始從 Plasma 鏈中提取資金。這種自動取款保證了用戶資金的安全,即使在最壞的情況下,當惡意運營商試圖竊取資金時也是如此。
・數據不可用:
但 Plasma 有一個很大的問題,就是數據的不可用性。欺詐證明有效預防了用戶作惡,也能保證只要有還有哪怕一個誠實節點,就能保證鏈的安全性。但如果是運營商作惡,同時用戶/驗證者沒有可以證明真實性的相關交易資訊呢?由於用戶可以提交欺詐證明的前提是用戶自行記錄了子鏈上的交易數據 + 運營商將所有真實交易數據打包上主鏈,所以當運營商作惡提交無效數據時,只要將防欺詐所需的相關信息隱藏,網路中的用戶便無法拿到真實信息來證明交易是無效的。
・大规模退出:
由於「运营商作恶」這個問題在 plasma 計畫中無法有效預防,只能想解決辦法。plasma 就設計了一套「大規模退出」「mass exit」方案,但這個方案又有可能引發以太坊本身的全網擁塞…
Plasma 專案:
Matic 最早期就是使用 plasma,區塊鏈研究人員此後不久發現了數據可用性問題(後面會在報告中進一步討論),導致 Plasma 被其他解決方案棄用。改名後,polygon 專案就轉為全方面,全站式擴容方案。
優缺點:

+ve:
1)提供高吞吐量
2) 每筆交易的低成本
3)適用於任意用戶之間的交易。使用的人可以將資產發送給 plasma 以外的人,收款者可以在任何時間點,回到 plasma 只要拿著收款證明,去兌現就可以。而如果兩者都建立在離子鏈上,則每個用戶對沒有開銷。所以 plasma 也可以適應與主鏈無關的特定用例。包括企業在內的任何人都可以定制 Plasma 智能合約,以提供可在不同環境中工作的可擴展基礎設施。
4)不需要像 channel 去提前鎖定資金.
5)安全性高,plasma 的安全性某種程度上依賴於主網。(fraud prove 欺詐證明)側鏈的 validator 定期將狀態樹根 state root 傳到主鏈,但主鏈不去驗證,允許任何人在一周內提交質疑,和欺詐證明。以此來保證 sv 狀態有效性。
error因此,Rollup 的安全性要比 Plasma 高。而他的核心优势也就是同时保证了狀態有效性+數據可用性。
Roll-up 具體上怎麼實現的呢?
・State Root(先前提到過):
首先 Rollup 在主鏈上擁有一個 (或者一系列相互關聯的) 合約,用來維護 Rollup 層中的狀態記錄,這個狀態記錄實際上是一棵默克爾樹的根節點存儲的哈希值,這個哈希值被稱為 state root。
具體解釋:默克爾樹(一棵二叉樹),在二叉樹的葉子節點上記錄著當前 rollup 層帳戶的狀態資訊。
對於每兩個狀態資訊 (例如 State 1/State 2),我們可以根據某種哈希公式計算出一個唯一的哈希值 (eg: Hash(1,2) ) 來作為這兩個葉子節點的父親節點,依次一層一層往上類推,最終得到一個哈希值存儲在根節點中:咱不需要知道怎麼計算哈希值,咱們只需要記住幾件事情。
1. 任何一個狀態的變化都會導致 Root hash 發生變化;
2. 如果兩棵樹的根哈希值相同,那說明他們的葉子節點存儲的信息完全一致(因此只需要對比兩個根節點哈希值就可以確認底層狀態信息的一致性;
3. 根據根節點的哈希值和下載相鄰哈希值,我們可以確認某一個狀態信息存在於這顆哈希樹中。

Drawn by RJ
・Batch(這也是 rollup 非常棒的一倔):
當 Rollup 上發生交易的時候,會產生新的 state root。
但是如果每發生一筆交易就簽名並在主鏈更新一次 state root,產生的成本反而會比將這些交易在 Layer1 上執行還要高。
所以 Rollup 中產生的交易就被按批次打包彙總,同時根據這批交易全部執行完成後的狀態,會產生一个新的 state root。無論是誰將交易打包提交給主鏈上的智能合約,他都需要計算這個新的 state root,並將其和上一個 state root 以及交易數據一併提交。
這一部分的打包被稱為一個「batch」,運營商將 batch 提交給 Rollup 合約後,主鏈會去驗證新的 state root 是否正確,如果通過驗證,則將 state root 更新為最新提交的 state root,並最終完成一次 Rollup 內的狀態轉移確認。
所以,Rollup 的實質是將一大筆實際產生的交易彙總成一筆主鏈上的交易,這些交易由 Rollup 鏈來執行和計算,但會將數據提交給主鏈。這樣既利用了主鏈的共識和安全性,同時提升了實際上的交易效率,降低了交易成本。

https://vitalik.ca/general/2021/01/05/rollup.html

https://vitalik.ca/general/2021/01/05/rollup.html
・壓縮:
這兩種技術方案能夠做到擴容,核心都是交易數據的壓縮和打包(前面提到了 rollup 的一大改良就是將交易數據上鏈 因此「壓縮」是針對這部分)。這是因為以太坊的區塊 gas limit 是有上限的,壓縮後的交易越小,一次能提交給主鏈的交易就越多,平攤的費用越低。那麼如何做到這一點呢?
以下是 Vitalik 在其文章中描述的一種 zk 的壓縮模式,作為例子幫我們理解:
以太坊主鏈上一筆簡單的交易(比如發送 ETH)通常消耗約 112 字節。然而,在 zk-Rollup 上發送 ETH 可以縮減到約 12 字節。

https://vitalik.ca/general/2021/01/05/rollup.html
達到這樣的壓縮效果,一方面是採用了更簡單高級編碼,另一方面,還有一些巧妙的壓縮技巧。
這個圖表很有趣,不考慮 Rollup,一般在以太坊網路上交易會涉及到這些參數:
Nonce:此參數的目的是防止重放。如果一個帳戶的當前 nonce 是 5,那麼來自該帳戶的下一筆交易處理後,帳戶中的 nonce 將增加到 6。Nonce 一般來說可以到幾千幾萬,但它是通過 RLP 編碼可以動態縮短位元組,所以以太坊網路上的 nonce 大約是在 3 位元結左右
GasPrice:是以 10 的負 18 次方為單位的一個數,也是 RL 編碼,大概是 8 位元組
Gas:這邊指的是你願意付出的 Gas 個數,一般都不多。一般以太坊一個區塊的 Gas 上限是允許 2 千萬個 Gas。一般一個轉帳交易 Gas 差不多是 2 萬,調個合約差不多是 10 萬-20 萬,頂多幾十萬。所以這邊平均差不多 3 個位元結
To:以太坊上一個地址差不多是 21 個位元結,而且以太坊地址範圍很大
Value:指的是轉帳時的錢數,很多時候調合約 Value 都是 0,因為你不需要往合約裡轉帳。但比如我轉 5 ETH 給你,那 Value 就有個值。單位也是 10 的負 18 次方,RLP 編碼,9 個位元結差不多
Signature:簽名就比較固定差不多 68 個位元結
所以這樣算下來,一個 ETH 交易差不多 112 個。因為 Rollup 是往 L2 發,所以只要能表達出完整訊息,L2 方案是可以自定義格式的。但是這些訊息他可以挑選,和壓縮。比如:
Nonce:在 Rollup 中可以完全省略 Nonce。因為完全可以從 Pre-state 中恢復 Nonce。
GasPrice:可以在每批中設定一個固定的費用水平,或者甚至將 Gas 支付完全移到匯總協議之外,並讓交易者通過通道向批次創建者支付費用。
Gas:可以在 batch 層面設定 gas 限制,選擇一些特定的值,
To:可以通過默克爾樹上的索引來替換 20 位元組的地址(例如,如果地址是新增到樹中的第 4527 個地址,我們只需使用索引「4527」來參考它。就可以限制到 4 個位元組
Value:錢數把單位改一下,或者用其他技術法來儲存。
Signature:使用 BLS 聚合簽名,將多個簽名整合為一個。然後可以一次性地針對整個訊息批次「batch」驗證簽名。因為每個區塊中可驗證的聚合的簽名數量上限是 100,所以即使包含 100 筆簽名的 大批次(batch)也能聚合成一筆簽名。
最後省下來差不多 12 個位元組。其實相當於限制了精度,但資訊範圍不變,依舊幾乎表達了完整的資訊。這就是 roll up 為什麼能擴容的重點。但這擴容的原因主要是因為在主鏈上,calldate 是有限制的,因為 calldate 它每個位元組都會消耗主網上的一點 gas,而主鏈上一個 blcok 的總 gas 數上有限制的。所以就限制了 calldata 能包括的位元組的總數。
這些壓縮技巧是 rollup 擴容的關鍵,如果我們不對交易資料進行壓縮,rollup 或許只能在主鏈的基礎上的有大約 10 倍的提升效率,但有了這些壓縮技巧,才能做到 100 倍甚至更高的壓縮效率。
Data availability :
如何驗證提交的資訊是正確可用的?
Roll-up 和 plasma 的一大不同在於它也提交了交易資料上主鏈,來保證任何人可以驗證。那現在就涉及到了如何驗證提交的資訊是正確可用的?
對於這一問題,大體上有兩種解決方案,而根據解決方案的不同,rollup 也被分成了兩類:Optimistic rollup 樂觀捲疊 和 Zero-knowledge (ZK) rollup 零知識證明捲疊。
a)乐观 Rollup 顾名思义,它们乐观地假设所有交易都是有效的,并在没有任何初始证明的情况下提交批次。任何人可以在挑战期内,检测并证明有数据是虚假的。

RJ绘制
如果批处理被证明是有欺诈性的,那么乐观 Rollup 会执行欺诈证明,并使用以太坊主链上的可用数据运行正确的交易计算。
还可以用刚才这个圖(下圖)來解釋乐观 Rollup 中的 欺诈證明構建:
batch 所包含的信息包括了 pre-state root,post state root,和交易信息。
根据 pre-state root 这一部分能够構建完整的默克爾樹。
根据交易信息,我们可以模擬執行 batch 中提交的交易,從而得到了新的帳戶狀態,得到新的默克爾樹,得到新的 state root。
將上一步得到的 state root 和 batch 中的 state root 進行比對從而驗證 batch 中的是否正確。

https://vitalik.ca/general/2021/01/05/rollup.html

https://vitalik.ca/general/2021/01/05/rollup.html

https://vitalik.ca/general/2021/01/05/rollup.html
為了威懾提交者不作惡,提交者往往需要質押資金,當他的提交被驗證為錯誤時,一部分質押資金將會被扣除作為懲罰。同時,提交了相應欺詐證明的驗證者會得到被扣除的押金,以此來激勵監測和提交欺詐證明的行為。
如果我們將 OR 和 Plasma 進行比對,我們會發現一些相似性,例如他們都使用了欺詐證明機制,需要有一個驗證者的角色來監測 OR 給主鏈的提交。但由於 OR 同時向主鏈提交了交易數據,所以 OR 上的驗證者不需要在自己去保存記錄 OR 上的交易。

由 RJ 绘制
優缺點:

+ve:
1)提供高吞吐量
2)和低交易成本
3)Roll-Up 交易数据存儲在第 1 層鏈上,提高了透明度、安全性、抗審查性和去中心化性。在不牺牲安全性或不信任的情况下提供可擴展性的巨大改進。
4)Optimistic Rollup 的欺詐證明保證了去信任的最終性,狀態的有效性,而且並允許誠實的少數人保護鏈(理論上哪怕只有一個誠實節點都可以保證整條鏈的安全性)
5)Optimistic Rollup 也通過將交易數據上主網保證了數據的可用性。
6)與 EVM 和 Solidity 的兼容性允許開發人員將以太坊原生智能合約移植到匯總或使用現有工具來創建新的 DApp。
-ve:
1) 提款慢,通常需要等 7 天,以允許提交質疑和欺詐證明
2)安全模型依賴於至少一個誠實節點執行匯總交易並提交欺詐證明來挑戰無效狀態轉換。
3)Optimistic Rollup 必須在鏈上發布所有交易數據,也需一定的成本。
乐观 Rollup 项目:

b)另一類 Roll-up 解決方案是 Zero-Knowledge Rollup (ZK Rollup)
先來說說什麼是零知識證明 ZKP?
零知識證明(ZKP)是現代密碼學的一個重要組成部分,它指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的。
證明者向驗證者證明並使其相信自己知道或擁有某一消息,但證明過程不能向驗證者洩漏任何關於被證明消息的信息。通俗的來說就是:
既證明了自己想證明的事情,同時透露給驗證者的信息為「零」。eg 數獨
・完備性
・可靠性
・零知識性
與 Optimistic Rollup 不同,ZK Rollup 要求提交者在提交 batch(ZK Rollup 也是將交易捆綁成批次,鏈下執行,一同上鏈)時除了交易數據以及 post/previous state root 之外,還要攜帶一個「有效性證明」。有效性證明被提交到主網的 Rollup 合約後,任何人都可以使用它來驗證 ZK Rollup 層中特定 batch 的交易是否正確。證明可以在提交 batch 幾分鐘後完成,驗證成功後主鏈 Rollup 合約會將 State root 更新為提交的最新數據。這基本等同於省略了驗證人的工作,在提交的同時完成驗證。
這意味着:1. zk-Rollup 省略了驗證者保存數據,在挑戰期提交欺詐證明的環節(如下圖);2. 也不再需要在提交後再等待 7-14 天來做驗證。所以交易速度也比其他 L2 方案快很多。

由 RJ 繪製
目前市面上有兩種零知識證明的解決方案:
I. zk-SNARK(Succinct Non-Interactive Argument of Knowledge) 是簡潔非互動式知證的縮寫。該種方案的特性是簡潔的,即驗證過程不涉及大量數據傳輸以及驗證算法簡單,這就意味著驗證時間不會隨著運算吞吐量而成倍增長。
II. zk-STARK(Scalable Transparent Argument of Knowledge) 是可擴展的透明知證,是作為 SNARK 的替代版本而創建的。與 SNARK 的 Succinct 的「S」不同,STARK 的「S」代表的是 Scalable(可擴展性),主要表現在 STARK 生成證明(Proof)時間複雜度近似於計算的複雜度(呈拟線性關係),而驗證證明(Verify Proof)的時間複雜度遠小於計算的複雜度。也就是說隨著 STARK 擴展性提高,STARK 的證明複雜度並沒有相應增加。
但由於零知識證明這部分涉及到非常複雜的底層技術和密碼學概念,所以這個日後可以單拎出來再做個分享。今天這邊就簡單說一下,不進入具體細節。
總之,我們知道 ZK rollups 特有的幾個重要壓縮技巧是:
1. 生成的證明體積遠遠小於證明內容的體積(因此比 op 上傳到主網的位元組要小很多)。
2. 如果事務的一部分僅用於驗證,並且與狀態更新無關,那麼該部分可以下鏈,從而減少位元組。但這不能在 optimistic roll-up 中完成,因為該數據仍然需要包含在鏈上,以防以後需要在欺詐證明中進行檢查(比較 zk 不需要挑戰期和欺詐證明)。
但 zk 的挑戰在於生成、以及驗證一個 zk 證明本身需要非常非常龐大且複雜的計算,這也是為什麼目前 ZK-Rollup 研發進度和實際應用都非常慢的原因之一。而且正因為其技術上的複雜性,並不是隨便一種語言,編譯環境,虛擬機,指令集都能夠無縫支持完成以上提到的過程,需要做額外的適配,這導致 zk 專案天生就很難兼容 evm(這一部分也、可以在日後專門聊 zk 的分享細說)。
這邊是 @W3.Hitchhiker 團隊做的一個不同方案的費用和 TPS 對比:

https://w3hitchhiker.mirror.xyz/7dwD76ZZIlR7ep731K6y9vTTuXGHOojxWSnkXKzqPzI
優缺點:

+ve:
1)有效性證明確保鏈下交易的正確性。
2)由於省略了驗證者的工作和挑戰期這個概念,一旦在 L1 上驗證了有效性證明,就會批准狀態更新,從而提供更快的交易最終確定性。(無須再等 7-14 天)
3)OR 的數據可用性來自於經濟學。為了能夠良好運轉,OR 必須設計合理的激勵機制驅使一批主鏈上的驗證人隨時監控提交者,並準備提交欺詐證明,而 zk 的數據可用性依賴於密碼學和代碼。
4)安全性依賴於主網的安全性和共識。因為恢復鏈下狀態所需的數據都存儲在 L1 上,從而保證安全性、抗審查性和去中心化。
5)更好的數據壓縮有助於降低 calldata 在以太坊上發布的成本,並最大限度地減少用戶的彙總費用。屬於目前壓縮能力最強,效率最高的方案
6)所以用戶交易費用也低。
-ve:
1)由於其有效證明所需計算量大,複雜度高,所以開發速度慢
2)因此應用不廣泛。不像 op 有那麼多的應該和迭代
3)目前很難支持以太坊虛擬機(EVM),使其難以運行智能合約、DeFi 協議等去中心化應用程序。
4)硬件方面的中心化風險。生成有效性證明需要專門的硬件,硬件壟斷有可能會導致對鏈進行集中控制。
ZK Roll-Up 項目:

資料來源: https://l2beat.com/scaling/tvl/,2022年9月22日
Rollup 小結:
現在就能明白為什麼 Roll-Up 方案能夠取代 Plasma 方案:
1)效率 - zk-rollup 會生成鏈下交易處理的有效性證明。直接省略了運營商打包數據、發布「狀態承諾」和使用者欺詐證明提交的環節,從而消除挑戰期和退出機制的需要。這也意味著使用者不必定期觀察鏈來保護他們的資金。
2)支持智能合約 - Plasma 的另一個問題是無法支持以太坊智能合約的執行。Optimistic roll-up 與以太坊虛擬機兼容,甚至現在不少 zk 專案(zkSync,StarkWare 等)也在推進 zkEVM 的實現。使其成為更理想的、即安全又有用的去中心化擴容方案。
數據不可用 - 如前所述,Plasma 存在數據可用性問題。如果惡意運營商在 Plasma 鏈上提交了無效數據,使用者將無法質疑並提交欺詐證明。Rollups 通過強制運營商在以太坊上發布交易數據來解決這個問題,允許任何人驗證鏈的狀態並在必要時創建欺詐證明。
3)大规模退出问题 - ZK-rollups 和 Optimistic Rollups 都以不同的方式解决了 Plasma 的大规模退出问题。例如,ZK-rollup 的加密机制确保运营商在任何情况下都无法窃取用户资金。
同样,optimistic rollup 对提款施加了延迟期,在此期间任何人都可以发起挑战并防止恶意提款请求。虽然这类似于 Plasma,但不同之处在于验证者可以访问创建欺诈证明所需的数据。因此,roll-up 方案不会涉及到有可能损害主网络的「大规模推出」。
V 神这几年也强调了未来以太坊的发展路线将是以 roll up 为中心,底层链为区块的数据可用性提供保证,而 Rollup 为区块的扩容和有效性提供保证。
然而…
随着向 layer2 大规模迁移的推进,即便是压缩能力强的 rollups,最终还是会回归到相同的扩容问题——因为 rollup 交易数据仍必须传播到所有完整节点,其扩容程度依旧受到以太坊的数据处理能力的限制。
与主网相比,Optimistic rollup 可以实现 25 倍的可扩展性升级,zk rollup 可以实现 100 倍,约 3000 TPS。
可以说 Rollup 方案们在扩容方面提供的是线性增长,而非指数级的。那有没有可能够既保证性能,又提供指数级的扩容增长?

於是 StarkWare 團隊又首創了 Validium 方案,一個有可能達到 2-3 萬 tps 的鏈下擴容方案…
D. Validium 鏈
它的運行方式類似於 ZK rollup,也通過發布零知識證明來驗證以太坊的鏈下交易,但是最主要的區別在於 Validiums 的數據可用性是鏈下的。因為這樣吞吐量不受以太坊數據處理能力的限制,從而提高擴展性、交易速度、降低用戶費用(發布成本 calldata 更低)等目的。
・存款和取款:
存款和取款也和 rollup 類似,用戶的存款和取款由以太坊上的智能合約控制。用戶通過在以太坊主鏈合約中存入 ETH(或任何與 ERC 兼容的 Token),在 validium 鏈上鑄造出與其存款相等金額的 Token。
取款的話,validium 用戶將其提款交易提交給運營商。用戶在 validium 鏈上的資產在退出系統前也會被銷毀。一但批次的有效性證明得到驗證,用戶就可以通過提供 merkle 證明來調用主合約進行提款。所以和 zk-rollup 一樣,Validiums 提供近乎即時的提款。
・Batch 批次:
和 rollup 類似,用戶向運營商提交交易,運營商將交易打包成批次然後提交上主鏈。批次中包括狀態根 state root/merkle root 和有效性證明。要執行狀態更新,運營商必須計算一個新的狀態根(在執行交易之後)並將其提交給主鏈上的合約。如果有效性證明通過,將切換到新的狀態根。
與 ZK-rollup 不同,validium 上的運營商不需要發布交易數據。這使得 validium 成為一個純粹的鏈下擴展協議。

由RJ繪製
Validium 的鏈下數據存儲主要好處是進一步提高可擴展性(吞吐量不受以太坊數據處理能力的限制)、提高交易速度、降低用戶費用(發布成本 calldata 更低)、以及保護隱私,因為公眾無法在鏈上訪問交易數據。
數據可用性:
然而,鏈下數據的可用性帶來了一個問題——如果運營商作惡向用戶隱瞞鏈下狀態數據,同時用戶無法訪問交易數據,那麼用戶就無法計算執行提款所需的 Merkle 證明,用戶的資金就會被凍結。
如下圖所示:如果運營者更改了trasaction 6,則交易 transaction1 的所有者將無法證明其帳戶所有權,因為丟失了證明過程中所需的節點 hash(5,6,7,8)的信息。
(聽起來比 plasma 好一些,在 plasma 方案中,運營商作惡是可以竊取用戶資金的,在 validium 中,因為不是使用欺詐證明,而是有效性證明,運營商作惡隱藏數據的最糟情況是凍結用戶資金,使其無法提款…)

由 RJ 绘制
因此,Validium 有必要採用額外的鏈下數據管理機制,以便確保用戶在需要時可以訪問到鏈下交易數據。
Validiums 的鏈下數據可用性管理方法可以分為兩大類:一些依賴受信任方來存儲鏈下數據;而另一些則使用隨機分配的驗證者來完成任務。
第一類:數據可用性委員會 Data Availability Committee (DAC)
為了解決這個問題,StarkWare 提出了數據可用性委員會(DAC)的概念,以消除用戶對運營商的信任依賴。
通過指定一組受信任的實體(統稱為數據可用性委員會)來存儲鏈下數據副本並在運營商不為用戶的提款請求提供服務的緊急情況下將其(鏈下數據副本)變為公開可訪問。由於成員較少,DAC 更容易實施並且需要較少的協調。但伴隨的是集中化風險。
直接退出,無需通過運營商。
在緊急情況下,主網上應用程序智慧合約(ASC)將不再接受新的狀態更新,而是只允許能夠為最新狀態提供 Merkle 證明的用戶直接提取資金。也就是說這種情況下用戶可以無需通過運營商,直接調用主合約的提款功能,將他們的資金提回。
由於其仍使用零知識證明,所以不存在廣播不正確狀態的危險。
但是,用戶必須信任 DAC 以在需要時提供數據(例如,用於生成 Merkle 證明)。數據可用性委員會的成員有可能受到惡意行為者的損害,然後惡意行為者可以扣留鏈下數據。
第二類:綁定數據可用性 Bounded Data Availability
這種方法通過經濟激勵機制和去中心化形式來確保鏈下數據的可用性。該方案要求負責存儲離線數據的參與者在擔任其角色之前在智能合約中抵押(即鎖定)Token。這種 Token 作為一種「紐帶」來保證數據可用性管理者之間的誠實行為並減少信任假設。如果這些參與者未能證明數據可用性,則保證金將被減少。
在綁定的數據可用性方案中,一旦抵押所需的 Token,任何人都可以被分配存儲鏈下數據。這擴大了符合條件的數據可用性管理人員的數量,減少了影響數據可用性委員會(DAC)的集中化風險。更重要的是,這種方法依賴於加密經濟激勵措施來防止惡意活動,比指定受信任方來保護離線數據更安全。
Validium 的優缺點:

+ve: zk roll-up 的許多優勢和劣勢 validium 也有:
1) 有效性證明強制鏈下交易的完整性,並防止運營商用無效狀態來更新
2) 交易速度快。將資金撤回以太坊時不會出現延遲(無需欺詐證明)
3)適用於特定用例,例如優先考慮隱私&可擴展性的交易或區塊鏈遊戲。(比如 DeversiFi 是一個使用第二層網路 (Validium) 實現隱私交易和可擴展的去中心化*交易平台*的 DEX V1.0 選擇鏈下數據解決方案的主要原因之一,是因為他們的客戶——專業交易者——不能將他們的交易歷史記錄在鏈上,因為這會將他們的策略暴露給競爭對手。
4)鏈下數據可用性提供更高水平的吞吐量。
5)通過不將交易數據發布到以太坊主網來降低用戶的 gasfee
6)指數級的可擴展性增長將承載更高的流動性,這會是新興 DEX 的一個重要屬性
-ve:
1)由於其有效證明所需計算量大,複雜度高,所以開發速度慢。對於低吞吐量的應用程序不具有成本效益。
2)因此應用不廣泛。不像 op 有那麼多的應用和迭代
3)目前很難支持以太坊虛擬機(EVM),使其難以運行智能合約、DeFi 協議等去中心化應用程序。
4)硬件方面的中心化風險。生成有效性證明需要專門的硬件,硬件垄斷有可能會導致對鏈進行集中控制。
5)模型依賴於信任假設和加密經濟刺激,不像 ZK-rollups 純粹依賴加密密碼學安全機制。
6)鏈下數據的可用性的問題:創建或驗證 Merkle 證明所需的數據可能不可用。這意味著如果運營商作惡,用戶可能無法從鏈上合約中提取資金。即時有數據可用性委員會,依舊存在中心化的風險。
Validium 項目:

來源自 https://l2beat.com/scaling/tvl/,2022年9月22日
E. Volition
這邊可以提到另一個混合方案——StarkWare 創立的 volition 概念:結合了 ZK-rollup 和 validium,並允許用戶在兩種擴展解決方案之間切換。通過 Volition,用戶可以利用 validium 的鏈下數據可用性進行某些交易,同時保留在需要時切換到鏈上數據可用性解決方案(ZK-rollup)的自由。這實質上使用戶可以根據其獨特情況自由選擇權衡取捨。

https://medium.com/starkware/volition-and-the-emerging-data-availability-spectrum-87e8bfa09bb
例子:在 zkSync2.0 中,就用到了 volition 的概念。他们 L2 狀態分為 2 個方面:具有鏈上數據可用性的 zkRollup 和具有鏈下數據可用性的 zkPorter。這兩部分將是可組合和可互操作的。
各類方案對比,rollup 有效地保證了狀態有效性+數據可用性,保留了先前方案的優勢,同時解決了它們的局限性。從而成為目前擴容領域的領頭。
在 roll-up 方案中,短期來看,optimistic rollup 技術更加成熟、應用更廣泛,op roll-up 可能會在通用 EVM 計算中勝出,而 ZK roll-up 可能會在簡單的支付、交換和其他特定於應用程序的用例中勝出。
但從長遠來看,而 ZK Rollup 的弱點基本都屬於技術問題,隨著大量優秀的開發人員投入到相關研究,ZK Rollup 在未來會是更優的擴容方案。ZK-Rollup 技術的基本原理將使其能夠取代 Optimistic Rollups,有能力達到更快的速度、更高的安全性,更全的性能,從而帶來更加廣泛的采用。目前已經有不少像 Scroll、zkSync 和 Polygon 這樣的 Layer 2 項目已經在嘗試引入 zk-EVM 的計算環境,這將使 ZK-Rollups 能夠獨立運行所有類型的通用智能合約。
未來會有更多融合。從擴容方案發展過程來看,以太坊的擴容並不是某個單一方案能夠一勞永逸的。很多解決方案提供商也都在多條路徑上進行著探索和布局。個人相信這也勢必會產生更多融合方案(eg. Optimism 的「Bedrock」;StarkEx 的 Volition;Polygon)
讀完本文應該能很直觀地感受到:擴容方案的發展迭代,往往是意識到一個解決方案存在的局限性後,用另一種更好的方案來盡可能地保留優點,解決缺點,突破局限。就像當初很長一段時間開發人員都認為 Plasma 就是「the right one」,直到意識到它的局限性無法被突破,從而探索出了 roll-up;目前 roll-up 看起來好像就是大家公認的答案了,但也許隨著探索的深入,還會出現顛覆 roll-up 的更優的解決方案?
最後就是我整理完感覺這些擴容方案目前有無數種走向,對於我這種二級投資的個體戶 感覺可以慢慢來,等專案跑出來做右側交易,因為變化太快,可能好不容易搞明白了,他們發現走不通,改方向了(就像 plasma)。然後判斷出一個大趨勢廣撒網,廣壓寶也許是笨但比較有效的辦法哈哈。但這是二級思路不適用於一級,一級最後還是看團隊、看專案背後的網絡、資源。
原文連結
歡迎加入律動 BlockBeats 官方社群:
Telegram 訂閱群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方帳號:https://twitter.com/BlockBeatsAsia