QCon 2018北京:華為云區(qū)塊鏈服務實踐分享
InfoQ主辦的全球***技術盛會-QCon2018·北京站在4月20-22日在北京國際會議中心舉行。華為云區(qū)塊鏈服務BCS專家在此次大會上做了主題為《區(qū)塊鏈服務在公有云平臺上的重要問題設計實現(xiàn)及解決辦法》的分享。
此次演講通過“Hyperledger Fabric概述及選型說明、華為平臺架構及使用介紹、分布式系統(tǒng)共識問題、密碼學以及安全技術”四個方面與大家分享華為云區(qū)塊鏈服務的重要實踐。
Hyperledger Fabric概述及選型說明
區(qū)塊鏈不是一種新的技術,而是由多種技術構成的框架,包含共享賬本、共識算法、數(shù)據(jù)安全隱私保護以及可編程、圖靈完備智能合約,是一種防篡改的、共享的數(shù)字化賬本,用于記錄公有或私有對等網(wǎng)絡中的交易,可以提高效率、降低成本、降低風險并且能促進互信,構建出一個多中心化,共識,可信,不可篡改并且可追溯的系統(tǒng)。
區(qū)塊鏈分為公有鏈,私有鏈和聯(lián)盟鏈。公有鏈是任何人都可以參與使用和維護,信息是完全公開的。當引入許可機制,就可以實現(xiàn)私有鏈和聯(lián)盟鏈。私有鏈由集中管理者進行管理限制,只有內部少數(shù)人可以使用,信息不公開。聯(lián)盟鏈介于兩者之間由若干組織一起維護一條區(qū)塊鏈,該區(qū)塊鏈的使用必須帶有權限控制的限制訪問,相關信息會得到保護。
區(qū)塊鏈Hyperledger Fabric社區(qū)相對成熟穩(wěn)定,華為在2016年投入該社區(qū),并基于此架構開發(fā)區(qū)塊鏈服務,提供聯(lián)盟鏈和私有鏈。
華為云平臺架構及使用介紹
為解決區(qū)塊鏈在企業(yè)級場景下的一些突出問題,包括系統(tǒng)性能、功能完備性、系統(tǒng)擴展性、易用性等,華為云區(qū)塊鏈采用分層架構設計、云鏈結合、優(yōu)化共識算法、容器、微服務架構與可伸縮的分布式云存儲技術等創(chuàng)新技術方案。
華為云區(qū)塊鏈服務包括4層2列:
- 區(qū)塊鏈資源層:華為云IaaS和PaaS層,為區(qū)塊鏈系統(tǒng)提供***擴展的存儲、高速的網(wǎng)絡、按需購買彈性伸縮和故障自動恢復的節(jié)點等區(qū)塊鏈資源。
- 區(qū)塊鏈服務平臺:目前基于Hyperleger1.0、docker和Kubernates上構建,具有極強的可靠性和擴展性,后續(xù)根據(jù)市場需求逐步支持Corda和Ethereum等優(yōu)秀區(qū)塊鏈框架,為上層應用低成本、快速的提供高安全、高可靠、高性能的企業(yè)級區(qū)塊鏈系統(tǒng)。
- 合約層:目前提供Hyperledger標準智能合約接口,用戶可以根據(jù)不同應用場景構建不同的智能合約,后續(xù)將聯(lián)合合作伙伴為用戶打造通用場景智能合約庫如供應鏈管理和溯源、供應鏈金融、數(shù)字資產(chǎn)、公益慈善和互聯(lián)網(wǎng)保險等,企業(yè)可以在此基礎上快速構建區(qū)塊鏈應用場景。
- 業(yè)務應用層:為最終用戶的提供可信、安全、快捷的區(qū)塊鏈應用,用戶可以使用華為云提供的各種解決方案(供應鏈金融解決方案、電商行業(yè)解決方案、游戲行業(yè)解決方案、零售行業(yè)解決方案、新能源行業(yè)解決方案等等),結合合約層快速搭建區(qū)塊鏈應用。
- 區(qū)塊鏈系統(tǒng)安全:由華為云安全提供,聯(lián)盟鏈最重要的特點是節(jié)點的可控性和賬本的安全,華為云安全可以為區(qū)塊鏈節(jié)點、賬本、智能合約以及上層應用提供全方位的安全保障。
- 軟件開發(fā)云:用戶可以使用軟件開發(fā)云實現(xiàn)業(yè)務應用、智能合約從開發(fā)、測試到部署等CI/CD全系列流程。
通過這種分層架構設計,華為云區(qū)塊鏈服務為企業(yè)提供全方位的區(qū)塊鏈服務,幫助企業(yè)快速簡單的落地區(qū)塊鏈場景。
用戶通過華為云區(qū)塊鏈服務BCS的配置頁面,只需輸入幾個配置參數(shù),點擊確認,華為云應用服務根據(jù)參數(shù)和內置的***實踐通過Kubernetes將區(qū)塊鏈各個節(jié)點以docker容器運行方式自動部署到指定集群,只需要幾分鐘即可一鍵部署一個完整的企業(yè)級區(qū)塊鏈系統(tǒng)。
將上述創(chuàng)建的私有鏈擴展為聯(lián)盟鏈也非常簡單。華為云區(qū)塊鏈服務利用了公有云基礎設施,連接周邊服務,每個聯(lián)盟成員為華為云獨立租戶,他們的集群都是屬于不同的vpc,獨立管理自己的節(jié)點和賬本,區(qū)塊鏈服務開發(fā)自己的邀請機制,聯(lián)盟發(fā)起成員可以通過租戶賬號邀請的方式將其他華為云租戶加入到現(xiàn)有的區(qū)塊鏈系統(tǒng)通道中,通過綁定公網(wǎng)地址使不同vpc內部的節(jié)點可以通信,根據(jù)業(yè)務需求逐步擴大聯(lián)盟鏈成員。
在部署區(qū)塊鏈服務之后,用戶可以使用軟件開發(fā)云實現(xiàn)業(yè)務應用、智能合約從開發(fā)、測試到部署的CI/CD全系列流程。華為云區(qū)塊鏈服務還提供圖形化的界面和示例代碼,幫助開發(fā)人員進行鏈代碼的開發(fā)、安裝和實例化;應用程序開發(fā)配置和構建;部署應用程序服務端和前端,調試業(yè)務等。
分布式系統(tǒng)共識問題
提升共識效率是區(qū)塊鏈系統(tǒng)的核心問題。當前的fabric版本僅支持solo模式和kafka模式的共識算法,無法識別拜占庭錯誤。為了解決這個問題,華為云區(qū)塊鏈服務集成了PBFT共識算法。
PBFT算法為了克服Primary Node采用了復雜的全量點對點通信來監(jiān)聽各類異常行為,通信復雜度達到 O(n^2),同時額外增加了大量簽名校驗,帶來繁重的系統(tǒng)開銷,降低了共識效率、節(jié)點擴展性。此外,在主節(jié)點選舉或故障期間PBFT將無法正常共識,整個區(qū)塊鏈系統(tǒng)服務能力將會大幅降低甚至無法服務。華為云區(qū)塊鏈服務通過改進共識流程,保障區(qū)塊鏈系統(tǒng)在節(jié)點故障和切主節(jié)點期間對外服務的穩(wěn)定性,同時通過減少不必要的簽名驗證、簡化共識流程,將通信復雜度從 O(n^2)減少到O(n),有效提升了共識效率和擴展性。
華為云還提出了更高性能的適合于聯(lián)盟鏈的FBFT快速拜占庭容錯算法,提高其共識速度到2000-1000tps。
密碼學及安全技術
為了滿足國內銀行、金融業(yè)的需求,華為云區(qū)塊鏈服務支持國密算法SM2/3/4,同時滿足合規(guī)要求。國密算法是國家密碼局制定標準的一系列算法,2017年11月SM2/9正式進入 ISO/IEC 標準。
區(qū)塊鏈系統(tǒng)中,賬本對參與組織是透明的。對于一些行業(yè),如金融業(yè),交易信息是敏感數(shù)據(jù),非業(yè)務相關方不能查看,同時還要滿足監(jiān)管機構的監(jiān)管要求,而大部分的區(qū)塊鏈并沒有滿足隱私性要求。華為云區(qū)塊鏈服務提供帶有零知識證明的同態(tài)加密技術。同態(tài)加密庫用公鑰對交易數(shù)據(jù)進行加密保護,交易是密文運算,最終賬本中加密保存,即使節(jié)點被攻破,獲取到賬本記錄也無法解密;(2)提供范圍證明校驗,背書節(jié)點能夠對密文進行背書,無需解密就能校驗交易的正確性,從而識別出惡意交易風險,保證了智能合約的正確執(zhí)行。華為開發(fā)出適用于Hyperledger Fabric平臺的保密交易系統(tǒng),通過改良的算法,比起使用傳統(tǒng)的加法同態(tài)加密與基于環(huán)簽名的范圍零知識證明,性能大幅提升。
下載華為區(qū)塊鏈白皮書
https://static.huaweicloud.com/upload/files/pdf/20180326/20180326145830_90778.pdf
點擊了解華為云區(qū)塊鏈服務BCS