腾讯如何打造新基建时代高可扩展的区块链引擎
信息化時(shí)代,數(shù)據(jù)大規(guī)模增長(zhǎng),匯集形成了大量的數(shù)據(jù)中心,這些數(shù)據(jù)中心因分屬于不同企業(yè)或部門而形成相互隔離的數(shù)據(jù)孤島,導(dǎo)致信息不能有效傳輸,難以發(fā)揮其應(yīng)有的價(jià)值。尤其在政務(wù)領(lǐng)域,數(shù)據(jù)多且分散,同時(shí)還包含大量隱私與敏感信息,構(gòu)建集中式的數(shù)據(jù)共享服務(wù)并不現(xiàn)實(shí),還會(huì)增加數(shù)據(jù)被篡改或泄露的風(fēng)險(xiǎn)。隨著產(chǎn)業(yè)互聯(lián)網(wǎng)加速推進(jìn),安全、高效的數(shù)字化萬物互聯(lián)與多方協(xié)作,將越來越成為社會(huì)經(jīng)濟(jì)生產(chǎn)的重要訴求。區(qū)塊鏈作為新型信息協(xié)作底層技術(shù),將能與5G、AI等新一代基礎(chǔ)信息技術(shù)為未來生活生產(chǎn)帶來全新突破和助力。
區(qū)塊鏈集成了密碼學(xué)與分布式數(shù)據(jù)庫等技術(shù),能夠有效且安全的解決跨組織的數(shù)據(jù)共享問題。然而,成千上萬的數(shù)據(jù)中心有各自的數(shù)據(jù)管理模式,單個(gè)區(qū)塊鏈應(yīng)用即承載不了當(dāng)前大規(guī)模的數(shù)據(jù)量,也不能滿足多樣化的數(shù)據(jù)管理模式,所以承載相應(yīng)數(shù)據(jù)的區(qū)塊鏈應(yīng)用也將是多樣化的,各有各的治理模式,需要一個(gè)兼容并包的系統(tǒng)將不同的區(qū)塊鏈應(yīng)用整合成統(tǒng)一的服務(wù),實(shí)現(xiàn)安全、可擴(kuò)展的跨區(qū)塊鏈的協(xié)作。另一方面,區(qū)塊鏈的去中心化特性強(qiáng)調(diào)各個(gè)參與方之間相互驗(yàn)證,但在政務(wù)或產(chǎn)業(yè)區(qū)塊鏈領(lǐng)域中,數(shù)據(jù)規(guī)模大,各平行的應(yīng)用鏈要對(duì)其他鏈上的數(shù)據(jù)進(jìn)行驗(yàn)證不僅效率低下且不可行,采用層級(jí)化的治理模式可以提升效率并滿足監(jiān)管要求。
騰訊云區(qū)塊鏈引擎平臺(tái)是一個(gè)新型的具有高可擴(kuò)展性的企業(yè)級(jí)區(qū)塊鏈平臺(tái),其自主創(chuàng)新的設(shè)計(jì)主要體現(xiàn)在兩個(gè)方面:分層與跨鏈互聯(lián),主打的三個(gè)目標(biāo)分別是:實(shí)現(xiàn)大規(guī)模跨組織的信息化協(xié)作,保障敏感數(shù)據(jù)的安全流通,支持層級(jí)化的區(qū)塊鏈治理模式。
區(qū)塊鏈技術(shù)原理
區(qū)塊鏈本質(zhì)上是一個(gè)State Machine Replication(SMR)系統(tǒng),和zookeeper等SMR系統(tǒng)一樣,每個(gè)節(jié)點(diǎn)有相同的初始狀態(tài),并執(zhí)行相同的操作序列,最終得到一致的數(shù)據(jù)副本;不同點(diǎn)在于,區(qū)塊鏈運(yùn)行在不受信任的環(huán)境,還需要容忍部分節(jié)點(diǎn)作惡(不按規(guī)則執(zhí)行的行為,比如發(fā)布假消息等),并保證所有的誠實(shí)節(jié)點(diǎn)總能達(dá)成一致。
從字面意義上簡(jiǎn)單的理解,區(qū)塊鏈維護(hù)的就是SMR系統(tǒng)的所有操作序列。區(qū)塊鏈系統(tǒng)中每隔一段時(shí)間就會(huì)累計(jì)一批還未執(zhí)行的交易請(qǐng)求,這些交易的集合及其排列順序通過多個(gè)節(jié)點(diǎn)共識(shí)后,形成一個(gè)有序的交易片段,這些交易片段以區(qū)塊的形式傳播和存儲(chǔ)。由于在整個(gè)網(wǎng)絡(luò)中達(dá)成一次共識(shí)的時(shí)間太長(zhǎng),而一個(gè)區(qū)塊中可以包含上千條交易,按區(qū)塊進(jìn)行批量共識(shí)顯然比按單個(gè)交易共識(shí)效率高。既然一個(gè)區(qū)塊只是一段時(shí)間內(nèi)的交易片段,那么采用鏈表的方式把區(qū)塊串聯(lián)起來,并且每個(gè)區(qū)塊中包含了上一區(qū)塊的hash,就形成了完整且不可篡改的交易序列。
區(qū)塊鏈可以看成一個(gè)三層的State Machine Replication(SMR)系統(tǒng),如圖1所示,最底層是整個(gè)SMR系統(tǒng)的核心,主要功能是對(duì)更新操作的順序達(dá)成一致,并形成不可篡改的操作序列,這一功能的核心部分稱作為共識(shí)算法。第二層是底層state-machine的API,更新操作通過API作用到區(qū)塊鏈上,區(qū)塊鏈中通過智能合約(類似于數(shù)據(jù)庫的存儲(chǔ)過程)來描述數(shù)據(jù)的操作流程。最上層則是區(qū)塊鏈應(yīng)用層,通過調(diào)用智能合約來執(zhí)行業(yè)務(wù)邏輯,構(gòu)建去中心化的應(yīng)用,比如數(shù)字貨幣等。
圖1. 區(qū)塊鏈系統(tǒng)概要圖平臺(tái)優(yōu)勢(shì):高性能、安全、可擴(kuò)展
騰訊云區(qū)塊鏈在可擴(kuò)展性、安全、性能等區(qū)塊鏈關(guān)鍵領(lǐng)域具備優(yōu)勢(shì)技術(shù)能力。
可擴(kuò)展性:支持大規(guī)模的跨區(qū)塊鏈協(xié)作,保障敏感數(shù)據(jù)的安全跨鏈流通,以及支持層級(jí)化的區(qū)塊鏈治理模式。
安全:支持國密算法,智能合約提供同態(tài)加密與零知識(shí)證明算法庫;支持多鏈隔離的拜占庭容錯(cuò)共識(shí)算法。
性能:通過流水線處理,交易TPS在騰訊云32核虛擬機(jī)上高達(dá)2萬以上;優(yōu)化存儲(chǔ)結(jié)構(gòu),使得區(qū)塊文件存儲(chǔ)空間相比常用區(qū)塊鏈降低80%;支持騰訊云存儲(chǔ)可提供海量的賬本存儲(chǔ)空間。
系統(tǒng)整體架構(gòu):分層互聯(lián)
騰訊云區(qū)塊鏈采用分層互聯(lián)的架構(gòu),分層是解決系統(tǒng)擴(kuò)展性問題的利器。騰訊云區(qū)塊鏈將系統(tǒng)分層兩層:上層是應(yīng)用層;底層是跨鏈治理層,如圖1.1所示。
圖1.1 騰訊云區(qū)塊鏈整體架構(gòu)圖應(yīng)用層
應(yīng)用層可以構(gòu)建大量平行的應(yīng)用子鏈,每個(gè)子鏈可以有各自的業(yè)務(wù)和區(qū)塊鏈治理模式,平行的應(yīng)用子鏈之間可以進(jìn)行跨鏈的數(shù)據(jù)交互,騰訊云區(qū)塊鏈的分層設(shè)計(jì)簡(jiǎn)化了應(yīng)用層的開發(fā),應(yīng)用層子鏈僅需要聚焦于實(shí)現(xiàn)基于區(qū)塊鏈的應(yīng)用并提供資源管理API,而跨鏈過程中涉及到目標(biāo)鏈的路由管理、身份可信性驗(yàn)證、跨鏈?zhǔn)聞?wù)管理等流程由系統(tǒng)負(fù)責(zé)處理。
治理層
治理層為應(yīng)用層的子鏈的跨鏈協(xié)作與數(shù)據(jù)流通提供底層支撐,功能主要分成兩部分:跨鏈?zhǔn)聞?wù)管理與跨鏈身份管理。
跨鏈?zhǔn)聞?wù)處理需要管理一筆交易在多個(gè)不同鏈之間的執(zhí)行狀態(tài),以確保數(shù)據(jù)處理的一致性,即交易在多個(gè)區(qū)塊鏈上要么全部執(zhí)行成功,要么全部執(zhí)行失敗。與傳統(tǒng)分布式事務(wù)不同的是,跨鏈?zhǔn)聞?wù)處理過程需要保證去中心化,騰訊云區(qū)塊鏈系統(tǒng)基于區(qū)塊鏈來管理跨鏈?zhǔn)聞?wù),稱之為事務(wù)鏈, 采用兩階段的去中心化的跨鏈互操作方案,實(shí)現(xiàn)靈活的、可大規(guī)模跨鏈互聯(lián)的區(qū)塊鏈系統(tǒng)。
跨鏈身份管理基于區(qū)塊鏈為上層應(yīng)用提供可信身份服務(wù),稱之為身份鏈,用于管理子鏈身份與用戶身份,子鏈身份即上層的應(yīng)用子鏈身份,應(yīng)用子鏈如果需要與其他平行子鏈進(jìn)行跨鏈操作,就必須事先在身份鏈上注冊(cè)身份,子鏈身份除身份ID、身份公鑰外,還包括該子鏈對(duì)外公開的資源管理API,以便實(shí)現(xiàn)基于身份的服務(wù)發(fā)現(xiàn)。用戶身份即區(qū)塊鏈應(yīng)用的用戶身份,身份鏈為上層所有子鏈頒發(fā)統(tǒng)一的用戶身份,子鏈可以驗(yàn)證其他子鏈的用戶身份,用戶也可以在不同的子鏈上轉(zhuǎn)移自身數(shù)據(jù)。身份鏈打通了數(shù)據(jù)的擁有者、管理者、訪問者等不同角色之間的驗(yàn)證流程,為安全的跨鏈互通提供信任基礎(chǔ)。
身份管理
治理層中的身份鏈管理個(gè)人、設(shè)備、機(jī)構(gòu)、上層應(yīng)用子鏈的身份信息,身份由一個(gè)可信的身份簽發(fā)者(單個(gè)機(jī)構(gòu)或聯(lián)盟)統(tǒng)一頒發(fā),該身份簽發(fā)者作為整個(gè)系統(tǒng)中的監(jiān)管角色,可以是單個(gè)可信機(jī)構(gòu)或多個(gè)機(jī)構(gòu)組建的聯(lián)盟。
身份結(jié)構(gòu)
身份由如下幾個(gè)部分組成:
身份標(biāo)識(shí)符(ID):作為該身份的唯一識(shí)別碼。
身份類型(Type):分為個(gè)人、設(shè)備、機(jī)構(gòu)、應(yīng)用子鏈幾大類。
身份公鑰(PubKey):該身份對(duì)應(yīng)的非對(duì)稱加密公鑰,用于對(duì)該身份進(jìn)行驗(yàn)簽。對(duì)應(yīng)的私鑰由身份擁有者持有。
身份頒發(fā)簽名(Sign):由身份簽發(fā)者對(duì)該身份的頒發(fā)簽名。
身份屬性(Attribute):業(yè)務(wù)自定義的身份屬性,用于身份簽發(fā)者對(duì)該身份進(jìn)行認(rèn)證與授權(quán)。
身份服務(wù)(Service):記錄該身份的服務(wù)地址、API等信息,按身份類型不同分為:
個(gè)人:記錄托管個(gè)人數(shù)據(jù)的機(jī)構(gòu)或應(yīng)用子鏈的身份ID。
機(jī)構(gòu)或應(yīng)用子鏈:記錄機(jī)構(gòu)或應(yīng)用子鏈對(duì)外提供的網(wǎng)絡(luò)服務(wù)地址,如查詢API、更新API等。
身份服務(wù)發(fā)現(xiàn)
身份服務(wù)(Service)是整個(gè)區(qū)塊鏈系統(tǒng)中解決可信數(shù)據(jù)訪問的重要環(huán)節(jié),以查詢或更新某項(xiàng)個(gè)人數(shù)據(jù)為例闡述身份服務(wù)的使用流程,如圖2.1所示:
APP使用個(gè)人A的身份ID去身份鏈上查詢A的身份服務(wù),身份鏈返回A的身份服務(wù)為A數(shù)據(jù)所托管的應(yīng)用子鏈B的身份ID。
APP使用該應(yīng)用子鏈B的身份ID去身份鏈上查詢B的身份服務(wù),身份鏈返回的該子鏈B對(duì)外提供的網(wǎng)絡(luò)服務(wù)地址,即查詢與更新API。
APP通過子鏈B的服務(wù)地址,發(fā)起對(duì)個(gè)人A的數(shù)據(jù)查詢或更新操作,由子鏈B審核操作權(quán)限并執(zhí)行。
跨鏈通信
水平擴(kuò)展一直是區(qū)塊鏈面臨的重要難題,騰訊云區(qū)塊鏈創(chuàng)新的分層互聯(lián)技術(shù),支持上層構(gòu)建任意多的應(yīng)用子鏈,通過底層身份鏈作為連接各應(yīng)用子鏈的紐帶,解決不同應(yīng)用子鏈之間的身份互信、數(shù)據(jù)授權(quán)的問題,同時(shí)基于身份鏈構(gòu)建的跨鏈互聯(lián)技術(shù)具備了很高的可擴(kuò)展性。跨鏈通信分為跨鏈查詢與跨鏈互操作。
跨鏈查詢
跨鏈查詢即查詢鏈外的數(shù)據(jù),鏈外數(shù)據(jù)可以是外部的HTTP接口(區(qū)塊鏈預(yù)言機(jī)),也可以是其他平行子鏈的API。由于區(qū)塊鏈智能合約本身不適合直接范圍外部數(shù)據(jù),騰訊云區(qū)塊鏈通過在節(jié)點(diǎn)中實(shí)現(xiàn)一個(gè)預(yù)言機(jī)模塊,統(tǒng)一代理所有智能合約進(jìn)行鏈外訪問,數(shù)據(jù)處理流程如圖3.1所示:
應(yīng)用調(diào)用智能合約,查詢外部數(shù)據(jù)的指令被分發(fā)到預(yù)言機(jī)
預(yù)言機(jī)代理合約去外部服務(wù)查詢數(shù)據(jù)
預(yù)言機(jī)將查詢到的外部數(shù)據(jù)返回給智能合約。
智能合約直接采用外部數(shù)據(jù)進(jìn)行下一步處理,并將最終結(jié)果寫入狀態(tài)數(shù)據(jù)庫。
智能合約處理的最終結(jié)果,與預(yù)言機(jī)獲取的鏈外數(shù)據(jù)一起被寫入?yún)^(qū)塊。
跨鏈互操作
跨鏈互操作意味著一筆交易要同時(shí)修改多個(gè)區(qū)塊鏈上的數(shù)據(jù),相對(duì)于跨鏈查詢更加復(fù)雜,主要體現(xiàn)在如何保證多個(gè)不同應(yīng)用子鏈之間的操作一致性,同時(shí)還要避免有中心化的環(huán)節(jié)。
騰訊云區(qū)塊鏈采用一種去中心化的兩階段提交方式實(shí)現(xiàn)跨鏈互操作,從事務(wù)鏈中選取多個(gè)節(jié)點(diǎn)作為公證人集合,由公證人集合協(xié)調(diào)不同子鏈之間的互操作。為了保證跨鏈過程的可驗(yàn)證性,公證人集合與子鏈之間需要互相驗(yàn)證:
公證人集合事先約定提案策略,并將提案策略寫入事務(wù)鏈,提案策略規(guī)定有效的提案需要滿足什么樣的公證人簽名組合。跨鏈過程中,子鏈驗(yàn)證的公證人集合的提案簽名集是否滿足約定的提案策略。
子鏈的元信息預(yù)先公開在事務(wù)鏈上,如子鏈的共識(shí)機(jī)制,共識(shí)節(jié)點(diǎn)集合等。跨鏈過程中,公證人驗(yàn)證子鏈的區(qū)塊與交易提交憑證是否滿足子鏈提交條件。
跨鏈互聯(lián):區(qū)塊鏈應(yīng)用場(chǎng)景新突破
騰訊云區(qū)塊鏈作為一個(gè)高可擴(kuò)展性的多鏈平臺(tái),解決了隱私安全保護(hù)、性能和可擴(kuò)展性瓶頸,適用于跨業(yè)務(wù)、跨部門協(xié)作的多鏈互通的場(chǎng)景,打通產(chǎn)業(yè)互聯(lián)、萬物互聯(lián)最后一公里。一般而言,這些領(lǐng)域面臨一些共同的痛點(diǎn),包括比如各機(jī)構(gòu)之間具有相對(duì)獨(dú)立、業(yè)務(wù)各異的區(qū)塊鏈,如果缺乏統(tǒng)一可驗(yàn)證的身份系統(tǒng)機(jī)制,會(huì)面臨區(qū)塊鏈之間難以形成安全有效的信息協(xié)作機(jī)制……隨著業(yè)務(wù)規(guī)模的不斷擴(kuò)展,痛點(diǎn)將越加明顯。一套支持平行多鏈并跨鏈互通的區(qū)塊鏈平臺(tái)可有效幫助解決以上痛點(diǎn)。
基于騰訊云區(qū)塊鏈,企業(yè)機(jī)構(gòu)可按業(yè)務(wù)、地域等不同的劃分方式組建多個(gè)平行的區(qū)塊鏈應(yīng)用,并基于騰訊云區(qū)塊鏈規(guī)范化的應(yīng)用層API與統(tǒng)一的身份系統(tǒng),實(shí)現(xiàn)安全且靈活的跨區(qū)塊鏈的信息協(xié)作,以對(duì)外提供統(tǒng)一的區(qū)塊鏈服務(wù)。例如:
政務(wù)民生領(lǐng)域,可使用全局可驗(yàn)證的公民身份驗(yàn)證機(jī)制進(jìn)行授權(quán),打通跨地域、跨部門的信息壁壘,提供可信數(shù)字憑證。基于算法安全保護(hù)能力,公民可以使用其身份私鑰進(jìn)行簽名,以授權(quán)機(jī)構(gòu)A查詢其在機(jī)構(gòu)B上托管的數(shù)據(jù);機(jī)構(gòu)也可以根據(jù)公民提供的數(shù)字化授權(quán)信息,開放公民數(shù)據(jù)給指定機(jī)構(gòu)進(jìn)行處理,公民和機(jī)構(gòu)都有全局范圍內(nèi)可驗(yàn)證的身份與可審查的操作記錄,既可減少公民跑腿辦證明的次數(shù),也消除了機(jī)構(gòu)共享其數(shù)據(jù)的安全顧慮。
教育領(lǐng)域中,面向“學(xué)籍、學(xué)歷、證照、檔案、考試、錄取、資助”等的管理與服務(wù)相關(guān)的教育應(yīng)用,需要伴隨著學(xué)生的升學(xué)、轉(zhuǎn)學(xué)實(shí)現(xiàn)跨部門、跨業(yè)務(wù)、跨區(qū)域的數(shù)據(jù)流轉(zhuǎn),是一個(gè)典型的“分區(qū)間建鏈,全范圍跨鏈”的區(qū)塊鏈應(yīng)用場(chǎng)景。過去,沒有統(tǒng)一可信的教育數(shù)字身份,大大增加了業(yè)務(wù)應(yīng)用鏈的服務(wù)成本:首先,同一用戶在不同的業(yè)務(wù)下,呈現(xiàn)多種賬戶及密碼,管理難度大;其次,業(yè)務(wù)平臺(tái)或用戶需要承擔(dān)更多的發(fā)放用戶證書的經(jīng)濟(jì)成本,造成重復(fù)投資;三是不利于開展業(yè)務(wù)數(shù)據(jù)跨鏈共享,實(shí)現(xiàn)跨鏈共享首先要解決不同鏈的用戶身份互認(rèn)。而依托可信教育數(shù)字身份鏈的身份共享體系建設(shè)跨鏈身份節(jié)點(diǎn),則成為最方便、最經(jīng)濟(jì)、最高效的解決方案。
醫(yī)療領(lǐng)域,可基于跨鏈協(xié)作共建安全高效的醫(yī)聯(lián)體,提升就診、醫(yī)療保險(xiǎn)管理等效率。騰訊云區(qū)塊鏈與某保險(xiǎn)公司的合作,一方面打通了醫(yī)療、保險(xiǎn)以及監(jiān)管等各個(gè)環(huán)節(jié)信息共享和流通,另一方面通過智能合約來實(shí)現(xiàn)保險(xiǎn)業(yè)務(wù)智能化管理,實(shí)現(xiàn)自核保和快速理賠的目標(biāo)。而隨著區(qū)塊鏈協(xié)作的逐漸深入,不同醫(yī)療平行子鏈之間連通的需求越來越強(qiáng)烈。因?yàn)?#xff0c;分布在全國各地的醫(yī)療機(jī)構(gòu)在使用區(qū)塊鏈技術(shù)時(shí)通常以聯(lián)盟鏈的形式開展,由于區(qū)域、業(yè)務(wù)上的分散性導(dǎo)致市面上形成多個(gè)由聯(lián)盟鏈串聯(lián)起來的醫(yī)聯(lián)體,雖然醫(yī)聯(lián)體內(nèi)部可以小范圍的數(shù)據(jù)互通,但在醫(yī)聯(lián)體之間仍然難以產(chǎn)生交集。一套跨鏈互聯(lián)的機(jī)制可幫助分散的醫(yī)聯(lián)體、子鏈整合成統(tǒng)一的醫(yī)聯(lián)體區(qū)塊鏈服務(wù)。
版權(quán)保護(hù)領(lǐng)域,區(qū)塊鏈技術(shù)可以在內(nèi)容原創(chuàng)保護(hù)領(lǐng)域發(fā)揮關(guān)鍵作用。針對(duì)內(nèi)容創(chuàng)作領(lǐng)域的侵權(quán)行為,業(yè)界一直存在確權(quán)難、取證難、維權(quán)難三大難題。騰訊在2019年聯(lián)合中國電子科技網(wǎng)絡(luò)信息安全有限公司、北明軟件有限公司共同推出司法區(qū)塊鏈應(yīng)用生態(tài)服務(wù)平臺(tái)“至信鏈”,該平臺(tái)的推出為版權(quán)保護(hù)、金融存證、金融類型化案件快速裁決、區(qū)塊鏈智能合同等場(chǎng)景帶來突破。隨著區(qū)塊鏈在司法存證領(lǐng)域的普及深入,不同司法存證、互聯(lián)網(wǎng)平臺(tái)著作等之間的數(shù)據(jù)如何實(shí)現(xiàn)互通互信,將是未來司法區(qū)塊鏈解決取證難、維權(quán)難,實(shí)現(xiàn)規(guī)模化應(yīng)用的關(guān)鍵所在。騰訊云區(qū)塊鏈跨鏈協(xié)作機(jī)制可實(shí)現(xiàn)跨區(qū)塊鏈的版權(quán)認(rèn)證、授權(quán)、轉(zhuǎn)讓、質(zhì)押等,并且全局可驗(yàn)證的身份系統(tǒng)可以實(shí)現(xiàn)相關(guān)信息留痕,便于后續(xù)信息的跨鏈溯源。
總結(jié)
以上是生活随笔為你收集整理的腾讯如何打造新基建时代高可扩展的区块链引擎的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTTP/3 原理实战
- 下一篇: 这才是真正的 Git——分支合并