記者 |Aholiab
編輯 |Carol
封圖 |CSDN下載自視覺中國
隨著新基建概念的提出,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的建設過程中對HyperledgerFabric, FISCO BCOS,XuperChain有過比較深入的學習和研究。
對於入門區塊鏈的開發者,我推薦先從技術社羣廣泛的蒐集區塊鏈的基礎知識資源並進行大量泛讀。然後再選擇一個區塊鏈框架進行深入學習和研究。要熟悉一個框架,可以從框架的官方文件資料入手,理解基礎名詞和概念,根據這些補充自己缺少的知識點。進而透過精度細讀掌握框架的整體架構和執行機制,比如:安全控制、密碼演算法、交流處理流程、同步機制、共識機制、區塊資料結構、狀態資料庫和智慧合約語言等等。在此基礎上,結合自己的專案實踐,由問題驅動進一步的去學習和研究框架的實現程式碼。對於區塊鏈應用開發者,精通相關框架的智慧合約語言、合約SDK、合約開發模式、合約部署機制、框架cli SDK等都是必須的。