華為雲區塊鏈服務的分層架構設計有利於幫助企業快速簡單的落地區塊鏈場景,具體架構圖如下圖:
3. 區塊鏈服務 BCS 平臺功能特性
區塊鏈服務平臺是華為雲區塊鏈服務的主體,包括區塊鏈服務管理平臺和區塊鏈底層技術兩部分。
區塊鏈服務管理平臺
為企業提供快速建立、部署區塊鏈應用、鏈程式碼管理和監控等全系統區塊鏈服務。具體如下:
透過設計以下模組來實現區塊鏈系統全生命週期管理:
· 區塊鏈服務運營模組
− 區塊鏈服務配置
BCS 提供的區塊鏈配置頁面簡單易用,僅需配置幾個引數如:區塊鏈服務名稱、部署區塊鏈服務的 Kubernetes 叢集名稱,彈性檔名稱、共識演算法型別、節點引數等即可完成區塊鏈服務部署。
− 區塊鏈服務部署
配置完區塊鏈服務引數後,租戶點選確認按鈕,一鍵完成區塊鏈服務部署工作,PaaS 平臺將根據使用者配置的區塊鏈服務引數和內建最佳實踐透過 Kubernetes 將區塊鏈的各個節點以 Docker 容器執行方式自動部署到指定叢集中,相對於自建區塊鏈系統,透過 BCS 只需要五分鐘就可以部署一個完整的企業級區塊鏈系統
− 區塊鏈服務狀態監控
透過區塊鏈服務列表可以檢視到區塊鏈服務裡節點的型別、數量和狀態。方便管理員實時瞭解個區塊鏈服務的狀況。
− 區塊鏈服務節點管理
管理員可以根據業務需求和負載,按需購買資源,在執行時動態彈性調整 Peer 節點和 Orderer 節點的數目,可以有效降低企業的初始和執行成本,同時當節點出現故障時,系統對故障節點進行自動恢復,保障區塊鏈應用的可靠性。
· 區塊鏈服務智慧合約管理
智慧合約也稱鏈程式碼(Chaincode),鏈程式碼將業務網路交易封裝在程式碼中,最終在一個 Docker 容器內執行。租戶可以在華為軟體開發服務或者線下進行開發和測試。目前華為雲區塊鏈服務支援 Golang 語言編寫程式碼,後續會推出 Java 等多語言支援,租戶可以選擇擅長的語言編寫鏈程式碼。
a. 智慧合約安裝和例項化
鏈程式碼首先需上傳安裝在 Peer 節點上,然後在通道上進行例項化,例項化的過程需要參與方進行共識,智慧合約例項化過程將被記錄到區塊鏈中,例項化後,鏈程式碼將在 Docker 容器中執行。
所有通道成員都需要在執行此鏈程式碼的每個 Peer 節點上安裝鏈程式碼,且只需在一個 Peer 節點上進行鏈程式碼例項化。如需使用相同的鏈程式碼,通道成員必須在鏈程式碼安裝期間為鏈程式碼提供相同的名稱和版本。
b. 智慧合約觸發
智慧合約例項化後,可以透過外部條件來觸發合約執行的過程,支援定時觸發、事件觸發、交易觸發和其他合約觸發的方式。定時觸發是指滿足合約中預設的時間之後,節點就觸發時間達成共識之後,自動觸發合約呼叫的過程。事件、交易和其他合約呼叫都是在一次新的請求共識過程中觸發合約執行。
c. 智慧合約更改和清理
等合約條款需要變更時需參與方對新的合約共同簽署後執行合約升級,或者對過期作廢或者業務需求變更不再需要的合約進行轉存和清理,升級和清理的過程需要多節點共識之後才能完成。
運維監控
為了租戶能夠快速準確地識別系統的執行狀態以及在執行中滿足其他的運維需求(如程式升級等),華為區塊鏈服務提供了完整、快捷、視覺化的運維監控系統,包括監控、告警等功能。
· 監控
負責收集系統中執行的狀態資料,並且視覺化的呈現出來。系統中的狀態資料包括系統的訪問量、耗時、節點的健康狀態以及比較底層的機器資源(CPU、記憶體、硬碟)使用狀況等,透過視覺化監控可以實時瞭解整個區塊鏈系統的狀態。
· 告警
對系統中比較嚴重的情況如欺詐節點、賬本篡改、機器故障等情況透過郵件等方式通知到相關人員,以便及時處理。
區塊鏈底層技術
· 共識演算法
共識機制按照共識的過程分兩類,第一類是概率一致的共識、工程學上最終確認;第二類是絕對一致之後再共識,共識即確認。華為雲區塊鏈服務定位為面向企業提供區塊鏈服務因此採用第二類的共識機制,BCS 提供多種安全、高效共識演算法,使用者可以根據不同的使用場景以及安全和效能等不同需求選擇合適的共識演算法:
− SOLO 模式:只需要一個共識節點,簡單、快速,建議在開發測試環節使用。
− 基於 Kafka/Zookeeper 高速共識演算法:總節點數沒有特定要求,能容忍半數以下節點發生故障。
− FBFT 快速拜占庭容錯演算法:使用 3f+1 個節點,能容忍最多 1/3 拜占庭錯誤節點。
詳細對比見下圖(f:fault):
· 共享賬本
包括區塊賬本、狀態賬本和歷史賬本三種賬本:
− 區塊賬本:記錄智慧合約的交易記錄,儲存在檔案中。
− 狀態賬本:儲存智慧合約資料的最新狀態,儲存在 KV(Key-Value)資料庫中。
− 歷史賬本:儲存所有智慧合約執行交易的歷史記錄索引,儲存在 KV 資料庫中。
· 持久儲存
華為區塊鏈服務將共享賬本存在華為雲彈性檔案服務(Scalable File Service),SFS為使用者的彈性雲伺服器(ECS)提供一個完全託管的共享檔案儲存環境,符合標準檔案協議(NFS),能夠彈性伸縮至 PB 規模,具備可擴充套件的效能,為海量資料、高頻寬型應用提供有力支援。
· P2P 網路
網路中的節點之間透過 Gossip 協議來進行狀態同步和資料分發。Gossip 協議是 P2P領域的常見協議,用於進行網路內多個節點之間的資料分發或資訊交換。其設計簡單,容易實現,同時容錯性較高。
· 智慧合約引擎
執行在隔離安全 Docker 容器中,華為區塊鏈服務實時監控智慧合約在執行時是否存在高危函式呼叫和容器逃逸行為,預防惡意智慧合約對區塊鏈系統的威脅。
· 區塊鏈安全隱私
華為雲區塊鏈服務高度重視區塊鏈安全和隱私,除了華為雲安全和 Hyperledger 自有安全措施外,BCS 還支援如下安全和隱私措施:
− 支援國密演算法和企業使用者簽名策略多樣性:支援 SM2/SM3/SM4,使用基於硬體的可信計算環境保護秘鑰安全性,效果較同樣支援國密演算法的同類產品有較大提升;
− 加法同態加密:保護交易資料的隱私。
− 零知識證明:保護交易參與方的隱私。
− 為每個租戶提供完整的 CA 證書管理體系,確保使用者透過 PKI 證書體系保障交易身份認證、資料傳輸安全和交易內容隱私保護等需求。
· 介面適配
目前支援業務應用透過 Fabric 原生 SDK 呼叫智慧合約,後續為了方便使用者快速接入區塊鏈系統,將提供 SQL API 和 Restful API 的方式接入,使用者可以在 SDK、SQL API和 Restful API 之間選擇適合的方式呼叫智慧合約接入區塊鏈系統。
4. 區塊鏈服務 BCS 系統安全保障
聯盟鏈相對於公有鏈一個非常重要的特點就是節點准入控制與國家安全標準支援,確保認證准入、制定監管規則符合監管要求,在可信安全的基礎上提高交易速度才是有價值的。華為雲區塊鏈服務在雲安全的基礎上為區塊鏈服務提供高安全環境。主要透過以下幾個方面來提供安全保障:
· 安全可信的雲平臺:安全合規與標準遵從
20+全球權威認證,並持續增加滿足全球不同區域與行業合規需求,主要包括中國公安部資訊保安等級保護三級,可信雲,金牌運維,CSA STAR 金牌認證,CSA CSTAR和 PCI-DSS 等。確保雲平臺安全合規和標準遵從。
· 身份認證和訪問控制
對公有云租戶中的區塊鏈服務使用者,租戶的訪問控制能力是透過統一身份認證服務(IAM –Identity and Access Management)提供的。IAM 是面向企業租戶的安全管理服務。透過 IAM,租戶可以集中管理使用者、安全憑證(例如訪問金鑰),以及控制使用者管理許可權和使用者可訪問的雲資源許可權。使用 IAM,租戶管理員可以管理使用者賬號(比如員工、系統或應用程式),並且可以控制這些使用者賬號對租戶名下資源具有的操作許可權。
當租戶企業存在多使用者協同操作資源時,使用 IAM 可以避免與其他使用者共享賬號金鑰,按需為使用者分配最小許可權,也可以透過設定登入驗證策略、密碼策略、訪問控制列表來確保使用者賬戶的安全,從而降低租戶的企業資訊保安風險。
· 區塊鏈服務租戶資料隔離
華為雲對雲端資料的隔離是透過虛擬私有云(VPC – Virtual Private Cloud)實施,它將不同租戶間的網路深度隔離,保證了不同租戶間的資料不會被越權獲取。透過VPC,租戶可以完全掌控自己的虛擬網路,實現不同租戶間在二、三層網路的完全隔離:一方面,結合 VPN 或雲專線,將 VPC 與租戶內網的傳統資料中心互聯,實現租戶應用和資料從租戶內網向雲上的平滑遷移;另一方面,利用 VPC 的安全組功能,按需配置安全與訪問規則,滿足租戶更細粒度的網路隔離。在華為雲區塊鏈服務中區塊鏈聯盟成員獨立為單獨的一個租戶,每個租戶單獨執行在一個 VPC 中,利用華為雲 VPC 資料隔離機制來保障每個聯盟成員的資料隔離和許可權隔離,從而滿足區塊鏈系統的多中心化,多方參與,多方共識和不可篡改等獨立、安全原則。
· 區塊鏈服務賬本儲存安全
華為雲區塊鏈服務將租戶的賬本儲存的雲彈性檔案儲存系統中在確保彈性擴充套件的基礎上透過一系列的安全措施保障賬本的安全。
− 金鑰保護與管理
雲彈性檔案儲存系統對接金鑰管理服務 KMS(Key Management Service),KMS是一種安全、可靠、簡單易用的金鑰託管服務,幫助使用者集中管理金鑰,保護金鑰安全,它透過使用硬體安全模組 HSM(Hardware Security Module),為租戶建立和管理金鑰,防止金鑰明文暴漏在 HSM 之外,從而防止金鑰洩露,保護金鑰安全。KMS 對金鑰的所有操作都會進行訪問控制及日誌跟蹤,提供所有金鑰的使用記錄,滿足審計和合規性要求。
− 資料機密性保證
使用者主金鑰 CMK(Customer Master Key)由 KMS 生成、管理和銷燬。華為雲提供整卷加密功能。
− 可靠性保證
三副本備份,資料永續性高達 99.99995%。透過 VBS(Volume BackupService) 實現雲硬碟的備份與恢復,且支援透過彈性檔案系統備份建立新的彈性檔案系統。
− 資料刪除與銷燬
華為雲致力於保護租戶資料在刪除過程中及刪除後不至洩露,包括記憶體刪除,資料安全(軟)刪除,磁碟資料刪除,加密資料防洩漏和物理磁碟報廢等。
· 華為雲全棧防護體系
以上幾種安全措施是華為雲安全為區塊鏈服務提供的最重要安全措施,華為雲還為區塊鏈平臺提供全棧防護體系包括不限於:網路安全,DDOS 攻擊防護,應用安全(WAF 等,安全掃描),虛擬機器安全,容器安全,資料安全和運營安全等等。透過華為雲全棧防護體系可以確保使用者的區塊鏈系統免受各種安全威脅。
5. 區塊鏈服務 BCS 的技術特色和優勢
在安全、可靠和高效能的華為雲平臺的基礎上,根據“簡單易用、成熟可靠、雲鏈結合”等設計原則設計出來華為雲區塊鏈服務獨特的架構,能為企業和開發者提供企業級區塊鏈服務,具備以下幾個方面的技術特色和優勢:
高價效比
· 一站式開發、測試
透過華為軟體開發服務可以快速開發、測試和部署區塊鏈業務應用和智慧合約程式碼,為使用者簡化 CI/CD 流程,降低使用者開發和整合成本。DevCloud 是集華為研發實踐、前沿研發理念、先進研發工具為一體的研發雲平臺;面向開發者提供研發工具服務,讓軟體開發簡單高效。
· 一鍵上鍊
讓企業和開發者最快 5 分鐘完成企業級商用區塊鏈服務的部署和執行,相對自建區塊鏈能節省 80%的開發和部署成本。
· 按需付費
使用者可以根據需求對使用的資源進行動態調整,根據需要付費,能減少 60%的初始成本和執行使用成本。
· 全程運維和監控管理
BCS 和華為雲平臺,為區塊鏈客戶提供全系列的系統狀態、效能和交易情況的監控,運維,報警能力,能為使用者降低運維成本。
高效能
· 高效接入
華為雲具備電信的高速網路通訊能力,和高併發、快速接入的能力,能最大可能的滿足使用者對區塊鏈高效接入的需求。
· 高效能共識
BCS 為使用者提供多種高效共識演算法(SOLO,基於 Kafka 的 CFT 故障錯誤容忍,FBFT),FBFT 是對拜占庭容錯共識演算法進行深度最佳化,在安全和效率達到最佳平衡點。使用者可以在 2000+TPS 和 10000+TPS 共識演算法上根據業務需求和場景進行選擇。
· 秒級共識
使用者可以根據業務需求將交易速度設定到到秒級甚至更低,滿足業務效能需求
· 高效的儲存速度
BCS 將區塊鏈賬本儲存到華為雲高效彈性儲存檔案中,能最大程度滿足使用者海量快速儲存需求,根據市場需求逐步推出區塊資料儲存到關係型資料庫的能力,從不同角度滿足使用者對儲存速度的要求。
高安全
區塊鏈業務存在以下安全需求:
· 聯盟鏈的特點:節點、賬本的可控制,滿足監管和准入需求。
· 透過分散式賬本實現不可篡改的加密交易資料。
· 交易可追溯不可抵賴。
· 隱私保護:交易匿名,交易不可關聯。
· 可監管和審計。
華為 BCS 透過三種途徑保護區塊鏈安全:
· 使用華為雲安全保護區塊鏈系統可靠執行。
· 基於 Hyperledger 的安全體系透過證書管理,鏈式資料結構等手段實現不可篡改、隱私保護的能力。
· BCS 在此基礎上對高安全要求使用者提供更進一步的安全隱私保護,如透過硬體保護金鑰,同態加密和零知識證明等。
高可用
· 高可用架構
BCS 執行在高可用華為雲上以及基於 Kubernetes 和 Docker 構建,具備快速拉起,節點和成員彈性伸縮能力以及節點故障自動恢復能力,從架構根本上保障區塊鏈系統的高可用能力
· 高可用的接入和儲存方式
提供原生 SDK、SQL-API 和 Restful API 三種智慧合約呼叫方式,使用者可以根據不同業務需求和使用習慣選擇可用的接入方式。區塊鏈賬本使用雲彈性儲存系統進行儲存,具備安全、彈性擴充、海量儲存和自動備份的能力,實現儲存的高可用。同時為區塊提供檔案儲存和關係型資料庫儲存兩種可選方式,使用者也可以透過關係型資料庫的高可用性來保障區塊的穩定和可用。
· 提供全球部署和多種部署方式
華為雲區塊鏈服務將逐步實現在華為雲不同管理域和全球合作雲上部署的能力,逐步具備區塊鏈全球部署能力,最大程度實現區塊鏈的多中心化的能力,保障區塊鏈系統的安全和高可用。華為雲區塊鏈服務實現聯盟鏈和私有鏈的部署方式,能滿足不同企業和使用者對區塊鏈系統的部署要求。
華為對區塊鏈的整體構想
華為區塊鏈的整體構想是:聚焦典型應用領域,以區塊鏈平臺為核心,聯合網路和可信硬體執行環境(終端+晶片),形成三位一體的端到端區塊鏈框架,實現軟體+硬體結合,提供更快、更安全的區塊鏈端到端解決方案。
可信硬體執行環境:加強硬體能力,軟硬結合,大幅提升區塊鏈的安全性和效能
安全和效能是制約區塊鏈網路發展的兩個關鍵技術因素,所有的區塊鏈都是在這兩者之間尋求平衡。目前的技術主要是在共識演算法和共識機制等軟體層面進行提升,而未來透過可信硬體環境提供晶片層級的區塊鏈安全和效能加速,是業界考慮的一個重要方向。
我們願與各方產業夥伴一起,構建安全高效的區塊鏈網路。
網路:網路要納入到區塊鏈中,成為區塊鏈中重要一環
面對區塊鏈未來發展,網路面臨兩個問題:
· 隨著 hyperledger 等技術的改進,區塊鏈的應用領域已經發生改變,支援的節點數也在不斷增加。在當前 P2P 架構網路下小量節點的互聯沒有問題,但面對未來區塊鏈的節點數的激增,對於上百節點的區塊鏈,P2P 大面積的傳送廣播報文,將會對網路頻寬產生極大的浪費。
· 區塊鏈早期的設計是去中心化,以降低集中核心故障或存在資料不可信的影響。而隨著聯盟鏈的普遍使用,當初的去中心正在向多中心的方向進行發展,區塊鏈僅解決分散式部署下,資料中心的賬本一致性問題,而網路在承載中的可靠性尚未考慮。
華為認為網路裝置要納入區塊鏈的鏈條,增強網內可靠性。伴隨著邊緣計算的普及,當前的網路裝置已經部分具備一定的計算能力,依託網路邊緣的計算能力,將網路裝置納入區塊鏈,即保證了網路裝置的安全性,同時將網路資訊作為鏈上資訊的一環,一方面緩解雲平臺的在大量節點下對計算和儲存的壓力,另一方面也對未來大量的 IoT 裝置的合法接入進行認證管理。針對區塊鏈設計網路演進是未來考慮的一個方向。
華為對區塊鏈未來發展判斷
區塊鏈是開放的數字價值的流轉,其構建一種新型的價值網路,用技術為信任背書,對其未來的發展判斷如下:
· 從應用維度上,2018 年是區塊鏈的應用元年,在標準沒有完善前,在不同行業的試用是重點,政府資料存證、IoT 領域物流和車聯網的應用、運營商雲網協同和供應鏈金融將進入首發試用陣容。本質上這些領域急需藉助區塊鏈構建公開透明的營商環境。
· 從技術維度上,安全是構建區塊鏈需要考慮的重要問題,國密演算法將會成為區塊鏈在國內主要市場應用標準,區塊鏈的框架將包含雲,管,端三層,以軟體+硬體相配合的方式,構建高度可靠的安全能力。
· 從區塊鏈產業發展上看,中美歐會成為區塊鏈應用的重要區域,區塊鏈不會曇花一現,我們可以依靠區塊鏈在技術競爭中佔據先機,而這些需要明朗的產業政策給予保障,目前看到國內從中央到地方政府機構都在努力構建區塊鏈的孵化環境,推動區塊鏈產業健康發展。這就為我們發展區塊鏈技術和產業創造了良好環境。
基於以上判斷,為有效推動區塊鏈產業的快速發展,實現建立可信社會的目標,有如下建議:
· 依託聯盟,形成產業合作,加速我國區塊鏈標準快速落地
區塊鏈技術尚未成熟,從國內外的標準推動來看,區塊鏈標準在 2017 年有推進但速度較慢,這極大影響了區塊鏈的產業節奏;同時安全一直是區塊鏈技術的核心,但涉及到演算法,系統等的標準問題仍然存在。因此,建議以國家機構牽頭,藉助產業的力量,透過聯盟加速區塊鏈標準的制定,特別是跨鏈、加密演算法等重點標準在國內的落地,佔領區塊鏈產業在國際上的話語權。
· 構建區塊鏈產業孵化環境,推動區塊鏈產業發展
鼓勵從企業到政府的區塊鏈應用試點,在國內建立區塊鏈的應用孵化環境,在應用中發現問題,逐步推進。現在有些區塊鏈專案說的多,做的少,以炒概念而獲得投資為目標,這對整個區塊鏈產業的健康發展是不利的。因此,建議國家或重點企業積極進行試點,推動區塊鏈應用孵化,最佳化產業環境,加速產業成熟,在新一輪的區塊鏈市場競爭中獲得先機。
· 清晰化區塊鏈技術和應用的產業政策
目前我國的區塊鏈產業政策由各部門和部分省市分別進行小範圍的推廣,結合我國在網際網路+的發展思路,政府需要明確清晰的區塊鏈產業政策,展開對區塊鏈技術的支援、標準的推進、區塊鏈方案的研發、示範性工程的建立等等一系列行動。特別是對區塊鏈應用的監管和放權並舉,推動區塊鏈技術和應用在市場中良性發展。
· 積極參與開源社羣,倡導企業間區塊鏈技術的互通交流
鼓勵在參加國際區塊鏈開源社羣,快速完善區塊鏈能力的同時,加強國內企業間的合作,對區塊鏈技術進行攻關、方案研討、技術貢獻等,聚攏產業力量,提高國內企業在國際區塊鏈技術競爭中的影響力,實現產業共贏。
更多區塊鏈資訊:www.qukuaiwang.com.cn/news