Paka Labs萬字報告:跨鏈技術及應用形態全景圖(一)
原文作者:MIDDLE.X,Paka Labs 研究員
原文編輯:Shawn Lin, 1 PAR Research 創始人
鳴謝:
Bifrost 系統架構師Buffalo
Darwinia 技術教育專家Robin Wei
ChainX 技術負責人徐留成
1 前言
一級標題

1 前言
跨鏈技術被認為是區塊鏈領域的聖杯,是實現萬鏈互通的關鍵技術。人們往往將其重要性和互聯網的TCP/IP 進行類比。正是因為TCP/IP 協議簇提供了點對點鏈接的機制,將資料應該如何封裝、尋址、傳輸、路由以及在目的地如何接收,都加以標準化,才使得全球的終端連成了一張網,演變成了我們今天所稱的互聯網。
二級標題
一級標題
二級標題
2.1 通證交換
二級標題
二級標題
2.2 通證傳遞
二級標題
二級標題
2.3 信息傳遞
完全意義上的跨鏈其實應該能讓鏈間的任何消息進行可靠的傳遞。任何跨鏈事務本質上都是一連串跨鏈消息傳遞組合而成的,例如,通證傳遞作為一類跨鏈事務,是由兩次跨鏈消息傳遞組成的,先後是:
源鏈鎖倉通證,並將鎖倉的消息及其證明,傳遞給目標鏈;
目標鏈接收到信息,驗證其真實性之後鑄造映射通證,並將回執發送回源鏈。
一級標題

一級標題
3.跨鏈技術概覽
二級標題
二級標題

3.1 基於哈希時間鎖的原子交換
哈希時間鎖是一套密碼學方法,該方法可以實現去信任的跨鏈資產交易。比如我用的1 個BTC 和你的10 個ETH 交易,就可以通過哈希鎖來實現交易的原子性。其原理大致如下:
用戶A 生成隨機密碼r, 併計算出r 的哈希值m=hash(r) ,將m 值發給用戶B;
與此同時,用戶A 發起一筆交易,向用戶B 轉1 BTC,該交易的成功是有條件的,須用戶B 出示密碼r 才能成功,否則超過預設的時間,交易將自動失敗;
用戶B 看到A 發起的交易之後,也發起一筆交易,向用戶A 轉移10 個ETH,該交易的成功也是有條件的,需要用戶A 出示r 才能成功,超過預設時間,交易也將自動失敗。這裡的關鍵是,用戶B 創建這樣一個以出示r 值為成功條件的交易,並不需要拿到密碼r 的值,只需要知道m 值即可創建,而我們知道,哈希運算是不可逆的,知道m 無法推算出r ;
用戶A 看到B 發起的交易之後,出示r 值,使得B 發起的交易成功,獲得B 轉賬的10 個ETH,r 值被披露;
用戶B 在上個步驟中也拿到了A 出示的r 值,使得A 發起的交易成功,獲得A 轉賬的1 個BTC。
通過以上機制,在兩條不同鏈上的交易,被耦合為一個事件,只能整體成功,或者整體失敗,不會出現A 給B 的轉賬成功,而B 給A 的轉賬失敗的情況,反之亦然。

這種機制的實現,依賴於兩個技術,那就是「條件成功交易」和「條件失敗交易」,在以上案例中,交易成功的觸發條件是出示哈希原像r,交易失敗的條件則是超過預設時間未出示哈希原像r ,我們也可以分別稱為哈希鎖和時間鎖。
在BTC 中,可以通過CLTV 操作碼或CSV 操作碼來實現哈希時間鎖,在以太坊等圖靈完備的鏈上,則可以通過智能合約來實現哈希時間鎖。事實上,智能合約可以實現遠比哈希時間鎖更多元、更複雜的條件成功交易和條件失敗交易。
我們可以看到,哈希時間鎖實現了跨鏈雙方去中介的原子交易,無需任何信任假設。同時,我們也意識到,這種交易方式在用戶體驗上並不友好,主要體現為以下三方面:
交易雙方必須同時在線,嚴格執行參與流程,因此,交易發起方,如果無法找到一個在線的交易對手方,則必須等待。
對於BTC,創建帶有哈希時間鎖的交易,在底層是通過創建兩筆交易完成的,由於底層機制比較複雜,在前文所述的交易過程中被簡化表述為了一筆交易。如果交易成功,兩筆交易都要上鍊,需要多付手續費。
二級標題
二級標題
3.2 見證人
見證人,英文為Notary,有時也被譯為公證人,是為傳遞跨鏈信息,託管跨鏈資產而設置的一個特殊角色。 2012 年Ripple 發布了InterLedge Protocol(ILP),首次通過第三方見證人的方式實現了跨鏈轉賬,在此之後,見證人機制陸續被應用在以BTC 錨定資產為主的諸多跨鏈項目中。
不同的跨鏈項目對見證人有不同的設定:見證人可能是單個主體,但大多數情況下是多個主體;見證人的產生方式可能是許可式的,也可能是自由准入的;為了實現資產跨鏈,見證人將不得不管理一個託管賬戶,管理託管賬戶的方法可能是獨立控製或是多方控制;用戶對見證人的信任基礎,可能來源於見證人自身的信用,也可能來源於見證人做了超額抵押。
3.2.1 見證人產生方式
最簡單的方式是組建一個許可式的見證人組,成員基本固定,成員的加入與退出,則由當前成員審核表決。這種方式是相對中心化的,比較去中心化的方式是自由准入的方式,任何主體,只需符合既定的條件,例如抵押相應資產,即可成為見證人。自由准入帶來了額外的風險敞口,可能帶來惡意見證人,產生串通作惡的風險。因此,有的跨鏈協議選擇加入一個隨機抽取機制:每次的操作,不是由所有見證人簽名,而是從符合條件的見證人集中隨機抽取一組見證人,如此一來,可以增加見證人串通作惡的成本。
3.2.2 用戶對見證人的信任基礎
見證人可以通過超額抵押來獲取信任,這意味著見證人抵押的價值,必須大於託管的賬戶資產價值,如果託管的資產發生損失,用戶將從抵押金中獲得賠償。超額抵押使得用戶託管的資產具有極高的安全性,但是超額抵押給見證人帶來了資金成本,見證人的資金成本將轉化為高昂的跨鏈手續費用。
見證人也可以靠自己的商譽來背書,儘管含有信任假設,但其優勢是跨鏈費用低廉,甚至可以做到免費,因此還是吸引了大批用戶。
3.2.3 資產託管方式:獨立控制地址與多方控制地址
見證人可能各自控制一個獨立控制地址,形成託管地址矩陣,來承接用戶的託管委託。需要注意的是獨立控制地址不一定是單簽名地址,見證人出於安全考慮,可能會採用多籤和私鑰分片技術來管理獨立控制地址,例如,某個見證人在鏈下是一家人數眾多的公司,該見證人的地址有可能會由公司的多名高管或股東通過多籤和私鑰分片共同管理。然而,不管使用什麼技術來管理地址,只要是由單個主體控制的地址,我們都稱為獨立控制地址。
更多的情況下,託管地址是由多方共同控制的地址。有可能是所有見證人共同管理一個地址,也有可能是將見證人分組,每個組共同管理一個地址。這種情況則必須用到多籤或者私鑰分片這樣的多方控制技術。
3.2.3.1 多簽
多簽,或稱多重簽名,英文為Muti-Sig,是由多個私鑰共同控制一個賬戶的技術,多簽技術可以實現一個地址必須由M-of-N 個簽名人簽名才能轉賬, 1 ≤ M≤N。
在BTC 中,多簽地址是P 2 SH 類型的地址,普通BTC 地址是由公鑰哈希後得到的,而多簽地址則是基於腳本哈希。該類地址對N 值有一個限制,N≤ 15 ;在以太坊等具有圖靈完備性的區塊鏈中,則可以通過智能合約來實現多簽地址,N 值也可以無限大。
3.2.3.2 私鑰分片
私鑰分片技術,也稱分佈式密鑰技術,是一個具有更高理論安全度的多方控制技術,該技術脫胎於圖靈獎獲得者姚期智先生提出的安全多方計算(sMPC,Secure Muti-Party Computation),結合門限技術(TSS),也可以實現M-of-N 簽名管理。該技術支持將一個賬戶的私鑰拆分成若干個碎片,分配給多個簽名人,當已簽名的碎片私鑰數達到閾值時,即可對賬戶資產進行操作。具體實現上,私鑰分片有多種技術實現方式,涉及到復雜的密碼學知識,本文不展開。
私鑰分片之所以更加安全,是因為分片是不斷刷新的,也就是每隔一段時間,分片會重新進行,給到每個人的碎片會產生變化。惡意者如果想要通過獲取所有人的分片來盜取資產,必須獲取到不同簽名人在同一個時間單元里的私鑰,否則驢唇不對馬嘴,無法合成完整私鑰。
3.2.3.3 簽名人組成員管理
無論是多簽還是私鑰分片,簽名人組都不可能是一個成員始終固定的群組,所以會涉及到簽名人組的成員增減。在私鑰分片技術中,只需要重新分片,把碎片分發給增減後產生的新簽名人組即可。在多簽技術中,則分為兩種情況:
在以太坊等圖靈完備的區塊鏈上,可以通過智能合約編程來設置簽名人組成員管理規則,例如超過2/3 的現有簽名人簽名同意,即可批准新的簽名人的加入,或者批准剔除某個老的簽名人。
在BTC 上,則無法對一個P 2 SH 多簽地址的簽名人組成員進行編輯,如果某個簽名人的私鑰洩露或者需要退出,只能重新創建一個新的P 2 SH 多簽地址,將資產轉到新的地址裡。
二級標題
二級標題
3.3 輕節點式側鏈
側鏈的產生,源於人們對於BTC 擴容的努力。 2014 年10 月,BlockStream 團隊發布了《側鏈白皮書》,首次提出了“錨定”式跨鏈方案。錨定(Pegged),有時被翻譯為“楔入”,表達的是被錨定鏈對錨定鏈的可讀狀態,這種狀態也被稱為“錨定鍊是被錨定鏈的側鏈”。
人們最早希望通過將BTC 的交易從BTC 主鏈,轉移到側鏈上,來降低BTC 主鏈的壓力, 2016 年由RootStock 團隊開發的RSK 被認為是BTC 最早的側鏈。側鏈技術的本質是通過在側鏈上融合主鏈輕節點來實現主鏈對側鏈可讀。該技術稍加轉化,即可被應用於跨鏈,我們只需在目標鏈上部署源鏈的輕節點合約,即可將目標鏈改造為源鏈的側鏈,實現由源鏈到目標鏈的單向跨鏈。
所謂輕節點,是指一個體積較小的,只存儲區塊頭信息的節點。輕節點並不存儲鏈上的全部交易,但是可以通過區塊頭信息,驗證某個交易是否存在於鏈上。輕節點合約則是包含了輕節點的智能合約。通過在目標鏈部署源鏈的輕節點合約,即可實現對源鏈來的消息進行真實性驗證。其過程大致如下:
當源鏈A 有請求傳遞一筆跨鏈交易信息給目標鏈B 時,交易發起者將該交易的明細內容、區塊高度、以及該交易SPV 證明(指該交易的Mekre 路徑)一併提交到B鏈;
部署在B 鏈上的A 鏈輕節點合約,通過SPV 證明,重新計算該交易所在區塊的區塊頭哈希值;
得到的哈希值與輕節點中對應的區塊頭哈希值進行比較,如果一致,則表明該交易確實發生在該區塊中,若不一致,則說明該交易並不存在於該區塊。
儘管任何人都可以向目標鏈提交交易明細及其SPV 證明,但實際跨鏈應用中,往往會有專門的角色來做這件事,而不是交易發起者來做。我們在本文中,我們稱該角色為Relayer(中繼者)。 Relayer 除了要負責幫助用戶傳遞跨鏈消息,還需要負責將源鏈的區塊頭傳遞到目標鏈,以建立輕節點合約。
Relayer 和見證人一樣,都是為傳遞跨鏈消息而設的一個特定角色,但Relayer 和見證人有兩點不同:
Relayer 不負責託管資產,如果採用側鏈機制來實現跨鏈,跨鏈過程中鎖倉的通證會被託管到一個特定的託管合約中。
對於Relayer 的信任假設,相比見證人而言更為寬鬆。我們必須相信大多數的見證人都是誠實的,但眾多的Relayers 只要至少有一個是誠實的,我們就可以相信跨鏈消息傳遞是可靠的。這點我們將在3.3.3 小節進一步論述。
不同跨鏈項目中對Relayer 的稱呼不同。有些項目中,Realyer 的角色被拆分,負責傳遞區塊頭的Relayer(Head Relayer)和負責傳遞交易消息的Relayer(Message Relayer)被定義為兩種角色。有些項目中不存在一個專門的Relayer 角色,Relayer 的職能被合併入了其他角色,例如由源鏈的驗證人直接承擔Relayer 的角色。不過,萬變不離其宗,輕節點式側鏈方案的技術本質始終是:Relayer 將源鏈的區塊頭傳輸到目標鏈,建立輕節點,然後Relayer 從源鏈搬運交易信息到目標鏈時,用輕節點上的區塊頭信息驗證交易信息的正確性。
3.3.1 雙向錨定
我們需要理解的是,主鍊和側鏈的關係是相對的,兩條鏈可以互為側鏈。我們在前文中提到的“源鏈”和“目標鏈”也是相對概念,在一個跨鏈消息傳遞事件中,消息的源起方往往被稱為源鏈,消息的接收方則被稱為目標鏈。
跨鏈雙方通過互埋對方輕節點,即可實現互相讀取對方鏈上的信息,互聯互通,這種形態被稱為雙向錨定(Two-Way-Pegging),這種形態下,兩條鏈成為了彼此的側鏈。兩個方向都有Relayer 組負責向對方傳遞信息,當然,兩組Relayer(B→A Relayer & A→B Reayer)也有可能是同一批人,被合併為同一個角色,兼負責雙向的信息傳遞。
3.3.2 側鏈與子鏈
談到側鏈,有必要和另外一個容易混淆的概念做一下辨析,那就是子鏈。子鏈沒有自己的共識機制和原生通證,其安全性完全依託於主鏈,具有單向性。而側鏈本身是一條獨立運行的區塊鏈,側鏈與主鏈的關係,是相對概念,具有雙向性。
以太坊的擴容鏈,有些是側鏈形態,有些則是子鏈形態。採用Plasma 方法和側鏈方法的擴容鍊是以太坊的側鏈(Plasma 側鍊是另一種側鏈形式,不是輕節點式側鏈),而採用狀態通道和Rollup 方法的擴容鏈,則是以太坊的子鏈。
子鏈通過將交易從主鏈挪到子鏈進行,並定期向主鏈同步最終狀態來實現對主鏈性能的擴容,所以,子鏈也被稱為「提交鏈」,提交鏈的叫法比子鏈的叫法更貼近其技術本質。
子鏈的目的是為了擴容,擴容的本質是節省主鏈的資源,因此主鏈不會花費計算資源對子鏈提交的交易進行驗證。子鏈自身需要一個機制在提交時證明其所提交內容的真實性。其中,狀態通道,Optimistic Rollup,Arbitrum Rollup 採用欺詐證明的方式來證明,而Zk Rollup,Validium 則採用零知識證明的方式生成有效性證明。
子鍊和主鏈之間,這種單向的信息提交式互動,在有些文獻中,也被認為是跨鏈技術的一種形態,但Paka Labs 認為,儘管側鍊和子鏈都誕生於對區塊鏈擴容的努力,但子鏈相關的技術只能用於創建擴容鏈,無法應用於兩條獨立區塊鏈之間的跨鏈,不應歸類為跨鏈技術。
3.3.3 輕節點側鏈的優越性
如果說見證人機制重在Trust(信任),那麼輕節點側鏈技術則重在Verify(驗證)! 通過區塊頭驗證交易信息,其可靠性是在密碼學上被保障的,交易是否存在,一驗即知,確定無疑。
Relayers 傳遞的區塊頭也不可能造假,因為輕節點合約可以像全節點一樣,對區塊進行嚴格的驗證,虛假的區塊頭無法通過驗證。輕節點的驗證程序和源鍊網絡中的礦工節點驗證程序是完全相同的,以BTC 為例,需要經過以下步驟驗證:
區塊的數據結構語法上有效;
驗證工作量證明,區塊頭的哈希值小於目標難度(確認包含足夠的工作量證明);
區塊時間戳早於驗證時刻未來兩個小時(允許時間錯誤);
驗證區塊大小在長度限制之內,即看區塊大小是否在設定範圍之內;
第一個交易(且只有第一個)是coinbase 交易,即一個區塊,礦工只能給自己獎勵一次;
驗證區塊內的交易並確保它們的有效性:驗證MerkleRoot 是否是由區塊體中的交易得到的,即重構區塊Merkle 樹得到的樹根,看是否和區塊頭中的hashMerkleRoot 值相等。
惡意的Relayers 如果串通作惡,唯一可行的方法是傳遞一個分叉鏈上的區塊的區塊頭,但對於一個健康的網絡,分叉鏈最終不會成為最長鏈,輕節點合約只需等待足夠多個區塊的確認即可(對於BTC 輕節點,等待6 個區塊即可)。對於BFT 類的鏈,輕節點合約只需驗證區塊的簽名數即可知區塊是否具備最終性。
只有源鍊或者目標鏈的本身出現重組,才會影響到輕節點合約的安全性。 Relayer 能夠給網絡造成的危害最多止於集體罷工,讓網絡停止服務。
此外,Relayer 不負責管理託管資產,惡意的Relayer 無法像惡意的見證人那樣,有盜取託管資產的可能。因跨鏈而鎖定的資產託管在合約中,合約中託管的資產,如果合約代碼沒有問題,其安全性就是合約所在鏈級別的。
由於Relayer 作惡的條件苛刻,且危害性較小,輕節點式側鏈中的Relayer 並不需要像見證人那樣做超額抵押。可以用更小的代價實現更多的跨鏈錨定資產發行。
由此可見,輕節點側鏈方案,在跨鏈的成本上和安全性上,比見證人方案更有優勢,是實現兩條鏈之間跨鏈優先要採用的技術方案。但是有的鏈不支持智能合約,無法部署輕節點合約和託管合約,這種情況,只能退而求其次,採用見證人方案。
3.3.4 輕節點技術的發展:“瘦身”與“減負”
我們知道BTC 的區塊大小為1 M,其區塊頭只有80 byte,直到本文發布的時間,BTC 的歷史區塊頭大小也尚未超過60 M(高度約69 萬),但誕生較晚的以太坊的歷史區塊頭加起來已經超過了5 個G(高度約1300 萬),隨著區塊鏈的多元化發展,部分新興區塊鏈更側重於高TPS,出塊速度極快,其歷史區塊頭的體積將可能很快超過以太坊。
這樣的趨勢,給輕節點式側鏈帶來了挑戰,主要體現在兩方面:
較大的區塊頭,將使得輕節點合約變得笨重,佔用目標鏈的巨大存儲空間;
源鏈較快的出塊速度,將導致輕節點合約需要頻繁的同步和驗證新區塊。
這兩者,都將造成輕節點合約在目標鏈上巨大的Gas 消耗,嚴重時會使得採用輕節點側鏈技術實現跨鏈變得不具備經濟可行性。
怎麼辦?回到見證人方案嗎?但輕節點式側鏈技術的優越性如此誘人,我們還是希望繼續使用它。有沒有辦法讓輕節點合約在不喪失其SPV 驗證能力的前提下,對其進行改造和擴容?
區塊鏈行業的研究者們在兩個方向上對輕節點側鏈技術做了改進。首先是對輕節點合約進行“瘦身”,使其體積變得更小,且不隨區塊增加而線性增長,其次是對輕節點合約進行“減負”,將區塊驗證環節挪到鏈下,讓輕節點合約只做交易的SPV 驗證。
3.3.4.1 輕節點合約的“瘦身”
我們需要了解一個新的協議,名為“FlyClient”,該協議由斯坦福大學的Benedikt Bunz 等人在論文《FlyClient: Super-Light Clients for Cryptocurrencies》中提出的一種新型輕節點協議。 Flyclient 輕節點不需要存儲所有的區塊頭,而是只需存儲最新的區塊頭。通過最新的區塊頭,即可隨時“恢復”所有的歷史區塊頭。該功能是通過一種叫“默克爾山脈”的密碼學算法實現的。
默克爾山脈(Merkle Mountain Range)簡稱MMR,是默克爾樹(Merke Tree)的一種變體,我們將一條區塊鏈的所有歷史區塊的哈希值作為葉子節點,通過MMR 算法,生成一個MMR根值,並將該值寫入最新的區塊頭,即可用該值去驗證所有的歷史區塊頭。
FlyClient 輕節點可以不斷刪除歷史區塊頭,只保留最新的區塊頭,保持“輕盈”。當需要恢復某個區塊頭時,可以通過Relayer 重新從全節點獲取,並用最新區塊頭裡的MMR 根值,去驗證恢復過來的區塊頭是否正確。
如果源鍊是概率最終性鏈,Flyclient 輕節點在接收Relayer 傳遞的最新區塊頭時,會多一個驗證步驟,那就是要求Relayer 隨機提供某個歷史區塊頭,以供抽查。這樣做是為了防止一種針對Flyclient 輕節點的特有的新形式的欺詐。具體的欺詐方式和抽查算法比較複雜,本節先不做展開,在後續的案例介紹章節,將結合具體的跨鏈項目進行介紹。
Flyclient 輕節點真正實現了“把大象壓縮成餅乾”,讓部署在目標鏈的源鏈輕節點合約可以輕裝簡行,讓輕節點側鍊式的跨鏈具有更好的經濟可行性。但對於目前大部分的區塊鏈而言,MMR 根值並不是區塊頭的固定部分,因此,Relayer 必須自己運行全節點,計算MMR 根值,將MMR 值加入區塊頭一併傳遞到輕節點中。一些較新的區塊鏈已經將MMR 根值作為區塊頭的固定部分了,現有的比較成熟的公鏈,也在有人提案軟分叉升級,將MMR 根值加入區塊頭固定結構中。區塊頭中固有MMR 值的區塊鏈,將對跨鏈開發更加友好。
3.3.4.2 輕節點合約的“減負”
正文
二級標題
正文
為了建立更廣泛的跨鍊網絡,我們更多時候,需要連接的不止是兩條鏈,而是很多鏈,如果在每兩條鏈之間建立上述這種雙向楔入,互為側鏈的關係,其連接數和適配成本隨著鏈的數量的增加,將會呈指數級增加,因此中繼的思路被提出來:建立一條中繼鏈,其他所有鏈都與中繼鏈建立連接,就像家裡的終端設備都和路由器連接一樣。如此一來,成本立即從n(n-1)/2 下降到了n(n 為鏈的數量)。

中繼方案是側鏈方案的變體,和側鏈歸為一類技術方案,也是合理的。中繼方案具有很高的擴展性,是當前最被廣泛應用的跨鏈方案,本文為了將中繼方案充分展開闡述,將其單獨列了出來。
有時候,在雙鏈跨鏈模型中,Relayers 會作為一條獨立區塊鏈的驗證者而運行,該獨立鏈被視為一個整體承擔區塊頭搬運和跨鏈消息搬運的職能,Relayers 則在其內部對搬運的信息達成共識。這類獨立區塊鏈往往被稱為橋接鏈,但它不是中繼鏈。例Polygon 的PoS 橋,Near 的PoA 彩虹橋,都只是橋接鏈,不是中繼鏈。
區分兩者的關鍵,在於其跨鏈通信路徑的不同:

可以把橋接鏈理解為只是Relayers 的容器,其職能依舊是搬運區塊頭和跨鏈消息,而中繼鏈則是與各接入鏈都建立互為側鏈關係的消息中轉站。很多文獻並沒有對這兩個概念做嚴格的區分,但這兩者的實質是完全不同的。
3.4.1 連接現有區塊鏈
中繼模式中,往往由中繼鏈的驗證人,負責承擔Relayer 職能,轉發鏈間消息。相比雙向錨定,中繼鏈模式具有更多的擴展性,與中繼鏈相連接的鏈,我們稱為接入鏈。
為了連接既已存在的區塊鏈,需要用中繼鏈去分別適配接入鏈。儘管中繼鏈模式已經大大節約了連接成本,但依舊面臨以下挑戰:
要根據不同的接入鏈的特性,制定不同的適配方案,做主動兼容,工作量較大;
不同的鏈安全性有差異,會涉及到不同接入鏈的跨鏈授信問題,以保護整個跨鍊網絡的安全;
新的區塊鏈層出不窮,如果出現新特性的接入鏈,則需要開發新的適配方案
3.4.2 通信協議簇+ 造鏈協議
與主動兼容相比,有更省事的辦法,是創造一個全新的區塊鏈造鏈標準,依據該標準開發的區塊鏈,具有相同的密碼原語(Cryptographic Primitives)、共識機制和通信架構,可以很輕易的接入中繼鏈,實現被動兼容。跨鏈雙雄Polkdot 和Cosmos 便實踐了這樣的思路,兩者都創建了一套造鏈標準,Polkadot 創造了Substrate,Cosmos 則創造了Cosmos SDK。儘管如此,對於已存在的重要區塊鏈,還是需要主動兼容。 Polkadot 和Cosmos 中都設計了異構跨鏈模塊,用來連接以太坊鍊和BTC 鏈。
二級標題
二級標題
3.5 共享驗證人
同樣作為通信協議簇+造鏈協議的Cosmos 和波卡,都蘊含了中繼的思想,但稍加留意我們便發現,兩者區別十分巨大。
Cosmos 的Hub 和Zone 之間建立的是典型的“雙向錨定”關係,Cosmos 的跨鏈消息傳遞協議IBC,依舊是靠內置在接收鏈上的輕節點合約來對跨鏈消息做SPV 驗證,但波卡的跨鏈消息傳遞協議XCMP 中,並沒有採取輕節點式的技術來驗證跨鏈消息的合法性,而是採用了另外一種方法,Paka Labs 將其提煉出來,稱之為「共享驗證人」,列為跨鏈技術的一個單獨分類。 (關於XCMP 和IBC 的更多辨析,將在後續的舉例章節展開。)
共享驗證人方案是指多個鏈共享同一組驗證人,並由這些共同的驗證人負責驗證跨鏈消息的方案。波卡將區塊的蒐集和驗證解耦為兩個職能,由兩組角色負責,分別是收集者(Collator)和驗證人(Validator),每條平行鏈都有自己的收集者,但平行鏈沒有自己的驗證者,區塊驗證由中繼鏈的驗證者負責。這相當於每條平行鏈都讓渡了共識過程的一部分給中繼鏈。因此,波卡的平行鏈間可以像同一個區塊鏈的不同分區一樣交互,不再需要額外的信任機制。
一級標題
一級標題
4. 跨鏈技術的認識框架
現今活躍的跨鏈項目有近百個,不同的跨鏈橋採用不同的跨鏈技術方案,採用相同類型技術方案的項目對系統角色有著不同的設計,和不同的叫法,有對角色職能進行拆分,創造更多角色的,也有對角色職能進行合併,省略部分角色的,還有些項目綜合使用了多個跨鏈技術,可以說是,眼花繚亂,但如果認識清楚了跨鏈技術的本質,則可以做到去偽存真,透徹理解。為此,我們需要一個理解跨鏈技術的認知框架。
我們可以從跨鏈要解決的難題說起:
4.1 如何保證跨鏈事務的原子性
這個問題指的是,一個完整的跨鏈事務,必須作為一個整體,執行成功,或者執行失敗,不能存在部分成功,部分失敗的情況,否則使用跨鏈功能的用戶將有可能面臨資產損失。有兩個思路可以實現這一點:一種就是通過密碼學手段對一個跨鏈事務中的多個子交易進行耦合,例如基於哈希時間鎖的原子交換方案;還有一種方法是讓跨鏈事務的多個子交易具有嚴格的時序性,時序性包含三層含義:
只有子交易1 完全成功(完全成功意味著交易被打包進區塊,並形成最終確定性),才能進行子交易2 ,以此類推,只有子交易2 完全成功,才能進行子交易3 ;
如果子交易3 失敗,則保留子交易2 的成功狀態,讓用戶可以反復重試子交易3 ;
如果子交易3 始終失敗,用戶可以先後撤回子交易2 和子交易1 。
正文
二級標題
正文
一個區塊鏈系統,對於另外一個區塊鏈系統來說,是封閉的,獨立的,每條鏈都是一個“Walled Garden”,無法直接感知另外一條鏈中的交易及其狀態。一條鏈對於另外一條鏈而言,是一個鏈外系統,因此一條鏈對另外一條鏈的感知,其實是個預言機問題。
二級標題
二級標題
4.3 如何安全的託管留置資產
留置資產託管問題,存在於跨鏈資產傳遞的場景中。如前文所述,跨鏈資產傳遞的本質是,讓資產在源鏈鎖倉留置,並在目標鏈上生成模擬資產。那麼留置資產的託管安全性就是跨鏈安全性的一個重要組成部分。
二級標題
二級標題
4.4 如何進行多鏈適配
側鏈方案進行多鏈適配的解決方案,便是中繼方案,通過中繼鏈,與接入鏈一一建立互為側鏈的關係,比接入鏈之間建立這種關係,其適配成本要低很多。儘管如此,中繼鍊主動兼容多個異構的接入鏈,還是很麻煩,需要分別去適配,不如一勞永逸,自上而下建立一套通信標準和造鏈標準,讓更多的新鏈成為可直接被動兼容的同構鏈。
二級標題
二級標題
4.5 小結
通過上述跨鏈技術概覽5 個分類:
基於哈希時間鎖的原子交換
中繼鏈
中繼鏈
中繼鏈
共享驗證人
跨鏈事務原子性
跨鏈消息驗證
資產託管
多鏈適配
以及跨鏈技術的認識的4 個維度:
我們基本可以準確把握一個跨鏈方案的脈絡,形成框架性認識。在後面的章節中,我們將對目前的典型跨鏈項目,進行舉例介紹及技術分析。


