早春三月,雖然加密貨幣市場仍處於熊市寒冬,區塊鏈行業卻不斷傳出使人振奮的消息:以太坊完成旨在將 Pow 共識機制切換爲 PoS 的君士坦丁堡硬分叉,Cosmos 的主網 Cosmos Hub 正式上線,ArcBlock 區塊基石 ABT Network 和 Forge 開發框架即將於 3 月底發佈,Polkadot 也計劃在將來幾個月內上線,不約而同爲加速區塊鏈技術落地開闢了一條頗具前瞻性的道路:提供開發者友好便利的開發框架,人人都能按需開發本身的區塊鏈;並打破隔閡,讓全部區塊鏈可以連通起來,促進價值無縫流通。算法
和「一條公鏈搞定一切」的思惟分道揚鑣編程
2018 年,衆多公鏈項目沿着以太坊開闢的「世界計算機」方向,聚焦於單條區塊鏈的交易吞吐量和性能的提高進行各類探索設計,一時之間,各類「公鏈」層出不窮,人人企圖爲全世界修建一條大而全的公路來解決各類交通運輸問題,即便是各類鏈上分片、鏈下用側鏈/子鏈/狀態通道等擴容技術的方案,也仍然按照這一思惟作文章。結果性能並未獲得實質性提高,卻誕生愈來愈多技術架構各異、互不連通的公鏈,讓 Dapps 開發者疲於奔命。瀏覽器
做爲專一於 Dapps 開發部署的區塊鏈時代的「雲」平臺,ArcBlock 的設計初衷是從應用開發角度出發,幫助開發者不只擺脫訪問調用不一樣區塊鏈的麻煩負擔,並且儘量下降應用被底層公鏈鎖定的風險——去年 7 月上線的 OCAP(Open Chain Access Protocol,開放鏈訪問協議)即爲 Dapps 訪問比特幣、以太坊等底層公鏈提供了統一易用的中間抽象層,在解決增強區塊鏈互操做性的道路上「吾道不孤」:如何終結愈來愈多的公鏈/許可鏈之間呈現的割據局面,在一座座價值孤島之間搭建起價值互通的橋樑,使鏈與鏈之間能夠互相傳遞訊息、發送交易,從而造成整個區塊鏈的價值互聯網。安全
若是說以太坊公鏈設計比如是全世界只修一條公路,ArcBlock 等提出的是「織鏈爲網」的全新思路:編織區塊鏈的交通網絡,讓各類車輛各行其道、各行其是,既須要免費的公路,也須要收費的高速和私家車道。最重要的是,交通網絡必須有一個綜合平臺來協調指揮,纔能有效利用路網資源發揮最好的綜合性能。網絡
除了 ArcBlock 以外,最近發佈的 Cosmos,即將發佈的號稱實現了 ETH 2.0 願景的 Polkadot,以及在企業聯盟鏈領域耕耘已久的 Hyperledger Farbirc,都是在這個方向上探索前行。 能夠說,從 2019 年的動向來看,關於區塊鏈的將來方向,最終可能造成分道揚鑣的兩大陣營。 數據結構
從「互聯網」到「互聯鏈」的發展趨勢架構
回顧互聯網技術發展史,能夠發現歷史有着驚人的類似之處:早期的計算機網絡是一個個獨立的局域網,而後逐漸互聯成爲更大的通訊網絡。計算機網絡並無孕育出幾個超級通訊網絡服務, 相反,去中心的互聯網協議取得了巨大的成功。咱們有理由相信,區塊鏈也會朝着相似的趨勢發展。 app
在如何實現跨鏈互聯互通方面, 目前的各家技術解決方案也是八仙過海、各顯神通,但基本的設計和目的是相似的。有趣的是,這些不一樣的跨鏈技術自己都體現出對其餘技術的互聯互通性, 理論上它們是互相兼容,能夠鏈接起來的——這與傳統的「公鏈」們各自爲政造成鮮明對比。 框架
以 Tendermint 團隊爲核心團隊開發的跨鏈項目 Cosmos 定義了 IBC(Inter-Blockchain Communication,鏈間通訊)協議,容許使用 Cosmos SDK 開發的相同結構的區塊鏈以及代理鏈(遵照原鏈和 IBC 通訊標準),以 Zone 的形式與 Hub 這一中間樞紐鏈接通訊,實現鏈與鏈的互聯互通,最終造成宇宙星雲式鏈網結構。Polkasdot 出如今 Cosmos 以後可能較多受 Cosmos 啓發,其設計有相似之處。less
Hyperledger Farbric 因爲主要定位是企業聯盟鏈的場景,常常被人忽視,可是 Fabric 的設計思路至關超前,當各家公鏈還在喧囂之時,Hyperledger Fabric 從其「Fabric」這個名字上就體現了其多鏈交錯設計的特點。不過因爲 Fabric 的設計目標是聯盟鏈環境,其多鏈主要體如今其一個應用中採用 Channel 的方式來切分多條鏈的設計,在跨鏈通訊方面沒有重視。
ArcBlock 的 ABT Network 與前述設計不一樣,採用的是首創的三維稀疏矩陣的組網思路,全部的鏈都是平行空間的設計,用 DID(去中心化 ID)和可編程通證(Programmable Token)來巧妙地實現鏈與鏈的互聯和通訊。ABT Network 中鏈和鏈之間的通訊不須要經過任何中間人的「中繼(relay)」或 Hub 進行,更爲去中心化,組網更爲自由。
多鏈互聯設計的另外一個顯著優點是再也不須要去區分「私鏈」、「聯盟鏈」和「公鏈」,沒必要陷入「許可鏈(Permissioned Chain)」和「無許可鏈(Permissionless Chain)」這些無謂的「名詞之爭」。當各條鏈能夠有效互聯,必然有一部分是公共的,有一部分是私有或者聯盟的,必然有須要許可的,有無需許可的,恰現在天的互聯網通常。
不管上述哪種技術,其基本思路都和如今的「一條公鏈搞定一切」的單鏈設計思路有着大相徑庭的世界觀。不管從技術發展的趨勢來看,仍是從「去中心化」程度自己來分析,咱們有理由相信,這種「互聯鏈」的方向是將來去中心化世界的趨勢,也許 2019 年是這一共識造成的分水嶺。
我的自主的去中心化 ID 技術是鏈接 Dapps 的關鍵
當應用被去中心化的區塊鏈拆分紅不少的部分以後,是什麼把這些去中心化的應用部件組織成一個完整的應用來呈現給用戶? 答案就是去中心化的數字用戶ID。
DID,是萬維網聯盟(W3C )今年 1 月制定的用戶自主身份(Self-Sovereign Identity)的數字 ID 技術標準,業界剛剛開始研究開發其在區塊鏈技術架構和應用中的價值與功能:DID 在技術上支持用戶自主身份在互聯網中的實現,奠基了更好的保護用戶隱私、用戶資產安全、保障用戶數據主權等一系列重要基礎, 也是實現去中心化應用的關鍵技術。
目前爲止把其中心化 ID 設計爲關鍵部件的只有 ArcBlock。 ArcBlock 的 DID 設計是從底層開始貫徹始終。將來會有愈來愈多的區塊鏈可能會採用側鏈或者智能合約的方法來實現 DID,可是 ArcBlock 的 DID 則是從最底層支持的,屬於很是完全支持 DID 的方案。Hyperledger 多是出於其企業聯盟鏈的場景,繼承了傳統的企業認證機制,這在企業內部多是可行的,但限制了其跨越組織的應用場景。
值得一提的是 ArcBlock 的平臺把支持 DID 的錢包做爲一個重要基礎部件,加密錢包將不僅是一個數字資產的管理工具, 更是用戶去中心化 ID 的管理利器。
組件化設計,讓」一鍵發鏈「和「萬鏈互聯」成爲現實
授人以魚,不如授人以漁。ArcBlock 和 Cosmos 都將一條區塊鏈的開發由下而上分離出三層:網絡層(底層數據結構和通訊協議設計)、共識層(共識機制設計)和應用層(具體業務邏輯設計),將網絡層和共識層設計封裝爲內核,應用層的通用功能分離成可插拔的模塊,組成 SDK 開發工具,讓開發者可以一鍵發鏈:他們再也不須要設計整條區塊鏈,而只須要實現核心的業務功能。
ArcBlock 提供的開發者發鏈框架是 Forge 框架。如上圖所示,其在系統架構位置上和 Cosmos SDK是一致的,更好的幫助開發者發佈根據本身的需求定製的區塊鏈,並與本身的 Dapps 無縫鏈接:Forge 內核以 RPC(遠程過程調用)的方式調用共識引擎、狀態引擎和存儲引擎,幫助用戶定製的區塊鏈實現共識達成、狀態同步和分佈式存儲,而這三個引擎都可插拔(好比目前 Forge 共識引擎調用的是 Tendermint,將來可插拔切換爲其餘共識算法);FABI(Forge Application Blockchain Interface,Forge 應用區塊連接口)鏈接 Forge 內核與更爲豐富的應用層:DID API、區塊鏈 API 和 OCAP API 幫助安全鏈接其餘用 Forge 打造的鏈以及比特幣、以太坊等爲 OCAP 支持訪問的公鏈。在這之上支撐 Dapps 還有更多開發者能夠直接使用的工具:管理控制檯、命令行工具、區塊瀏覽器,而不僅是框架。
對開發者而言,ArcBlock 的 Forge 開發框架更爲簡單實用,屬於「開箱即用」的設計。Forge框架目標是讓開發區塊鏈如同用 Ruby On Rails 來開發 Web 般的革命和簡單。二者相比,Cosmos在理論上能夠更加靈活,而 ABT Network 和 Forge 框架更加簡單易用。ArcBlock 犧牲了必定靈活性來換取簡單和高性能,Cosmos 是追求充分的靈活性而犧牲簡單性。這種區別屬於設計理念的區別,無所謂高下優劣, ArcBlock 的目標就是要構建對開發者極其友好的區塊鏈應用平臺,所以追求良好開發者和用戶體驗是其最高原則。
織鏈爲網的區塊鏈設計,更有可能搭建對開發者友好的應用開發平臺和生態,能讓區塊鏈更貼近實際應用場景,讓去中心化應用在這樣的基礎土壤中得以萬物生長。