登录新浪财经APP 搜索【信披】查看更多考评等级
◇ 作者:中债金科信息技术有限公司孙爽唐华云贾晨
◇ 本文原载《债券》2024年10月刊
摘 要
本文针对区块链性能瓶颈造成区块链数字债券服务开销大、效率低的问题,研究链上链下协同技术,提出面向区块链数字债券应用的链上链下协同方案。首先构建链上链下协同的区块链数字债券系统模型,基于模型对债券发行、登记托管、交易结算和存续期业务进行梳理,分析具体的业务场景中传统应用系统与区块链底层平台的数据交互和协同处理需求;其次研究主流的链上链下协同关键技术和应用系统;最后提出面向区块链数字债券应用的链上链下协同方案,并在簿记建档发行业务中完成对方案的落地实践。
关键词
区块链数字债券链上链下协同
引言
区块链的性能问题一直被研究人员广泛讨论。一方面,共识机制本身需要大量的消息传递和一致性校验,占用大量通信和计算资源;另一方面,账本副本存储对节点的数据空间消耗非常大。在国家区块链创新应用试点项目落地过程中,如何减少区块链数字债券应用系统的存储、网络和计算资源消耗,为客户提供高效灵敏的债券服务,是开发组最重视的问题之一。
为增加应用规模,提升区块链效率,降低节点存储压力,研究人员陆续探索各类单链扩展技术,如共识算法优化、数据分片等,但是单链的优化理论难以同时满足海量文件存储、复杂计算逻辑和强安全的应用需求。在此背景下,工程领域提出链上链下协同的技术概念:链上(On-chain)为发生在区块链网络中的活动,如交易、共识、智能合约执行;链下(Off-chain)为发生在区块链外的活动,如业务逻辑处理、数据存储;协同则是指通过数据的交互和协作处理,实现链上链下能效互补,完成资源的最优调配。中国工程院院士陈纯认为,在区块链技术全面应用于各行业领域的今天,链上链下协同技术将成为区块链技术未来几年的重点研究方向和支撑区块链架构落地的重要方法。
设计链上链下协同的区块链应用系统,关键在于对具体的业务流程进行分拆,将核心的多方协作业务放在链上完成,其他的非全局性的、不需要多方共识、体量大的数据和计算还是依托传统系统处理、传输和存储。这样可以在不需要改变原有数据结构和管理模式的前提下,缓解区块链的计算、通信和存储压力。Mor R S等(2020)提出利用区块链改造“旧系统”的思想,实现分布式的算力合并;王茜等(2023)针对政务材料分布式存储系统,设计链上链下协同的文件存储技术体系,利用区块链实现部门间的材料可信共享,提升区块链海量数据处理能力。
然而,区块链外的数据通常会实时更新,网络延迟容易造成每个智能合约执行节点获取的数据有差别,导致最终执行结果不一致。为解决上述问题,研究人员尝试将预言机、可信执行环境、零知识证明等技术应用到链上链下协同的数据交互流程中,确保输入合约参数和上链信息的可信性。按照实际业务类型,链上链下协同的系统分为文件存储、数据处理和可信计算三类。
本文首先介绍链上链下协同的区块链数字债券系统模型的构建,并基于该模型对债券发行、登记托管、交易结算和存续期业务进行梳理,在具体的业务场景中分析传统应用系统与区块链底层平台的数据交互和协同处理需求;其次研究主流的链上链下协同关键技术和应用系统;最后提出面向区块链数字债券应用的链上链下协同方案,在簿记建档发行业务中完成对方案的落地实践。
链上链下协同的区块链数字债券系统模型
链上链下协同的区块链数字债券系统模型如图1所示,中间虚线分割了区块链底层平台和传统的债券业务系统,平台和系统间的数据交互由智能合约实现。传统应用系统负责逻辑校验、文件存储、复杂计算,区块链底层平台负责存储关键的过程数据,保证服务的可信性。
针对链上链下协同的区块链数字债券系统模型,本文从对接的传统应用系统、交互数据和协同处理三个方面,分析在债券发行、登记托管、交易结算、存续期业务中区块链底层平台与传统应用系统的协同需求。
如表1所示,传统应用系统包括债券信息自助披露系统、中国债券信息网、生产系统、支付系统、数字支付系统、传统登记系统、中债综合业务系统、交易前台和金融机构系统。交互数据包括募集文件、发行结果文件、发行人的信息披露文件、发行定价相关材料、分销缴款到账确认书和各种指令。按传统应用系统中处理的指令,协同处理分为审核和校验两类。对体量较大的文件类数据,只在区块链底层平台中存证,对体量不大的指令类数据,可在区块链底层平台中存储原文。
关键技术
(一)预言机(Oracle)
区块链作为基于共识的分布式网络,只支持确定性的虚拟机,这限制区块链不能主动地获取外部数据,特别是更新频率高的互联网数据。预言机是连接区块链和外部数据的第三方服务,负责验证数据的真实性和完整性,从而为智能合约提供可信的输入参数。按照预言机部署方式划分,可分为中心化预言机和分布式预言机两类。中心化预言机通常使用可信执行环境证明数据的可信性,分布式预言机主要基于投票策略和声誉模型来确保数据的真实和完整。当前主流的预言机项目众多,中心化预言机(Provable)、可验证数据供给系统(Town Crier)是一种中心化的预言机服务,基于可信执行环境(Trust Execution Environment,TEE)构建信任机制;去中心化的预言机网络(ChainLink)是分布式预言机服务,具有极高的兼容性,所有配置的预言机网络都可以同时并行;联盟链可信预言机(Truora)是面向联盟链的开源预言机方案,支持中心化和非中心化两种模式。
(二)可信执行环境
可信执行环境是芯片厂商在中央处理器(CPU)内核里嵌入一块安全空间,同时引入监督(Moniter)机制支持CPU在安全模式和普通模式间切换,分时处理各系统传输的请求。为了保证数据在总线上的传输安全,在产生数据时,会为在安全模式中处理的数据添加安全标记,并规定普通模式下的核心线程1只能访问非安全的数据资源。在金融领域,2017年12月,中国人民银行发布了《移动终端支付可信环境技术规范》,规定了移动终端支付领域的可信环境的整体框架、可信执行环境、通信安全、数据安全、客户端支付应用等主要内容。
(三)零知识证明(ZKP)
零知识证明是现代密码学的基本理论之一,其核心思想是证明者在不透露任何信息的情况下,让验证者相信某个证明的真实性,这种模式既支持信息接收方判断的基本权力,也不会泄露信息本身内容。随着算法效率的提高,零知识证明在区块链领域得到了充分的应用,改进了区块链的弱隐私的缺陷,使得区块链的技术先进性越发显著。
链上链下协同的应用系统
根据处理业务类型的不同,可将链上链下协同的系统分为链上链下协同的文件存储系统、链上链下协同的数据处理系统和链上链下协同的可信计算系统三大类。
(一)链上链下协同的文件存储系统
文件一般指图像、视频、文本等数据类型,上传到区块链可以保证文件在共享过程中没有被篡改,但由于文件数据的体量较大、访问频率高,会增加区块链的存储开销,如信息披露文件。链上链下协同的文件系统充分结合文件共享的局部、点对点特性,将文件存储在服务器、星际文件系统(IPFS)等专业海量文件存储设备中,然后将文件的哈希计算结果2、文件拥有者签名、文件检索路径(URL)上传到区块链。当用户访问某个文件时,首先需要根据检索值,获取对应文件的哈希值1和检索路径,其次根据检索路径获得文件,并验证文件的签名、计算获取的文件的哈希值2,最后对比哈希值1和哈希值2是否相等,以此判断文件的真实性和完整性。
(二)链上链下协同的数据处理系统
由于区块链的分布式特性,复杂的处理逻辑并不适合以智能合约的形式实现,如加解密算法、配售计算。链上链下协同的数据处理系统,则是把重要且需核心控制的业务逻辑拆解到链下中心服务器中执行,在完成处理后,中心服务器把执行结果和结果签名以键值对(key-value)的形式存储在区块链账本上。当用户访问某个处理结果时,首先根据检索值查询到结果和结果签名,然后验证签名,通过中心服务器的可信性,判断执行结果是否真实。若对中心服务器产生疑问,可自行执行复杂逻辑处理,验证结果的真实性。
(三)链上链下协同的可信计算系统
链上链下协同的可信计算系统是针对可信性要求较高的密集计算,引入相应的可信执行环境、零知识证明技术支持区块链用户验证链上计算结果的正确性。具体而言,链下计算在可信执行环境中完成,并对计算结果生成相应的零知识证明,执行完相应计算后,可信执行环境把计算结果和证明以键值对的形式存储在区块链账本上。当用户访问某个计算结果时,首先根据检索值查询到结果和零知识证明,然后验证判断计算结果是否正确。
面向数字债券应用的链上链下协同方案
面向数字债券应用的链上链下协同方案架构如图2所示,由统一客户框架(Unified Capacity Framwork,UCF)、应用后端、区块链前端、区块链后端组成。此架构中,我们把UCF端、应用后端划分为“链下”应用系统,区块链端的组件共同构成底层区块链平台。
指令处理流程是自顶向下的。UCF端接收用户的请求,并把请求发送到应用后端,应用后端对请求进行处理后在应用数据中存储相关数据。如果设计与区块链的数据交互,则应用后端继续转发处理结果到区块链前置软件开发工具包(Software Development Kit,SDK),SDK调用对应的智能合约完成区块链数据读写。
在实践中,中央结算公司依托国家区块链创新应用试点项目,考虑应用链上链下协同技术,将区块链簿记建档发行系统中的信息披露文件存储、配售计算、加密处理业务分别迁移到“链下”完成。
(一)信息披露文件服务
信息披露文件服务旨在实现链上链下协同的信息披露文件存储和共享。通过区块链底层平台连接债券信息自助披露系统和中国债券信息网,完成平台和应用系统间的文件可信传输。如图3所示,基于链上链下协同的文件存储系统设计思路,UCF客户端把收到的信息披露文件发送给债券信息自助披露系统后端进行审核,系统后端将审核通过的文件存储到应用数据库,同时转发给区块链前置SDK,区块链前置SDK计算信息披露文件的摘要,并调用信披文件存证上链智能合约,把哈希结果存储到区块链账本。区块链前置SDK采用事件监听机制,将成功上链的信息披露文件推送到中国债券信息网。
(二)配售计算服务
配售计算服务旨在实现链上链下协同的配售处理和存储,支持区块链底层平台和簿记建档发行应用系统间的数据处理。如图4所示,基于链上链下协同的数据处理系统的设计思路,UCF中心端把配售计算指令发送给簿记建档发行系统后端,系统后端检索应用数据库中的申购明细完成配售处理,并将配售结果转发给区块链前置SDK,区块链前置SDK调用配售结果存储上链智能合约,把配售明细存储到区块链账本中。
(三)密码算法服务
密码算法服务旨在实现链上链下协同的敏感债券业务数据加密存储和共享,支持区块链底层平台和应用系统间的数据可信计算。如图5所示,基于链上链下协同的可信计算系统的设计思路,UCF端把敏感债券业务数据发送给应用系统后端,应用系统后端校验业务数据的合法性,把合法的数据传递给区块链前置SDK,区块链前置SDK加密相关数据字段,并调用数据密文存储上链智能合约,把数据密文存储到区块链账本中。
注:
1.核心线程是指CPU的核心数量和线程数。
2.哈希就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是哈希计算结果。
参考文献
[1] 陈纯. 区块链与工业互联网可深度融合[J]. 当代县域经济,2019(12).
[2] 孙舟,祝秀山,刘祥路,等. 基于门限签名的分布式预言机链下共识方案[J]. 计算机工程与设计,2023,44(1).
[3] 王茜,朱俊伟,张晓东. 链上链下数据协同下的政务材料共享设计实现[J].计算机工程与应用,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).