華為面對區(qū)塊鏈時的選擇、創(chuàng)新與策略
10月28日,超級賬本Meetup在北京舉辦,華為云區(qū)塊鏈架構(gòu)師張子怡分享了華為在面對區(qū)塊鏈時的選擇、創(chuàng)新與策略。
以下為張子怡演講精編,由巴比特整理。
華為面對區(qū)塊鏈做出的三個選擇
第一個選擇是要不要做區(qū)塊鏈?
我們當(dāng)時問了自己四個問題:一是有利可圖嗎?很多報告顯示,2020年基于區(qū)塊鏈的業(yè)務(wù)將達(dá)到1000億美元。二是政府支持嗎?各國政府態(tài)度積極,鼓勵探索應(yīng)用場景。三是社區(qū)和標(biāo)準(zhǔn)組織支持力度如何?可以看到,18年是區(qū)塊鏈應(yīng)用元年,開源和標(biāo)準(zhǔn)加速,產(chǎn)業(yè)逐漸成熟。四是有應(yīng)用場景嗎?區(qū)塊鏈也許會誕生創(chuàng)新新市場或許將重構(gòu)和優(yōu)化現(xiàn)有市場,比如房屋租賃是中心化的,未來也許是每個人把自己的房屋信息放在鏈上,形成一種p2p的去中心化模式。
基于這四個自問自答,我們看到了區(qū)塊鏈的前景。我們得出了自己的判斷:區(qū)塊鏈行業(yè)應(yīng)用將加速推進(jìn),從數(shù)字貨幣向金融和社會各領(lǐng)域滲透擴(kuò)散。
第二個選擇是做什么?聯(lián)盟鏈or公有鏈?
2009年中本聰發(fā)表了比特幣白皮書,開啟了區(qū)塊鏈1.0時代,但因為受限于交易性能和交易功能的單一,它的應(yīng)用只能是數(shù)字貨幣的形式。伴隨著以太坊智能合約的出現(xiàn),區(qū)塊鏈迎來2.0時代,區(qū)塊鏈的交易能力大幅度提升,但性能還是不夠高,只能用于高價值低頻次的交易場景。2017年,超級賬本的出現(xiàn),迎來了聯(lián)盟鏈的到來,整體交易性能進(jìn)一步提高,可以在一些更為復(fù)雜的場景上應(yīng)用,我們認(rèn)為這是可編程的區(qū)塊鏈3.0時代。基于這種的考慮,我們覺得聯(lián)盟鏈/私有鏈會是企業(yè)級應(yīng)用的主戰(zhàn)場。
第三個選擇是怎么做?BaaS平臺為最終選擇
我們結(jié)合區(qū)塊鏈的落地場景,文化、娛樂、金融、醫(yī)療、版權(quán)、教育等,經(jīng)過了一系列的考慮,最終認(rèn)為公有云是區(qū)塊鏈的最佳載體。因為云它自身的開放性、網(wǎng)絡(luò)性能以及資源的易獲得性,符合區(qū)塊鏈自身的一些特性。而且聯(lián)盟鏈要想提高它的性能,其實需要自身有一定節(jié)點可信、可靠、可控,在公有云上實現(xiàn)安全更簡單。因此我們得出結(jié)論:區(qū)塊鏈與云計算的結(jié)合越發(fā)緊密,BaaS有望成為公共信任基礎(chǔ)設(shè)施。
華為區(qū)塊鏈BCS的三點創(chuàng)新設(shè)計
這是華為云區(qū)塊鏈服務(wù)的一個邏輯架構(gòu)。據(jù)張子怡介紹,華為區(qū)塊鏈BCS是構(gòu)建于Docker和Kubermates之上,具有較高的擴(kuò)展性,并且會與其他云服務(wù)完全打通,提供成員動態(tài)加入來構(gòu)建,節(jié)點彈性伸縮,支持私有鏈和聯(lián)盟鏈靈活部署,和現(xiàn)有的IT基礎(chǔ)設(shè)施互聯(lián)互通。與此同時,張子怡講解了華為基于超級賬本所做的三點創(chuàng)新設(shè)計。
一、高性能拜占庭容錯共識算法,解決吞吐率過低問題
如何提高共識效率是大家都會遇到的問題,目前開源的hyperledger fabric只適合放在私有鏈動作,它可以在kafka上達(dá)到一定的性能,構(gòu)建聯(lián)盟鏈的時候,需要一個拜占庭式的算法。hyperledger fabric在0.6的版本中提供了一個PBFT算法,但是性能非常差,華為提出了一個快速拜占庭算法來解決這個問題。我們因為是基于華為云的相對可靠節(jié)點,通過對主節(jié)點的監(jiān)控,我們在共同性和可用性中其實向可用性傾斜。
我們把共識算法分為兩類,一類是證明類的共識,一類是投票類的共識。如何簡單的理解呢,共識算法解決的問題就是多人共同記賬,以誰記得為準(zhǔn)的問題。出個謎題誰先猜出來給誰?是比特幣工作量證明機(jī)制POW;誰的股份多誰記賬的概率大?是股權(quán)證明POS機(jī)制;由股份多的人選舉代言人進(jìn)行記賬?是DPOS機(jī)制;每隔一段時間選個組長,大家舉手表決是否同意組長的記賬?是實用拜占庭容錯協(xié)議;利用可信硬件擲骰子,選數(shù)字最小的?是最小幸運數(shù)算法。
華為的共識算法有兩點創(chuàng)新:一是簽名+兩階段提交,二是多實例共識互相監(jiān)督監(jiān)督,保證公平性。我們基于PBFT算法,減少了不必要的信息通信和簽名消耗。使得信息數(shù)量的復(fù)雜度由n^2 降到了n,提高了算法效率。早前測試的性能達(dá)到了5000TPS,現(xiàn)在更高,目前還沒有公布。
二、基于關(guān)系模型的區(qū)塊鏈,提升易用性和查詢性能
華為平臺上有三種區(qū)塊鏈部署模式,第一種是全華為硬件+華為BCS軟件,也就是中性化部署,所有業(yè)務(wù)部署在華為云。華為云平臺支持多租的區(qū)塊鏈服務(wù)部署,各個租戶有自己的VPC,彼此之間網(wǎng)絡(luò)和數(shù)據(jù)是隔離的,只有通過外網(wǎng)才能互通,所以其實并不存在中心化。第二種是線上線下的方式,部分華為硬件+華為BCS軟件,也就是混合部署,允許線下的數(shù)據(jù)中心放你的區(qū)塊鏈服務(wù)節(jié)點,線下線上打通。一部分業(yè)務(wù)部署在華為公有云,另一部分業(yè)務(wù)部署在客戶私有數(shù)據(jù)中心。第三種方式是去中心化部署,完全放在線下,私有硬件+華為BCS軟件,業(yè)務(wù)部署在客戶私有數(shù)據(jù)中心,。
我們基于關(guān)系模型區(qū)塊鏈,提升易用性,主要有三個出發(fā)點,一是能不能像使用數(shù)據(jù)庫一樣使用區(qū)塊鏈?二是能不能低成本將現(xiàn)有應(yīng)用從數(shù)據(jù)庫切換到區(qū)塊鏈?三是能不能支持高效復(fù)雜查詢?為了降低大家的學(xué)習(xí)成本,我們做了一個底層是關(guān)系型數(shù)據(jù)庫的存儲,大家可以無縫切換到熟悉的代碼書寫方式。首先你可以進(jìn)行數(shù)據(jù)分析。其次,它還支持高效的復(fù)雜產(chǎn)品??傮w來講,我們的設(shè)計分為三部分:一是SQL的區(qū)塊鏈訪問;而是基于SQL的智能合約開發(fā)框架;三是基于關(guān)系數(shù)據(jù)庫的區(qū)塊鏈數(shù)據(jù)管理。
三、從三個層級五大模塊對區(qū)塊鏈進(jìn)行全面防護(hù)
安全設(shè)計層面,我們從三個層級、五大模塊對區(qū)塊鏈進(jìn)行了全面的防護(hù)。比如說云上面的安全,我們過了等保四級。然后身份管理,我們提供了國密算法、標(biāo)準(zhǔn)的加密算法、同態(tài)加密算法,還有就是安全容器的能力,鏈碼沙箱,以及惡意代碼檢測,然后鏈碼的形式化驗證,自適應(yīng)的控制算法。
比如其中的國密算法是金融行業(yè)必備,在華為云部署的時候你可選擇。如何解決區(qū)塊鏈技術(shù)應(yīng)用于金融的隱私和可用性?我們的方案一是引入同態(tài)加密解決隱私問題;二是提出范圍證明/等式證明解決金融業(yè)務(wù)可用問題。這是一種范圍可驗證同態(tài)加密方法。其實同態(tài)加密技術(shù)它就實現(xiàn)了無秘鑰對秘文的計算,既可以減少通訊代價,又可以完成計算任務(wù)。利用同態(tài)加密技術(shù)可以讓解密方只獲得最后的結(jié)果而無法獲得每一個秘文,提高安全性。
云+網(wǎng)絡(luò)+終端三位一體的區(qū)塊鏈端到端解決方案
最后說一下華為云的思考,我們希望做到的是什么?
我們的策略是聚焦四大價值方向(數(shù)據(jù)、LOT、金融、運營商),以區(qū)塊鏈平臺為核心,結(jié)合網(wǎng)絡(luò)和芯片,形成三位一體的端到端的解決方案。
通過BaaS(BCS)平臺為核心,構(gòu)建BCS+華為公有云的策略。網(wǎng)絡(luò)節(jié)點和邊緣計算也應(yīng)該成為區(qū)塊鏈網(wǎng)絡(luò)的節(jié)點,保障區(qū)塊鏈網(wǎng)絡(luò)的真實性和安全。
終端是一個芯片,內(nèi)置區(qū)塊鏈SDK及API,它可以通過華為的電信網(wǎng)絡(luò),傳輸?shù)饺A為的BCS平臺上來,集成手機(jī)端或邊緣端的一些信息,進(jìn)行可信數(shù)據(jù)采集,構(gòu)建整體的區(qū)塊鏈解決方案,為客戶打造真實的區(qū)塊鏈應(yīng)用場景。