互操作性的區塊鏈系統設計理念

weixin_34208185發表於2018-11-14

本文為作者對一篇論文 Towards a design philosophy for interoperable blockchain systems 的介紹和評論。有興趣的讀者可以使用超連結檢視論文。

從前因為有了網路和網際網路絡,使得精心管理的計算機群能夠相互通訊。後來,人們將“i”改為大寫字母“I”,將這樣一種設計原則注入 Internet:要使得世界各地的裝置能夠進行互操作。和很多人一樣,我經常思考網路和區塊鏈間、以及網際網路(the Internet)與我們叫做 ‘the Blockchain’(大寫 ‘B’)間的相似性。在今天所選的論文中,Hardjono 等人對該問題進行了深入研究,總結回顧了網際網路設計理念的經驗,並探討了如何建立一個支援互操作性區塊鏈基礎設施。其中一些經驗(方案)已經包含在 MIT Tradecoin 專案中。

我們認為,如果區塊鏈技術想要成為未來全球商業和價值分散式網路的基本組成部分 ,那麼它的體系結構也必須滿足網際網路體系結構相同的基本目標。

網際網路設計理念

本文的這一部分來自 SIGCOMM 1988 “The design philosophy of the DARPA Internet protocols的摘要。DARPA (美國國防高階研究計劃局)當時設想的網際網路三大基本目標為:

  1. 生存性:即使單個網路或閘道器失聯,網際網路通訊必須能夠繼續進行。

  2. 能夠支援多種型別的通訊服務(不同速率、時延和可靠性需求)

  3. 能夠接入和整合多種不同的網路

此外,端到端原則 是確定功能職責分配的核心原則,解決了“到底是由網路來承擔職責,還是由網路端點的應用程式來承擔”的問題。一個經典的例子就是端到端加密,由於需要多方通訊,端到端加密將責任分配到各個網路端點。

網際網路是以自治系統(路由域)集合的形式組織的,通過對等協議連線起來。自治系統(Autonomous Systems, ASs)由合法實體持有並經營。全部路由器及相關裝置在同一域名中具有唯一標識。域名間互操作通過閘道器進行(例如使用 BGP 協議)。

區塊鏈設計理念

我們認為存續性問題與隱私和安全問題一樣重要。因此,如果區塊鏈系統和技術能夠成為未來全球經濟的重要基礎設施,那麼區塊鏈系統間互操作性將是一個核心需求(不管在機器層面還是價值層面)

作者們定義的可互操作的區塊鏈體系結構具有如下特徵:

  • 由可區分的區塊鏈系統組成,每個系統代表一個分散式資料賬本

  • 交易可以跨多個區塊鏈系統執行

  • 一條區塊鏈中記錄的資料,能夠被另一個可能的外部交易以語義相容的方式訪問和驗證

存續性是從應用程式級交易層面定義的:即使區塊鏈網路(The Blockchain)中某些部分受損,交易依舊能夠完成。

應用程式級交易可以由多個賬本級交易(子交易)組成,並且可能涉及多個不同的區塊鏈系統(例如,資產轉移子交易,支付子交易以及稅收子交易)。

(我們是否正在重塑 XA?)(校對注:XA 沒準說的是 X/Open XA,一種分散式事務處理的規範。)

在擴充套件的區塊鏈系統上確認子交易(Sub-transactions)對於使用者應用來說是不透明的,就像在多個路由域上的資料包對於通訊應用是不透明的一樣。

在失敗事件(the event of failure)中,針對存續性及區塊鏈替代的概念提出了許多問題,例如,應用程式對單個區塊鏈系統的功能和設計需要了解到什麼程度、維護可靠性的責任應如何分配(例如,重發交易)。應該怎麼處理智慧合約因所在區塊鏈系統無法被訪問、因而無法呼叫或完成交易的情況?智慧合約能夠在區塊鏈間轉移麼?合約當前所在的區塊鏈資訊是否應該對應用程式不透明(即,給每條區塊鏈一個能夠在整個區塊鏈網路-The Blockchain-中有效的 “IP” 地址)?我們怎麼知道何時會觸發合約的鏈間遷移?

網際網路的目標是支援具有不同需求的多種型別服務;而在區塊鏈網路中,這一目標可被重新解釋為支援具有不同共識演算法、吞吐量以及延時特徵的多種區塊鏈系統。(我們可能還會增加安全性和隱私的特徵)。

當涉及到需要接入多種不同區塊鏈系統時,我們希望能夠支援由不同實體操作(或發起)的跨鏈交易。在網際網路中,

最小假設(minimum assumption)
是每個網路必須能夠將資料包文或資料包作為最小通用單元傳輸。那麼相應的,區塊鏈的最小假設是什麼呢?如何跨鏈引用資料?可以支援哪些匿名(針對使用者和節點)組合?

價值(value)的概念位於區塊鏈交易之上的一層(就像網際網路將資料包的機械傳輸與資料包中包含的資訊的價值分離開一樣)。對於需要跨鏈轉移價值(

value
)的應用程式族來說, InterLedger Protocol 提供了一種可能的方向。

Tradecoin

MIT Tradecoin

專案有許多目標,其中一個核心目標是開發一個可互操作的區塊鏈系統“藍圖”(blueprint)模型,並且應用到多個使用場景中。

從本質上說,具有兩種不同層次的互操作性:機械層互操作性、價值層互操作性(包括在人類世界中認為具有價值的結構)。

“人類、社會、真實價值、法定貨幣、流通性、法律制度及條例有助於將價值(value)與區塊鏈系統中流通的結構(例如,幣,代幣)相連線(繫結)……”
兩種層次檢視遵循端到端原則,即將人類語義的價值(value)置於(外部)機械系統的網路端點。

法定信託(

Legal trust
)是一種將機械層的信託的根本技術與具有法律效力的債務和擔保繫結在一起的合約。

法定信託(Legal trust)是連線機械層與價值層的橋樑。也就是說,技術信託與法定信託讓真實世界的參與者可以量化和管理在機械層發生的交易風險,從而支援(在價值層的)商業信託。實現技術信託的技術標準化促進法律合約(也就是法律信託框架)的標準化,從而降低運營自治系統的總體業務成本。

(不僅如此,它還提供了企業在區塊鏈上交易價值所需的信託)

Tradecoin 專案將單個區塊鏈系統視為完全自治的,並通過閘道器連線它們。閘道器為跨域交易保證價值穩定性,可達性和交易中介。

為了支援可達性,閘道器需要能夠解析識別符號,並且提供類似 NAT 的功能,從而實現內部識別符號與外部識別符號間的轉換。關於交易中介,在 Tradecoin 的設計中,閘道器似乎將扮演交易

協調者(coordinators)
的角色,並以獨立的區塊鏈系統當做
資源管理器
resource managers
)。

由於區塊鏈 BC1 和 BC2 需要授權訪問,從一側不能看到另一側的賬本資訊,每條區塊鏈的閘道器必須 “保證”交易已經在各自的賬本上得到確認。也就是說,閘道器必須釋出具有法律約束力的簽名斷言,並對於錯誤報告負責(有意或無意)。簽名由某一個閘道器發出,或者由區塊鏈系統中所有閘道器集體簽名發出。

為了讓以上流程順利執行,有五個“可取的特徵”:

  1. 交易初始化和接收的應用程式必須能夠獨立驗證交易已經在各自的區塊鏈上被確認。

  2. 無論選用何種閘道器選擇機制,閘道器簽名必須繫結。

  3. 在任意兩條區塊鏈系統間需要有多條可靠“路徑”(閘道器集)。

  4. 識別符號必須具有全域性解釋機制,以便始終可以解釋為正確的授權區塊鏈系統。

  5. 閘道器在域名內或域名間必須是可識別的(即不能匿名)。

    “閘道器必須能夠相互認證,在它們的
    身份
    合法所有權
    或它們唯一代表的 ‘home’ 區塊鏈自治系統方面沒有任何歧義
    。”

閘道器通過對等協議連線在一起:

關於區塊鏈系統互操作性,必須指定類似於對等協議的概念:
(i) 定義兩個區塊鏈間跨域交易的所需的語義相容性;
(ii) 確定具體所需跨域協議;
(iii) 確定所使用的委託和技術信託機制;
(iv) 定義對等服務法律協議(例如,服務等級,交易費,罰款,責任,擔保)。值得注意的是,在 Tradecoin 互操作性模型中,區塊鏈系統的閘道器代表了區塊鏈的對等點(peering-points)。

在沒有與區塊鏈關聯的明確定義的法律實體的情況下,上面的需求(iv)貌似是有問題的。

“互操作性迫使我們重新深度思考,在沒有第三方(例如交易所)的情況下,有許可和無許可的區塊鏈系統如何進行互操作。”

原文連結: https://blog.acolyer.org/2018/05/30/towards-a-design-philosophy-for-interoperable-blockchain-systems/
作者: adriancolyer
翻譯&校對: stormpang & 阿劍
稿源:以太坊愛好者(https://ethfans.org/posts/towards-a-design-philosophy-for-interoperable-blockchain-systems)複製程式碼


相關文章