記者| Aholiab
編輯| Carol

隨著新基建概念的提出,5G、大數據、工業物聯網、區塊鍊等技術將發揮不可或缺的作用。其中區塊鏈作為信任機制的紐帶,正在憑藉其不可篡改、信息透明等特性,為新基建賦能。

2019年,由於國家信息中心牽頭,會同中國移動、中國銀聯等單位合併發起了區塊鏈服務網絡(Block-chain-based Service Network,以下簡稱BSN),旨在建立一個低成本開發、部署、運維、互通和監管聯盟鏈應用的公共基礎設施網絡。

經過一年多的發展,BSN於今年4月25日正式進入商用階段。那麼作為「國家隊」牽頭,眾巨頭合作開發的區塊鏈服務網絡究竟有哪些亮點?其背後的設計理念和技術又是怎樣的?

不久前,我們採訪了BSN首席架構師、紅棗科技CTO馬曉軍,聽他揭秘了BSN背後的技術理念。


馬曉軍:現任北京紅棗科技有限公司CTO和區塊鏈服務網絡BSN首席架構師,曾在浪潮和大展核心部門承擔主力研發工作。具備十餘年系統開發、技術架構設計和項目管理經驗。作為資深架構師,參與過二代貨發發行庫、智慧城市五源計劃、區塊鏈服務網絡BSN等相關項目。

  

BSN底層架構“揭秘”  

CSDN: 請介紹下BSN項目建立的初衷、經過及近況。

馬曉軍:最初起因很簡單也很直接,五源計劃項目的繳費鏈應用在部署時我們調研了國內的幾家BaaS提供商,三個節點的生產環境每年的運行成本幾乎都在十萬以上。這對一個初期投入運營並發交易數低於10TPS的應用產品來說太貴了。傳統BaaS平台雖然降低了區塊鏈應用部署、運維的技術門檻,但也在一定程度挾持用戶部署需求,不利於區塊鏈技術大範圍的使用和普及。我們希望能找到並提供一個低成本部署的解決方案讓大量的中小微企業、甚至學生在內的個人可以使用區塊鏈技術進行創新、創業,從而促進區塊鏈技術的快速發展和普及。

BSN已經集成了Hyperledger Fabric 和FISCO BCOS,正在做Fabric國密、百度XuperChain的集成,還有後續CITA等多個框架的集成。 BSN國際網公測版本已經發布,我們會陸續在國際官網和國際節點上適配支持以太坊、EOS等一些公鏈,為DApp開發者提供高性能、高可用的公鏈節點接入服務。

CSDN:在您看來區塊鏈平台的底層架構設計與其他平台有哪些不同?這些不同在BSN平台上如何體現?

馬曉軍:首先是理念的不同,BSN的核心理念是建立一個資源共享使用的區塊鏈公共基礎環境,提供整合了多種雲資源、底層框架、運行環境、密鑰管理、開發SDK和網關API的一站式區塊鏈部署和運行服務。開發者可以以極低的成本在服務網絡上便捷地部署和運行區塊鍊和分佈式賬本應用。不論底層是否異構,服務網絡上所有的應用鏈均可以進行數據交互,這樣帶來的是類似互聯網上快速搭建網站並高效互聯互通的優質體驗。

從底層架構來講,BSN採用更細顆粒度的多應用共享運算資源的方式,來降低區塊鏈應用服務運行的成本。簡單地說,在BSN上多個開發者部署的不同區塊鏈應用可以部署運行在同一台主機的區塊鏈節點上,相當於共享同一台服務器。而大部分的BaaS平台多是通過分配獨立主機資源服務器資源來部署應用服務,忽略了應用服務的實際計算資源需求造成資源浪費也提高了客戶的部署成本。從表現形式上來說,在能夠滿足應用服務性能要求的情況下,在BSN上部署應用服務的成本會更低。就像在一台電腦運行10個應用和10個應用必須分別運行在10台電腦相比,前者的成本肯定是低的。


BSN架構圖

BSN是基於互聯網來搭建連接不同雲服務和IDC的區塊鏈公共運行環境,其他平台多是基於雲服務商的雲服務的內部局域網絡來組建區塊鏈運行環境。

從底層框架的角度,目前大部分的BaaS平台一般都會有選擇的集成一個兩個開源或自家的區塊鏈框架,而且搭建的區塊鏈運行環境是獨立運行的。服務網絡的核心理念之一是支持盡量多的區塊鏈底層框架。目前區塊鏈技術還處在早期階段,我們希望能夠通過服務網絡為所有底層框架建立一個良性發展和公平競爭的環境,促進底層框架方持續推動區塊鏈底層技術發展,不斷提升服務品質。所有適配到服務網絡的框架並不是簡單地堆砌在一起,而是根據《區塊鏈服務網絡底層框架適配標準》,在密鑰算法、CA管理、應用鏈管理、智能合約管理、交易接入等方面進行統一。

再有一個不同是多門戶,也就是BSN賦能平台的這部分。一般來說,其他的區塊鏈平台是封閉的,僅銷售平臺本身的資源,也不會將BaaS能力輸出給第三方。 BSN提供這種服務—通過BSN賦能平台把區塊鏈應用服務的發布能力開放給第三方,讓第三方門戶能夠使用BSN的部署資源向其用戶提供區塊鏈應用部署和運行服務能力。

特別是面向有開發者資源的門戶,以CSDN為例,作為中國專業的IT技術社區聚集了大量的技術開發者。如果CSDN集成了BSN賦能平台,開發者就可以直接在CSDN平台內選擇BSN的城市節點資源部署區塊鏈應用,這些應用部署信息通過賦能平台傳給BSN的運維繫統並由其調度各個城市節點的節點管理服務完成服務部署工作。對於CSDN平台方來說,實際上是向CSDN的用戶輸出了區塊鏈的部署能力,實現類似於BSN門戶的功能。

CSDN:作為BSN的首席架構師,BSN架構的設計遵循了哪些原則?

馬曉軍:在架構和實現上主要遵循以下幾個設計原則:

  • 簡單易用,實現自動化配置、部署區塊鏈應用服務,管理維護記賬節點,提供區塊鏈全生命週期管理;
  • 安全可靠,以加密技術為基礎,實現完善的用戶身份認證、CA管理、應用權限管理、數據安全管理和隔離機制;
  • 成熟先進,區塊鏈服務網絡採用多領域的成熟技術搭建,從分析企業應用的典型用例出發,來設計系統功能特性和基礎能力服務,確保服務網絡提供的基礎功能服務具備普適性,適應廣泛的企業需求;
  • 模塊化設計,採用模塊化設計,將節點資源管理、底層框架適配、應用鏈管理、節點網關、CA管理、權限管理、運維管理與監控等功能模塊分開設計實現,通過定義清晰的模塊接口服務實現模塊間的松耦合,以獲得整個系統良好的可擴展性。
  • 合作開放,任何云服務商、底層框架商和門戶商在符合服務網絡協議標準的前提下,均可以自由選擇加入或退出服務網絡。

CSDN:在架構的搭建中遇到過哪些技術挑戰?

馬曉軍:前面提到的BSN基於運算資源共享承載多個應用服務,這種模式下的對基於不同區塊鏈框架的應用服務的運算和網絡資源使用進行準確的計費計價技術實現是一個難題。從商業邏輯上很容易理解,多個應用跑在一台機器上,肯定比一台機器跑一個應用要便宜。

但是這20個應用跑在一台機器上,要很準確地度量每個應用的費用就比較難做到。拿流量計費來說,傳統的BaaS平台的應用服務與主機是一對一部署,通過對主機的流量統計即可準確的計費,但在BSN上往往是不同發布方的多個應用服務部署在同一個主機上運行的一個底層框架的服務實例中,這就需要我們能夠針對不同框架的不同應用通過底層框架節點通訊數據報文以及網絡傳輸的數據包才能比較準確為應用流量進行統計和計費。而對主機的CPU和內存計算資源的準確計費和定價則更加複雜。

BSN的多框架適配需要我們投入大量的資源和精力去深入研究各類不同的區塊鏈框架的運行機制,並結合BSN的商業模式來定制與底層框架的適配。

異構的節點服務商資源設施的部署兼容、規模龐大的公共城市節點滾動更新部署和跨多家電信運營商間的互聯網通信延遲等也都是服務網絡運維和運營過程中面臨的難題和挑戰。  


國家隊卡司,如何打造超級區塊鏈服務網絡?

CSDN:BSN涉及到國家部委和多家企業共同參與,它們之間的分工是怎樣的?

馬曉軍:紅棗科技主要是在做BSN的底層框架適配、城市節點運行管理、城市節點網關相關係統的設計和開發工作。中國銀聯電子支付研究院負責BSN的基礎能力服務的設計和建設工作。中國移動設計院負責BSN城市節點入網管理系統、BSN城市節點組網規劃和網絡安全設計和建設工作。各個底層框架開發方,如微眾銀行、百度、海南鏈火、溪塔科技等負責底層框架適配的定制開發工作。  

CSDN:BSN在異構區塊鏈間的跨鏈機制是怎樣的?

馬曉軍: BSN在與邊界智能合作研究將其IRITA框架集成到BSN,以支撐開發者的應用鏈之間的跨鏈訪問與互操作。其次,開發者的鏈下業務系統通過BSN的城市節點網關,在獲得應用發布者的接入授權的情況下同時訪問和操作多個區塊鏈應用鏈,可以實現基於鏈下中繼的鏈間數據互通。

CSDN:BSN的安全機制/加密算法機制是怎樣的?

馬曉軍:當開發者在任何BSN 門戶內發布一個應用鏈時,有兩種應用接入密鑰模式可供選擇:「密鑰託管模式」或「上傳公鑰模式」。密鑰託管模式是用戶委託服務網絡生成密鑰,由用戶在BSN門戶內下載後使用。上傳公鑰模式是由應用鏈用戶在本地生成密鑰,再將公鑰通過BSN門戶上傳,然後使用私鑰進行交易簽名連接城市節點網關,完成應用的接入鑑權。

密鑰託管模式比較方便,但上傳公鑰模式更自主化,具體使用哪種模式完全由開發者自行選擇設定。對已經發布的應用鏈,開發者在設置用戶交易密鑰時,可以為整個應用鏈設置一個統一的密鑰,供所有接入用戶使用,也可以為每個用戶設置單獨的用戶交易密鑰。密鑰設置的模式也分為密鑰託管模式和上傳公鑰模式。與應用接入密鑰不同的是,城市節點網關提供了用戶交易密鑰的管理接口,不需要開發者和用戶在BSN門戶內另行設置。

此外,開發者在發布應用鏈的智能合約時,可以將智能合約內的方法自由組合成各類角色,每個角色擁有調用一個或多個方法的權限,例如:有些角色可以寫入數據,有些角色只能查詢數據。當用戶加入應用鏈時,可以被分配一個或多個角色。這些角色和對應的權限信息存在於權限鏈內。當用戶的業務系統通過網關接入該應用鏈時,只能執行所分配角色允許執行的功能和數據權限。

開發者可以在智能合約的編寫上進一步控制交易和數據處理。即使兩個用戶擁有同一個角色的權限,也可以在智能合約代碼層面定義這兩個用戶可以查詢和執行不同的數據交易操作。

以上幾種機制在應用鏈數據安全方面形成服務網絡的完整體系,既保證了數據的絕對安全,又讓開發者有足夠的空間根據業務需求設計自己應用鏈的安全機制。

 

BSN與區塊鏈應用

CSDN:目前BSN上有哪些讓你印象深刻的應用?

馬曉軍:從內測到目前的商用,BSN內已部署了幾百個區塊鏈應用,其中如1call居民公共積分管理、公共數據安全共享服務、智慧消毒監管平台、政務融合鏈、電子合同管理、政務存證、商品溯源等區塊鏈應用,覆蓋了不同的行業。

BSN的發起方基於BSN核心技術,推出了針對行業專用網絡的BSN區塊鏈專網。區塊鏈專網基於政務、金融、電力等專用網絡環境搭建,建成包括底層區塊鏈基礎設施網絡、配套的管理平台、運維平台和應用門戶等在內的區塊鏈基礎環境平台,同時匯聚了各類行業專業公司的公共健康管理、數字存證、公共安全證據監管、民事登記、政務信息互通互信等政務民生區塊鏈應用產品,為地方政府的智慧城市建設和傳統業務系統區塊鏈改造賦能。  

CSDN:未來1-2年,區塊鏈應用會向哪些方面發展?

馬曉軍:個人認為區塊鏈技術在跨境支付、信用證、支付清算等金融領域和選舉投票、福利彩票、公益慈善公共事業領域或許會最先成熟並發揮巨大應用價值。區塊鏈可以在技術上解決選舉投票、福利彩票、公益慈善過程中的透明和公開問題,避免結果被外界人力干擾,保證結果的公正。

CSDN:你的區塊鏈技術成長之路是怎樣的?

馬曉軍:我是從比特幣、以太坊開始了解區塊鏈的基礎知識、技術架構和運行機制。在BSN的建設過程中對Hyperledger Fabric, FISCO BCOS,XuperChain有過比較深入的學習和研究。

對於入門區塊鏈的開發者,我推薦先從技術社區廣泛的蒐集區塊鏈的基礎知識資源並進行大量泛讀。然後再選擇一個區塊鏈框架進行深入學習和研究。要熟悉一個框架,可以從框架的官方文檔資料入手,理解基礎名詞和概念,根據這些補充自己缺少的知識點。進而通過精度細讀掌握框架的整體架構和運行機制,比如:安全控制、密碼算法、交流處理流程、同步機制、共識機制、區塊數據結構、狀態數據庫和智能合約語言等等。在此基礎上,結合自己的項目實踐,由問題驅動進一步的去學習和研究框架的實現代碼。對於區塊鏈應用開發者,精通相關框架的智能合約語言、合約SDK、合約開發模式、合約部署機制、框架cli SDK等都是必須的。