還在比較區塊鏈項目可以實現的 TPS 指標?還在討論單條公鏈如何突破「性能低下」的瓶頸?
進入 2019 年的年中,現在行業更關注的問題是,面對越來越多語言架構各異的公有鏈、聯盟鏈、私有鏈,如何真正實現「互操作性」?
換句話說,現在大家正在積極思考並探索,如何終結各個區塊鏈自成體系、分裂割據的局面,在一座座價值孤島之間如何搭建橋樑,使鏈與鏈之間可以互聯互通、實現價值流通,從而形成整個區塊鏈的價值互聯網。
從以太坊社區最早提出的鏈下擴容方案 Plasma,到 Cosmos 和 Polkadot 這樣的以「跨鏈」爲核心目標的公鏈項目,可以實現「跨鏈」或「互操作性」功能的技術方案一一展露頭角,引發業界關注。像本體這樣的公鏈項目,在建設生態發展的同時,也在積極探索適合的跨鏈解決方案,從而可以讓不同鏈間的 DApp 開發者可以通過調用跨鏈管理合約來完成跨鏈操作,實現鏈接不同區塊鏈,爲整個生態賦能。
在區塊鏈的世界,封閉的孤島沒有價值。本體這樣的公鏈項目在跨鏈方向進行的嘗試值得其他深入研究。那麼,本體在跨鏈設計和架構方面,與其他跨鏈項目有何不同?其設計思路是什麼?如何實現?這對衆多公鏈項目具有借鑑意義。
從 Plasma、Cosmos、Polkadot,到本體
不妨先比較一下幾個熱門的跨鏈解決方案的特色,以及它們是如何實現跨鏈功能的。
Plasma:如今坊間熱議的跨鏈技術始自 2017 年 8 月由 Joseph Poon 和 Vitalik Buterin 首次提出的鏈下擴容方案 Plasma,其本質上是一系列運行在以太坊主鏈上的智能合約,通過將大量交易和計算“下放”到側鏈來實現,以提高以太坊主鏈可擴展性。不同於以太坊主鏈目前使用的 PoW 共識算法,側鏈將使用 PoS 等 TPS 更高的共識機制,因此側鏈提供了可擴展性,而主鏈保證了安全性和去中心化。形象地說,以太坊主鏈就像最高法院,不需要處理過多事務,而側鏈就是下級法院,從最高法院獲得權力。主鏈將使用數學可驗證的方法來處理爭端,並用自己的資金獎勵正確的一方。
Cosmos:今年 3 月 14 日主網上線、引發跨鏈技術熱潮的 Cosmos 則是 Tendermint 團隊開發的一個支持跨鏈交互的異構網絡 (Internet of Blockchains)。Cosmos 由不同的獨立、平行區塊鏈組成,其中的每條區塊鏈都通過如 Tendermint 這樣的 PBFT (經典拜占庭容錯)共識運行。Cosmos 上的區塊鏈稱爲“分區(zone)”,其中的一些分區又稱爲"樞紐 (Hub)\”,不同的分區可以通過共享的樞紐來互相通信與互操作。
Cosmos 網絡上的第一個分區就是 Cosmos Hub。因爲所有跨分區的代幣轉移都需要通過 Cosmos Hub 進行,所以代幣可以安全、迅速地在分區之間轉移。分區之間無需具有直接的匯兌流動性,而只需通過 Cosmos Hub 來追蹤記錄每個分區持有的代幣總量,並確保所有分區的代幣總量不變。Cosmos Hub 在此起到了一種類似中央銀行結算功能的作用。
Polkadot:另外一個令人矚目、但尚未正式發佈的跨鏈項目 Polkadot 是由前以太坊聯合創始人、CTO Gavin Wood 設計的可伸縮性的異構多鏈系統。Polkadot 設計了一種新的區塊鍊形態,由單獨的中繼鏈去統一管理共識安全和數據交互,用百花齊放的平行鏈技術去滿足各種應用需求,進一步分離共識和狀態轉換,使開發者和企業能夠利用其協議建立區塊鏈,即平行鏈(parachain)。只要這些平行鏈建立在 Polkadot 的基礎之上,將共享同樣的權威證明(PoA)共識。由於該類型共識嵌於 Polkadot 中,平行鏈開發者可以專注於各自區塊鏈的特異性。所有平行鏈都和被稱爲中繼鏈(relay chain)的通用區塊鏈無縫連接,後者扮演連接所有平行鏈的角色。
本體:定位於新一代公有基礎鏈暨分佈式信任協作平臺,於去年 6 月 30 日實現主網上線,之後又在 12 月 28 日發佈本體分片設計,連通區塊鏈與互聯網,爲實體經濟服務。2019 年,本體按路線圖計劃將着力於同構多鏈、異構鏈網的打造,幫助去中心化應用(DApps)能夠基於不同的鏈進行更好的開發,爲此推出了全新的輕量級、低耦合、安全可靠的跨鏈解決方案。該方案可同時支持同構鏈(與當前的本體主鏈具有相同架構的側鏈)和異構鏈(與當前本體架構不同的側鏈),當需要連接不同結構的鏈時,在源鏈和目標鏈中部署用於管理跨鏈操作的合約之後,不同鏈間的 DApp 開發者可以通過調用跨鏈管理合約來完成跨鏈操作。
從以上跨鏈技術比較簡表可見,比起 Plasma、Cosmos、Polkadot,本體跨鏈更爲靈活、安全更有保障:支持包括數字資產在內的任何信息跨鏈,支持側鏈之間之間跨鏈,只需同步一小部分區塊頭信息,實現輕量級的跨鏈解決方案,側鏈區塊頭須經主鏈共識保證安全,爲 Relayer 同步跨鏈信息提供完整激勵。
雙層結構的多鏈架構:實現側鏈與側鏈的交互
本體多鏈設計方案採用雙層結構,Ontology 作爲當前的主鏈,負責側鏈的註冊以及資產抵押等事宜。
側鏈可以是與主鏈結構相同的同構鏈,也可以是與主鏈結構不同的異構鏈。側鏈需要向主鏈進行註冊,等待主鏈治理委員會審覈,通過後激活鏈與鏈間的跨鏈交互。
比起 Cosmos 的 Zone 區塊鏈(相當於本體的側鏈)之間不能直接通信、必須通過 Hub 跨鏈的設計,本體的設計保證了主鏈與側鏈之間、側鏈與側鏈之間足夠的解耦性,只需部署相應的跨鏈合約即可能完成跨鏈交互。
值得注意的是,本體鏈網的主鏈區塊信息受側鏈信任,側鏈的區塊信息無法一開始就獲得受主鏈及其他側鏈的原生信任。因此,爲了驗證跨鏈狀態的合法性,側鏈需要在註冊時向主鏈的多鏈管理合約提交該側鏈的創世區塊頭、抵押 ONG 量等基本信息,同時需要將主鏈的當前關鍵區塊頭信息初始化在自己的區塊頭同步合約中。
源鏈和目標鏈的跨鏈交互所需相關合法性證明須在跨鏈交易發生時在鏈間進行傳遞。與此同時,合法性證明也需要源鏈或目標鏈的某些關鍵區塊頭信息,主鏈與側鏈的交互需要從對方同步關鍵區塊頭信息;而側鏈與側鏈的交互,由於雙方都可以從主鏈上拿到對方關鍵的區塊頭信息,因此只需直接從主鏈上獲取即可。
五個模塊,瞭解本體跨鏈設計
在本體的跨鏈設計中,由 Ontology 主鏈、各條同構側鏈以及異構側鏈構成整個鏈網體系。在這個體系中,使用 ONG (Ontology Gas)作爲統一的燃料手續費和礦工費。
本體跨鏈設計主要包括如下 5 個模塊:
- 多鏈管理合約:主要負責側鏈註冊和管理,包括側鏈註冊、側鏈狀態管理、側鏈 ONG 抵押管理、側鏈資金池管理等。多鏈管理合約部署在主鏈 ;
- 區塊頭同步合約:在主鏈與側鏈或側鏈與側鏈交互過程中需要進行關鍵區塊頭信息的同步,以驗證跨鏈交易的合法性。同時,側鏈和側鏈的交互過程中,雙方將從主鏈上取得對方鏈需要跨鏈的前一個關鍵區塊頭信息。區塊頭同步合約部署在主鏈和每一條側鏈上;
- 跨鏈管理合約:所有跨鏈交易都由源鏈上的跨鏈管理合約來進行統一管理,DApp 開發者無需關心具體的跨鏈邏輯,只需調用跨鏈管理合約的統一方法即可實現跨鏈。跨鏈管理合約部署在主鏈和每一條側鏈上;
- ONG 合約:系統資產合約,該資產可以實現跨鏈轉移,並可以作爲交易手續費和跨鏈交易礦工費。主鏈 ONG 合約添加了跨鏈資產鎖定 / 解鎖功能,側鏈 ONG 合約添加了跨鏈資產增發 / 銷燬功能。ONG 合約部署在主鏈和每一條側鏈上;
- 信息狀態同步者 Relayer,是一個狀態信息同步程序,持續監聽跨鏈合約的跨鏈請求和某些關鍵區塊,監聽到後進行跨鏈交易或者同步關鍵區塊頭獲取礦工費。
如何管理側鏈的全生命週期?
本體鏈網中的側鏈猶如世界中的生命,其生滅始終的全生命週期通過部署運行在 Ontology 主鏈上的多鏈管理合約來實現。
通過多鏈管理合約,能夠進行側鏈註冊,及其狀態、ONG 抵押、資金池管理等多種功能,其具體設計如下:
一、側鏈註冊
側鏈在主鏈註冊時需要使用本體去年 8 月 28 日被 W3C (萬維網聯盟)接受的 ONT DID (去中心化身份標識)完成 KYC (身份認證),並提交創世區塊信息、ONG 抵押量等基本信息。同時,側鏈需要在主鏈上抵押一定的 ONG 作爲保證金,該保證金由側鏈初始驗證人共同抵押,ONG 各自抵押多少則由側鏈驗證人協商確定,但不能低於承諾的抵押總量。在提交註冊信息前,側鏈驗證人需要提前在主鏈抵押足夠的 ONG,若抵押量不足,則會導致註冊失敗。如果側鏈存在惡意行爲(例如,側鏈驗證人惡意增發側鏈上的 ONGx),則會扣除相應保證金作爲懲罰。主鏈治理委員會審覈側鏈提交的基本信息,審覈通過後根據保證金數量爲側鏈分配一個資金容量池,用於管理該鏈與其它鏈交互所用的資產,側鏈至此註冊完成。
可以看到,側鏈資產(ONGx)的總量取決於其在主鏈中資金池的大小。某個側鏈一旦作惡,那麼該鏈在主鏈上質押的保證金可用來償付用戶。因此,通常情況下,側鏈資金池的容量與抵押保證金的比例是 1:1。當然也可以是其他比例,但爲了保證足夠的安全性,本體建議將該比例設置爲 1:1。本體認爲這一優於其他跨鏈項目的制度設計確保側鏈抵押金額不小於側鏈與主鏈資產交互的實際價值,足以遏制驗證人作惡的動機。
二、驗證人信息變更
如果側鏈驗證人信息發生變更,需要新的驗證人去主鏈先抵押足夠的 ONG,該抵押量不能低於原有驗證人退出時抵押的 ONG 總量,當 Relayer 將新的共識週期的驗證人區塊頭提交到主鏈時,主鏈會驗證新的共識週期的驗證人抵押的 ONG 總量是否低於設定的 ONG 抵押量,若低於總抵押量,該區塊頭同步將會被拒絕,若不低於總量,原側鏈驗證人抵押的 ONG 將會在兩次驗證人信息變更後被解鎖。
三、跨鏈資產兌換
側鏈註冊完成後,用戶可以將主鏈的 ONG 鎖定在某條側鏈註冊在主鏈的資金池中來換取該側鏈上相應的資產。
用戶在某條側鏈註冊在主鏈上的資金池中鎖定 ONG 後,主鏈會生成相應 IOU (借據)信息,若主鏈資金池被充滿則鎖定失敗。如果主鏈鎖定成功,Relayer 可基於主鏈生成的 IOU 信息在側鏈釋放對應比例的 ONGx。反之,用戶在側鏈中銷燬 ONGx,可根據側鏈生成的 IOU 信息在主鏈中釋放對應的 ONG。
四、側鏈資產動態管理
如果側鏈想擴大在主鏈上的資金池容量,可增加自己在主鏈中的保證金,並向主鏈提交申請,若審覈通過,側鏈在主鏈上的資金池容量會擴大,側鏈的資產供應量也會相應增加。
與此類似,側鏈想減小在主鏈上的資金池容量,則需要先向主鏈提交申請。若審覈通過,側鏈在主鏈上的資金池容量會減少,側鏈的資產容量也會相應減少。需要注意的是,側鏈的資金池容量下限對應的保證金不得小於賠付當前所有用戶鎖定的 ONG 總量。
五、側鏈註銷
如果側鏈需要註銷退出,需要向主鏈提交註銷申請,並等待一段時間的挑戰期。在挑戰期內,用戶可自主地將側鏈資產兌回主鏈。挑戰期結束後,主鏈則返還側鏈抵押的保證金,若該側鏈上還有沒被兌回的資產,則這部分的資產將會失效。
結合上文這些信息,可以從大的設計思路和框架初步瞭解了本體跨鏈方案的特點,尤其是其多鏈架構和側鏈生命週期管理。而具體實現跨鏈的功能,同時保證整個系統的安全性,核心在於進行區塊頭同步、跨鏈交互和信息狀態的同步。這些具體信息,值得撰寫另外一篇文章,進行詳細介紹。