來源:ethereum.org
編輯:南風
Layer 2 是一系列鏈下擴充套件性解決方案的總稱,這些解決方案旨在透過在以太坊 (Layer1) 鏈下處理交易來幫助應用實現擴充套件。當以太坊網路繁忙時,交易速度會受到影響,這可能會導致某些型別的 Dapps 的使用者體驗較差。隨著網路越來越繁忙,Gas 價格也隨著交易傳送方競相出價而上漲。這可能會導致使用以太坊變得非常昂貴。
本文假設你對一些基本知識有著很好的理解。實現 Layer 2 解決方案是先進的技術,該技術的戰場考驗還較少。
為何需要 Layer 2?
對於一些用例 (比如區塊鏈遊戲) 而言,當前的交易處理所需時間是行不通的;
使用基於區塊鏈的應用 (apps) 可能會非常昂貴;
任何對可擴充套件性的改進都不應該以犧牲安全性和去中心化為代價 –– Layer 2 構建於以太坊之上。
Layer 2 解決方案的型別
Rollups
ZK Rollups
Optimistic Rollups
狀態通道 (State channels)
Plasma
Validium
側鏈
混合方案
大多數 Layer 2 解決方案都以某個伺服器或伺服器叢集為中心,每個伺服器都可以被稱為一個節點,驗證者,運營者,區塊生產者,或者其它類似的術語。根據實現方式的不同,這些 Layer 2 節點可能由使用它們的企業或實體、或由第三方運營商、或由一大群個人 (類似於以太坊主網) 執行。
一般來說,交易會被提交給這些 Layer 2 節點來處理,而不是直接提交到 Layer 1 (主網);然後,Layer 2 例項會將交易分批成組地錨定到 Layer 1 上,之後這些交易就被 Layer 1 保護且無法再被更改。根據不同的 Layer 2 技術及其實現的不同,這方面的具體實現細節也有很大的不同。
某個特定的 Layer 2 例項可能對許多應用 (apps) 開放和共享,或者可能僅由某個公司部署並專門用於支援該公司的應用。
01Rollups
Rollups 是在 Layer 1 之外執行交易,但在 Layer 1 上釋出交易資料的解決方案。由於交易資料位於 Layer 1 上面,這使得 Rollups 受到了 Layer 1 的保護。
Rollups 的關鍵特徵是:繼承了以太坊主鏈 (Layer 1) 的安全屬性,同時在 Layer 1 之外執行交易。
Rollups 的三個簡化特性如下:
在 Layer 1 之外執行交易;
在 Layer 1 上釋出交易資料或證明;
部署在 Layer 1 上的某個 Rollup 智慧合約,透過使用 Layer 1 上的交易資料能夠確保 Layer 2 交易被正確地執行。
Rollups 要求運營者在 Rollup 智慧合約中質押一筆保證金,這樣就激勵了運營者正確地驗證和執行交易。
Rollups 可用於:
為使用者減少交易費;
開放式參與;
快速的交易吞吐量。
當前有兩種具有不同安全模型的 Rollups:
ZK Rollups:在鏈下執行計算,並向主鏈提交有效性證明 (validity proof);
Optimistic Rollups:預設情況下假定交易是有效的,僅在遇到挑戰 (challenge) 時,透過欺詐證明 (fraud proof) 執行計算。
1. ZK Rollups
ZK Rollups,全稱 Zero Knowledge Rollups,會將數百筆交易在鏈下 (Layer 2) 進行捆綁打包,並生成一個稱為“SNARK” (簡潔的非互動式零知識證明)的加密證明。這就是所謂的有效性證明 (validity proof),該證明會被提交和釋出在 Layer 1 上面。
部署在 Layer 1 上的 ZK Rollup 合約會維護所有發生在 Layer 2 上的交易轉移狀態,該狀態只能透過有效性證明才能進行更新。這意味著,ZK Rollups 只需要有效性證明,而不需要所有的交易資料。透過 ZK Rollup,驗證區塊將變得更快、更廉價,因為被打包的資料更少了。
使用 ZK Rollup 時,當資金從 Layer 2 轉移到 Layer 1 時不會出現延遲,因為 ZK Rollup 合約此前接受的有效性證明已經驗證了這筆資金的有效性。
我們還可以對使用 ZK Rollups 的側鏈進行最佳化,以進一步減少交易大小。比如,賬戶 (account) 可以由索引 (index) 而非地址 (address) 來表示,這樣就可以將交易大小從 32 位元組減少到僅僅 4 位元組;交易還可以作為 calldata 被寫入以太坊,從而減少 Gas 使用量。
ZK Rollups 的優缺點
優點:
當需要將資金轉移至主鏈上時,不會出現延遲,因為有效性證明已經對資金進行了驗證;
不像 Optimistic Rullops 那樣容易受到經濟攻擊的影響。
缺點:
僅限於簡單的轉賬,不相容於 EVM (以太坊虛擬機器);
有效性證明的計算強度很大,因此對於一些鏈上交易活動較少的應用而言,不值得采用此技術;
ZK Rollups 的用例
Loopring
Starkware
Matter Labs 的 zkSync
Aztec 2.0
ZeroSwap
Sushiswap
dYdX
Immutable X
2. Optimistic Rollups
Optimistic Rollups 與以太坊主鏈平行執行。Optimistic Rollups 可以在可擴充套件性方面提供改進,因為預設情況下它們不進行任何計算。相反,在交易完成之後,它們會向主網提議新的狀態,也即對交易進行“公證”。
使用 Optimistic Rollops,交易將作為 calldata (呼叫資料)被寫入以太坊主鏈,透過降低 Gas 成本來進一步對交易進行最佳化。
由於鏈上計算是導致以太坊緩慢、昂貴的原因,Optimistic Rollups 能夠根據交易型別提供 10-100 倍的可擴充套件性提升。隨著 Eth2 升級將引入分片鏈,這一數字將會進一步增加。這是因為,當 Optimistic Rollup 鏈中的某筆交易存在爭議時,將會有更多的資料可用。
當交易存在爭議時
Optimistic Rollups 實際上並不會對交易進行計算,因此需要存在一種機制,以確保其中的交易是正當而非欺詐性的。這就是欺詐性證明 (fraud proofs) 發揮作用的地方。如果某人注意到了一筆欺詐性交易 (並提出欺詐證明),Optimistic Rollup 鏈將使用可用的狀態資料來校驗該欺詐證明並執行該筆交易的計算。這意味著,與 ZK-rollup 相比,Optimistic Rollup 可能有更長的交易確認等待時間,因為交易可能會被挑戰。
你在提交欺詐證明時計算所消耗的 Gas 甚至會被補償,也即你會因為證明有欺詐行為而得到補償。Optimism 團隊的 Ben Jons 描述了現有的保證金系統:
Optimistic Rollups 的優缺點
優點
你在以太坊 Layer 1 上能做的任何事情,都可以在 Optimistic Rollups 上進行,因為 Optimistic Rollups 相容於 EVM 和 Solidity。
所有的交易資料都儲存在 Layer 1 鏈上,意味著 Optimistic Rollups 是安全和去中心化的。
缺點:
由於潛在的欺詐性挑戰,需要很長的交易確認等待時間。
Optimistic Rollups 的用例
Optimism
Offchain Labs 的 Arbitrum Rollup
Fuel Network
Cartesi
Synthetix
02通道(Channels)
通道 (Channels) 允許參與者在鏈上只提交兩筆交易的情況下進行 x 次鏈下交易。這能夠實現極高的交易吞吐量。
可用於:
大量的狀態更新;
當預先知道參與者的數量時;
當參與者總是存在時。
參與者必須將一筆 ETH 存款鎖定在一個多籤合約中。多籤合約是一種需要多個私鑰簽名 (從而使各方達成共識) 以執行交易的智慧合約型別。
鎖定存款就是基於這種方式的第一筆交易,以此來開通一個交易通道。之後,參與者就可以快速和自由地進行鏈下交易。當互動完成之後,一筆最終的鏈上交易會被提交,從而解鎖之前被鎖定的存款。
狀態通道 (State channels)
狀態通道的井字遊戲:
在以太坊主鏈上建立一個多籤智慧合約“法官”,該合約理解井字遊戲規則,並可以識別 Alice 和 Bob 為遊戲中的兩個玩家。這份合約持有 1 ETH 的獎勵。
然後,Alice 和 Bob 開始玩遊戲,開啟狀態通道。每一步操作都會建立一筆包含“nonce”值的鏈下交易,這意味著之後我們總是可以知道這些操作發生的順序。
當贏家產生時,Alice 和 Bob 透過向“法官”合約提交最終狀態 (比如交易列表) 來關閉該通道,這樣就只用付一次交易費用。“法官”確保這一“最終狀態”由 Alice 和 Bob 雙方簽署,並等待一段時間以確保沒人會對這一結果的合法性發起挑戰,然後將 1 ETH 的獎勵發給 Alice。
目前有兩種型別的通道:
狀態通道 – 如上所述;
支付通道 – 經簡化的狀態通道,只處理支付。支付通道允許兩個參與者之間進行鏈下轉賬,只要他們的轉賬淨額不超過存入的代幣數量。
優缺點
優點:
即時提款/主網結算 (前提是通道的參與雙方合作的情況下);
可能實現極高的交易吞吐量;
每筆交易有著最低的成本,有利於小額支付。
缺點:
建立和結算通道的時間和成本 — 對於任意使用者之間偶爾的一次性交易來說不太好;
需要定期檢視通道網路,或將此責任委託給其他人,以確保使用者資金的安全;
必須在開啟通道時鎖定資金;
不支援公開參與。
狀態通道的用例
Connext
Kchannels
Perun
Raiden
Statechannels.org
03Plasma
Plasma 鏈是一條獨立的區塊鏈,錨定到以太坊主鏈,並使用欺詐證明 (類似於 Optimistic Rollups) 來仲裁糾紛。
Plasma 的優缺點
優點:
高吞吐量,低交易成本;
適用於任意使用者之間的交易 (如果兩個使用者都在 Plasma 鏈上,則每個使用者對沒有開銷);
缺點:
不支援通用計算,只能支援基本的代幣轉移、兌換和其它一些交易型別;
需要定期檢視該網路,或將此責任委託給其他人,以確保使用者的資金安全;
依賴於一個或多個 Plasma 鏈運營者來儲存資料並根據請求提供服務;
存在交易挑戰期,提款會被推遲了幾天。流動性提供者可以減輕這種情況,但存在相關的資本成本。
Plasma 用例
OMG Network
Polygon (前身為 Matic Network)
Gluon
Gazelle
LeapDAO
04Validium
Validium 使用像 ZK-Rollops 這樣的有效性證明,但資料並不儲存在以太坊的以太坊 Layer 1 主鏈上,而是將 Layer 2 的交易資料儲存在鏈下。這可能實現每條 Validum 鏈每秒處理 10k 筆交易,多條 Validum 鏈可以並行執行。
Validium 的優缺點
優點:
沒有取款延遲 (鏈上/跨鏈交易沒有延遲),從而提高資本效率;
不會像基於欺詐證明的系統那樣容易受到某些經濟攻擊。
缺點:
對通用計算/智慧合約的支援有限;專門的語言要求。
生成 ZK 證明需要較高的計算能力,對於低吞吐量的 Apps 來說,此方案是不划算的;
Validium 用例
Starkware
Matter Labs 的 zkPorter
Loopring
05側鏈
側鏈 (sidechain) 是一條獨立的區塊鏈,它與主網並行且獨立執行。側鏈有自己的共識演算法 (比如權威證明、DPoS委託權益證明、拜占庭容錯等等)。側鏈透過一個雙向橋與主鏈相連。
優缺點
優點:
較成熟的技術;
支援通用計算,相容 EVM;
缺點:
不那麼去中心化;
使用單獨的共識機制,其安全性不受 Layer 1 保護 (因此從技術上來說,側鏈不是 Layer 2);
一定數量的側鏈驗證者可以實現欺詐。
側鏈的用例
Skale
POA Network
xDAI
06混合解決方案
結合多個 Layer 2 技術的最佳部分,並提供可配置的折衷方案。
用例
Offchain Labs 的 Arbitrum SCSC
CelerNetwork
延伸閱讀
Validium And The Layer 2 Two-By-Two — Issue No. 99
https://www.buildblockchain.tech/newsletter/issues/no-99-validium-and-the-layer-2-two-by-two
Evaluating Ethereum layer 2 Scaling Solutions: A Comparison Framework
https://medium.com/matter-labs/evaluating-ethereum-l2-scaling-solutions-a-comparison-framework-b6b2f410f955
Adding Hybrid PoS-Rollup Sidechain to Celer’s Coherent Layer-2 Platform on Ethereum
https://medium.com/celer-network/adding-hybrid-pos-rollup-sidechain-to-celers-coherent-layer-2-platform-d1d3067fe593
Zero-Knowledge Blockchain Scalability
https://ethworks.io/assets/download/zero-knowledge-blockchain-scaling-ethworks.pdf
狀態通道
EthHub on state channels
https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/state-channels/
Making Sense of Ethereum’s Layer 2 Scaling Solutions: State Channels, Plasma, and Truebit– Josh Stark, Feb 12 2018
https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4
State Channels - an explanationNov 6, 2015 - Jeff Coleman
https://www.jeffcoleman.ca/state-channels/
Basics of State Channels- District0x
https://education.district0x.io/general-topics/understanding-ethereum/basics-state-channels/
支付通道
EthHub on payment channels
https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/payment-channels/
ZK Rollups
EthHub on zk-rollups
https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/zk-rollups/
Optimistic rollups
EthHub on optimistic rollups
https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/optimistic_rollups/
OVM Deep Dive
https://medium.com/ethereum-optimism/ovm-deep-dive-a300d1085f52
側鏈
EthHub on sidechains
https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/sidechains/
Scaling Ethereum Dapps through Sidechains-Feb 8, 2018 - Georgios Konstantopoulos
https://medium.com/loom-network/dappchains-scaling-ethereum-dapps-through-sidechains-f99e51fff447