摘要:本文針對區(qū)塊鏈性能瓶頸造成區(qū)塊鏈數(shù)字債券服務(wù)開銷大、效率低的問題,研究鏈上鏈下協(xié)同技術(shù),提出面向區(qū)塊鏈數(shù)字債券應(yīng)用的鏈上鏈下協(xié)同方案。首先構(gòu)建鏈上鏈下協(xié)同的區(qū)塊鏈數(shù)字債券系統(tǒng)模型,基于模型對債券發(fā)行、登記托管、交易結(jié)算和存續(xù)期業(yè)務(wù)進行梳理,分析具體的業(yè)務(wù)場景中傳統(tǒng)應(yīng)用系統(tǒng)與區(qū)塊鏈底層平臺的數(shù)據(jù)交互和協(xié)同處理需求;其次研究主流的鏈上鏈下協(xié)同關(guān)鍵技術(shù)和應(yīng)用系統(tǒng);最后提出面向區(qū)塊鏈數(shù)字債券應(yīng)用的鏈上鏈下協(xié)同方案,并在簿記建檔發(fā)行業(yè)務(wù)中完成對方案的落地實踐。
關(guān)鍵詞:區(qū)塊鏈 數(shù)字債券 鏈上鏈下協(xié)同
引言
區(qū)塊鏈的性能問題一直被研究人員廣泛討論。一方面,共識機制本身需要大量的消息傳遞和一致性校驗,占用大量通信和計算資源;另一方面,賬本副本存儲對節(jié)點的數(shù)據(jù)空間消耗非常大。在國家區(qū)塊鏈創(chuàng)新應(yīng)用試點項目落地過程中,如何減少區(qū)塊鏈數(shù)字債券應(yīng)用系統(tǒng)的存儲、網(wǎng)絡(luò)和計算資源消耗,為客戶提供高效靈敏的債券服務(wù),是開發(fā)組最重視的問題之一。
為增加應(yīng)用規(guī)模,提升區(qū)塊鏈效率,降低節(jié)點存儲壓力,研究人員陸續(xù)探索各類單鏈擴展技術(shù),如共識算法優(yōu)化、數(shù)據(jù)分片等,但是單鏈的優(yōu)化理論難以同時滿足海量文件存儲、復雜計算邏輯和強安全的應(yīng)用需求。在此背景下,工程領(lǐng)域提出鏈上鏈下協(xié)同的技術(shù)概念:鏈上(On-chain)為發(fā)生在區(qū)塊鏈網(wǎng)絡(luò)中的活動,如交易、共識、智能合約執(zhí)行;鏈下(Off-chain)為發(fā)生在區(qū)塊鏈外的活動,如業(yè)務(wù)邏輯處理、數(shù)據(jù)存儲;協(xié)同則是指通過數(shù)據(jù)的交互和協(xié)作處理,實現(xiàn)鏈上鏈下能效互補,完成資源的最優(yōu)調(diào)配。中國工程院院士陳純認為,在區(qū)塊鏈技術(shù)全面應(yīng)用于各行業(yè)領(lǐng)域的今天,鏈上鏈下協(xié)同技術(shù)將成為區(qū)塊鏈技術(shù)未來幾年的重點研究方向和支撐區(qū)塊鏈架構(gòu)落地的重要方法。
設(shè)計鏈上鏈下協(xié)同的區(qū)塊鏈應(yīng)用系統(tǒng),關(guān)鍵在于對具體的業(yè)務(wù)流程進行分拆,將核心的多方協(xié)作業(yè)務(wù)放在鏈上完成,其他的非全局性的、不需要多方共識、體量大的數(shù)據(jù)和計算還是依托傳統(tǒng)系統(tǒng)處理、傳輸和存儲。這樣可以在不需要改變原有數(shù)據(jù)結(jié)構(gòu)和管理模式的前提下,緩解區(qū)塊鏈的計算、通信和存儲壓力。Mor R S等(2020)提出利用區(qū)塊鏈改造“舊系統(tǒng)”的思想,實現(xiàn)分布式的算力合并;王茜等(2023)針對政務(wù)材料分布式存儲系統(tǒng),設(shè)計鏈上鏈下協(xié)同的文件存儲技術(shù)體系,利用區(qū)塊鏈實現(xiàn)部門間的材料可信共享,提升區(qū)塊鏈海量數(shù)據(jù)處理能力。
然而,區(qū)塊鏈外的數(shù)據(jù)通常會實時更新,網(wǎng)絡(luò)延遲容易造成每個智能合約執(zhí)行節(jié)點獲取的數(shù)據(jù)有差別,導致最終執(zhí)行結(jié)果不一致。為解決上述問題,研究人員嘗試將預言機、可信執(zhí)行環(huán)境、零知識證明等技術(shù)應(yīng)用到鏈上鏈下協(xié)同的數(shù)據(jù)交互流程中,確保輸入合約參數(shù)和上鏈信息的可信性。按照實際業(yè)務(wù)類型,鏈上鏈下協(xié)同的系統(tǒng)分為文件存儲、數(shù)據(jù)處理和可信計算三類。
本文首先介紹鏈上鏈下協(xié)同的區(qū)塊鏈數(shù)字債券系統(tǒng)模型的構(gòu)建,并基于該模型對債券發(fā)行、登記托管、交易結(jié)算和存續(xù)期業(yè)務(wù)進行梳理,在具體的業(yè)務(wù)場景中分析傳統(tǒng)應(yīng)用系統(tǒng)與區(qū)塊鏈底層平臺的數(shù)據(jù)交互和協(xié)同處理需求;其次研究主流的鏈上鏈下協(xié)同關(guān)鍵技術(shù)和應(yīng)用系統(tǒng);最后提出面向區(qū)塊鏈數(shù)字債券應(yīng)用的鏈上鏈下協(xié)同方案,在簿記建檔發(fā)行業(yè)務(wù)中完成對方案的落地實踐。
鏈上鏈下協(xié)同的區(qū)塊鏈數(shù)字債券系統(tǒng)模型
鏈上鏈下協(xié)同的區(qū)塊鏈數(shù)字債券系統(tǒng)模型如圖1所示,中間虛線分割了區(qū)塊鏈底層平臺和傳統(tǒng)的債券業(yè)務(wù)系統(tǒng),平臺和系統(tǒng)間的數(shù)據(jù)交互由智能合約實現(xiàn)。傳統(tǒng)應(yīng)用系統(tǒng)負責邏輯校驗、文件存儲、復雜計算,區(qū)塊鏈底層平臺負責存儲關(guān)鍵的過程數(shù)據(jù),保證服務(wù)的可信性。
針對鏈上鏈下協(xié)同的區(qū)塊鏈數(shù)字債券系統(tǒng)模型,本文從對接的傳統(tǒng)應(yīng)用系統(tǒng)、交互數(shù)據(jù)和協(xié)同處理三個方面,分析在債券發(fā)行、登記托管、交易結(jié)算、存續(xù)期業(yè)務(wù)中區(qū)塊鏈底層平臺與傳統(tǒng)應(yīng)用系統(tǒng)的協(xié)同需求。
如表1所示,傳統(tǒng)應(yīng)用系統(tǒng)包括債券信息自助披露系統(tǒng)、中國債券信息網(wǎng)、生產(chǎn)系統(tǒng)、支付系統(tǒng)、數(shù)字支付系統(tǒng)、傳統(tǒng)登記系統(tǒng)、中債綜合業(yè)務(wù)系統(tǒng)、交易前臺和金融機構(gòu)系統(tǒng)。交互數(shù)據(jù)包括募集文件、發(fā)行結(jié)果文件、發(fā)行人的信息披露文件、發(fā)行定價相關(guān)材料、分銷繳款到賬確認書和各種指令。按傳統(tǒng)應(yīng)用系統(tǒng)中處理的指令,協(xié)同處理分為審核和校驗兩類。對體量較大的文件類數(shù)據(jù),只在區(qū)塊鏈底層平臺中存證,對體量不大的指令類數(shù)據(jù),可在區(qū)塊鏈底層平臺中存儲原文。
關(guān)鍵技術(shù)
(一)預言機(Oracle)
區(qū)塊鏈作為基于共識的分布式網(wǎng)絡(luò),只支持確定性的虛擬機,這限制區(qū)塊鏈不能主動地獲取外部數(shù)據(jù),特別是更新頻率高的互聯(lián)網(wǎng)數(shù)據(jù)。預言機是連接區(qū)塊鏈和外部數(shù)據(jù)的第三方服務(wù),負責驗證數(shù)據(jù)的真實性和完整性,從而為智能合約提供可信的輸入?yún)?shù)。按照預言機部署方式劃分,可分為中心化預言機和分布式預言機兩類。中心化預言機通常使用可信執(zhí)行環(huán)境證明數(shù)據(jù)的可信性,分布式預言機主要基于投票策略和聲譽模型來確保數(shù)據(jù)的真實和完整。當前主流的預言機項目眾多,中心化預言機(Provable)、可驗證數(shù)據(jù)供給系統(tǒng)(Town Crier)是一種中心化的預言機服務(wù),基于可信執(zhí)行環(huán)境(Trust Execution Environment,TEE)構(gòu)建信任機制;去中心化的預言機網(wǎng)絡(luò)(ChainLink)是分布式預言機服務(wù),具有極高的兼容性,所有配置的預言機網(wǎng)絡(luò)都可以同時并行;聯(lián)盟鏈可信預言機(Truora)是面向聯(lián)盟鏈的開源預言機方案,支持中心化和非中心化兩種模式。
(二)可信執(zhí)行環(huán)境
可信執(zhí)行環(huán)境是芯片廠商在中央處理器(CPU)內(nèi)核里嵌入一塊安全空間,同時引入監(jiān)督(Moniter)機制支持CPU在安全模式和普通模式間切換,分時處理各系統(tǒng)傳輸?shù)恼埱?。為了保證數(shù)據(jù)在總線上的傳輸安全,在產(chǎn)生數(shù)據(jù)時,會為在安全模式中處理的數(shù)據(jù)添加安全標記,并規(guī)定普通模式下的核心線程1只能訪問非安全的數(shù)據(jù)資源。在金融領(lǐng)域,2017年12月,中國人民銀行發(fā)布了《移動終端支付可信環(huán)境技術(shù)規(guī)范》,規(guī)定了移動終端支付領(lǐng)域可信環(huán)境的整體框架、可信執(zhí)行環(huán)境、通信安全、數(shù)據(jù)安全、客戶端支付應(yīng)用等主要內(nèi)容。
(三)零知識證明(ZKP)
零知識證明是現(xiàn)代密碼學的基本理論之一,其核心思想是證明者在不透露任何信息的情況下,讓驗證者相信某個證明的真實性,這種模式既支持信息接收方判斷的基本權(quán)力,也不會泄露信息本身內(nèi)容。隨著算法效率的提高,零知識證明在區(qū)塊鏈領(lǐng)域得到了充分的應(yīng)用,改進了區(qū)塊鏈的弱隱私的缺陷,使得區(qū)塊鏈的技術(shù)先進性越發(fā)顯著。
鏈上鏈下協(xié)同的應(yīng)用系統(tǒng)
根據(jù)處理業(yè)務(wù)類型的不同,可將鏈上鏈下協(xié)同的系統(tǒng)分為鏈上鏈下協(xié)同的文件存儲系統(tǒng)、鏈上鏈下協(xié)同的數(shù)據(jù)處理系統(tǒng)和鏈上鏈下協(xié)同的可信計算系統(tǒng)三大類。
(一)鏈上鏈下協(xié)同的文件存儲系統(tǒng)
文件一般指圖像、視頻、文本等數(shù)據(jù)類型,上傳到區(qū)塊鏈可以保證文件在共享過程中沒有被篡改,但由于文件數(shù)據(jù)的體量較大、訪問頻率高,會增加區(qū)塊鏈的存儲開銷,如信息披露文件。鏈上鏈下協(xié)同的文件系統(tǒng)充分結(jié)合文件共享的局部、點對點特性,將文件存儲在服務(wù)器、星際文件系統(tǒng)(IPFS)等專業(yè)海量文件存儲設(shè)備中,然后將文件的哈希計算結(jié)果2、文件擁有者簽名、文件檢索路徑(URL)上傳到區(qū)塊鏈。當用戶訪問某個文件時,首先需要根據(jù)檢索值,獲取對應(yīng)文件的哈希值1和檢索路徑,其次根據(jù)檢索路徑獲得文件,并驗證文件的簽名、計算獲取的文件的哈希值2,最后對比哈希值1和哈希值2是否相等,以此判斷文件的真實性和完整性。
(二)鏈上鏈下協(xié)同的數(shù)據(jù)處理系統(tǒng)
由于區(qū)塊鏈的分布式特性,復雜的處理邏輯并不適合以智能合約的形式實現(xiàn),如加解密算法、配售計算。鏈上鏈下協(xié)同的數(shù)據(jù)處理系統(tǒng),則是把重要且需核心控制的業(yè)務(wù)邏輯拆解到鏈下中心服務(wù)器中執(zhí)行,在完成處理后,中心服務(wù)器把執(zhí)行結(jié)果和結(jié)果簽名以鍵值對(key-value)的形式存儲在區(qū)塊鏈賬本上。當用戶訪問某個處理結(jié)果時,首先根據(jù)檢索值查詢到結(jié)果和結(jié)果簽名,然后驗證簽名,通過中心服務(wù)器的可信性,判斷執(zhí)行結(jié)果是否真實。若對中心服務(wù)器產(chǎn)生疑問,可自行執(zhí)行復雜邏輯處理,驗證結(jié)果的真實性。
(三)鏈上鏈下協(xié)同的可信計算系統(tǒng)
鏈上鏈下協(xié)同的可信計算系統(tǒng)是針對可信性要求較高的密集計算,引入相應(yīng)的可信執(zhí)行環(huán)境、零知識證明技術(shù)支持區(qū)塊鏈用戶驗證鏈上計算結(jié)果的正確性。具體而言,鏈下計算在可信執(zhí)行環(huán)境中完成,并對計算結(jié)果生成相應(yīng)的零知識證明,執(zhí)行完相應(yīng)計算后,可信執(zhí)行環(huán)境把計算結(jié)果和證明以鍵值對的形式存儲在區(qū)塊鏈賬本上。當用戶訪問某個計算結(jié)果時,首先根據(jù)檢索值查詢到結(jié)果和零知識證明,然后驗證判斷計算結(jié)果是否正確。
面向數(shù)字債券應(yīng)用的鏈上鏈下協(xié)同方案
面向數(shù)字債券應(yīng)用的鏈上鏈下協(xié)同方案架構(gòu)如圖2所示,由統(tǒng)一客戶框架(Unified Capacity Framework,UCF)、應(yīng)用后端、區(qū)塊鏈前端、區(qū)塊鏈后端組成。此架構(gòu)中,我們把UCF端、應(yīng)用后端劃分為“鏈下”應(yīng)用系統(tǒng),區(qū)塊鏈端的組件共同構(gòu)成底層區(qū)塊鏈平臺。
指令處理流程是自頂向下的。UCF端接收用戶的請求,并把請求發(fā)送到應(yīng)用后端,應(yīng)用后端對請求進行處理后在應(yīng)用數(shù)據(jù)中存儲相關(guān)數(shù)據(jù)。如果設(shè)計與區(qū)塊鏈的數(shù)據(jù)交互,則應(yīng)用后端繼續(xù)轉(zhuǎn)發(fā)處理結(jié)果到區(qū)塊鏈前置軟件開發(fā)工具包(Software Development Kit,SDK),SDK調(diào)用對應(yīng)的智能合約完成區(qū)塊鏈數(shù)據(jù)讀寫。
在實踐中,中央結(jié)算公司依托國家區(qū)塊鏈創(chuàng)新應(yīng)用試點項目,考慮應(yīng)用鏈上鏈下協(xié)同技術(shù),將區(qū)塊鏈簿記建檔發(fā)行系統(tǒng)中的信息披露文件存儲、配售計算、加密處理業(yè)務(wù)分別遷移到“鏈下”完成。
(一)信息披露文件服務(wù)
信息披露文件服務(wù)旨在實現(xiàn)鏈上鏈下協(xié)同的信息披露文件存儲和共享。通過區(qū)塊鏈底層平臺連接債券信息自助披露系統(tǒng)和中國債券信息網(wǎng),完成平臺和應(yīng)用系統(tǒng)間的文件可信傳輸。如圖3所示,基于鏈上鏈下協(xié)同的文件存儲系統(tǒng)設(shè)計思路,UCF客戶端把收到的信息披露文件發(fā)送給債券信息自助披露系統(tǒng)后端進行審核,系統(tǒng)后端將審核通過的文件存儲到應(yīng)用數(shù)據(jù)庫,同時轉(zhuǎn)發(fā)給區(qū)塊鏈前置SDK,區(qū)塊鏈前置SDK計算信息披露文件的摘要,并調(diào)用信披文件存證上鏈智能合約,把哈希結(jié)果存儲到區(qū)塊鏈賬本。區(qū)塊鏈前置SDK采用事件監(jiān)聽機制,將成功上鏈的信息披露文件推送到中國債券信息網(wǎng)。
(二)配售計算服務(wù)
配售計算服務(wù)旨在實現(xiàn)鏈上鏈下協(xié)同的配售處理和存儲,支持區(qū)塊鏈底層平臺和簿記建檔發(fā)行應(yīng)用系統(tǒng)間的數(shù)據(jù)處理。如圖4所示,基于鏈上鏈下協(xié)同的數(shù)據(jù)處理系統(tǒng)的設(shè)計思路,UCF中心端把配售計算指令發(fā)送給簿記建檔發(fā)行系統(tǒng)后端,系統(tǒng)后端檢索應(yīng)用數(shù)據(jù)庫中的申購明細完成配售處理,并將配售結(jié)果轉(zhuǎn)發(fā)給區(qū)塊鏈前置SDK,區(qū)塊鏈前置SDK調(diào)用配售結(jié)果存儲上鏈智能合約,把配售明細存儲到區(qū)塊鏈賬本中。
(三)密碼算法服務(wù)
密碼算法服務(wù)旨在實現(xiàn)鏈上鏈下協(xié)同的敏感債券業(yè)務(wù)數(shù)據(jù)加密存儲和共享,支持區(qū)塊鏈底層平臺和應(yīng)用系統(tǒng)間的數(shù)據(jù)可信計算。如圖5所示,基于鏈上鏈下協(xié)同的可信計算系統(tǒng)的設(shè)計思路,UCF端把敏感債券業(yè)務(wù)數(shù)據(jù)發(fā)送給應(yīng)用系統(tǒng)后端,應(yīng)用系統(tǒng)后端校驗業(yè)務(wù)數(shù)據(jù)的合法性,把合法的數(shù)據(jù)傳遞給區(qū)塊鏈前置SDK,區(qū)塊鏈前置SDK加密相關(guān)數(shù)據(jù)字段,并調(diào)用數(shù)據(jù)密文存儲上鏈智能合約,把數(shù)據(jù)密文存儲到區(qū)塊鏈賬本中。
參考文獻
[1]陳純. 區(qū)塊鏈與工業(yè)互聯(lián)網(wǎng)可深度融合[J]. 當代縣域經(jīng)濟,2019(12).
[2]孫舟,祝秀山,劉祥路,等. 基于門限簽名的分布式預言機鏈下共識方案[J]. 計算機工程與設(shè)計,2023,44(1).
[3]王茜,朱俊偉,張曉東. 鏈上鏈下數(shù)據(jù)協(xié)同下的政務(wù)材料共享設(shè)計實現(xiàn)[J].計算機工程與應(yīng)用,2023,59(20).
[4]張開翔. 一文說清“鏈上”和“鏈下”[EB/OL]. (2021-11-16)[2022-12-16]. https://mp.weixin.qq.com/s/iflK0orFkrv6mQtNyCYcMg.
[5] Mor R S, Bhardwaj A, Singh S, et al. Exploring the factors affecting supply chain performance in dairy industry using exploratory factor analysis technique[J]. International Journal of Industrial and Systems Engineering, 2020, 36(2).