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