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

撰文:崔晨, 就職于 HashKey Capital Research

審核:鄒傳偉,萬向區塊鏈首席經濟學家

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

公鏈多層階段的趨勢

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

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

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

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

原生型多層結構

Polkadot

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

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

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

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

Cosmos

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

圖 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 鏈上的資產與主網沒有互操作性。而且不同的 Plasma 鏈由不同智能合約設立,他們之間也很難實現資產跨鏈和互操作性。

ZK Rollup

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

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 上是否存在驗證者,用戶在鏈下的資產都可以隨時提回鏈上,需要通過各種機制設計保證用戶資產的安全性,下表是對不同多層結構在互操作性、跨層方式和層中角色方面異同的總結。

表 1:多層結構的異同

思考與總結

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

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

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

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧