雖然區塊鏈得到了日趨廣泛的采用,當代協議的負載量卻十分有限,因此涌現出了許多Layer2協議,例如狀態通道、側鏈、Plasma和RollUp。本文深入探究了這些方案各自的技術細節和優缺點。
所有Layer2解決方案的核心思路都是讓多個參與方通過某種方式實現安全交互,無需將交易發布在主鏈上,不過在某種程度上還是要利用主鏈作為仲裁方來確保其安全性。
不同的Layer2方案有不同的特征和優缺點。我個人最看好的Layer2方案是RollUp,會在下文詳細闡述。
感謝Jones(PlasmaGroup)、TomClose(Magmo)、PetrKorolev和GeorgiosKonstantopoulos對本文初稿的審閱。
狀態通道
我們先來看看入門級的Layer2方案——支付通道。支付通道是如今最廣泛采用的Layer2方案。例如,閃電網絡就是建立在支付通道技術上的。
支付通道是狀態通道這個大概念下的一個具體實例。關于狀態通道的發展史可以參見維基上的概述。狀態通道是固定一組參與者之間的協議,用以實現安全的鏈下交易,其中支付通道專門用來支付。支付通道協議具體如下:兩名參與者各自通過鏈上交易在鏈上鎖定保證金,比方說,價值10美元的比特幣。一旦鎖定完成,參與者雙方即可互相發送形式為的狀態更新來實現轉賬,無需與主鏈進行交互,只要雙方的余額都還為正值即可。
一旦參與者中有一方想要停止使用支付通道,可以執行“退出”操作:將最后的狀態更新提交至主鏈,結算下來的余額會退給發起支付通道的兩方。主鏈可以通過核實簽名和最后結余來驗證狀態更新的有效性,從而防止參與者使用無效狀態來退出支付通道。
國會議員Tom Emmer認為Ripple案是一個“巨大的發展”:金色財經報道,在Ripple裁決公布不到一個小時后,眾議院多數黨黨鞭Tom Emmer在Twitter上寫道,這一結果是“一個巨大的發展,它證明了代幣與投資合同是分開的,它可能屬于也可能不屬于投資合同。”
法院雖然認定XRP的機構銷售確實構成未注冊證券銷售,但也裁定二級市場上的程序化銷售不構成未注冊證券銷售。至于XRP代幣本身,法院表示,它本身并不是“體現投資合同Howey要求的‘合同、交易或計劃’”。[2023/7/14 10:54:09]
這種“退出”模式存在一個問題,即主鏈無法驗證支付通道是否提交了全部交易,也就是說,在提交了狀態更新之后是否不再出現新的狀態更新。我們可以考慮這樣一個場景:
假設在初始狀態下Alice有11美元而Bob有9美元,Alice向Bob發送了一個狀態更新——向Bob轉賬7美元,并等待Bob向她提供服務,然后在7美元還沒到賬之前就退出了支付通道。由于主鏈不知道還有另外的狀態更新,會將“退出”交易視為有效。
這個問題的解決方案是,在Alice發起退出交易之后,為Bob留出一段時間的“挑戰期”。在此期間,Bob可以提交未完成結算的狀態更新,里面包含Alice的簽名,而且輪次數也高于Alice在退出時提交的狀態更新。在上例中,Bob可以在挑戰期內提交最后一個狀態更新,也就是Alice向他轉賬7美元的狀態更新,并且索要16美元的余額,而不是被Alice提交的狀態搞得只剩下9美元。
雖然目前的退出機制設計非常安全,但是主要麻煩的一點在于:參與者可能得等待比較長的一段時間,通常是24小時,才能退出,而且需要頻繁監控主鏈以確保他們的交易對手方沒有使用過去的某個狀態退出。可以通過WatchTowers技術將監視全網的任務委托給第三方。更多關于暸望塔的文章可以閱讀這篇和這篇。
Linea開啟測試網人工驗證憑證積分,以打擊機器人并獎勵真實用戶:6月12日消息,ConsenSys旗下zkEVM項目Linea官方宣布開啟我是Linea頭等艙公民活動,系統將為用戶提供非常高的人工驗證憑證積分,以打擊機器人并獎勵真實用戶。[2023/6/12 21:32:15]
為了避免這種不必要的等待,雙方可以通過許多實現來達成“協同關閉”。其中,參與者可以簽署一個“結束證明”。有了這個證明之后,另一方無需等待挑戰期結束即可退出。
支付通道可以廣泛應用于任意的狀態轉換,而非僅僅局限于支付一途,只要主鏈可以驗證這些狀態轉換的正確性即可。例如,狀態通道可以用來下棋,棋手可以將各自的走棋作為交易發送給對方。
雖然存在不便之處,但是狀態通道已廣泛應用于支付、游戲等用例,因為這種技術具有即時確定性,無需參與者交納除質押和退出費用以外的其他費用,而且在結構上相對簡單。
雖然狀態通道的廣義定義較為簡單,而且考慮到了所有極端情況,可以防止一方非法占有另一方的資產,但是實現起來比較復雜。Whiteboard系列中有一個視頻來自Magmo團隊的TomClose,深入分析了構建安全狀態通道的復雜性。
狀態通道網絡
狀態通道的另一個缺點是只能在兩個參與者之間開設。你可以通過N/N多簽機制在多個參與者之間維護一條狀態通道。不過相比之下,具備相同功能的Layer2方案更為理想,使得彼此之間未開設狀態通道的參與者也能直接進行交易。
狀態通道還有一種很有趣的架設方法。如果Alice跟Bob之間有一條狀態通道,Bob和Carol之間也有一條狀態通道,那么Alice就可以通過Carol安全且自動地轉賬給Bob。這樣就可以構建一個完整的狀態通道網絡,容許大批量的參與者彼此進行交易,無需在每一對參與者之間開設狀態通道。
Lido DAO財務工作組提交建議在Lido中質押全部金庫ETH的民意提案:5月30日消息,Lido DAO財務工作組Steak house提交一項民意治理提案TMC-0,建議在Lido中質押全部金庫ETH。提案指出,2萬枚ETH的年收益率為4%至6%,收益接近每年200萬美元。鏈上操作為在Lido存入20,304枚ETH并轉換為stETH,部署一個Easy Track合約以執行未來的ETH存入。
提案備注,如果stETH<0.98ETH,應該在市場上購買stETH,而不是直接質押ETH,這可能需要更多的運營開銷。[2023/5/30 11:48:45]
這就是閃電網絡的設計思路。Whiteboard系列中有一個視頻是DanRabinson講解Interledger,深入分析了閃電網絡的設計,可以點擊這里查看。
側鏈
側鏈的核心思路是構建一條完全獨立的區塊鏈,有自己的驗證者和運營者,可以與主鏈互相轉移資產,而且會選擇性地將區塊頭的快照發送至主鏈,從而防止分叉產生。有了這些快照,就可以有效防止分叉,即便側鏈上的驗證者串謀起來發動分叉攻擊也沒用。
從上圖可以看出,側鏈會生成區塊并將它們的快照發送至主鏈。所謂的快照就是存儲于主鏈上的區塊哈希。側鏈上的分叉選擇規則是,合法的鏈必須構建在最近一個進行過快照的區塊之上。在上圖所示情況下,區塊A的快照已經發送至主鏈,即使側鏈上的驗證者勾結起來,試圖在區塊A生成之后生成一條更長的A’<-B’<-C’鏈來發動雙花攻擊,側鏈上的參與者也會忽略這條更長的鏈。
如果參與者想要將主鏈上的資產轉移至側鏈,他們就要將這部分資產“鎖定”在主鏈上,并向側鏈提供鎖定證明。如果要解鎖主鏈上的資產,就要在側鏈上發起一個“退出”交易,并在該交易被打包上側鏈之后提供退出證明。
以太坊Layer2上總鎖倉量為68.82億美元:金色財經報道,L2BEAT數據顯示,截至目前,以太坊Layer2上總鎖倉量為68.82億美元,近7日漲22.81%。其中鎖倉量最高的為擴容方案Arbitrum One,約38.52億美元,占比55.97%,其次是Optimism,鎖倉量20.42億美元,占比29.67%。[2023/3/19 13:13:26]
雖然側鏈可以利用主鏈的安全性來防止分叉,但是驗證者依然可以通過串謀來發動另一種叫做無效狀態轉換的攻擊。這種攻擊背后的思路是,主鏈本來就不可能驗證側鏈上的所有區塊。因此,如果有超過50%或66%的驗證者串謀的話,他們可以創建一個完全無效的區塊,竊取其他參與者的資產,并將這個區塊的快照發送至主鏈,發起并完成一個“退出”交易,就可以成功偷走這些資產。
我們之前寫過一篇關于分片機制下無效狀態轉換問題的概述。這個問題一對一對應到側鏈語境下,側鏈就相當于概述中的分片,主鏈就相當于概述中的信標鏈。
那篇概述中還提到了避免無效狀態轉換問題的解決方案,不過目前還沒有踐行。大多數側鏈都是基于驗證者串謀人數占比不超過50%的設想之上的。
Plasma
Plasma是一種可以實現“無監管”側鏈的技術,換言之,即使側鏈上所有驗證者串謀起來作惡,plasma鏈上的資產也是安全的,而且可以退回主鏈。
最簡單的plasma設計通常被稱為PlasmaCash,只支持簡單的非同質化代幣,而且每個交易轉移的資產只能是一個特定的常量。PlasmaCash的運行方式如下圖所示:
每個區塊都含有一個稀疏默克爾樹,它的葉節點則包含某個代幣所有權的變更。以上圖為例,一共有4個代幣處于流通中。在區塊B中,代幣1、3和4沒有被換手,而代幣2被轉移到了Alice手中。如果區塊D中包含一個由Alice簽署的將代幣2轉移至Bob的交易,則區塊D中的代幣2會從Alice手中轉移至Bob手中。
芯片制造商英偉達的加密采礦芯片收入繼續下降:金色財經報道,芯片巨頭英偉達(Nvidia)表示,截至7月31日的2023財年第二季度,其加密貨幣采礦處理器(CMP)的銷售額“很少”,低于一年前的2.66億美元。英偉達曾用同樣的術語來描述上一季度的CMP銷售額,它當時指出CMP拖累了其“OEM和其他”業務部門的收入。
英偉達首席財務官稱,“OEM和其他”業務部門第二季度的整體收入比去年同期下降了66%,至1.4億美元,主要是受筆記本OEM銷售下降的影響。“OEM和其他”業務部門只貢獻了第二季度總收入的約2%。
根據FactSet的數據,Nvidia第二季度總收入為67億美元,符合市場平均預期。8月初,Nvidia稱其預計收入為67億美元,遠低于之前81億美元的預期,主要原因是游戲收入減少。(CoinDesk)[2022/8/25 12:46:48]
一個代幣從主鏈轉移到Plasma鏈上之后,如果一方要將這個代幣轉移給另一方,則需要提供這個代幣的完整歷史。在上例中,如果Bob想要將代幣2轉給Carol,那么之前每個區塊內的交易情況就會作為條目記錄在這個交易內,如果之前發生過所有權變更,需將相關默克爾證明記錄在內,反之記為空值。
Plasma鏈會將所有區塊頭的快照發送到主鏈上,Carol可以驗證是否所有的默克爾證明都跟之前通過快照發送至主鏈的哈希值相符,以及每個區塊中的所有權變更是否有效。一旦這個交易被打包成區塊放到plasma鏈上,Bob將代幣2轉給Carol的條目就會記錄在默克爾樹上,Carol就成了代幣2的所有者。
因為Plasma是建立在運營者隨時都能串謀作惡的設想上的,所以用戶沒法做到即時退出,而且需要有一個退出機制。盡管我們上文討論的架構相對簡單,但是退出機制非常復雜。Whiteboard系列視頻中有一節是由來自LoomNetwork的GeorgiosKonstantopoulos分享的,深入分析了PlasmaCash的技術細節,介紹了LoomNetwork采用的退出機制,其中還提到了一個例子是,運營者可以通過隱瞞數據從誠實的參與者處竊取代幣,或是發起攻擊之后,DanRobinson提出了一個較為簡單的退出機制,可以解決這個問題,然后又發現通過給區塊重新排序可以打破這個機制。
總而言之,Plasma最大的優點是存儲在plasma鏈上的代幣安全性很高。無論發生了以下何種情況:plasma運營者創建了一個無效狀態轉換、plasma運營者發起扣塊攻擊、plasma運營者徹底停止出塊,誠實的參與者都可以確信自己能夠取回代幣。在上述情況下,或者籠統地說,在任何情況下,代幣都不會丟失。
缺點在于,在轉移代幣之時必須提供該代幣的完整歷史,另外就是退出機制非常復雜。
想了解更多技術細節的話,可以參見上文提過的LoomNetwork團隊人員的分享視頻,以及來自Plasma團隊的BenJoines的分享視頻。其中,Ben談到了PlasmaCashFlow,這是一個比較復雜的PlasmaCash設計,能夠實現任意金額的交易。
RollUp
正如我在討論側鏈時提到的那樣,解決側鏈的無效狀態轉換問題的方法之一是提供密碼學證明來證明之前每次狀態轉換都是正確的。最近,MatterLabs就依據這種方法構建了一個叫做RollUp的技術,其構想最初是由BarryWhiteHat在ethresear.ch上提議的。
RollUp實際上是一條側鏈,因此它會生成區塊,并且將這些區塊的快照發送到主鏈上。不過,RollUp上的運營者是無需信任的。也就是說,RollUp假定運營者可以在任何時候做出停止出塊、生成無效塊、隱瞞數據等惡意行為。
與一般的側鏈相似的是,如果某個區塊的快照已經發送至主鏈,那么RollUp上的運營者只能在這個區塊之后發動分叉攻擊。因此,一旦某個區塊的快照發送到了主鏈上,這個區塊就得到了最終確定,RollUp鏈上進行過快照的區塊也是如此。
為了避免狀態有效性問題,每當RollUp運營者要對某個區塊進行快照之時,都要提供一個SNARK,證明鏈已經使用相關的一組交易執行了有效的狀態轉換。以下圖為例:
RollUp鏈上有三個區塊:A、B和C。它們的快照分別對應主鏈上的區塊X、Y和Z。每到一個時間點,主鏈只需要存儲RollUp鏈上最新狀態的默克爾根。在區塊A進行快照之時,發送到主鏈上的交易包括:
新狀態S2的默克爾根h(S2)。
S2的完整狀態數據,或區塊中的所有交易。
一個zk-SNARK,證明在從狀態哈希h(S1)到狀態哈希h(S2)之間的所有交易都是有效的,并且這些交易都與中提供的數據相匹配。
該交易證實了zk-SNARK是有效的,并在鏈上存儲了新的默克爾根h(S2)。重要的是,該交易雖然不會將A中的完整數據存儲在狀態中,但是會將其保存在調用數據內,以便日后調用。
事實上,將完整的區塊存儲在調用數據中的做法在某種程度上是個瓶頸,不過可以解決數據可用性問題。目前,MatterLabs構建的RollUp需要1分鐘的時間來計算出一個交易的SNARK,每個交易需要消耗1Kgas,并占用主鏈上9個字節的調用數據。
在這樣的設計下,除了離線之外,運營者不能做其他惡意行為:
不能隱瞞數據,因為對區塊進行快照的交易必須提交完整的區塊或者完整的狀態作為證明,并驗證交易內容是正確的,之后交易內容會保存在主網上的調用數據內。
不能生成含有無效狀態轉換的區塊,因為必需提交一個zk-SNARK來證明狀態轉換的正確性,而無效區塊是無法計算出zk-SNARK的。
無法發動分叉攻擊,因為分叉選擇規則始終認可最新進行過快照的區塊所在的那條鏈,即使這條鏈不是最長鏈。
雖然這種Layer2方案沒有顯著擴大調用數據中的存儲空間,但是實際消耗的可寫存儲量是恒定的,鏈上驗證的gas成本低至1kgas/tx,是主鏈交易的1/21。
重要的是,假設RollUp上的運營者彼此合作的話,就可以實現即時退出,不會涉及到退出機制。這些特征使得RollUp鏈成了目前最炙手可熱的Layer2方案之一。
結束語
我目前在開發一個名為Near的Layer1分片協議。一個常見的誤解是Layer1分片協議與Layer2擴容方案存在競爭關系。實際上并非如此,分片協議的實現不會影響到Layer2擴容方案的使用。
Layer2為特定用例而設計,能夠在維持較低成本的同時提供較高的吞吐量,即使是在Layer1區塊鏈的擴展性有了顯著提高的情況下。
2019年上半年,是區塊鏈發展歷史上重要的時間節點,發生了許多重要的事情,有:1)比特幣價格觸底反彈,加密貨幣市場行情轉暖;2)比特幣算力創新高達到7450萬TH/s.
1900/1/1 0:00:00DeFi前景光明,但前路崎嶇。DeFi是今年最為火熱的領域之一,大眾對于基于以太坊開發的DeFi產品給予了大量的關注,眾多Defi項目在今年也確實都獲得了快速的發展,貌似一切都很美好.
1900/1/1 0:00:00慶祝公鏈上線,萬枚INB福利來襲! 2019-07-10 親愛的用戶: 為慶祝慶祝INB公鏈測試網上線,DragonEx與INB項目方達成合作.
1900/1/1 0:00:002019年7月8日,全球領先的加密貨幣交易所KuCoin宣布,其自主研發的數字貨幣衍生品交易平臺KuMEX正式上線公測,首批開放比特幣永續合約XBTUSDM,最大可選擇20倍杠桿.
1900/1/1 0:00:006月18日Facebook公布的Libra白皮書,在全球范圍內引發了熱烈辯論。這不僅僅是一個科技巨頭(Bigtech)投身數字貨幣浪潮的高調起步,由于其框架設計直指當前數字貨幣的種種弊端,Lib.
1900/1/1 0:00:00今天,全球最大的聚合交易平臺及聚合IEO平臺BiUP官方宣布,與VSYSTEMS(VSYS)達成戰略合作,項目代幣VSYS將于2019年7月11日正式上線BiUP.
1900/1/1 0:00:00