無幣區塊鏈代表未來?淺談聯盟鏈以及對 Hyperledger、 Corda、FISCO BCOS 的比較

最近流行一個說法是幣圈涼了,無幣區塊鏈代表未來。一直以來對區塊鏈技術有幾種看法:

  1. 只有比特幣,沒有區塊鏈。區塊鏈只是為了實現比特幣而採用的一種不得已而為之的技術,沒有什麼先進性,也沒有通用性。除了比特幣,全是山寨幣,全是騙子,更遑論無幣區塊鏈。

  2. 比特幣是區塊鏈技術的一個特殊案例,區塊鏈技術可以用到更廣闊的場景,騙人的都是發幣的,搞無幣區塊鏈的不是騙子。

  3. 上面兩種人都是騙子,區塊鏈都是騙子。

鑑於第三種看法前一段時間因為一篇文章廣泛流傳,個人作為一個區塊鏈技術人員,覺得應該寫點什麼。一直想寫一個系列,但年初的時候區塊鏈鼓吹者甚多,作為一個技術人,完全插不上嘴。最近熊市,冷清了許多,決定寫一寫。前一次從賬本技術演進的角度寫了區塊鏈技術的演進《區塊鏈的技術世界觀》,這次說說無幣區塊鏈 — 聯盟鏈。

公鏈,聯盟鏈,私鏈的劃分

業界對區塊鏈的劃分一般從兩個角度,一個角度按需要達成的共識範圍,分為公鏈(public),聯盟鏈(consortium),私鏈(private),另外一個角度是從賬本生產者加入的方式,分為無許可鏈(permissionless),許可鏈(permissioned),私鏈(private)。

這裡要談的聯盟鏈對應的就是 consortium 和 permissioned。

但 permissionless 和 permissioned 之間的界線實際上並沒有那樣清晰。比如關於 EOS 的爭論。有人認為這樣的超級節點數有限的鏈,就是一種超級節點之間的聯盟鏈。permissionless 就必須是出塊節點無限,純粹的 Peer to Peer 網絡,理論上任何一個節點加入後可單憑自己的意願和力量就可成為出塊節點。反對者則認為,EOS 沒有準入限制,任何人都可以競選超級節點,是否能競選上就取決於用戶投票,permissionless 關注的是可能性,調動物力資源(算力)和調動社區力量,都是需要成本的,本質上一樣。這就引出了一個關鍵問題,如何理解 permissionless 和 permissioned ?誰來許可?

所以為了避免爭議,我自己提出一種劃分方式,可通過鏈是否可以『自舉』,來進行劃分。自舉包括經濟和治理兩個方面。

  • 經濟

    鏈本身的運行成本分攤以及激勵分配是如何進行的?是否在鏈上進行?

  • 治理如果准入機制或者分配機制上需要協商,協商結果是否在鏈上可執行?

如果上面兩個問題回答為是,則可認為這個鏈是一個自舉的鏈。然後我們從這個角度來看看現在的聯盟鏈。

先有聯盟還是先有鏈?

我們假設一個聯盟鏈的啟動場景,有幾個市場主體,決定要成立個聯盟,啟動一個鏈來共享數據。於是協商好各聯盟成員在聯盟中角色,投票權重,准入機制,承擔的責任,利益分配等等,這些機制,要麼落實為合同,要麼再成立個合資公司,落實為公司股權以及章程。然後找一個聯盟鏈的技術供應商,購買聯盟鏈系統,啟動聯盟鏈。

而另外一種啟動方式是,把聯盟本身的成立,組織,准入,責任利益分配等治理機制都通過鏈來進行,將線下的合同,轉換為鏈上的共識代碼邏輯,它本身就變成了一種可『自舉』的鏈,聯盟本身是由鏈組織起來的,這和前面說的公鏈實際上沒有了本質的區別了。

這也是當前聯盟鏈當前兩條路徑的主要差異,一派認為應該先有聯盟,鏈只是一個工具,提供方把自己定義成一種區塊鏈軟件系統提供方,關注當前現實的可行性以及合規性。另一派認為先有鏈,聯盟是鏈上的產物,更像是鏈服務提供方,更關注未來的可能性。

當然,後面這套機制如果試圖通過程序表達出來,並且達到最後的可執行效果,複雜度超過可能當前所有公鏈的治理機制,並且也一定程度依賴法律的變革,所以當前的聯盟鏈服務商都採取了一種簡化策略。

  1. 去除掉公鏈內部的經濟系統。公鏈的經濟系統本身是為了激勵和懲罰參與者而設計的,沒有了經濟系統,本質上是把利益分配機制轉移到鏈下的傳統方式。

  2. 暫不引入鏈上的治理機制,通過提供配置參數以及可拔插的組裝能力,以適應不同聯盟的需求,簡化複雜度。

去除了上面兩個難點,很大程度上降低了鏈的實現複雜度,聯盟鏈現在焦距的方向主要是鏈的吞吐,開發者的支持,業務場景的適配。

聯盟鏈的應用場景在哪裡?

區塊鏈造出了幣,造出了融資平臺,造出了交易所,也該到造應用,將區塊鏈應用到更多行業和場景裡去的時候了。當前新的公鏈和聯盟鏈其實都是這個趨勢下的產物,主要都在探索應用場景。

談論區塊鏈的時候,很多人的第一個問題就是它到底能用在哪呢。這個問題其實可以拆解成兩個問題,它未來有什麼用,和它當前有什麼用。很多質疑區塊鏈的人混淆了這兩個問題,你談論未來的時候,他拿現狀質疑,你談論現狀的時候,他拿未來嘲諷。

第一個問題其實就是,假設區塊鏈的網絡已經建立起來,網絡效應發揮出來之後的可能性。談論可能性的時候,容易放飛自己,聽著就像忽悠,所以這裡先從背景和趨勢進行演繹。

區塊鏈要解決問題的大背景是信息互聯網在各行各業的進一步深化,也就是常說的互聯網+,或者互聯網進入 B 端,從以前連接消費者(C 端)轉變到連接企業(B 端)或者連接組織(包括 G 端,政府)。

但C 端直接面向的是人,以信息展示為主,商業模式主要依賴吸引終端用戶的注意力。而要連接 B 端,依賴的是企業間系統互通,以信息和價值互換為主。給人的信息展示對數據格式化以及標準化要求並不高,但如果是系統間的交互,則對數據格式,流程,協議有嚴格要求,如何讓不同企業的內部系統遵循同樣的數據,流程,協議,然後連接成一個網絡,形成網絡效應?

一個方向是沿用互聯網模式,讓 B 端都接入到一個互聯網平臺上,然後再通過平臺內部連接。但如何吸引 B 端呢?一種嘗試是通過 C 端的流量來吸引 B 端,比如電商以及外賣平臺等都是這個思路。但這種連接比較淺,依然沿用的是互聯網流量入口的模式,並沒有實現 B to B 的連接。另外一種嘗試是 SaaS 服務,將企業內部應用互聯網化,如果服務普及到一定程度,就可能實現企業與企業之間的連接。但你可以設想全中國的人都用微信來聊天,但能構想一個在線企業服務,比如財務系統,全中國的企業都用嗎?

還有一種方向是行業標準或者行業聯盟提供的平臺。比如金融領域的 FIX(Financial Information eXchange,金融信息交換協議) ,或者銀聯這樣的組織提供的結算平臺。但標準以及協議只能定義通信格式,很難定義業務邏輯,更難實現統一的數據處理邏輯,而銀聯這種行業聯盟平臺構建的成本太高,不可能適用到所有行業。

而區塊鏈展示出的一個藍圖是,數據的校驗,處理流程,乃至組織的治理都可以通過代碼定義,各參與方遵循同一套規則,這套規則是活的運行中的代碼,而不是死的文檔中的規範,是一種更高級的行業協議聯盟,是 Software Defined X 趨勢在行業內的延續,比如 SDF(軟件定義金融,Software Defined Finance)。

比如拿比特幣來舉例,把比特幣網絡理解成一個清算網絡,各交易所是接入這個清算網絡的企業。以前企業間需要數據互通,只能互相談判對接接口,系統接口還必須保持兼容。而有了比特幣這套網絡後,只要遵循比特幣規則接入到網絡中,即可和全球其他任意企業進行價值互通,用戶的比特幣即可在不同交易所之間流動。

把上面的交易所,替換成任何一個 B 端系統。比如企業財務系統,企業間的對賬直接通過網絡進行,內部賬單保存在本地,再配合政府的電子發票,基本就實現了記賬對賬審計一整套體系,政府審計查賬那就太容易了,跑一個程序就搞定。這也是為什麼政府支持區塊鏈的原因。

單從行業來說,金融領域是最關注區塊鏈的。如果說互聯網給金融帶來的壓力只是入口之爭,而區塊鏈帶來的壓力則是根本性的。所以金融機構對區塊鏈有一種矛盾的心態,一方面想積極擁抱,聯盟鏈基本上都有金融背景,另外一方面又有排斥,畢竟定義貨幣,債券,股票以及數字資產是金融機構的生存之本。但區塊鏈帶給金融的不僅是挑戰,更多的是契機,比如全球化。

再比如溯源防偽,供應鏈方面的場景。看到過很多批評溯源的文章,核心在糾結一點:真實世界到信息世界的映射的過程如何防作弊。如果糾結這點,基本上區塊鏈就只能用於像比特幣這樣純信息世界的場景,數字資產從誕生到流通,一直在數字世界。但實際上,人類的大多數資產以及信息,都不是直接在信息世界產生的,也無法直接在信息世界驗證。正如我在一篇《公鏈的關鍵競爭點在哪裡?》的文章中所述,溯源最後正真的價值並不只是用來防偽,只是當前這個階段防偽只是一個容易體現價值的點。溯源最後實際上是在定義數字資產。每個商品,如果把它從生產運輸銷售中的所有環節的追蹤到了,實際上就是定義了這個商品的數字標誌,把它 Token 化了。這個過程會涉及整個產業鏈的每個環節,以及其中的金融機制,重構商業體系,肯定不僅僅是一個信息採集和共享的事情。

關於未來這裡不進一步暢想,這方面有很多書籍文章,我們再談談下一個問題,現狀。

聯盟鏈的困境

區塊鏈當前遇到的困境其實和互聯網應用初期遇到的困難類似。區塊鏈和互聯網應用都有網絡效應,它所繪製的藍圖需要在網絡構建完成後才能體現出來,初期個體的採用並不能享受到網絡帶來的好處,那初期用戶有什麼動力來採用區塊鏈呢?如果說公鏈還可以依賴自己的經濟體系做早期激勵,互聯網應用可以利用各種營銷手段,對 to B 的無幣聯盟鏈來說,這個問題尤其困難。B 端用戶的決策週期長,採用成本高,尤其區塊鏈的應用架構和傳統應用差異巨大。

所以當前的聯盟鏈創業者初期肯定是需要在路徑上摸索和尋求突破,比如我這裡可以列舉幾個可能的途徑:

  1. 以開發的便利性作為突破。區塊鏈的智能合約模型,提供了一種更優雅的應用開發模式,平臺完全接管應用的輸入輸出以及運行環境,開發者可以更專心於業務邏輯。這個和 Docker,Kubernetes,ServiceMesh,Serverless 的演進是一個體系的。也和朋友聊過通過更輕量的沙箱 VM 替代 Docker 的想法,有空再仔細寫一下這方面的思路。

  2. 以安全和容災作為突破。區塊鏈的架構完全符合異地多活的架構要求,並且可以做的更可靠優雅(可參看《區塊鏈的技術世界觀》中的相關段落分析)。

  3. 以內部監管作為突破。可適用於很多複雜體系的企業,比如總公司和分公司使用不同的系統。

  4. 以構建公信力作為突破。利用區塊鏈的幾個特性:1. 用戶對自己數據的控制能力。2. 聯盟成員互相制約。3. 數據的公示與監督。可以幫助創業者以更快的速度構建公信力,而在之前,基本上公信力只能靠時間來構建(比如保險行業,用戶選擇保險的時候很關注的一點就是保險公司持續的時間)。

  5. 以跨系統的信息互通和結算作為突破。在區塊鏈之前,跨系統的信息互通和結算基本靠遠程調用,很難保證一致性,所以必須有獨立的對賬清算機制,而通過區塊鏈的共識算法,可實現交易即清算,提高效率。這種方式相當於實現一種基於區塊鏈的異步消息機制的遠程方法調用,而不用侵入已有業務。

前三種,偏向於前面說的第一派聯盟鏈的思路,企業先內部獨立用起來,突然有一天發現可以用同一套系統和外部對接。後兩種偏向於第二派思路,先構建出網絡優勢,再說服企業加入。如果你有其他的想法,也可以留言探討。

看看現在的聯盟鏈

這裡為了照顧到非技術讀者,所以本文不詳述這幾種聯盟鏈的技術細節區別。只是從它們解決問題的思路方面進行分析。

Hyperledger Fabric

Hyperledger 實際上把自己定位成模塊化區塊鏈平臺,包括共識機制等都是可替換的。

在聯盟鏈場景下,它簡化了計算證明的要求,允許用戶以任意語言開發應用,並部署到 Docker 中運行,被稱為 chaincode,相當於託管到鏈上的應用。開發者不需要懂太多區塊鏈知識,只需要知道它接管了應用的輸入,並通過提供 SDK 的方式,接管了應用輸出即可。甚至可以理解成一個微服務框架,不過擁有區塊鏈的共識能力,很容易實現多節點數據同步。

R3 Corda

Corda 的思路比較特別,它內部甚至不是一個區塊的鏈式結構,只維護了交易的鏈式結構。它認為只需要交易雙方達成共識即可,不需要維護全局賬本,所以設計了一種公證人(notary)的機制,由公證人見證交易,只有必要的時候才啟動共識協議。

它提供了一套 Flow 機制,方便定義需要多方參與的流轉式交易。它的合約就是 Java 或者 Kotlin 代碼,不過都是無狀態的,只負責校驗,不保存狀態,同時還內置了許多金融合約的實現,應用打包後就是一個 farJar 包,叫做 CorDapp,可直接託管給平臺,相當於一種平臺插件。

金鍊盟 FISCO BCOS

FISCO BCOS(以下簡稱“BCOS”)是基於以太坊改造的聯盟鏈。將以太坊的共識機制改造為 PBFT 或者 RAFT,並提供系統合約來實現節點管理,系統配置等能力。它的合約以及交易,主要繼承自以太坊,不過廢棄了以太坊的 Ether,所有資產都通過合約實現。

BCOS 提供了一種鏈下網絡上互通消息的能力,節點之間可以先通過消息來通信,實現一些協議,只有必要時再上鍊。它對以太坊的改進點主要關注在性能和安全層面。性能層面比如對 Global Trie 的改造,通過多鏈並行解決熱點賬號問題等。安全層面的改進主要是增強密碼方面的支持以及脫敏隔離,因為以太坊是一個全局賬本,不支持局部共識機制,必須通過其他手段來保護數據。

可以看出,當前的聯盟鏈的關注點還主要在性能,開發支持,應用場景。業界也對聯盟鏈如何和公鏈的融合以及實現『自舉』有探討,比如前一段時間討論的公眾聯盟鏈(參看文末鏈接),不過技術層面的融合機制還在探索階段。聯盟鏈可以利用公鏈的安全來進行數據公正以及裁決,實現聯盟鏈本身的自證清白,以達到更高的公信力,最終實現更好的融合,這個其實就是區塊鏈 layer2 的方案了。我們留到下一篇文章中分析。

一些應用案例

一直也在琢磨區塊鏈的案例。正好前一段時間金鍊盟舉行了一個大賽,看到一些參賽案例。具體的代碼和實現沒看到,所以只是從腦洞和當前落地的可行性方向分析下。

政務類相當於 to G 的場景。這個領域實際上可做的事情非常多,比如最簡單的信息公開。當前大多數政府信息公開還是原始的網頁或者辦公文檔,並沒有格式化的信息,第三方很難再次加工利用。如果通過區塊鏈方式開放格式化的標準信息,則更有價值。比如大賽中出現的不動產登記、智慧城市服務、信用共享等應用場景的案例。這個領域的實施難度不在技術,關鍵在如何驅動。就比如,最簡單的,工商登記部門提供一套證書機制,企業註冊時生成數字證書,證書效力和公章一樣,這樣所有的數字合同場景都可以用得上,這個甚至都不需要用區塊鏈就能實現。

司法類比如做存證固證平臺的,如果做好了,完全可以簡化從公安,到檢察院,再到法院的整個辦案的證據提交和轉移流程。實際上是政府部門間協作的流程的標準化以及軟件化。

教育類比如學歷鏈上登記等。本質上其實就是把學歷證明數字化。當然這個沒區塊鏈也能實現,但如何讓所有的學校都加入到這個系統形成網絡呢?還是迴歸到了前面的問題。另外有一個項目挺有意思,圖書漂流系統。相當於把圖書 Token 化,把圖書館變成了流動的。以前是圖書必須先還給圖書館,別人才能借,而現在讀者間即可互相轉借,Token 的轉移代表圖書的轉移。如果配合押金以及懲罰機制,這個可以完全做成一種開放式的公益圖書平臺。

其他的金融以及供應鏈類的案例,就更多了。這方面社區裡也談論的比較多,這裡就不細說了。

開放式問題

聯盟鏈當前還有一些開放式問題,暫時沒有答案,等待探索。

聯盟鏈上應用和鏈的關係應該如何劃分?是鏈直接託管應用,還是應用在鏈外?那具體哪一部分應該在鏈外呢?是否可提供整體方案?

聯盟應該橫向連接還是縱向連接?橫向是行業內聯盟,縱向是產業鏈聯盟,關注點不一樣,解決方案也不一樣。異或有統一的方案?

聯盟鏈如何連接最終用戶?最終用戶在聯盟鏈處於什麼角色?對自己的數據有控制權嗎?當前的聯盟鏈方案多關注聯盟成員之間的數據互通,實際上只有將最終用戶也納入進來,才能形成完整的生態。

總結

本文試圖通過聯盟鏈來分析區塊鏈的應用場景。我個人支持任何類型的區塊鏈落地探索,無論是私鏈,聯盟鏈還是公鏈。無幣聯盟鏈相當於改革派,期望在當前的金融框架內進行技術改革。而有幣公鏈相當於革命派,試圖重造一套金融體系。但實際上二者是互相依存的,如果沒有公鏈的壓力,改革也很難推動,而如果沒有聯盟鏈的改革,未來也很難實現區塊鏈網絡的融合以及價值的互通。

相關鏈接

  • 區塊鏈的技術世界觀

  • 微眾銀行副行長馬智濤首提“公眾聯盟鏈”暢想

  • Hyperledger 核心開發者陳昌談聯盟鏈和公有鏈混合架構如何實現?

  • 金鍊盟中國區塊鏈應用大賽30強揭曉,即將角逐兩百萬獎金有問文中所提的項目列表

  • 題圖來源 https://unsplash.com/photos/-lp8sTmF9HA


分享到:


相關文章: