原文標題:《 Off-chain protocols: Sidechains and Rollups 》 原文作者: Patrick McCorry
Infura 現已支持以太坊之外的網絡,包括Arbitrum、Optimism 和Polygon。
這三個項目都是全新的區塊鍊網絡。相比以太坊,它們提供了更低的交易費和更快的交易確認速度。關鍵是,它們還提高了以太坊的易用性,因為用戶原本放在以太坊上的資產也能拿到這幾個網絡中使用。
這種擴展方法被稱為「鏈下協議」。我們寫了一篇簡短的文章來解釋它們如何能有助於擴展以太坊的吞吐量(並提高其易用性)。
為什麼不直接在以太坊上交易呢,吞吐量的瓶頸在哪
過去三個月的平均Gas 價格。在網絡擁堵時就會飆升
以太坊只支持每秒15 筆交易,而且,從圖1 中可以看到,在用戶的需求超過吞吐量瓶頸時,手續費水平就會飆升。從某種程度上來說,吞吐量的限制是社區為了追求去中心化而製定的自我約束。
去中心化的目標是最大化全世界能夠實時驗證區塊鏈完整性的參與者的數量。這個目標對於最小化對區塊生產者的信任,是非常關鍵的,所以社區自我強制實施了界定區塊有效性的共識規則。為了達成參與者佔世界人口比重的目標,需要限制交易處理所帶來的計算量、存儲量和帶寬負擔。
(譯者註:作者在此處的推理是成立的,但是表述卻是浪漫化的。我從來沒聽過誰能確定全節點(也即所謂的實時驗證者)的運行負擔與參與者數量的關係並以此提出計算量等方面的資源約束。這樣的研究有幾分可信度是值得質疑的。而現實也根本不是這樣運行的。我們只需知道,提高吞吐量並不是沒有代價的事情,就可以了。暗示大家有個一致的共識應該怎麼控制吞吐量,則神化了「社區」這個概念,阻礙了人們認識實際的情形。)
我們的挑戰是,既要提高吞吐量,又不能逾越資源的約束。
為什麼我需要了解鏈下協議比如側鍊和rollup
大部分擴展網絡的方法都從下面幾點著手:
分發驗證負擔。驗證任務在網絡的節點之間分配,而不是像以太坊當前這樣要求所有節點都做一模一樣的工作。
更好地利用網絡中可用的資源。網絡中的資源應該能持續不斷地得到利用,而不應出現閒置。舉個例子,縮短出塊的時間間隔以更好地利用帶寬。
這些可擴展方案可能仍需要很多年來實現,因為它們需要對底層的以太坊協議作重大變更。
但另一種更為流行的替代方案是鏈下協議,它們是現在就可用的。因為它會以如下的方式來擴展網絡的吞吐量:
鏈下協議:交易處理的負擔從以太坊上轉移到另一個網絡中,但這些交易影響的資產仍然駐留在以太坊上。
這樣的擴展方案等於是動用了另一個區塊鍊網絡,其資源約束也將與以太坊的不同。這樣的網絡可以用來實驗多種擴展協議(也可以單純用來測試go-etherum(以太坊網絡當前的主流客戶端)的極限),同時提高以太坊的易用性。
當我把資產充進另一個網絡時,這些資產去了哪裡
你的資產會轉移到以太坊上的一個專門的橋接合約裡,然後目標網絡裡會你的賬戶中會出現等量的資產。資產鑄造完成後,你就可以在目標網絡裡使用這些資產了,並且最終,當你想把資產取出時,你需要通過相應的橋接合約來取回。
並非所有的橋接合約都具備同樣的功能和特性。我們必須考慮橋接合約是怎麼決定在何時釋放資產、還給用戶的。理想狀態下,只有橋接合約確信對應的網絡沒有遭到破壞時,才應該放行資產。這個就是所謂的「信任假設」,是保護用戶資金的終極措施。在討論鏈下協議是否真的能擴展以太坊時,這一點經常會引發爭議。
一方面,有些用戶認為,另外的區塊鍊網絡確實是一個擴展方案,因為它們能保證與以太坊同等(或非常接近)的安全性。常常被人討論的「rollup」協議最理想時是能實現這種程度的安全性的。但是,另一些用戶會接受更強的信任假設,相信鎖在另一個網絡中的資產總是足夠安全的(只需要是「側鏈」就能讓他們滿意)。
與主鏈保持同樣安全性的rollup 方案(相比於側鏈),會需要付出更多的資源。舉個例子,Rollup 網絡中的每一筆交易都需要向橋接合約提交一次狀態更新。但側鏈協議就無需以太坊投入巨大的資源開銷,因為交易的驗證是由一組外部的參與方來執行的。 (譯者註,確切來說,是因為側鏈無需把自己運行的任何細節暴露在以太坊區塊鏈上)。這種安全性/資源的取捨,最終會轉化成用戶的經濟負擔,天下沒有免費的午餐。
不管怎麼說,我們相信,採取不同信任假設的橋接合約都會出現。最終,所有支持交易以太坊上資產的網絡都會提高以太坊的易用性。只是用戶在把資金鎖入橋接合約之前需要三思,需要意識到信任假設的區別和風險。
什麼是側鏈
「側鏈」這個詞是始創於Blockstream 的一篇論文。它是一種互操作性的解決方案,讓兩個區塊鍊網絡能通過輕量級的證明來驗證有關彼此進展的信息。這種構想的初衷是希望能在比特幣區塊鏈上鎖定比特幣,然後在另一個網絡中釋放(或者反之),而無需信任任何中介。
但幾年過去,「側鏈」這個詞獲得了自己的生命力。它通常用來指代與另一個區塊鍊網絡有關聯的一個獨立的區塊鍊網絡。實際上,這是通過一個允許資產從主鏈(比如以太坊)移到另一個區塊鍊網絡的橋接合約來實現的。
側鏈可能會用到三種不同類型的橋接合約:
單組織型。單個團體託管了鎖定在橋接合約中的資金。
多組織型。特定的多個獨立參與方託管了鎖定的資金。 N 個參與者中只需K 個同意即可執行動作。
密碼經濟型。動態的參與者組合,由資產權重決定參與資格,決定鎖定資金的去向。
舉個例子,WBTC 就是一個單組織型的橋,因為BTC 是由BitGo 託管的。而Liquid 網絡和RSK 區塊鏈則是由多組織橋來實現的,因為一組預先指定的參與方有權把資產從一條鏈轉移到另一條鏈(以多簽名來表示許可)。而Polygon 是一個密碼學經濟橋,因為它依賴大於(2/3)的權益多數來指定驗證者,再由驗證者定期向橋接合約提交網絡狀態檢查點(且這個檢查點可以用來授權用戶取款)。
最重要的是,側鏈的橋合約是不會去驗證其它網絡的完整性的,因此,它需要一組參與者為有效性負責。也就是它假設了至少會有一定比例的參與者會因為經濟激勵而保持誠實並保護用戶的資產。
什麼是rollup
「Rollup」一詞來源於barry whitehat 提出的zkrollup 概念,脫胎於Plasma 的研究。
一個Rollup 系統也是一個獨立的區塊鍊網絡,但是Rollup 系統中交易的資產留存在以太坊區塊鏈上並受到橋接合約的保護。橋接合約必須不斷確認rollup 網絡沒有被破壞、資金沒有處於風險之中。在最糟糕的情況下,橋接合約需要無視網絡的請求,允許用戶取回資金。
Rollup 可以保持(至少是非常接近)以太坊的安全程度,代價是要解決以下幾個問題:
數據可得性。橋接合約必須確定所有數據都是公開可得的。這使得每個人都能獨立計算這個rollup 的最新狀態。
狀態轉換的完整性。橋接合約必須確認,所有的狀態轉換(交易)都是有效的。
抗審查性。橋接合約可以自主執行交易,以保證如果網絡被攻陷(或者不能推進),用戶最終可以自己取出資金。
快速總結一下解決方案。數據可得性問題通過把系統內所有交易的數據發佈到以太坊區塊鏈上來解決,這也是「rollup(卷)」名字的由來(它把交易都捲了起來成批上鍊)。狀態轉換的完整性問題則使用錯誤性證明(fraud proof)(Optimistic rollup)或者有效性證明(ZK rollup)來解決。抗審查問題則有些棘手,通常也不會討論,但它需要橋接合約能夠自主接受和執行普通用戶發起的交易。
Rollup 有一個持續付出的成本。這樣的網絡必須持續向橋接合約提供證明,證明所有得到處理的交易都是有效的,網絡沒有被攻破。這需要消耗以太坊的資源,也影響了它的可擴展性。不過,從中期來看,它還是可以大幅降低用戶的交易成本。舉個例子,在Arbitrum 上,一次幣幣互換的成本是1600 gas,而在以太坊主網上需要12 萬gas。
雖然側鏈交易不需要消耗以太坊的資源,代價就是它無法獲得以太坊同等的安全性以及(最終來看)免信任性。
側鏈與Rollup 有何區別
側鏈(比如Polygon)和Rollup(比如Optimism 和Arbitrum)都是獨立的區塊鍊網絡,它們有自己的區塊生產者和智能合約運行環境。它們的關鍵區別在於鎖定資金的橋接合約。準確來說,是保護用戶資金的信任假設的區別。
側鏈。橋接合約會接收關於獨立網絡的信息,但不會驗證其正確性。一組掌控這個橋接合約的參與者會負責檢查獨立網絡的狀態(確保其未被攻陷),並向橋接合約表示相關的事實。
Rollup。一組參與者(定序器)負責為獨立網絡的狀態更新提供證據,並由橋接合約來驗證這些證據的有效性(以及獨立網絡是否完整而未遭破壞)。
這裡面有個細微的區別,但歸根到底,在於主鏈上的橋接合約是否能強制保證獨立網絡上的交易的有效性,還是說,它只能依賴於一組受信任的參與方來表示這些交易是有效的。
當然,天下沒有免費的午餐。 Rollup 網絡可以保持與以太坊主網同樣的安全性,但也要在以太坊網絡中消耗更多的資源。這就拉高了在rollup 網絡上交易的成本。作為一個用戶或者開發者,你需要考慮網絡所提供的額外安全性和額外付出的財務成本。
沒有最好的,只有最合適的。