HashKey 崔晨:解析公鏈多層結構趨勢和互操作性

從互操作性角度,波卡等原生型多層結構要優於Layer 2 等後天型,因為前者可實現信息流轉和智能合約調用。

區塊鏈技術應用一直以來都是人們最關注的話題,而作為承載應用的公鏈,其性能決定了應用的上限,關於公鏈的技術進展同樣受到關注。以太坊之後誕生的競爭公鏈,包括以太坊的升級,都致力於提高系統性能。在此前提下,多層(鏈)結構在公鏈中成為眾多公鏈的選擇,例如多層架構和鏈下擴容方案。對於多層結構,層級之間的互操作性是實現可用的基礎,更重要的是位於不同層的資產要達到統一的安全性。本文主要對目前流行的多層區塊鏈結構進行分析,說明安全來源和互操作性問題。

公鏈多層階段的趨勢

公鍊及智能合約的誕生給區塊鏈應用提供了載體,但應用場景也受限於公鏈。區塊鏈大規模應用的障礙之一是可擴展性(Scalability),即區塊鏈的性能。可擴展性會限制區塊鏈交易吞吐量,導致擁堵和交易費上漲,以太坊就常常面臨這個問題。擴容是解決網絡擁堵的根本方案,多層結構就是實現擴容的主要方式之一。通過多層結構,數據可以在不同的網絡分區並行處理,提高系統的處理效率。例如以太坊的Layer 2 擴容方案,以計算過程放到鏈下進行,最終結果傳回鏈上的方式,增強區塊鏈的信息處理能力。公鏈多層結構有不同的表現方式,有平行鍊和中繼鏈、分片、Layer 2、主網和子網等。

公鏈中的數據和價值流轉需要主網出塊者達成共識,根據主網中的節點對多層結構是否感知,可以分為原生型多層結構和後天型多層結構兩種模式。原生型多層結構的例子是Polkadot,在設計之初就明確了信標鏈上的驗證者負責維護網絡安全以及平行鏈間的通信。在後天型多層結構中,主網對其他層級沒有感知,不負責其他層上的任何功能,需要各層自行保證資產安全。無論是哪種類型的多層結構,它們的作用都是在保證資產安全和互操作性的前提下,實現整個系統的擴容,提高公鏈的處理效率。

公鏈多層結構的資產安全和互操作性問題

不同類型的公鏈結構在實現多層結構安全的方式有所不同,原生型多層結構需要上線時就對跨層機制和確保安全方面有完善的設計,在上線後很難改動。後天型多層結構會在主鏈的基礎上進行改動,自行保證安全並且不需要主鏈參與,實施發現缺陷後可以及時更迭技術,更為靈活。在保證不同層間安全的前提下,多層結構的互操作是可用性的基礎。與安全保證類似的,原生型多層結構中會預設跨層接口,而且互操作性的範圍更廣,後天型多層結構需要額外的橋連接才能實現跨片區的交互。

原生型多層結構

波爾卡圓點

Polkadot 是一種異構多鏈結構,表現為中繼鏈加平行鏈的方式,網絡中共有三個角色,驗證人(Validator)、提名人(Nominator)和收集人(Collator)。提名人可以將自己的DOT 抵押給驗證人,驗證人負責維護中繼鏈,中繼鏈與多個平行鏈相連,每個平行鏈都會被分配一定數量的驗證人,收集人負責收集平行鏈上的信息並生成驗證證明發送給驗證人。應用全部運行在平行鏈上,在網絡需要擴容時,只需要增加平行鏈的數量。

圖1:Polkadot 架構,內圈是中繼鏈,外面連接的是平行鏈

中繼鏈負責維護平行鏈的安全以及之間的信息傳輸,分別通過驗證證明和XCMP (跨鏈信息傳遞)實現。平行鏈與中繼鏈共享安全的同時需要共享狀態,他們通過BABE 和GRANDPA 達成共識,只要超過三分之二的節點投票支持,區塊就可以被認為是最終性的。為了保證網絡安全,平行鏈中的信息會由驗證人證實已經執行過後,才會記錄到中繼鏈上。收集人向負責的驗證人提交候選區塊和狀態轉換的驗證證明,如果平行鏈區塊是無效的,則會被驗證人拒絕。最終是驗證人維護整體網絡安全,驗證人數量越多網絡越安全,與平行鏈上收集人的數量無關。轉化狀態證明的驗證必須使用驗證人儲存在中繼鏈上的已註冊的狀態轉換函數。為了防止驗證人和收集人共謀,驗證人會每隔一段時間進行隨機分配。

XCMP 負責實現兩條平行鏈的互操性,通過中繼鏈上的驗證者解決信息跨鏈問題。 XCMP 由發送者和接收者組成,發送者的收集人會將跨鏈信息放入出站列中,負責的驗證者驗證後將其添加其進入接收者站列,接受者的收集人會看到這條信息後執行要求,並構建候選區塊。接收鏈上的收集人最後將區塊交給驗證者,經由驗證人驗證消息已經被處理後,納入中繼鏈完成一次跨鏈。中繼鏈既保證安全又協助跨鏈,因此Polkadot 可以視為一個整體。

宇宙

Cosmos 通過Hub 和Zone 的形式來實現多層結構,網絡通過增加Zone 實現擴容,Zone 也可以成為Hub 再連接上其他Zone。相對於來說,Zone 就是網絡中的分片, Zone 與Zone 之間可以通過IBC (區塊鏈間通信)協議實現通信。

HashKey 崔晨:解析公鏈多層結構趨勢和互操作性

圖2:Cosmos 網絡架構

每個Zone 和Hub 都是一個獨立的區塊鏈,網絡的安全性由每條鏈自行維護,每條鏈上都設有獨立的驗證者節點,他們通過共識保障鏈上財產。 Cosmos 網絡多層結構交互獨立,這有別於Polkadot。在構建Zone 時,Cosmos 提供了模塊化的開發工具包Cosmos SDK,允許開發者直接使用Tendermint BFT 共識算法。 Tendermint 的容錯率為三分之一,並且在共識時可以實現同一區塊高度上不會出現兩個區塊,避免了網絡分叉以此實現安全。

Cosmos 中的Zone 通過IBC 機制進行信息交換,IBC 類似於互聯網的TCP 協議,目的是實現信息的可靠傳輸,需要共識算法的最終性防止雙花,Tendermint 是最符合其要求的共識算法之一。在跨鏈實現前,雙方需要了解對方的區塊頭信息,相當於保存了對方的輕節點。發送方在鏈上執行相關操作後,會生成相關證明傳送給接收者。接收者驗證後發送者的操作後,會執行下一步驟。

後天型多層結構

對於後天型多層結構,原本就存在的區塊鏈結構稱為Layer 1,後來在區塊鏈本身上搭建的多層結構稱為Layer 2。並非所有鏈下方案都可以算作Layer 2 層,否則中心化交易所也能算作多層結構。只有在機制設計上能完全保證用戶資金安全的方案才可以歸入Layer 2 方案,例如狀態通道、Plasma、Rollup 等。

狀態通道

狀態通道和閃電網絡類似,將交易轉移到通道中進行,等待通道內的交易結束後,再將資金轉移到主鏈上進行清算。為了保證交易雙方的資金安全,用戶可以隨時把資金撤走。在這種模式下,用戶每進行一次資金轉移都需要經過雙方簽名確認,最終版的簽名代表了通道內的最終狀態。用戶需要憑藉雙方簽名的證明提出提現請求,如果一方用戶提交了請求,在規定時間內另一方拿出證明表明前者並非使用最新的交易結果,則提出質疑的一方獲得所有資金(罰金機制);否則按照提出方的結果進行分配。

雖然狀態通道的設置保證了資金安全,但影響了可用性和互操作性,而且狀態通道內很難實現智能合約。用戶無法對狀態通道外的人轉賬,只能與通道內的人交互。通道只允許雙方存在,如果想與其他人交易,只能再設立一個通道或者通過其他人作為路由節點進行交易。每條通道內都要鎖定一定資金,這樣的話影響全網的資金利用率,並且要求節點長期在線。

等離子體

Plasma 由智能合約和默克爾樹結構組成,通過在以太坊主鏈(或者稱根鏈)上創建一條或多條子鏈實現擴容。每個Plasma 子鏈都是由獨立的節點運營,他們可以通過不同於主鏈的共識算法驗證和產出區塊。運營者將交易數據以默克爾樹的形式儲存,並且將默克爾根發佈到以太坊主鏈上,這樣其他人能快速驗證原數據是被儲存在Plasma 鏈中。

用戶在Plasma 鏈上的進入和退出需要智能合約處理,這個智能合約包括了狀態轉換規則,用戶可以隨時與智能合約交互自行加入和退出Plasma 鏈。因此在檢測到Plasma 鏈上運營者的作惡行為時,可以主動將資金退回到主鏈。在退出時,用戶除了要向以太坊提交期交易記錄的證明外,還需要提交保證金且有一定挑戰期的限制。如果用戶提交了錯誤的記錄,需要有人在挑戰期對其進行證明並扣掉他的押金。

與狀態通道不同,Plasma 允許將子鏈中的資產發送給不在子鏈上的用戶,只需要用戶在子鏈中提現,所以在Plasma 鏈上的資產與主網沒有互操作性。而且不同的Plasma 鏈由不同智能合約設立,他們之間也很難實現資產跨鍊和互操作性。

零知識匯總

Rollup 是一種鏈下解決方案,主網中的計算放到鏈下進行,將可驗證的結果傳回鏈上,並且能夠保證數據可得性。和Plasma 一樣,在鏈下交易前也需要用戶將資金轉入Rollup 地址中。 ZK Rollup 的驗證者提交鏈下數據者需要附屬一個證明,其內容的正確性可以快速得到主鏈驗證。但有效性證明的成本與交易的複雜度有關,如果對智能合約的操作進行驗證,成本會劇增。因此ZK Rollup 很難支持通用智能合約,限制了它的使用場景。目前ZK Rollup 的研究團隊在開發適用在其上的標準智能合約。

Validium 是一種類似於ZK Rollup 的技術,同樣通過有效性證明驗證交易。不同的是Validium 的數據儲存在鏈下,需要運營者負責數據儲存。運營者的存在讓Validium 更中心化,但有助於擴展鏈下效率,因此Validium 更適用於低信任環境的高頻交易場景。

Rollup 是主鏈上擴展出的Layer 2 層,目前只能實現跨層資產轉移,通過驗證證明的方式保證Layer 2 層的資金安全。由於資產跨到了Layer 2 層,所以很難實現跨層的智能合約調用。不同的Rollup 之間也很難實現互操作,目前的跨鏈方案多為設立雙邊資金池的方式。

樂觀匯總

Optimism Rollup 與ZK Rollup 同樣採取了Rollup 的方式,面臨相同的互操作問題。與ZK Rollup 的驗證證明方式不同,Optimism 在保證資金安全上參考了Plasma 模式,使用的是欺詐證明。鏈上信息發布者需要提交押金,並等待挑戰期。其他人可以在鏈上提交欺詐證明揭露發布者發布了錯誤的數據,如果屬實則會對交易進行回滾,並沒收發布者的押金。挑戰期結束前沒有人挑戰成功的話,就可以認為數據是正確的。即將上線的Arbitrum Rollup 是Optimistic Rollup 的一個變種,也設有挑戰期的限制。如果有人認為數據是有誤的,則要繳納保證金並提交證明,鏈上合約會對其進行仲裁。他們之間最大的差異在於上傳到鏈上的數據有所區別,在解決爭端時的鏈上成本會不同。 Optimistic Rollup 會在鏈上執行一次完整的合約調用,消耗較高成本,Arbitrum Rollup 縮小其中的爭議範圍,降低了鏈上解決爭議的成本。

多層結構的區別與聯繫

很多公鏈都呈現出多層結構,根據區塊鏈上驗證者對其他層是否感知,它們在實現方式上有所不同。對於原生型多層結構來說,除了資產之外,在虛擬機存在的情況下,還可以在不同層中實現智能合約的調用。在多層結構中實現更多的互操作性有利於擴大生態規模,實現模塊化的功能,節約開發成本,並且層級間的互通能夠提高資金利用率。後天型多層結構中主鏈驗證者不會響應Layer 2 層上的請求,不過Layer 2 層在非必要情況下也不會與主鏈進行交互,因為會佔用主鏈資源,影響Layer 2 的擴容效果。由於沒有類似於原生型多層結構中的中繼者或達成統一協議,在Layer 2 之間實現互操作性是非常困難的。

後天型多層結構在資金安全問題上會涉及到更複雜的問題,需要用戶資產在鏈下能夠實現和主鏈相同的安全性。在目前Layer 2 的設計方案中,都保證了無論Layer 2 上是否存在驗證者,用戶在鏈下的資產都可以隨時提回鏈上,需要通過各種機制設計保證用戶資產的安全性。下表是對不同多層結構在互操作性、跨層方式和層中角色方面異同的總結。

HashKey 崔晨:解析公鏈多層結構趨勢和互操作性

表1:多層結構的異同

思考與總結

多層結構通常是公鏈實現擴容的方式,將原本在一條區塊鏈上交易的信息分散到多層中,通過並行處理提高效率。多層結構有兩種表現方式,原生型和後天型,他們在驗證者對多層結構的感知上有所區別。

在原生型和後天型多層結構中,信息通過不同的方式進行跨層傳遞。原生型多層結構例如Polkadot 和Cosmos 分別通過中繼鍊和協議的方式實現跨層,對多層結構有嚴格的限制,Polkadot 要求平行鏈的結果由中繼鏈共識決定,Cosmos 要求使用IBC 協議的雙方達成一致的共識安全,例如雙方都使用Tendermint 算法。 Polkadot 中繼鏈的驗證者負責平行鏈的信息傳遞和資產安全,可以將多層視為整體。 Cosmos 的多層結構則較為獨立,每層均有獨立的驗證者。後天型多層結構只能通過資產映射的方式進行跨層,映射資產的安全性源自用戶可以自行加入和退出Layer 2,保證用戶掌握控制權。為了實現鏈下交易與主鏈同等的安全性,不同Layer 2 方案設計了各種機制。例如狀態通道中需要用戶交易後更新簽名狀態,Plasma 將原始數據的默克爾根發佈在主網上,Rollup 將壓縮後的交易傳回主網,交易方或第三方可以直接驗證。

在更廣義的互操作性上,原生型多層結構要優於後天型,因為他們可以實現信息流轉及智能合約的調用。而後天型多層結構中由於信息源自鏈下,主鏈上驗證者沒有感知,在Layer 2 和驗證者之間不會存在直接交互。對於不同Layer 2 而言,由於都是從主鏈上延展出的結構,跨層互操作性的難度不亞於兩條異構鏈之間互操作。目前實現的資產跨層是雙邊資金池的方式,距離真正的互操作性還差很遠。總之在區塊鏈應用大規模部署前,多層結構依然是公鏈的趨勢,接下來還將在互操作性以及生態擴展方面進行完善。

撰文:崔晨, 就職於HashKey Capital Research
審核:鄒傳偉,萬向區塊鏈首席經濟學家

Total
0
Shares
Related Posts