发明内容
针对现有技术存在的问题,本发明提供了一种面向“链上链下结合文件区块链“的跨链方法及中间***。
本发明是这样实现的,一种面向“链上链下结合文件区块链“的跨链方法,所述面向“链上链下结合文件区块链“的跨链方法包括以下步骤:
步骤一,新链注册;
步骤二,发起跨链请求,进入链上信息跨链;
步骤三,公证人组验证协商,执行链上信息跨链,准备链下文件跨链;
步骤四,链下文件跨链;
步骤五,跨链结果反馈记录。
进一步,步骤一中,所述新链注册,包括:
新链在跨链前需要完成注册流程,让公证人中间***知道该链的存在和必要信息;新链在注册接入时,向公证人组提交注册信息;公证人组审核通过后,为新链生成对应身份证明、公私钥信息并记录。
其中,所述新链注册接入流程,包括:
(1)拟参与跨链的节点安装好终端代理,在注册接入流程初始阶段,新链向公证人组发出接入请求,所述注册接入请求,包括链下存储机制信息stored_information、新链从业证明Employment_certificate、用以注册的链上代理节点信息列表On-chainnodesList、用以注册的链下代理节点信息列表Off-chain nodesList。
(2)公证人组接收新链请求,并对请求内容进行验证;若验证通过,则:
①公证人组根据接入请求内容,选择出本次进行注册的链上代理节点、链下代理节点,并为新链和上述节点分配标识id、通讯公私钥对等身份信息;
②公证人组参考Off-chain nodesList内容信息,形成加密算法,传输协议协商集合;
③公证人组将上述生成的身份信息、协商集合内容放入请求应答包,返回给新链;
④注册者从协商集合中选择自己支持的协议,返回确认包,完成注册,此时双方对注册内容的协商已确认。
若验证不通过,则由公证人组返回审核不通过原因;注册者重新修改注册接入请求内容后,再次提交请求。
其中,所述链下存储机制信息stored_information,包括采用何种技术进行文件数据存储,即是IPFS分布式存储或其他数据库存储,前者类似公网,文件都在同一寻址空间,只需要传递文件HASH即可以移交文件;后者数据库类似私有网络,不互通,需要实际的链下文件跨链。
所述链上代理节点,是指位于区块链网络中的节点,区块中保存文件链下存储的关键信息,所述关键信息包括寻址HASH和索引号,并通过终端代理程序与其他跨链组件交互。
所述链下代理节点,是指文件区块链***无论是依靠IPFS分布式存储,还是其他数据库形式存储,都需要在注册阶段提供一个或多个代理节点,用于后续链下文件数据转移;该链下代理节点通过安装终端代理程序,能够与链下存储机制交互,完成文件数据上传、下载操作,并支持一定种类数量的文件加密算法、传输协议。
所述新链提交注册的链上代理节点信息列表On-chain nodesList包含链上代理节点的IP地址集。
所述新链提交注册的代理节点信息列表Off-chain nodesList内容格式为:
Off-chain nodesList{IP,Storage,Bandwidth,Encryption,Transport};
列表各字段含义如下:
IP表示代理节点IP地址;
Storage表示代理节点存储大小;
Bandwidth表示代理节点带宽;
Encryption表示代理节点支持的加密算法集合;
Transport表示代理节点支持的传输协议集合。
其中,所述加密算法,传输协议协商集合:在公证人组初始化时,根据文件跨链过程的加密、传输需求,选择出一系列可使用的加密算法、传输协议,并在公证人组中以一张候选表形式存储;在新链接入申请审核通过后,公证人组根据候选表,并参考Off-chainnodesList中Encryption、Transport字段,选择一部分加密算法、传输协议形成协商集合,用于与新链协商确定后续文件跨链所使用的加密算法、传输协议。
所述公证人组为新链生成对应身份证明,包括公证人组在审核通过上述新链提交的注册信息后,对所述注册信息进行签名,形成新链的数字证书;该数字证书用于跨链过程中,该链进行身份证明。
进一步,步骤二中,所述发起跨链请求,进入链上信息跨链,包括:
在新发起一次文件跨链时,发送方链上代理节点将区块中的文件链上信息提交给公证人组,并附加接收方标识、身份证明以及链下文件跨链期望在内的必要信息,作为文件跨链申请的主要内容。
所述跨链申请由文件链上信息、接收方区块链标识、发送方区块链身份证明以及发送方链下文件跨链期望组成,所述接收方信息在公证人中间***查询。
其中,所述文件链上信息File_Info,包括文件名、文件类型、文件大小、文件完整性HASH以及文件索引号;文件信息由发送方区块链中已注册的链上代理节点提供,从自身的区块中读取。
所述发送方链下文件跨链期望Expectation_Transmission,是指发送方对于本次跨链任务的链下文件跨链的意见和预期,格式内容如下:
期望信息字段Expected_nodes,表示己方预期参与跨链代理节点候选名单;
期望信息字段Expected_encryption,表示预期使用的加密算法;
期望信息字段Expected_transport,表示预期使用的传输协议;
期望信息字段Expected_maxperiod,表示预期链下文件跨链阶段最长期限。
进一步,步骤三中,所述公证人组验证协商,执行链上信息跨链,准备链下文件跨链,包括:
验证发送方身份证明后,公证人组根据本次跨链双方的链下存储机制,判断文件跨链类型;结合文件的数量、体量,发送方链下文件跨链期望,与接收方进行协商,制定链下文件跨链策略;协商过程中,附带将文件链上信息转发给接收方。
所述文件跨链类型,根据跨链双方链下存储机制不同,分为如下4类:
文件跨链类型1,发送方链下存储机制为IPFS,接收方链下存储机制为IPFS;
文件跨链类型2,发送方链下存储机制为IPFS,接收方链下存储机制为其他数据库;
文件跨链类型3,发送方链下存储机制为其他数据库,接收方链下存储机制为IPFS;
文件跨链类型4,发送方链下存储机制为其他数据库,接收方链下存储机制为其他数据库。
所述链下文件跨链策略OCFTS包括如下格式内容:
OCFTS_1:{Across_type,Sender_Agent,Receiver_Agent,Encryption_selection,Transfer_selection,Encryption_key,Maximum_period};
其中,Across_type=跨链类型编号;Sender_Agent=发送方代理节点选择列表;Receiver_Agent=接收方代理节点选择列表;Encryption_selection=本次文件数据加密算法选择;Transfer_selection=本次文件传输协议选择;Encryption_key=本次跨链任务加密密钥;Maximum_period=链下传输阶段最长期限。
所述发送方、接收方代理节点选择列表Sender_Agent、Receiver_Agent,是指记录参与本次文件跨链的代理节点的节点标识、IP地址、公钥信息;根据本次跨链任务的文件数量,公证人组可以在跨链双方选择多个已注册的代理节点,形成多条传输链接进行多文件并行传输。
所述文件数据加密算法选择、文件传输协议,是指公证人组参考记录的代理节点注册信息,在考虑安全性、高效性的前提下,选择跨链双方都支持的加密算法、传输协议。
所述跨链任务加密密钥,是指公证人组根据选择的加密算法生成的加密密钥,仅用于本次文件跨链任务中的源文件数据加密,跨链完成后立即过期作废。
其中,所述公证人组与接收方进行协商包含如下步骤:
(1)公证人组根据发送方、接收方链下存储机制,判断跨链类型;若判断为类型1,说明跨链双方都使用IPFS存储文件数据,只需传输文件位于IPFS中的寻址HASH;则由公证人组从文件信息File_Info中提取对应字段值,并传输给接收方链上代理节点;接收方通过该寻址HASH即可获取文件数据,随后进入跨链结果反馈阶段;若判断为其它跨链类型,则进行后续流程。
(2)公证人组整合链上文件信息File_Info、发送方链下文件跨链期望Expectation_Transmission的内容,形成协商询问消息,发送给接收方的链上代理节点。
(3)接收方链上代理节点综合考虑己方区块链、代理节点的带宽Bandwidth以及存储容量Storage情况,判断是否具备源文件跨链接收条件。
(4)若判断当前具备源文件跨链接收条件,则生成一个与上述发送方链下文件跨链期望Expectation_Transmission相同结构的消息,并提交给公证人组。
(5)若判断当前不具备源文件跨链接收条件,则提交失败原因说明。
(6)公证人组收到接收方链下文件跨链期望Expectation_Transmission后,综合发送、接收双方的期望内容,制定链下文件跨链策略OCFTS,并分发给跨链双方,协商结束;若收到失败原因说明,则公证人组记录后告知发送方,本次跨链协商失败。
进一步,步骤四中,所述链下文件跨链,包括:
发送方、接收方都获得链下文件跨链策略后,进入链下文件跨链阶段;根据链下文件跨链策略,由跨链双方的链下代理节点进行文件跨链;接收方在完成文件数据接收后,进行完整性校验,链下文件跨链阶段结束。
其中,所述由跨链双方的链下代理节点进行文件跨链,包括:
(1)根据链下文件跨链策略OCFTS的Across_type字段;若为跨链类型2,则发送方代理节点从IPFS中下载源文件数据,并检验源文件完整性;若为跨链类型3、4,则从其他类型数据库中读取文件数据;
(2)发送方代理节点使用链下文件跨链策略中指定的加密算法Encryption_selection,将源文件数据数据加密;
(3)发送方代理节点根据链下文件跨链策略中指定的接收方代理节点IP、公钥等通讯信息,建立链下文件跨链链接;
(4)跨链双方的链下代理节点使用链下文件跨链策略中指定的传输协议Transfer_selection,进行文件跨链;
(5)链下文件跨链完成后,接收方代理节点验证数据完整性、正确性;若为跨链类型3,则接收方代理节点将源文件数据上传至链下存储机制中存储、文件信息上链;若为跨链类型4,则将文件数据存入其他类型数据库;此过程属于文件区块链***内部工作,至此链下文件跨链阶段结束。
进一步,步骤五中,所述跨链结果反馈记录,包括:
接收方正确接收文件后,进入跨链结果反馈阶段;由接收方提供跨链反馈证明,并由公证人组记录,发送方进行后续数据处理。
其中,所述接收方提供跨链反馈证明,是指接收方在正确接收源文件数据后,向公证人组、发送方出具证明,表明己方已正确接收文件。
所述发送方进行后续数据处理,是指文件跨链不同于货币跨链,接收方完成文件数据接收后,发送方选择删除己方链下存储机制中存储的文件数据,从而达到文件转移的效果;故根据跨链完成后,发送方是否删除己方文件数据,分为复制型文件跨链和转移型文件跨链。
所述复制型文件跨链,是指接收方在正确接收源文件数据后,发送方不删除自身存储的源文件数据,即文件跨链完成后,源文件数据同时存在于发送方、接收方的链下存储机制中。
所述转移型跨链,是指接收方在正确接收源文件数据后,发送方出于各种因素,将删除自身链下存储机制中的源文件数据,即文件跨链完成后,源文件数据只存在于接收方的链下存储机制中。
所述跨链结果反馈阶段,包括:
(1)接收方正确接收文件数据后,根据自身文件数据接收、存储以及上链情况,形成跨链反馈证明,并提交给公证人组;
(2)公证人组收到该反馈证明后,将本次跨链记录存档,并将跨链反馈证明转发给发送方;
(3)发送方收到跨链反馈证明后,根据复制型跨链、转移性跨链进行后续文件处理,即该次文件跨链若为复制型跨链,则发送方不删除源文件数据;若为转移型跨链,则发送方删除源文件数据。
本发明的另一目的在于提供一种应用所述的面向“链上链下结合文件区块链“的跨链方法的面向“链上链下结合文件区块链“的跨链中间***,所述面向“链上链下结合文件区块链“的跨链中间***,包括公证人组和终端代理两大部分,以及它们使用的通讯模块、密钥管理模块、身份验证模块、注册管理模块、CA证书生成模块、跨链记录模块、数据验证模块、加解密模块、链下存储模块、文件传输模块、链下文件跨链模块以及***常规通用模块,所述***常规通用包括用户管理模块和可视化界面模块。
其中,所述公证人组,用于担任跨链中间件职能,在注册阶段验证新链资质,并生成身份证明;在文件跨链过程负责跨链申请验证、链上信息转发、链下传输策略协商以及跨链结果反馈;
终端代理,用于加入本跨链***的区块链***,提供节点安装跨链***的终端代理程序,以便执行跨链相关功能;
它们包含以下具体功能模块:
通讯模块,用于跨链双方与公证人组进行信息发送,并管理各方通讯地址和标识信息;
密钥管理模块,用于管理跨链各方的公私密钥,包括密钥获取和过期作废功能;
身份验证模块,用于验证跨链各方身份,并管理身份信息;
注册管理模块,用于公证人组存储、管理新链注册内容;
CA证书生成模块,用于为新注册的文件区块链,以及需注册的代理节点生成证书信息;
跨链记录模块,用于记录文件跨链过程的基本信息;
数据验证模块,用于在链下文件跨链过程中验证文件数据完整性和正确性;
加解密模块,用于链下文件跨链前后,通过对应传输策略加解密文件数据;
链下存储模块,用于节点与链下存储机制进行交互;
文件传输模块,用于管理、调用选用的文件传输协议。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
新链注册;发起跨链请求,进入链上信息跨链;公证人组验证协商,执行链上信息跨链,准备链下文件跨链;链下文件跨链;跨链结果反馈记录。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
新链注册;发起跨链请求,进入链上信息跨链;公证人组验证协商,执行链上信息跨链,准备链下文件跨链;链下文件跨链;跨链结果反馈记录。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的面向“链上链下结合文件区块链“的跨链中间***。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明在研究现行文件管理领域与区块链技术结合方案的优缺点基础上,设计了一个适用于“链上链下结合”文件区块链***特点的跨链方案及中间***。
现行文件区块链***中,普遍采用区块链与链下存储机制结合的运行方式,文件的关键信息上链存储,文件本体链下存储,不同***的链下存储机制也不相同。文件区块链的跨链,必须将链上信息、链下数据一并跨链。而主流跨链机制大都针对虚拟货币交易领域,只对链上数据跨链,无法满足文件区块链的跨链需求。针对以上问题,本发明提供的面向“链上链下结合文件区块链“的跨链方法及中间***完成了如下设计:
(1)根据不同文件跨链类型,结合公证人机制,设计了完整的跨链中间件结构与职能,设计了完整的跨链流程:链上信息跨链、链下文件跨链、跨链结果反馈。
(2)结合密码学身份验证、加密算法、网络文件传输协议等技术设计了有针对性的链下文件跨链机制,保证了跨链文件的安全性、完整性。
(3)针对“链上链下相结合文件区块链”***的特殊构造与运行方式,对文件跨链类型进行了划分:复制型跨链,转移型跨链。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种面向“链上链下结合文件区块链“的跨链方法及中间***,下面结合附图对本发明作详细的描述。
如图1和图2所示,本发明实施例提供的面向“链上链下结合文件区块链“的跨链方法包括以下步骤:
S101,新链注册;
S102,发起跨链请求,进入链上信息跨链;
S103,公证人组验证协商,执行链上信息跨链,准备链下文件跨链;
S104,链下文件跨链;
S105,跨链结果反馈记录。
本发明实施例提供的面向“链上链下结合文件区块链“的跨链方法原理图如图3所示。
下面结合具体实施例对本发明的技术方案作进一步描述。
本发明实施例提供的面向“链上链下文件区块链”的跨链方案及中间***具体实施方法如下:
S1-1:以下过程均在如图4所示的***结构下运行,且公证人组与终端代理程序具有如图5所示的功能模块。
在注册阶段:新链向公证人组发出接入请求,包含如表1所示信息。
表1接入请求信息
S1-2:公证人组接收新链请求并验证通过。随后新链和上述节点分配标识id、通讯公私钥对;通过CA证书生成模块,对Certificate.doc内容进行签名,生成新链的数字证书,并选择加密算法,传输协议协商集合内容。将以上内容通过注册管理模块存储,并填入应答包中。
S1-3:注册者从协商集合中选择自己支持的协议,返回确认包,并安装终端代理程序,并将公证人组分发的标识id、公私钥对、数字证书等信息,添加到终端代理程序的通讯模块、密钥管理模块中,并启用加解密模块中协商选定的加密算法,至此新链完成注册。
注册链之间进行文件跨链遵循以下流程,参考图3。
S2-1:发起一次文件跨链,进入链上信息跨链阶段。
发送方链上代理节点将区块中的文件链上信息提交给公证人组,并通过密钥管理模块、身份验证模块附加接收方标识、身份证明、链下文件跨链期望等必要信息,作为文件跨链申请的主要内容。其跨链申请内容如表2所示。
表2跨链申请内容
期望信息字段 |
字段数据 |
Expected_nodes |
代理节点候选名单 |
Expected_encryption |
预期使用的加密算法 |
Expected_transport |
预期使用的传输协议 |
Expected_maxperiod |
预期链下文件跨链阶段最长期限 |
S3-1:验证发送方身份证明后,公证人组判断本次文件跨链为类型2。随后公证人组根据本次跨链文件的数量、体量,结合发送方链下文件跨链期望,与接收方进行协商,制定链下文件跨链策略,并在协商过程中将跨链申请中的文件链上信息转发给接收方。
S3-2:公证人组整合链上文件信息File_Info、发送方链下文件跨链期望Expectation_Transmission的内容,在通讯模块中形成协商询问消息,发送给接收方的链上代理节点。
S3-3:接收方链上代理节点综合考虑己方区块链、代理节点的带宽Bandwidth、存储容量Storage等情况,判断是否具备源文件跨链接收条件。
S3-4:若判断当前具备源文件跨链接收条件,则生成一个与上述发送方链下文件跨链期望Expectation_Transmission相同结构的消息,并提交给公证人组。若判断当前不具备源文件跨链接收条件,则提交失败原因说明。
S3-5:公证人组收到接收方链下文件跨链期望Expectation_Transmission后,综合发送、接收双方的期望内容,制定链下文件跨链策略OCFTS,并分发给跨链双方,协商结束。若收到失败原因说明,则公证人组记录后告知发送方,本次跨链协商失败。
S4-1:由跨链双方的代理节点进行链下文件跨链:在链下文件跨链策略OCFTS中指定的,发送方代理节点从IPFS中下载源文件数据,并通过数据验证模块检验源文件完整性。
S4-2:发送方代理节点使用链下文件跨链策略中指定的加密算法Encryption_selection,在加解密模块中将源文件数据数据加密。
S4-3:发送方代理节点根据链下文件跨链策略中指定的接收方代理节点IP、公钥等通讯信息,通过链下文件跨链模块来建立链接。
S4-4:跨链双方的代理节点使用链下文件跨链策略中指定的传输协议Transfer_selection,进行链下文件跨链。
S4-5:链下文件跨链完成后,接收方代理节点在数据验证模块中,验证数据完整性、正确性。随后将源文件数据上传至本地数据库中存储、文件信息上链,至此链下文件跨链阶段结束。
S5-1:接收方正确接收文件后,进入跨链结果反馈阶段。接收方根据自身文件数据接收、存储、上链情况,形成跨链反馈证明,并提交给公证人组。
S5-2:公证人组收到该反馈证明后,通过跨链记录模块,将本次跨链记录存档。
S5-3:将跨链反馈证明转发给发送方。
S5-4:发送方收到跨链反馈证明后,根据复制型跨链、转移性跨链进行后续文件处理。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘Solid StateDisk(SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。