騰訊公司在自主創(chuàng)新的基礎(chǔ)上,打造了提供企業(yè)級(jí)服務(wù)的“騰訊區(qū)塊鏈”解決方案?;凇伴_放分享”的理念,騰訊將搭建區(qū)塊鏈基礎(chǔ)設(shè)施,并開放內(nèi)部能力,與全國(guó)企業(yè)共享,共同推動(dòng)可信互聯(lián)網(wǎng)的發(fā)展,打造區(qū)塊鏈的共贏生態(tài)。
騰訊在支付與金融、社交、媒體等多個(gè)領(lǐng)域積累了豐富的行業(yè)與技術(shù)經(jīng)驗(yàn),在高并發(fā)的交易處理方面取得了業(yè)界領(lǐng)先的突破;此外,騰訊還具備海量數(shù)據(jù)處理和分析、金融安全體系構(gòu)建的能力,在云生態(tài)和行業(yè)連接的探索上也積累了豐富的經(jīng)驗(yàn)。
1. 騰訊區(qū)塊鏈方案的設(shè)計(jì)原則及目標(biāo)
騰訊區(qū)塊鏈致力于提供企業(yè)級(jí)區(qū)塊鏈基礎(chǔ)設(shè)施,行業(yè)解決方案,以及安全、可靠、靈活的區(qū)塊鏈云服務(wù)。
1.1 設(shè)計(jì)原則:
自主創(chuàng)新:騰訊區(qū)塊鏈注重自主創(chuàng)新,目前在關(guān)鍵領(lǐng)域已經(jīng)擁有多項(xiàng)自主知識(shí)產(chǎn)權(quán)的獨(dú)特核心技術(shù),在共識(shí)算法、十億級(jí)用戶管理、海量數(shù)據(jù)并發(fā)處理、賬戶安全管理、風(fēng)險(xiǎn)控制等方面具有專利和技術(shù)積累。
安全高效:基于騰訊多年在支付與金融領(lǐng)域的安全、可靠運(yùn)營(yíng)經(jīng)驗(yàn)的積累,推出騰訊可信區(qū)塊鏈,能夠有效實(shí)現(xiàn)信息共享,保護(hù)信息安全,提升系統(tǒng)效率。
開放分享:騰訊將搭建區(qū)塊鏈基礎(chǔ)設(shè)施,開放內(nèi)部服務(wù)能力,與行業(yè)伙伴共享,共同推動(dòng)可信互聯(lián)網(wǎng)的發(fā)展,打造區(qū)塊鏈的共贏生態(tài)。
1.2 設(shè)計(jì)目標(biāo):
騰訊可信區(qū)塊鏈旨在為行業(yè)伙伴提供企業(yè)級(jí)區(qū)塊鏈基礎(chǔ)設(shè)施,行業(yè)解決方案,以及安全、可靠、靈活的區(qū)塊鏈云服務(wù)。通過高性能的區(qū)塊鏈服務(wù),在實(shí)現(xiàn)安全可靠的交易對(duì)接的前提下,通過可視化的數(shù)據(jù)管理手段,有效降低企業(yè)運(yùn)營(yíng)綜合成本,提高運(yùn)營(yíng)效率。
2. 騰訊區(qū)塊整體架構(gòu)
在“自主創(chuàng)新、安全高效、開放共享”設(shè)計(jì)原則的指導(dǎo)下,騰訊可信區(qū)塊鏈方案的整體架構(gòu)分成三個(gè)層次:騰訊區(qū)塊鏈的底層是騰訊自主研發(fā)的 Trust SQl 平臺(tái),Trust SQL 通過 SQL和 API 的接口為上層應(yīng)用場(chǎng)景提供區(qū)塊鏈基礎(chǔ)服務(wù)的功能。核心定位于打造領(lǐng)先的企業(yè)級(jí)區(qū)塊鏈基礎(chǔ)平臺(tái)。中間是平臺(tái)產(chǎn)品服務(wù)層為 Trust Platform,在底層(Trust SQL)之上構(gòu)建高可用性、可擴(kuò)展性的區(qū)塊鏈應(yīng)用基礎(chǔ)平臺(tái)產(chǎn)品,其中包括共享賬本、鑒證服務(wù)、共享經(jīng)濟(jì)、數(shù)字資產(chǎn)等多個(gè)方向,集成相關(guān)領(lǐng)域的基礎(chǔ)產(chǎn)品功能,幫助企業(yè)快速搭建上層區(qū)塊鏈應(yīng)用場(chǎng)景。應(yīng)用服務(wù)層(Trust Application)向最終用戶的提供可信、安全、快捷的區(qū)塊鏈應(yīng)用,騰訊未來將攜手行業(yè)合作伙伴及其技術(shù)供應(yīng)商,共同探索行業(yè)區(qū)塊鏈發(fā)展方向,共同推動(dòng)區(qū)塊鏈應(yīng)用場(chǎng)景落地。整體框架結(jié)構(gòu)如下圖:
2.1 底層平臺(tái) TrustSQL
用戶管理:負(fù)責(zé)所有區(qū)塊鏈參與者的身份信息管理,包括維護(hù)公私鑰生成、密鑰存儲(chǔ)管理以及用戶真實(shí)身份和區(qū)塊鏈地址對(duì)應(yīng)關(guān)系維護(hù)等,并且在授權(quán)的情況下,監(jiān)管和審計(jì)某些真實(shí)身份的交易情況。對(duì)數(shù)字資產(chǎn)等金融交易類的應(yīng)用,還提供了風(fēng)險(xiǎn)控制的規(guī)則配置,以保證系統(tǒng)交易安全。
基礎(chǔ)服務(wù):基礎(chǔ)服務(wù)部署在所有區(qū)塊鏈的節(jié)點(diǎn)上,用來驗(yàn)證業(yè)務(wù)請(qǐng)求的有效性,并對(duì)有效請(qǐng)求完成共識(shí)后記錄到存儲(chǔ)上。對(duì)一個(gè)新的業(yè)務(wù)請(qǐng)求,基礎(chǔ)服務(wù)先對(duì)接口適配解析,鑒權(quán)處理,然后通過共識(shí)算法將交易或者合約加上簽名和加密之后,完整一致的存儲(chǔ)到共享賬本上。共識(shí)機(jī)制可自適應(yīng),在網(wǎng)絡(luò)和節(jié)點(diǎn)都正常情況下具有高并發(fā)性,網(wǎng)絡(luò)異?;蛘吖?jié)點(diǎn)欺騙的情況下具有強(qiáng)容錯(cuò)性。
智能合約:負(fù)責(zé)合約的注冊(cè)發(fā)行以及合約的觸發(fā)和執(zhí)行。用戶通過某種編程語言定義合約邏輯,發(fā)布到區(qū)塊鏈上之后,根據(jù)合約條款的邏輯,由用戶簽名或者其他的事件觸發(fā)執(zhí)行,完成交易結(jié)算等合約的邏輯。
運(yùn)營(yíng)監(jiān)控:負(fù)責(zé)產(chǎn)品發(fā)布過程中的部署、配置修改、合約設(shè)置以及產(chǎn)品運(yùn)行中的實(shí)時(shí)狀態(tài)可視化的輸出,如:告警、交易量、網(wǎng)絡(luò)情況、節(jié)點(diǎn)健康狀態(tài)等。
2.2 平臺(tái)產(chǎn)品服務(wù)層 Trust Platform
平臺(tái)產(chǎn)品服務(wù)層抽象了各類典型的區(qū)塊鏈應(yīng)用,提供典型應(yīng)用的基本能力和實(shí)現(xiàn)框架,用戶可以基于這些基本能力,疊加自己業(yè)務(wù)獨(dú)有的特性,輕松完成業(yè)務(wù)邏輯的區(qū)塊鏈實(shí)現(xiàn)。幫助用戶快速搬遷已有業(yè)務(wù)到區(qū)塊鏈上,以應(yīng)對(duì)新的場(chǎng)景需求,或者搭建全新的業(yè)務(wù)場(chǎng)景,利用區(qū)塊鏈的不可篡改、防抵賴等特性解決之前難以解決的問題。
數(shù)字資產(chǎn):根據(jù)對(duì)虛擬貨幣、游戲裝備、商業(yè)票據(jù)、積分、卡券等數(shù)字資產(chǎn)的分析,我們發(fā)現(xiàn)資產(chǎn)上鏈?zhǔn)且粋€(gè)關(guān)鍵環(huán)節(jié)。為此引入“資產(chǎn)網(wǎng)關(guān)”的概念,協(xié)助用戶進(jìn)行鏈下資產(chǎn)到鏈上資產(chǎn)的轉(zhuǎn)換。資產(chǎn)一旦上鏈,轉(zhuǎn)移、拆分、提現(xiàn)等操作就會(huì)通過帳戶公私鑰體系嚴(yán)格控制起來,并且所有的操作都會(huì)有簽名校驗(yàn),交易雙方都會(huì)留下痕跡,不可抹除。如商業(yè)票據(jù)、卡券等存在有效期的資產(chǎn),還會(huì)提供到期自動(dòng)清算的能力,包括資產(chǎn)發(fā)行、資產(chǎn)轉(zhuǎn)讓、資產(chǎn)提現(xiàn)、資產(chǎn)清算、資產(chǎn)查詢等。
鑒證服務(wù):針對(duì)知識(shí)產(chǎn)權(quán)、保單保全(權(quán)益證明)、個(gè)人和企業(yè)資質(zhì)證明等應(yīng)用場(chǎng)景,區(qū)塊鏈充分發(fā)揮不可抹除和公示的能力,讓機(jī)構(gòu)和個(gè)人通過一個(gè)簡(jiǎn)單的接口或 APP 客戶端就可以把版權(quán)資料、投保資料、資質(zhì)證明等發(fā)布到區(qū)塊鏈上,讓所有記賬節(jié)點(diǎn)共同為自己作證。另外基于騰訊自建的知識(shí)產(chǎn)權(quán)平臺(tái),用戶的維權(quán)將更加方便,證據(jù)確認(rèn)更有權(quán)威性。如權(quán)屬登記、權(quán)屬注銷、侵權(quán)證據(jù)錄入等。
共享賬本:金融機(jī)構(gòu)間的對(duì)賬清算目前基本都是以天為周期進(jìn)行,對(duì)賬方式基本也都是互發(fā)對(duì)賬單,對(duì)比雙方的交易流水。這給最終的交易確認(rèn)和資金劃撥都帶來一定的延時(shí),一些需要實(shí)時(shí)付款的業(yè)務(wù)場(chǎng)景甚至必須要業(yè)務(wù)運(yùn)營(yíng)方去墊資進(jìn)行。區(qū)塊鏈天然的共享賬本,讓對(duì)賬不必第二天匯總發(fā)送,而是隨時(shí)都可以進(jìn)行,雙方只要把對(duì)賬邏輯對(duì)接到區(qū)塊鏈上,就可以完成資金的核對(duì)?;究梢詫?shí)現(xiàn)準(zhǔn)實(shí)時(shí)的交易確認(rèn)和資金劃撥,并且任意一方都不可抵賴。特別對(duì)于資金鏈條比較長(zhǎng),牽涉環(huán)節(jié)比較多的業(yè)務(wù)非常有競(jìng)爭(zhēng)優(yōu)勢(shì)。同時(shí)監(jiān)管機(jī)構(gòu)也可以參與到共享賬本記錄中。
分享經(jīng)濟(jì):分享經(jīng)濟(jì)能否走的長(zhǎng)遠(yuǎn),一個(gè)關(guān)鍵因素就是供需方之間信任的建立,保證分享行為的順利實(shí)施,而區(qū)塊鏈從技術(shù)層面提供了一種實(shí)現(xiàn)途徑。技術(shù)保證能力的背書,讓彼此難以達(dá)成信任的多方參與者,共同建立起公信力,不再需要中間機(jī)構(gòu)或者服務(wù)平臺(tái)構(gòu)建強(qiáng)大的內(nèi)部審核流程,嚴(yán)謹(jǐn)繁復(fù)的記賬備份體系,以及配合監(jiān)管機(jī)構(gòu)做的額外設(shè)施,就可以達(dá)到相同的效果。從而節(jié)約了大量的成本,讓分享更加高效可行。
2.3 應(yīng)用服務(wù)層 Trust Application
應(yīng)用服務(wù)層(Trust Application)提供基于區(qū)塊鏈方案的應(yīng)用服務(wù)給最終用戶的使用。騰訊區(qū)塊鏈解決方案中應(yīng)用服務(wù)層將盡力為騰訊的海量用戶提供各類區(qū)塊鏈場(chǎng)景的服務(wù),未來將在數(shù)字票據(jù)、貴金屬交易、知識(shí)產(chǎn)權(quán)保護(hù)、網(wǎng)絡(luò)互助、機(jī)構(gòu)清結(jié)算、公益等場(chǎng)景為用戶提供可信、安全、便捷的區(qū)塊鏈服務(wù)。騰訊區(qū)塊鏈也會(huì)本著開放分享的原則,未來將攜手各個(gè)行業(yè)伙伴發(fā)掘更多區(qū)塊鏈的應(yīng)用場(chǎng)景,開放區(qū)塊鏈底層(Trust SQL)和平臺(tái)應(yīng)用層(Trust Platform)的能力,共同開發(fā)新的應(yīng)用服務(wù),一同維護(hù)區(qū)塊鏈生態(tài)。
3. 底層平臺(tái) Trust SQL
3.1 基礎(chǔ)服務(wù)
基礎(chǔ)服務(wù)模塊由接口適配、共識(shí)管理,網(wǎng)絡(luò)通信和記錄存儲(chǔ)四個(gè)部分組成,如下圖
3.1.1 接口適配
為了用戶方便、低成本的接入騰訊區(qū)塊鏈,Trust SQL 對(duì)應(yīng)用層提供 SQL 和 API 的接口,其中 API 接口支持同步和異步操作兩種模式。接口適配層對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行解析,鑒權(quán)和簽名校驗(yàn)之后,通過共識(shí)算法將業(yè)務(wù)請(qǐng)求記錄到賬本存儲(chǔ)上。接口適配模塊作為共識(shí)管理模塊的客戶端,也會(huì)參與共識(shí)管理。接口適配模塊主要負(fù)責(zé)各個(gè)共識(shí)節(jié)點(diǎn)返回結(jié)果的匯總和一致性判斷。另外,當(dāng)使用具有自主知識(shí)產(chǎn)權(quán)的“改進(jìn)的 bft-raft”共識(shí)算法時(shí)候,接口適配模塊還會(huì)收到來自業(yè)務(wù)側(cè)的選舉切換請(qǐng)求,接口適配模塊對(duì)選舉切換請(qǐng)求進(jìn)行匯總統(tǒng)計(jì)。當(dāng)符合切換條件的時(shí)候,通知共識(shí)管理模塊重新選舉。
3.1.2 共識(shí)管理
共識(shí)機(jī)制是區(qū)塊鏈中核心的技術(shù)點(diǎn)。多方參與的節(jié)點(diǎn)在預(yù)設(shè)規(guī)則下,通過節(jié)點(diǎn)間的交互對(duì)數(shù)據(jù)、行為或流程達(dá)成一致的過程稱為共識(shí)。共識(shí)機(jī)制是指定義共識(shí)過程的算法、協(xié)議和規(guī)則。共識(shí)機(jī)制按照共識(shí)的過程分兩類,第一類是概率一致的共識(shí)、工程學(xué)上最終確認(rèn);第二類是絕對(duì)一致之后再共識(shí),共識(shí)即確認(rèn)。騰訊區(qū)塊鏈提供第二類的共識(shí)機(jī)制,支持自適應(yīng)和用戶指定配置兩種模式。自適應(yīng)的模式是在網(wǎng)絡(luò)狀況良好、無欺詐節(jié)點(diǎn)的情況下自動(dòng)使用共識(shí)效率高、能夠防欺詐的、具有自主知識(shí)產(chǎn)權(quán)的“改進(jìn)的 raft”算法,當(dāng)欺詐節(jié)點(diǎn)或者故障節(jié)點(diǎn)超過閾值之后自動(dòng)切換到更為嚴(yán)格的、具有自主知識(shí)產(chǎn)權(quán)的“改進(jìn)的 bft-raft”算法。用戶指定配置模式是指用戶直接配置固定共識(shí)機(jī)制,進(jìn)行共識(shí)管理。
3.1.3 網(wǎng)絡(luò)通信
網(wǎng)絡(luò)通信模塊負(fù)責(zé)各節(jié)點(diǎn)間以及業(yè)務(wù)側(cè)的消息數(shù)據(jù)傳輸。騰訊區(qū)塊鏈采用可以多路復(fù)用、連接共享的動(dòng)態(tài)自組織的網(wǎng)絡(luò)??梢愿F(xiàn)有的防火墻、代理服務(wù)器等安全設(shè)施很好的兼容,提供點(diǎn)對(duì)點(diǎn)的組網(wǎng)和安全可靠的數(shù)據(jù)傳輸。
3.1.4 記錄存儲(chǔ)
騰訊區(qū)塊鏈記錄存儲(chǔ)可以支持多種的介質(zhì)的存儲(chǔ),存儲(chǔ)介質(zhì)可以是數(shù)據(jù)庫(kù)、文件系統(tǒng),也可以是云存儲(chǔ)介質(zhì),如云 DB,云 KV 等。記錄存儲(chǔ)采用塊鏈的結(jié)構(gòu),任何對(duì)歷史數(shù)據(jù)篡改都能被自校驗(yàn)發(fā)現(xiàn),并進(jìn)行告警和自動(dòng)修正。
3.2 用戶管理
用戶管理主要解決用戶身份到區(qū)塊鏈地址的映射關(guān)系、用戶隱私的保密性以及監(jiān)管審計(jì)的可追蹤性。從業(yè)務(wù)場(chǎng)景上看,有些場(chǎng)景是需要匿名、交易不相關(guān)性,如股票交易、數(shù)字貨幣等,有些場(chǎng)景則不需要匿名和不相關(guān)性,如互助保險(xiǎn)、源頭跟蹤等。要兼顧這兩大場(chǎng)景,密鑰管理需要很強(qiáng)的適應(yīng)性和兼容性。騰訊區(qū)塊鏈提供了用戶靈活自由選擇的多種配置方式。
從用戶接入的角度看,一種是原有系統(tǒng)改造接入?yún)^(qū)塊鏈,存在原有安全級(jí)別較高的密鑰管理體系,如機(jī)構(gòu)清算,銀行保理等,另外一種是新應(yīng)用場(chǎng)景接入?yún)^(qū)塊鏈或者原有系統(tǒng)沒有完善的密鑰管理體系,如一些供應(yīng)鏈業(yè)務(wù)和一些 B2C 業(yè)務(wù)等。為繼承原有安全級(jí)別較高的密鑰管理系統(tǒng)、同時(shí)又能保留原有用戶的使用習(xí)慣,騰訊區(qū)塊鏈提供了傳統(tǒng)密鑰系統(tǒng)集成、全托管和部分托管三類模式。
傳統(tǒng)密鑰系統(tǒng)集成:適用于原有私鑰系統(tǒng)安全級(jí)別較高的用戶,如:金融機(jī)構(gòu)、銀行原有的 U 盾、電子簽名等,對(duì)于此類用戶,騰訊區(qū)塊鏈只需要將原有用戶的私鑰系統(tǒng)跟區(qū)塊鏈地址關(guān)聯(lián)起來即可。
部分托管:適用于接入?yún)^(qū)塊鏈服務(wù)的部分主體有較高安全級(jí)別的密鑰系統(tǒng)或者多種區(qū)塊鏈技術(shù)互通的場(chǎng)景。部分托管情況下,騰訊區(qū)塊鏈來保證參與的多方區(qū)塊鏈地址關(guān)聯(lián)關(guān)系和一致性。
全托管:適合全新接入的場(chǎng)景以及原有互聯(lián)網(wǎng)習(xí)慣程度較高的場(chǎng)景。將原有的以用戶名、密碼的體系,通過安全的密鑰生成和管理系統(tǒng)對(duì)應(yīng)起來,使用戶信息跟區(qū)塊鏈地址隔離開來,保護(hù)用戶隱私安全。
對(duì)于全托管的模式,騰訊區(qū)塊鏈的用戶管理系統(tǒng)由賬戶管理、密鑰管理、權(quán)限管理和風(fēng)控審計(jì)四個(gè)部分組成,如圖:
3.2.1 賬戶管理
賬戶管理負(fù)責(zé)用戶的賬戶管理,包括賬戶的注冊(cè)、登錄、注銷以及賬戶跟密鑰的不相關(guān)性處理。賬戶注冊(cè)時(shí),將原來用戶習(xí)慣的用戶名、密碼等身份信息映射到騰訊區(qū)塊鏈地址。賬戶登錄之后,才可以發(fā)送區(qū)塊鏈相關(guān)的業(yè)務(wù)請(qǐng)求。對(duì)交易保密程度較高的場(chǎng)景,用戶可以選擇騰訊區(qū)塊鏈地址不相關(guān)性處理,使得同一個(gè)用戶的不同交易在區(qū)塊記錄存儲(chǔ)中不具有關(guān)聯(lián)性,提高了用戶安全性和交易保密性。
3.2.2 密鑰管理
在全托管的模式下,密鑰管理系統(tǒng)負(fù)責(zé)用戶密鑰跟賬戶的關(guān)聯(lián)、密鑰安全管理和丟失找回。用戶密鑰在客戶端生成,用戶可以選擇將密鑰保存在密鑰保險(xiǎn)箱或者委托給關(guān)聯(lián)賬戶的方式以便密鑰丟失后找回。為了保證用戶賬戶跟密鑰關(guān)聯(lián)關(guān)系可靠性,密鑰管理系統(tǒng)將關(guān)聯(lián)關(guān)系的簽名采用多節(jié)點(diǎn)鏈?zhǔn)酱鎯?chǔ)。
3.2.3 權(quán)限管理
權(quán)限管理模塊負(fù)責(zé)用戶賬戶、密鑰系統(tǒng)、節(jié)點(diǎn)加入和退出、數(shù)據(jù)訪問等權(quán)限的控制和管理。包括審計(jì)權(quán)限、賬戶委托權(quán)限、節(jié)點(diǎn)共識(shí)權(quán)限以及用戶數(shù)據(jù)訪問權(quán)限等。審計(jì)權(quán)限是為監(jiān)管機(jī)構(gòu)提供審計(jì)的功能,對(duì)訪問權(quán)限和數(shù)據(jù)范圍做嚴(yán)格的控制,對(duì)共享賬本上交易不相關(guān)性的用戶可以做到用戶關(guān)聯(lián)。賬戶委托權(quán)限用來控制用戶賬戶委托關(guān)系的訪問控制。共識(shí)權(quán)限對(duì)參與或者新加入節(jié)點(diǎn)進(jìn)行共識(shí)權(quán)限管理。訪問權(quán)限用來管理客戶端對(duì)區(qū)塊鏈上的數(shù)據(jù)查詢權(quán)限。
3.2.3 風(fēng)控審計(jì)
風(fēng)控模塊負(fù)責(zé)對(duì)區(qū)塊鏈中數(shù)字資產(chǎn)類的交易行為進(jìn)行風(fēng)險(xiǎn)控制,騰訊區(qū)塊鏈提供風(fēng)控專家模型系統(tǒng),通過分析和捕捉海量數(shù)據(jù)間的深層關(guān)系,自適應(yīng)調(diào)整風(fēng)控規(guī)則,及時(shí)發(fā)現(xiàn)風(fēng)險(xiǎn)、管理風(fēng)控和控制風(fēng)險(xiǎn),做到防患于未然。審計(jì)模塊為審計(jì)機(jī)構(gòu)提供審計(jì)能力,通過嚴(yán)格的權(quán)限控制來保證審計(jì)能力只能被審計(jì)機(jī)構(gòu)使用。
3.3 智能合約
騰訊區(qū)塊鏈合約部分包括標(biāo)準(zhǔn)合約以及業(yè)務(wù)定制的合約兩種類型。標(biāo)準(zhǔn)合約包括資產(chǎn)一致性檢查、自動(dòng)成交撮合、多方共同確認(rèn)的轉(zhuǎn)賬、到期自動(dòng)清算等邏輯相對(duì)簡(jiǎn)單的合約,是騰訊區(qū)塊鏈內(nèi)置合約,可以直接掛在區(qū)塊鏈上使用。用戶定制的智能合約包括通過合約模板修改配置和添加其他業(yè)務(wù)邏輯的形式,也可以支持更加復(fù)雜的用戶自編程的合約,在獨(dú)立的環(huán)境里運(yùn)行。
智能合約包括合約的注冊(cè)、觸發(fā)、執(zhí)行以及注銷四個(gè)部分,如下圖:
3.3.1 合約注冊(cè)
合約注冊(cè)是將用戶編寫好的合約安全檢查處理之后,共識(shí)存儲(chǔ)到區(qū)塊鏈的過程。騰訊區(qū)塊鏈未來計(jì)劃支持多種語言來編寫智能合約。
3.3.2 合約觸發(fā)
合約觸發(fā)是在合約注冊(cè)之后,通過外部條件來觸發(fā)合約執(zhí)行的過程,支持定時(shí)觸發(fā)、事件觸發(fā)、交易觸發(fā)和其他合約觸發(fā)的方式。定時(shí)觸發(fā)是指滿足合約中預(yù)設(shè)的時(shí)間之后,節(jié)點(diǎn)就觸發(fā)時(shí)間共識(shí)之后,自動(dòng)觸發(fā)合約調(diào)用的過程。事件、交易和其他合約調(diào)用都是一次新的請(qǐng)求共識(shí)過程中觸發(fā)合約執(zhí)行。
3.3.3 合約執(zhí)行
合約執(zhí)行是合約代碼在獨(dú)立的環(huán)境中運(yùn)行的完整過程,包括對(duì)合約構(gòu)造鏡像環(huán)境、代碼執(zhí)行、執(zhí)行代碼中狀態(tài)修改的共識(shí)以及共識(shí)的異常處理。
3.3.4 合約注銷
合約注銷,是對(duì)已經(jīng)執(zhí)行過、過期作廢或者業(yè)務(wù)需求變更不再需要的合約進(jìn)行轉(zhuǎn)存,清理,清理的過程需要多節(jié)點(diǎn)共識(shí)之后才能完成。
3.4 運(yùn)營(yíng)監(jiān)控
為了客戶快速接入以及接入之后能夠快速準(zhǔn)確地識(shí)別系統(tǒng)的運(yùn)行狀態(tài)以及在運(yùn)行中滿足其他的運(yùn)維需求,如存儲(chǔ)賬本擴(kuò)容、程序升級(jí)等。騰訊區(qū)塊鏈提供了完整、快捷、可視化的運(yùn)營(yíng)監(jiān)控系統(tǒng),運(yùn)營(yíng)監(jiān)控主要包括配置,監(jiān)控、告警、發(fā)布和業(yè)務(wù)分析等功能。
3.4.1 配置
負(fù)責(zé)處理網(wǎng)絡(luò)節(jié)點(diǎn)的相關(guān)配置,如共識(shí)算法的選擇、自適應(yīng)閾值、存儲(chǔ)賬本的存儲(chǔ)方式、網(wǎng)絡(luò)路由方式等,配置的本身可以作為區(qū)塊鏈中的一個(gè)交易的形式下發(fā),通過共識(shí)算法達(dá)成一致之后再生效。
3.4.2 監(jiān)控
負(fù)責(zé)收集系統(tǒng)中運(yùn)行的狀態(tài)數(shù)據(jù),并且可視化的呈現(xiàn)出來。系統(tǒng)中的狀態(tài)數(shù)據(jù)包括系統(tǒng)的訪問量、耗時(shí)、節(jié)點(diǎn)的健康狀態(tài)以及比較底層的機(jī)器資源(CPU、內(nèi)存、硬盤)使用狀況等,通過可視化監(jiān)控可以實(shí)時(shí)了解整個(gè)區(qū)塊鏈系統(tǒng)的狀態(tài)。
3.4.3 告警
對(duì)系統(tǒng)中比較嚴(yán)重的情況如欺詐節(jié)點(diǎn)、賬本篡改、機(jī)器故障等情況通過短信、電話、微信、郵件等方式通知到相關(guān)人員,以便及時(shí)處理。
3.4.4 發(fā)布
對(duì)系統(tǒng)初次部署、運(yùn)行中程序升級(jí)以及運(yùn)行過程中節(jié)點(diǎn)擴(kuò)展等場(chǎng)景下的操作可以通過發(fā)布模塊來支持。發(fā)布模塊保證接口、共識(shí)算法等重要模塊的可執(zhí)行程序的一致性。
3.4.5 業(yè)務(wù)分析
業(yè)務(wù)分析包括各個(gè)節(jié)點(diǎn)間數(shù)據(jù)一致性檢測(cè)以及交易數(shù)據(jù)多維度的統(tǒng)計(jì)和分析,可以給特定授權(quán)用戶提供業(yè)務(wù)統(tǒng)計(jì)分析以及業(yè)務(wù)發(fā)展趨勢(shì)的圖表。
3.4.6 云適配
云適配提供目前云主流運(yùn)營(yíng)商的接口適配,可以讓騰訊區(qū)塊鏈更加方便的部署在云上,方便維護(hù)和擴(kuò)展。
4. 技術(shù)特色和優(yōu)勢(shì)
在“自主創(chuàng)新、安全高效、開放分享”的設(shè)計(jì)原則下,騰訊區(qū)塊鏈打造的企業(yè)級(jí)基礎(chǔ)設(shè)施服務(wù),具有如下特點(diǎn):高性能、高安全性、高速接入、高效運(yùn)營(yíng):
1、高性能:依托騰訊支付的海量并發(fā)經(jīng)驗(yàn),交易支持秒級(jí)確認(rèn);提供海量數(shù)據(jù)存儲(chǔ),具備每秒萬級(jí)的處理能力;
2、高安全性:提供豐富的權(quán)限策略、安全的密鑰管理體系和用戶隱私保密方案,保障數(shù)據(jù)安全。
3、高速接入:豐富的應(yīng)用開發(fā)框架和靈活的部署方式,方便不同類型的用戶快速接入,構(gòu)建應(yīng)用;
4、高效運(yùn)營(yíng):提供全面、實(shí)時(shí)、可視化的運(yùn)維管理系統(tǒng),快速識(shí)別系統(tǒng)狀態(tài),滿足多個(gè)層級(jí)的運(yùn)營(yíng)管理需求。
4.1 高性能
4.1.1 豐富的高并發(fā)處理經(jīng)驗(yàn)
騰訊支付基礎(chǔ)平臺(tái)與金融應(yīng)用線(FiT)現(xiàn)有系統(tǒng)在 2017 年春節(jié)紅包期間每秒處理超過20 萬的并發(fā)交易,騰訊區(qū)塊鏈借鑒了 FiT 高并發(fā)、分布式賬戶管理的經(jīng)驗(yàn),通過各種模型分析、壓測(cè),可以支持每秒萬級(jí)的處理能力。
4.1.2 高效自適應(yīng)共識(shí)算法
在企業(yè)級(jí)區(qū)塊鏈解決方案中,單個(gè)區(qū)塊鏈的并發(fā)處理的能力主要受制于共識(shí)算法。實(shí)際的聯(lián)盟鏈應(yīng)用中,絕大部分時(shí)間里,各節(jié)點(diǎn)間網(wǎng)絡(luò)狀況是良好的,節(jié)點(diǎn)故障或者是拜占庭節(jié)點(diǎn)的概率小,這樣,在絕大部分時(shí)間里,只需要解決多個(gè)節(jié)點(diǎn)數(shù)據(jù)一致性,高效完成交易即可。只要在發(fā)現(xiàn)有節(jié)點(diǎn)故障或者欺詐的時(shí)候,能夠自動(dòng)切換到具有拜占庭容錯(cuò)的算法就可以保證業(yè)務(wù)順利進(jìn)行。騰訊區(qū)塊鏈提供的自適應(yīng)的區(qū)塊鏈共識(shí)算法,在網(wǎng)絡(luò)狀況良好、無節(jié)點(diǎn)故障或者欺詐的情況下處理效率很高,并且可以準(zhǔn)確檢測(cè)節(jié)點(diǎn)故障或者節(jié)點(diǎn)欺詐;當(dāng)檢測(cè)到節(jié)點(diǎn)故障或者欺詐,系統(tǒng)自動(dòng)啟用拜占庭容錯(cuò)的算法特性,在總節(jié)點(diǎn)數(shù)為 3f+1 的網(wǎng)絡(luò)中(其中 f 為拜占庭錯(cuò)誤節(jié)點(diǎn)數(shù)),當(dāng)容錯(cuò)節(jié)點(diǎn)不超過 f 的情況下,系統(tǒng)正常對(duì)外提供服務(wù);當(dāng)所有壞節(jié)點(diǎn)修復(fù)或者拜占庭容錯(cuò)節(jié)點(diǎn)解決之后,所有節(jié)點(diǎn)數(shù)據(jù)能全一致的時(shí)候,自動(dòng)切回到高效的算法上。自適應(yīng)算法很好保證聯(lián)盟鏈絕大部分時(shí)間內(nèi)高效的并發(fā)處理,并且精準(zhǔn)處理了節(jié)點(diǎn)錯(cuò)誤的問題。
4.1.3 交易快速確認(rèn)
騰訊區(qū)塊鏈采用高效自適應(yīng)的共識(shí)算法,保證了共識(shí)完成即交易確認(rèn),并且對(duì)交易確認(rèn)過程中的其他環(huán)節(jié),如簽名算法、賬本存儲(chǔ)方式等進(jìn)行了優(yōu)化,實(shí)現(xiàn)了秒級(jí)確認(rèn)交易。
4.1.4 海量存儲(chǔ)
騰訊區(qū)塊鏈支持本地?cái)?shù)據(jù)庫(kù)存儲(chǔ)、文件系統(tǒng)存儲(chǔ)以及云存儲(chǔ)多種方式。本地存儲(chǔ)實(shí)現(xiàn)冷熱分離,數(shù)據(jù)庫(kù)存儲(chǔ)使用分庫(kù)分表的模式,云存儲(chǔ)支持按照云的集群規(guī)則擴(kuò)展。
4.2 高速接入
在實(shí)際的業(yè)務(wù)對(duì)接場(chǎng)景大致分為三類:第一類,原有系統(tǒng)改造后接入?yún)^(qū)塊鏈,第二類,原有系統(tǒng)上新的需求使用區(qū)塊鏈開發(fā),第三類,在全新的系統(tǒng)和場(chǎng)景使用區(qū)塊鏈。
騰訊區(qū)塊鏈為了適應(yīng)于上述三類場(chǎng)景,本著業(yè)務(wù)開發(fā)工作量盡量少、盡量滿足用戶原有開發(fā)習(xí)慣、方便的部署、保持原有的安全體系的原則,在用戶業(yè)務(wù)開發(fā)方式、部署方式以及安全性繼承上做了大量的兼容性設(shè)計(jì),可以實(shí)現(xiàn)各種場(chǎng)景、各種開發(fā)習(xí)慣的用戶能以較低的代價(jià)、較快的速度對(duì)接到區(qū)塊鏈上來。
4.2.1 滿足多種用戶習(xí)慣的方式接入
騰訊區(qū)塊鏈平臺(tái)產(chǎn)品層(Trust Platform)提供豐富的應(yīng)用開發(fā)的框架,應(yīng)用類型包含了數(shù)字資產(chǎn)、共享賬本、鑒證證明、股份眾籌及所有權(quán)交易等基本應(yīng)用模型。用戶可以基于這些應(yīng)用開發(fā)框架進(jìn)行業(yè)務(wù)開發(fā),也可以直接基于騰訊區(qū)塊鏈底層 Trust SQL 提供的 SQL 和 API進(jìn)行開發(fā)。對(duì)業(yè)務(wù)開發(fā)中使用的底層 API 的庫(kù)提供了多語言支持,可以滿足不同的用戶的開發(fā)習(xí)慣,降低用戶接入難度。
4.2.2 跨平臺(tái)的部署方式
騰訊區(qū)塊鏈針對(duì)不同的用戶需求,可以支持云部署、服務(wù)器部署等多種部署方式,適應(yīng)多種用戶部署環(huán)境。
4.2.3 可選的密鑰管理對(duì)接機(jī)制
騰訊區(qū)塊鏈提供了原有密鑰系統(tǒng)關(guān)聯(lián)、部分托管和全托管三類對(duì)接機(jī)制,跟現(xiàn)有系統(tǒng)對(duì)接時(shí),可以根據(jù)現(xiàn)有系統(tǒng)的密鑰管理系統(tǒng)的實(shí)際情況選擇合適的對(duì)接機(jī)制。原有密鑰系統(tǒng)安全程度較高的,可以復(fù)用的直接使用原有密鑰關(guān)聯(lián)的方式;全新的業(yè)務(wù)可以選擇密鑰管理全托管的方式;也可以根據(jù)業(yè)務(wù)情況選擇部分托管的方式。
4.3 高安全性
4.3.1 可靠一致的記錄存儲(chǔ)
騰訊區(qū)塊鏈通過非對(duì)稱加密的數(shù)字簽名保證業(yè)務(wù)請(qǐng)求在傳輸過程中不能被篡改,通過共識(shí)機(jī)制保證各節(jié)點(diǎn)的數(shù)據(jù)一致的存儲(chǔ)。對(duì)于已經(jīng)存儲(chǔ)的數(shù)據(jù)記錄通過節(jié)點(diǎn)內(nèi)的自校驗(yàn)性和準(zhǔn)實(shí)時(shí)多節(jié)點(diǎn)數(shù)據(jù)校驗(yàn)來保證已經(jīng)存儲(chǔ)的數(shù)據(jù)記錄不能被修改。
節(jié)點(diǎn)的自校驗(yàn)性:騰訊區(qū)塊鏈采用塊鏈結(jié)構(gòu)存儲(chǔ)數(shù)據(jù)記錄,其中部分記錄的修改會(huì)破壞塊鏈結(jié)構(gòu)的完整性,可以快速校驗(yàn)出來并從其他節(jié)點(diǎn)將數(shù)據(jù)恢復(fù)。另外騰訊區(qū)塊鏈每個(gè)記賬節(jié)點(diǎn)都有自己的私鑰,每個(gè)區(qū)塊頭中包含了本節(jié)點(diǎn)私鑰的簽名,區(qū)塊內(nèi)數(shù)據(jù)的修改都可以通過簽名校驗(yàn)出來。
多節(jié)點(diǎn)準(zhǔn)實(shí)時(shí)的數(shù)據(jù)校驗(yàn):當(dāng)節(jié)點(diǎn)的私鑰被盜取,惡意用戶是存在修改賬本鏈上所有數(shù)據(jù)的可能性的,騰訊區(qū)塊鏈提供了多節(jié)點(diǎn)間準(zhǔn)實(shí)時(shí)的數(shù)據(jù)對(duì)比機(jī)制,可以及時(shí)發(fā)現(xiàn)某個(gè)節(jié)點(diǎn)賬本數(shù)據(jù)被篡改的情況。
4.3.2 用戶隱私和交易保密
騰訊區(qū)塊鏈中用戶信息和區(qū)塊鏈地址是隔離的。從各節(jié)點(diǎn)的記錄存儲(chǔ)中,無法獲取到相關(guān)聯(lián)的用戶信息。用戶信息存儲(chǔ)有權(quán)限控制,訪問認(rèn)證,加密存儲(chǔ)等多層保護(hù)。對(duì)交易保密程度較高的用戶還可以選擇交易不相關(guān)性機(jī)制,同一個(gè)用戶的每次交易都映射到區(qū)塊鏈上不同的地址上,從而保證了在交易賬本上無法獲取一個(gè)用戶的多筆交易的關(guān)聯(lián)性。
4.3.3 安全的密鑰管理體系
在騰訊區(qū)塊鏈的密鑰管理解決方案中,提供了密鑰保險(xiǎn)箱和用戶賬戶委托的功能來保證密鑰的安全。密鑰保險(xiǎn)箱使用用戶信息對(duì)密鑰加密并分割存儲(chǔ)在多個(gè)不同的節(jié)點(diǎn)上,正常業(yè)務(wù)流程下不會(huì)訪問密鑰保險(xiǎn)箱,當(dāng)用戶密鑰丟失后,可以通過對(duì)用戶信息認(rèn)證之后將密鑰找回。賬戶委托是通過委托賬戶來操作被委托賬戶來實(shí)現(xiàn)賬戶找回的功能,騰訊區(qū)塊鏈所有委托賬戶操作會(huì)獨(dú)立記錄在區(qū)塊鏈上,并且對(duì)委托賬戶的操作有嚴(yán)格的頻度限制和獨(dú)立的風(fēng)控策略,可以嚴(yán)格控制委托賬戶的操作風(fēng)險(xiǎn)。
4.4 高效運(yùn)營(yíng)
騰訊區(qū)塊鏈實(shí)現(xiàn)了可視化的服務(wù)交付和可視化的服務(wù)度量。在服務(wù)交付方面,從代碼編譯、測(cè)試、灰度環(huán)境驗(yàn)收到正式環(huán)境部署,整個(gè)服務(wù)交付流程實(shí)現(xiàn)可視化管理。在服務(wù)度量方面,對(duì)數(shù)據(jù)進(jìn)行了標(biāo)準(zhǔn)化的分層歸類,從基礎(chǔ)設(shè)施、上層組件、應(yīng)用服務(wù)、到用戶側(cè),基于應(yīng)用的拓?fù)浼軜?gòu),收集各類指標(biāo),統(tǒng)一到一個(gè)分析平臺(tái)中展現(xiàn)。
騰訊區(qū)塊鏈提供通用高效的信息采集組件,部署在業(yè)務(wù)層、共識(shí)節(jié)點(diǎn)層以及賬本存儲(chǔ)層,信息采集組件把機(jī)器的系統(tǒng)信息(如,CPU,內(nèi)存、硬盤、網(wǎng)絡(luò)等狀態(tài))、節(jié)點(diǎn)使用狀態(tài)(如節(jié)點(diǎn)訪問量、訪問時(shí)耗、節(jié)點(diǎn)健康狀態(tài)等)以及業(yè)務(wù)使用情況(業(yè)務(wù)訪問量、成功率、耗時(shí)分布等)實(shí)時(shí)展示到監(jiān)控界面上,便于整個(gè)系統(tǒng)的管理。
5. 行業(yè)應(yīng)用前景
我們注意到,區(qū)塊鏈技術(shù)已在世界各地呈現(xiàn)方興未艾的發(fā)展態(tài)勢(shì)。從業(yè)務(wù)上看,借助區(qū)塊鏈的安全特性與信任機(jī)制, 將成為發(fā)展數(shù)字經(jīng)濟(jì)的重要技術(shù)引擎,可以在多行業(yè)領(lǐng)域發(fā)揮作用,行業(yè)應(yīng)用領(lǐng)域發(fā)展?jié)摿薮?。但從行業(yè) IT 系統(tǒng)需求的角度來看,要在區(qū)塊鏈上構(gòu)建應(yīng)用,需要區(qū)塊鏈解決方案具備強(qiáng)大的三個(gè)底層能力:一是完善的新舊系統(tǒng)兼容/切換能力,二是全新的系統(tǒng)安全能力,三是適用多場(chǎng)景的用戶隱私保護(hù)能力。
基于上述需求,騰訊區(qū)塊鏈提供了高可用性、可擴(kuò)展的區(qū)塊鏈應(yīng)用基礎(chǔ)平臺(tái),通過此平臺(tái),各領(lǐng)域的合作伙伴可以快速搭建上層區(qū)塊鏈應(yīng)用,幫助企業(yè)將精力聚焦在業(yè)務(wù)本身和商業(yè)模式的運(yùn)營(yíng)上,讓用戶、商戶、機(jī)構(gòu)在多樣化的應(yīng)用場(chǎng)景中受益。
5.1 騰訊區(qū)塊鏈應(yīng)用場(chǎng)景概覽
基于騰訊區(qū)塊鏈基礎(chǔ)平臺(tái),區(qū)塊鏈技術(shù)的應(yīng)用范疇,可以涵蓋貨幣、金融、經(jīng)濟(jì)、社會(huì)的諸多領(lǐng)域。從區(qū)塊鏈應(yīng)用價(jià)值角度出發(fā),我們總結(jié)騰訊區(qū)塊連方案使用場(chǎng)景方向,具備分為:鑒證證明、共享賬本、智能合約、共享經(jīng)濟(jì)、數(shù)字資產(chǎn)等五大類,具體場(chǎng)景概覽示意如下:
5.2 騰訊區(qū)塊鏈應(yīng)用落地中常見問題
Q1:去中心化的特性是否對(duì)中心化機(jī)構(gòu)不利?
A1:區(qū)塊鏈雖有去中心化的特性,但很多線上業(yè)務(wù)的糾紛無法離開中心來解決。因此區(qū)塊鏈的真正價(jià)值在于促進(jìn)各行各業(yè)的中心化機(jī)構(gòu)之間達(dá)成共識(shí),構(gòu)建聯(lián)盟,形成多個(gè)中心組成的商業(yè)生態(tài)圈,這樣的生態(tài)系統(tǒng)突出了中心的職能,大大簡(jiǎn)化了中心化機(jī)構(gòu)運(yùn)營(yíng)成本。
Q2:區(qū)塊鏈?zhǔn)堑托Х?wù)嗎?
A2:區(qū)塊鏈服務(wù)是低效是一個(gè)認(rèn)識(shí)上的誤區(qū)。區(qū)塊鏈的效率瓶頸主要在于共識(shí)算法,而共識(shí)算法在不同場(chǎng)景下有不同的實(shí)現(xiàn)方式。例如騰訊區(qū)塊鏈采用自主研發(fā)的高效自適應(yīng)共識(shí)算法,保證了共識(shí)完成即交易確認(rèn),并且對(duì)交易確認(rèn)過程中的其他環(huán)節(jié),如簽名算法、賬本存儲(chǔ)方式等進(jìn)行了優(yōu)化,實(shí)現(xiàn)了秒級(jí)確認(rèn)交易。
Q3:區(qū)塊鏈?zhǔn)欠駴]有隱私?
A3:區(qū)塊鏈通過多重的隱私保護(hù)方案來保護(hù)用戶隱私。底層交易數(shù)據(jù)通過加密方式存儲(chǔ),僅對(duì)用戶本身可見;上層應(yīng)用通過嚴(yán)格的權(quán)限控制確保隱私安全。
Q4:如何尋找適合區(qū)塊鏈適用的場(chǎng)景?
A4:成熟的騰訊區(qū)塊鏈解決方案可滿足多場(chǎng)景的應(yīng)用,從具體行業(yè)應(yīng)用適用性考慮,可以綜合參考行業(yè)各參與方的信任機(jī)制、信任內(nèi)容、業(yè)務(wù)角色、業(yè)務(wù)關(guān)系、運(yùn)作方式等維度,通過下圖所示,用雷達(dá)掃描法進(jìn)行場(chǎng)景匹配考量。
評(píng)論
查看更多