起“底”聯盟鏈:FISCO BCOS 與 Fabric之較
在國家政策的鼓勵下,區塊鏈技術的研發與推廣正在不斷升溫,技術、標準、平臺、框架都在持續發展,這其中,既有來自國外的佈道者,也有源自國內的探索者。做為區塊鏈三大部署形態之一的聯盟鏈,因其與現實場景的高度契合性,正在出現越來越多的落地例項。
為便於廣大開發者、區塊鏈愛好者瞭解聯盟鏈中較為常見的兩個開源設計,本文擬對Linux基金會的Hyperledger Fabric(以下簡稱Fabic)”和金鍊盟的“FISCO BCOS”進行簡單的比較,權供大家參考。
一、理念:設計背景與發展路徑的區別
Fabric誕生略早於FISCO BCOS。IBM較早意識到了區塊鏈技術中可能蘊含的商機,投入較大力量進行相關研究,並於2015年將其設計的44000餘行原始碼奉獻給了Linux基金會的Hyperledger專案,再融合了R3的一些設計思路後誕生了Fabric。
Fabric最初即被定義為跨行業應用,因此,它注重的是構建基於區塊鏈技術的通用框架。而FISCO BCOS最初的定位是設計為自主可控的、適用於金融行業的開源區塊鏈底層平臺。雖然FISCO BCOS出身自帶“人設”,但隨著平臺的發展,FISCO BCOS也逐漸支援了更多金融領域以外的場景,是從“一專”到“多能”的發展路線。
FISCO BCOS誕生於2017年,由金鍊盟推出,是標準的國產底層。金鍊盟是由深圳市金融科技協會、深圳前海微眾銀行、深證通等二十餘家金融機構和科技企業於2016年5月31日共同發起成立的非營利性組織。
目前,Hyperledger的會員大約為140餘個,包括金融業、製造業、科技業等,也說明了其跨行業性,成員中大約1/4來自中國。
而金鍊盟成員超過100個機構,覆蓋銀行、基金、證券、保險、地方股權交易所、科技公司、學術機構等多個行業,成員幾乎全部來自中國。因此,在設計監管介面時,FSICO BCOS更適合中國企業。
二、應用:帶給開發者不同的設計思路
Fabric做為一個通用設計框架,給出了比較完整的設計思路。其應用模型為MVC-B模式,MVC是軟體設計中“模型-檢視-控制器”設計模式,B即為區塊鏈邏輯,包括鏈碼(即智慧合約)和交易,其含義即為以鏈碼強化控制器,以交易強化模型,這是將區塊鏈融入原有軟體設計方式的指導。架構方面,Fabric給出的是成員管理服務、區塊鏈服務、鏈碼服務三大組成部分。可見,Fabric定義了一個基於區塊鏈技術重新構建軟體系統的架構方式,其用區塊鏈徹底改變原有行業的良苦用心清晰可見。初次接觸Fabric設計的人往往會試圖用其建立起整個業務系統,筆者自己嘗試過的業務設計也會順著這種思路走,但是在實現中,通常會回到區塊鏈系統與原業務系統結合的方式上。
FISCO BCOS架構中很實用的一個設計是“AMOP”協議,AMOP協議在金融機構之間的業務來往中可以提供靈活的互操作性,可以結合區塊鏈來實現複雜的交易場景。比如:A機構和B機構之間進行某種商品交易的價格協商或者份額撮合,其間需要往復多次協商,最終雙方商定結果後,再按此結果發起鏈上交易,寫入賬本並達成確認,此前的協商則不在賬本中記錄,通過AMOP實現加密的點對點通訊。FSICO BCOS給出的架構設計參考為“A機構業務系統-A機構前置-區塊鏈網路中A機構節點-區塊鏈網路中B機構節點-B機構前置- B機構業務系統”,這可以明顯看出兩個業務系統即區塊鏈系統、原業務系統之間的分工協作,也就是說FISCO BCOS的應用方式更多是希望參與區塊鏈的各方將需要做公共實現的部分放在區塊鏈上,而與原有的業務系統“和諧相處”。這其實與其最初定位於金融行業有關,金融行業普遍資訊化程度較高,原有業務系統比較複雜,差異也大,輕易不會接受較大外來改造,因此,這種做“公約數”和“聯結器”的思路更容易實現和推廣。
業內普遍對區塊鏈應用寄予較大希望的兩種模式為:構建新的大型生態和改造現有的大型生態,而實現過程中,由於客觀因素的限制,二者目前都沒有出現突破。實際應用中,開發者可能還是要把握循序漸進的原則,從把區塊鏈與現有系統結合做起,從改良到改變。
三、跨鏈:關於通道和多鏈的比較
Fabric中一項比較特殊的設計就是通道。通道是Orderers提供的服務,每個通道相當於一個訊息訂閱主題,加入該通道的節點間可以共享資訊,而未加入通道的節點則無法共享資訊,這為多參與方的設計中如何進行必要的資訊隔離提供了方法。Fabric中每個通道都相當於一個鏈,一個通道一套賬本,自然,跨通道就相當於跨鏈。但是Fabric的“多鏈”並不完善,因為它不支援跨鏈路由、跨鏈事務,只能跨鏈讀取,更像是在一個單鏈上做的邏輯分割。實際開發中,通道通常被用於區分不同的業務,或者在複雜、冗長的業務流中區分不同的階段,跨鏈機制的建立,只能通過同一個節點加入不同的通道來實現。
FISCO BCOS是明確的多鏈設計,並且其設計指導中也建議按照業務分開不同的鏈,還可以為了擴容再按照機構數量進行分組,這種多鏈設計理論上可以無限擴大。採用多鏈之後,其節點操作、跨鏈操作都是基於網路地址,通過路由規則實現的,可以執行跨鏈讀寫。設計上建議同一個區塊鏈網路裡的多個分組在業務邏輯和配置儘可能高度一致,在商業規則、運營管理上都使用統一策略。
目前多鏈設計還有一家,就是迅雷鏈,也是“同構多鏈”模式。多鏈模式通常效率會高於單鏈模式,這也是採取多鏈設計的原因之一,實測中,FISCO BCOS的吞吐量高於Fabric。
效能和跨鏈一直是區塊鏈技術中的熱點話題。Fabric和FISCO BCOS都在這方面做出了積極的嘗試,但是也都存在各自的問題,Fabric是跨鏈複雜且能力有限,而FISCO BCOS雖然解決了能力問題,但是分組機制也增加了業務設計的複雜性。
四、社群:成熟度比較
做為開源專案,社群建設對專案未來的發展非常重要,活躍的社群可以帶來新的思維和廣泛的需求,擴寬使用者的視野,保障專案的健康成長。
IBM是一家世界500強的跨國企業,擁有豐富的諮詢經驗,加上Fabric有眾多的國內外專案,因此,建立起了國際化的開源社群,有眾多優秀的自願者參加社群工作,社群經常討論要做的修改和發展問題,也經常在各地舉辦Meetup。
FISCO BCOS面世時間不久,社群建設也正在大力開展中,目前其社群已經有近千名成員和近百家企業,同時也以技術沙龍的形式舉辦了多次線下交流活動。
FISCO BCOS在未來的社群建設中,可以多考慮與監管機構、目標使用者的互動,發揮自身優勢,多舉辦一些領域專場而非簡單的推廣,開展時間持續、參與廣泛、合作性質的專項話題,比如FISCO BCOS在供應鏈中的應用等,不侷限於Meetup、沙龍形式,而應當多考慮些不受地域限制的互動形式。國際化方面,應該響應“一帶一路”政策,跟隨使用者走,隨著使用者延伸,這樣既有利於自身發展,也能幫助使用者實現其業務目標。
五、不得不說一下國產底層的優勢
做為一個後發的國產開源專案,FISCO BCOS還是在總結前人經驗的基礎上進行了很多有益的、符合國內環境的改良:
(一)AMOP協議。又提到這個協議是因為其在解決多次協商場景方面確實有幫助,筆者在嘗試用Fabric設計金融機構的同業交易市場業務模型時就遇到過這個問題。
(二)國密支援。這個優點相信做過Fabric的都有感受,因為在Fabric中進行國密替換不是件容易事,而國內,尤其是金融行業在這方面有強烈需求。
(三)支援多種CA。未來在電子合同、金融交易等方面,都需要有第三方CA的支援,能夠支援多種CA對於確保區塊鏈交易的法律地位是非常必要的。
除此之外,合約命名服務(CNS)、區塊鏈資料倉庫等也提供了一些為應用考慮的便利設計。
總結
Fabric做為先行者,已經在聯盟鏈方面具有了世界範圍的領先優勢,其架構比較成熟,也有數百個各類案例,其中包括馬士基、沃爾瑪等國際知名企業和海爾、郵儲、中信等一眾國內使用者。
FISCO BCOS做為後發者,利用自身優勢,從金融行業出發走向跨領域應用,做了很多符合國內需要的獨特設計。今年2月份廣州仲裁委基於在FISCO BCOS上執行的“仲裁鏈”出具了業內首個裁決書,這是個有一定社會價值的案例。隨著FISCO BCOS推廣力度的上升,相信會逐步有更多的落地案例出現,為各行業的開發者提供應用指導。
近期舉辦的「 金鍊盟中國區塊鏈應用大賽 」,就是基於FISCO BCOS開發應用,提供資金、資源、技術輔導、投資人、媒體等支援和對接幫助,有興趣的夥伴可以到大賽官網瞭解一下 https://con.geekbang.org/