QCon 2018北京:華為云區(qū)塊鏈服務(wù)實(shí)踐分享
InfoQ主辦的全球***技術(shù)盛會(huì)-QCon2018·北京站在4月20-22日在北京國(guó)際會(huì)議中心舉行。華為云區(qū)塊鏈服務(wù)BCS專(zhuān)家在此次大會(huì)上做了主題為《區(qū)塊鏈服務(wù)在公有云平臺(tái)上的重要問(wèn)題設(shè)計(jì)實(shí)現(xiàn)及解決辦法》的分享。
此次演講通過(guò)“Hyperledger Fabric概述及選型說(shuō)明、華為平臺(tái)架構(gòu)及使用介紹、分布式系統(tǒng)共識(shí)問(wèn)題、密碼學(xué)以及安全技術(shù)”四個(gè)方面與大家分享華為云區(qū)塊鏈服務(wù)的重要實(shí)踐。
Hyperledger Fabric概述及選型說(shuō)明
區(qū)塊鏈不是一種新的技術(shù),而是由多種技術(shù)構(gòu)成的框架,包含共享賬本、共識(shí)算法、數(shù)據(jù)安全隱私保護(hù)以及可編程、圖靈完備智能合約,是一種防篡改的、共享的數(shù)字化賬本,用于記錄公有或私有對(duì)等網(wǎng)絡(luò)中的交易,可以提高效率、降低成本、降低風(fēng)險(xiǎn)并且能促進(jìn)互信,構(gòu)建出一個(gè)多中心化,共識(shí),可信,不可篡改并且可追溯的系統(tǒng)。
區(qū)塊鏈分為公有鏈,私有鏈和聯(lián)盟鏈。公有鏈?zhǔn)侨魏稳硕伎梢詤⑴c使用和維護(hù),信息是完全公開(kāi)的。當(dāng)引入許可機(jī)制,就可以實(shí)現(xiàn)私有鏈和聯(lián)盟鏈。私有鏈由集中管理者進(jìn)行管理限制,只有內(nèi)部少數(shù)人可以使用,信息不公開(kāi)。聯(lián)盟鏈介于兩者之間由若干組織一起維護(hù)一條區(qū)塊鏈,該區(qū)塊鏈的使用必須帶有權(quán)限控制的限制訪問(wèn),相關(guān)信息會(huì)得到保護(hù)。
區(qū)塊鏈Hyperledger Fabric社區(qū)相對(duì)成熟穩(wěn)定,華為在2016年投入該社區(qū),并基于此架構(gòu)開(kāi)發(fā)區(qū)塊鏈服務(wù),提供聯(lián)盟鏈和私有鏈。
華為云平臺(tái)架構(gòu)及使用介紹
為解決區(qū)塊鏈在企業(yè)級(jí)場(chǎng)景下的一些突出問(wèn)題,包括系統(tǒng)性能、功能完備性、系統(tǒng)擴(kuò)展性、易用性等,華為云區(qū)塊鏈采用分層架構(gòu)設(shè)計(jì)、云鏈結(jié)合、優(yōu)化共識(shí)算法、容器、微服務(wù)架構(gòu)與可伸縮的分布式云存儲(chǔ)技術(shù)等創(chuàng)新技術(shù)方案。
華為云區(qū)塊鏈服務(wù)包括4層2列:
- 區(qū)塊鏈資源層:華為云IaaS和PaaS層,為區(qū)塊鏈系統(tǒng)提供***擴(kuò)展的存儲(chǔ)、高速的網(wǎng)絡(luò)、按需購(gòu)買(mǎi)彈性伸縮和故障自動(dòng)恢復(fù)的節(jié)點(diǎn)等區(qū)塊鏈資源。
- 區(qū)塊鏈服務(wù)平臺(tái):目前基于Hyperleger1.0、docker和Kubernates上構(gòu)建,具有極強(qiáng)的可靠性和擴(kuò)展性,后續(xù)根據(jù)市場(chǎng)需求逐步支持Corda和Ethereum等優(yōu)秀區(qū)塊鏈框架,為上層應(yīng)用低成本、快速的提供高安全、高可靠、高性能的企業(yè)級(jí)區(qū)塊鏈系統(tǒng)。
- 合約層:目前提供Hyperledger標(biāo)準(zhǔn)智能合約接口,用戶可以根據(jù)不同應(yīng)用場(chǎng)景構(gòu)建不同的智能合約,后續(xù)將聯(lián)合合作伙伴為用戶打造通用場(chǎng)景智能合約庫(kù)如供應(yīng)鏈管理和溯源、供應(yīng)鏈金融、數(shù)字資產(chǎn)、公益慈善和互聯(lián)網(wǎng)保險(xiǎn)等,企業(yè)可以在此基礎(chǔ)上快速構(gòu)建區(qū)塊鏈應(yīng)用場(chǎng)景。
- 業(yè)務(wù)應(yīng)用層:為最終用戶的提供可信、安全、快捷的區(qū)塊鏈應(yīng)用,用戶可以使用華為云提供的各種解決方案(供應(yīng)鏈金融解決方案、電商行業(yè)解決方案、游戲行業(yè)解決方案、零售行業(yè)解決方案、新能源行業(yè)解決方案等等),結(jié)合合約層快速搭建區(qū)塊鏈應(yīng)用。
- 區(qū)塊鏈系統(tǒng)安全:由華為云安全提供,聯(lián)盟鏈最重要的特點(diǎn)是節(jié)點(diǎn)的可控性和賬本的安全,華為云安全可以為區(qū)塊鏈節(jié)點(diǎn)、賬本、智能合約以及上層應(yīng)用提供全方位的安全保障。
- 軟件開(kāi)發(fā)云:用戶可以使用軟件開(kāi)發(fā)云實(shí)現(xiàn)業(yè)務(wù)應(yīng)用、智能合約從開(kāi)發(fā)、測(cè)試到部署等CI/CD全系列流程。
通過(guò)這種分層架構(gòu)設(shè)計(jì),華為云區(qū)塊鏈服務(wù)為企業(yè)提供全方位的區(qū)塊鏈服務(wù),幫助企業(yè)快速簡(jiǎn)單的落地區(qū)塊鏈場(chǎng)景。

用戶通過(guò)華為云區(qū)塊鏈服務(wù)BCS的配置頁(yè)面,只需輸入幾個(gè)配置參數(shù),點(diǎn)擊確認(rèn),華為云應(yīng)用服務(wù)根據(jù)參數(shù)和內(nèi)置的***實(shí)踐通過(guò)Kubernetes將區(qū)塊鏈各個(gè)節(jié)點(diǎn)以docker容器運(yùn)行方式自動(dòng)部署到指定集群,只需要幾分鐘即可一鍵部署一個(gè)完整的企業(yè)級(jí)區(qū)塊鏈系統(tǒng)。
將上述創(chuàng)建的私有鏈擴(kuò)展為聯(lián)盟鏈也非常簡(jiǎn)單。華為云區(qū)塊鏈服務(wù)利用了公有云基礎(chǔ)設(shè)施,連接周邊服務(wù),每個(gè)聯(lián)盟成員為華為云獨(dú)立租戶,他們的集群都是屬于不同的vpc,獨(dú)立管理自己的節(jié)點(diǎn)和賬本,區(qū)塊鏈服務(wù)開(kāi)發(fā)自己的邀請(qǐng)機(jī)制,聯(lián)盟發(fā)起成員可以通過(guò)租戶賬號(hào)邀請(qǐng)的方式將其他華為云租戶加入到現(xiàn)有的區(qū)塊鏈系統(tǒng)通道中,通過(guò)綁定公網(wǎng)地址使不同vpc內(nèi)部的節(jié)點(diǎn)可以通信,根據(jù)業(yè)務(wù)需求逐步擴(kuò)大聯(lián)盟鏈成員。
在部署區(qū)塊鏈服務(wù)之后,用戶可以使用軟件開(kāi)發(fā)云實(shí)現(xiàn)業(yè)務(wù)應(yīng)用、智能合約從開(kāi)發(fā)、測(cè)試到部署的CI/CD全系列流程。華為云區(qū)塊鏈服務(wù)還提供圖形化的界面和示例代碼,幫助開(kāi)發(fā)人員進(jìn)行鏈代碼的開(kāi)發(fā)、安裝和實(shí)例化;應(yīng)用程序開(kāi)發(fā)配置和構(gòu)建;部署應(yīng)用程序服務(wù)端和前端,調(diào)試業(yè)務(wù)等。
分布式系統(tǒng)共識(shí)問(wèn)題
提升共識(shí)效率是區(qū)塊鏈系統(tǒng)的核心問(wèn)題。當(dāng)前的fabric版本僅支持solo模式和kafka模式的共識(shí)算法,無(wú)法識(shí)別拜占庭錯(cuò)誤。為了解決這個(gè)問(wèn)題,華為云區(qū)塊鏈服務(wù)集成了PBFT共識(shí)算法。
PBFT算法為了克服Primary Node采用了復(fù)雜的全量點(diǎn)對(duì)點(diǎn)通信來(lái)監(jiān)聽(tīng)各類(lèi)異常行為,通信復(fù)雜度達(dá)到 O(n^2),同時(shí)額外增加了大量簽名校驗(yàn),帶來(lái)繁重的系統(tǒng)開(kāi)銷(xiāo),降低了共識(shí)效率、節(jié)點(diǎn)擴(kuò)展性。此外,在主節(jié)點(diǎn)選舉或故障期間PBFT將無(wú)法正常共識(shí),整個(gè)區(qū)塊鏈系統(tǒng)服務(wù)能力將會(huì)大幅降低甚至無(wú)法服務(wù)。華為云區(qū)塊鏈服務(wù)通過(guò)改進(jìn)共識(shí)流程,保障區(qū)塊鏈系統(tǒng)在節(jié)點(diǎn)故障和切主節(jié)點(diǎn)期間對(duì)外服務(wù)的穩(wěn)定性,同時(shí)通過(guò)減少不必要的簽名驗(yàn)證、簡(jiǎn)化共識(shí)流程,將通信復(fù)雜度從 O(n^2)減少到O(n),有效提升了共識(shí)效率和擴(kuò)展性。
華為云還提出了更高性能的適合于聯(lián)盟鏈的FBFT快速拜占庭容錯(cuò)算法,提高其共識(shí)速度到2000-1000tps。
密碼學(xué)及安全技術(shù)
為了滿足國(guó)內(nèi)銀行、金融業(yè)的需求,華為云區(qū)塊鏈服務(wù)支持國(guó)密算法SM2/3/4,同時(shí)滿足合規(guī)要求。國(guó)密算法是國(guó)家密碼局制定標(biāo)準(zhǔn)的一系列算法,2017年11月SM2/9正式進(jìn)入 ISO/IEC 標(biāo)準(zhǔn)。
區(qū)塊鏈系統(tǒng)中,賬本對(duì)參與組織是透明的。對(duì)于一些行業(yè),如金融業(yè),交易信息是敏感數(shù)據(jù),非業(yè)務(wù)相關(guān)方不能查看,同時(shí)還要滿足監(jiān)管機(jī)構(gòu)的監(jiān)管要求,而大部分的區(qū)塊鏈并沒(méi)有滿足隱私性要求。華為云區(qū)塊鏈服務(wù)提供帶有零知識(shí)證明的同態(tài)加密技術(shù)。同態(tài)加密庫(kù)用公鑰對(duì)交易數(shù)據(jù)進(jìn)行加密保護(hù),交易是密文運(yùn)算,最終賬本中加密保存,即使節(jié)點(diǎn)被攻破,獲取到賬本記錄也無(wú)法解密;(2)提供范圍證明校驗(yàn),背書(shū)節(jié)點(diǎn)能夠?qū)γ芪倪M(jìn)行背書(shū),無(wú)需解密就能校驗(yàn)交易的正確性,從而識(shí)別出惡意交易風(fēng)險(xiǎn),保證了智能合約的正確執(zhí)行。華為開(kāi)發(fā)出適用于Hyperledger Fabric平臺(tái)的保密交易系統(tǒng),通過(guò)改良的算法,比起使用傳統(tǒng)的加法同態(tài)加密與基于環(huán)簽名的范圍零知識(shí)證明,性能大幅提升。
下載華為區(qū)塊鏈白皮書(shū)
https://static.huaweicloud.com/upload/files/pdf/20180326/20180326145830_90778.pdf
點(diǎn)擊了解華為云區(qū)塊鏈服務(wù)BCS


























