一、大家是怎麼聊跨鏈的
跨鏈不是個新鮮話題,早在2016年9月, vitalik buterin所著的《chain interoperability》就對跨鏈的技術方案和應用價值進行了詳細闡述。其中提到,較為實用的三種跨鏈技術為「公證人機制」、「側鏈/中繼」、「雜湊鎖定」;幾種可能的跨鏈應用場景包括資產交換、原子交易、預言機、資訊互通等。
此後國內外討論跨鏈的各類話題,大多繞不開這三種跨鏈技術,正如同早期大家討論區塊鏈時,都在討論共識機制一樣。但其實,共識機制的先進性只是區塊鏈平臺設計的維度之一,譬如安全性、易用性、可擴充套件性等其他維度,也是區塊鏈平臺設計的考慮重點。再者,區塊鏈的效能也不單純依賴共識機制,全流程處理機制、非同步化、並行性以及其他編碼、壓縮、傳輸機制等,均對區塊鏈效能有所影響。
好比共識機制之於區塊鏈,前面所提三種技術對於跨鏈而言,只是保證跨鏈訪問安全可信的一種機制。機制固然重要,但站在應用落地的角度看,如何設計合理的跨鏈架構、如何設計簡便的適配協議、如何提供易用的跨連結口、如何保證可信的跨鏈治理等等問題,都是跨鏈設計所應考慮的。
因此,本文不再贅述跨鏈三種技術的解析,而嘗試從跨鏈的技術必要性分析切入,挖掘出跨鏈的基本訴求,進而思考跨鏈的設計理念,以及跨鏈整體解決方案的設計。
二、跨鏈是必不可少的催化劑
本文從聯盟鏈角度分析。當下,聯盟鏈底層平臺的數量已經雙手都數不過來,這些平臺或多或少存在獨有的特性,且各自落地了多領域應用。這些基於同構平臺(通常為同一個底層平臺),或基於異構平臺(通常為不同廠商的底層平臺)構建的應用之間,要實現互聯互通,就會面臨一些技術上的挑戰。 然而,區塊鏈作為構建和傳遞信任的機器,是基礎設施層面的技術,而基礎設施就如同網路協議、儲存協議一樣,最終都將走向趨同的標準化方向。因而,聯盟鏈當前狀態是發展中的一個過渡狀態,不是最終穩定態。 隨著技術進一步發展,聯盟鏈底層平臺在基本功能、協議、介面、資料、安全機制等多方面會日漸趨同,朝標準化方向演進,但在增強功能、內部架構、效能以及技術選型等方面,仍然會呈現異彩紛呈的形態。這也符合“合久必分、分久必合”的規律,只有走向基本同構,才能進一步釋放聯盟鏈的活力,進一步推動聯盟鏈應用的發展。
在“所有的鏈會基本同構”那一天到來之前,當下最明智的策略莫過於要求同存異,尋找最優設計,推動標準化程序,儘早實現基本同構目標。 講到這裡,可能你會問,既然聯盟鏈本身發展將走向基本同構,為何還需要研究跨鏈呢?這其中,跨鏈是聯盟鏈走向基本同構的動力源泉和技術支撐,是這個過程必不可少的催化劑。
首先,聯盟鏈之所以會走向基本同構,本質上不是技術驅動,而是業務驅動。隨著應用落地數量增多,一家機構可能要面對多個底層平臺,機構與機構之間要面對更多底層平臺。
作為業務方,這些機構肯定希望低成本、便捷地接入不同底層平臺,聯通應用孤島,此時,這些機構將面臨以下幾種情形:
同一種底層平臺,同一種應用,不同鏈如何互通
同一種底層平臺,不同的應用,不同鏈如何互通
不同的底層平臺,同一種應用,不同鏈如何互通
不同的底層平臺,不同的應用,不同鏈如何互通
上述問題均需要透過跨鏈來解決,而底層異構給跨鏈帶來的效能和安全等技術挑戰,將會迫使聯盟鏈技術進行迭代升級,走向標準化。 其次,聯盟鏈走向基本同構的過程中,需要跨鏈作為技術支撐。為滿足一段時間內基本異構情況下的聯盟鏈應用互通,跨鏈方案將會先於底層平臺進行介面、協議、資料結構、基本功能的抽象整合,而這些工作將反哺各底層平臺,支撐聯盟鏈走向基本同構。 舉個例子,為了做跨鏈交易的合法性證明,需要有類似spv的機制,包括merkle、mpt、avl等,可能就會促使底層平臺去支援這個功能。再比如,跨鏈為了統一訪問區塊鏈資源的方式,對訪問協議設計相關規範,可能也會激發底層平臺去調整協議,從而更好地與其他鏈互通。
三、跨鏈的核心是降低擴充套件成本
跨鏈作為聯盟鏈發展過程中必不可少的催化劑,要解決“不同鏈如何互通”的問題,本質上是要解決“聯盟鏈擴充套件”的問題。關於區塊鏈擴充套件的方案,主要有以下三種不同方向:
跨鏈是scale out的重要技術支撐,scale out依賴跨鏈才有辦法進行。
scale out提供可平行擴充套件、無限擴容的可能,是必不可少的擴充套件方案,事實證明,已經有越來越多的平臺支援多鏈、多通道、多群組等方式進行scale out擴充套件。但是,要進行這種平行擴充套件,尤其是涉及多種平臺多種鏈交錯互動的時候,這裡就給業務方帶來巨大的擴充套件成本,包括部署建設、管理管控、安全保障、信任傳遞等。
跨鏈的核心就是要降低擴充套件成本,要從東西和南北兩個方向提供低成本、快速便捷的解決方案。南北方向因部署方式、介面協議、業務模式等不同,需要給出簡化的接入和管理方案,東西方向因底層架構、安全機制、資料結構等不同,需要封裝安全可信的互通方案。
四、跨鏈方案設計需融入三個理念
圍繞降低擴充套件成本的核心訴求,跨鏈技術要在東西和南北兩個方向提供簡化的、封裝的解決方案,在跨鏈方案的設計和落地中,需融入以下三個理念:
通用化設計,提煉共識的基本同構點
先讓程式碼跑起來,快速適配主流平臺
建立開源開放的社羣文化,讓協議儘早傳播開來
在通用化設計方面,跨鏈方案要承擔起“催化劑”的作用,提煉廣泛共識的基本同構需求點,在架構、協議、資源等方面進行抽象提煉。
例如,在ieee c/bdl目前公佈的幾個跨鏈相關提案中,p3203有關資源命名和定址方式,p3204有關跨鏈交易證明的模型、互動協議,p3205涉及跨鏈訪問協議以及資料認證等,這些都是在廣泛共識的需求點上進行提煉設計。 “粗略的共識,可執行的程式碼”——這句話是tcp/ip協議工作組的座右銘,也非常適合跨鏈設計。先讓程式碼跑起來,能夠快速適配各種主流平臺,滿足跨鏈業務協作的需求,在發展中實踐,在實踐中發展,這一點很關鍵。 更重要的是,跨鏈本身涉及多條鏈,已經不是某一個平臺,或者某一個機構的事兒,其方案的建設離不開眾多平臺建設方、使用方、愛好者的參與。因而,建立一個開源開放的跨鏈協作社羣就非常重要,所謂“萬人操弓,用射一招,招無不中”,透過社羣的群智群策,可以讓協議儘早傳播開來。
節選自李忠輝的《跨鏈,怎麼跨》