CN108876370B - 一种异构多链架构下跨区块链共享开放数据的体系架构 - Google Patents

一种异构多链架构下跨区块链共享开放数据的体系架构 Download PDF

Info

Publication number
CN108876370B
CN108876370B CN201810598437.8A CN201810598437A CN108876370B CN 108876370 B CN108876370 B CN 108876370B CN 201810598437 A CN201810598437 A CN 201810598437A CN 108876370 B CN108876370 B CN 108876370B
Authority
CN
China
Prior art keywords
transaction
route
chain
blockchain system
cross
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810598437.8A
Other languages
English (en)
Other versions
CN108876370A (zh
Inventor
胡凯
罗戡
余维
王思远
张学翰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201810598437.8A priority Critical patent/CN108876370B/zh
Publication of CN108876370A publication Critical patent/CN108876370A/zh
Application granted granted Critical
Publication of CN108876370B publication Critical patent/CN108876370B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明提供了一种异构多链架构下跨区块链共享开放数据的体系架构,包括:(1)应用层:包括OpenData模块、智能合约模块、多账本查询模块和数据分析模块;(2)多链协议:包括跨链传输协议,用于交易标准和传输方式;跨越一致性协议,用于交易确认和交易反馈;异构区块链跨链数据通信及交易协议;路由管理,用于网关管理和编号管理;多链管理策略,用于纵向管理和横向管理;(3)中间件层:用于区块链外部的交易和查询以及区块链内部的同步秘钥,建立区块,投票和广播功能;(4)基础区块链层:包括Fabric,Ethereum,比特币及Corda;(5)基础平台层:该层基于云环境和虚拟机。帮助用户安全的共享数据和第三方所提供的服务并解决“数据割裂”问题。

Description

一种异构多链架构下跨区块链共享开放数据的体系架构
技术领域
本发明涉及区块链技术领域,特别是涉及基于异构区块链互联技术,实现数据跨机构安全可信开放共享。
背景技术
数据孤岛是全社会的损失。譬如,你在工商银行有存款,在平安银行贷款买房子,在中信证券公司交易股票,同时还有招商银行的***。个体是金融交易数据的生产者和所有人,而这4家金融机构是数据的保管者。但由于不同的金融机构,造成同一个体的数据是割裂的。由于数据对机构来说具有重要的商业价值,他们是不会轻易主动对外开放。
例如金融行业,金融数据的不开放,对各方都带来一些影响。对个人来说,最直接的损失是无法轻易对比服务和费用,从而无法选择价廉物美的金融产品。更大的损失在于,个体无法得到全方位金融数据,因此限制了有效资产配置和规划。大数据分析和人工智能投资理财等先进的技术,由于缺少完整全面的数据支持,成为摆设。对金融科技公司来说,尽管有很多方式获得非金融数据,但是这些数据的含金量,比不上银行里的个人金融交易数据。倘若无法打破银行数据壁垒,金融科技公司将始终处于劣势,其发展必然受到制约。对银行来说,数据不公开,对自身业务是一种暂时的保护。但是这种数据封闭的代价是银行失去机会利用共享数据和金融科技公司的创新技术,从而很难为客户提供更加多元的产品和服务。在客户对金融服务要求越来越高、科技界巨头跨界竞争越来越激烈、社会和监管对开放数据的呼声越来越强烈的大潮下,闭关自守的银行将失去构筑平台生态圈的机会,银行的路将越走越窄。
数据割裂不仅局限于金融行业,在医疗信息领域也存在数据孤岛,现今,超过90%的医院采用了电子病历管理方式,但这些电子病历***只是将病历电子化,目前使用的电子病历***只具备病历储存、索引查找等基础功能。这些功能仅仅是加快了病历的录入速度,减少了医生的手工劳动和重复劳动。没有充分发挥电子病历的功能。在信息化不断发展的同时,电子病历***必将转变为以患者为中心,拥有电子病历真实性和完整性的验证机制,提供数据医疗共享的渠道,能够实现医院、药店、病人、保险机构以及科研机构数据共享,为实现医药分离提供基础,为医疗科学事业发展提供数据支持,为病人保管数据、保护隐私带来方便。
目前市面上主流的区块链***及区块链项目,均是属于一种独立的区块链***,相互之间没有数据交换的通道与途径,目前这种状态比较类似于互联网发展过程中,企业还处于建立内部局域网的时代。随着区块链技术的发展和演变,必然会出现企业和企业的区块链***之间进行数据交换的需求。
现如今,信息化程度加深,各个行业不断发展,完善,但数据安全性、共享性、隐私性仍然面临的重要挑战,也正是我们认为区块链可以着力之处。然而,为了实现安全可信的开放数据,存在如下问题:
1、跨机构数据连通性问题,数据交互速度问题;
2、源数据的数据质量问题,数据完整性、真实性无法得到保障;
3、用户数据隐私性问题;隐私数据泄露、滥用。
利用区块链技术能够很好的保护数据的隐私性,提供数据完整性和真实性的验证机制,但是目前区块链面临存储性能较差、规模受限以及没有统一标准等问题。
在目前的研究上,多种独立区块链并行成为了拓展区块链规模和突破功能限制最主流的做法,本发明将构建基于多种独立且异构的区块链并行的结构上,实现智能的数据流通管道,整体框架如图2所示,允许***之间的数据流一种无缝且可控的方式流通。
发明内容
本发明的发明构思在于在于两点,一是建立一个数据开放模型(OpenDatamodel),opendata是通过应用程序接口(applicationprograminginterfas,APIs)为第三方机构在用户授权的情况下提供用户的数据。框架中规定了数据的生成、共享和访问机制。基于区块链的数据存储,改进了数据集中存储的弊端。OpenData的框架下,能够为帮助用户安全的共享数据,让用户安全地享受第三方所提供的服务,也为研究机构提供了高质量、完整、可靠的数据,解决“数据割裂”问题;另一个是针对实际问题,提出数据安全可信共享OpenData数据安全可信共享的体系架构,用切实可行的关键技术解决在新可扩展体系架构下多链融合的区块链***之间的互联协议。
本发明的目的在于提供一种异构多链架构下跨区块链共享开放数据的体系架构,包括:
(1)应用层:包括OpenData模块、智能合约模块、多账本查询模块和数据分析模块;
(2)多链协议:包括跨链传输协议,用于交易标准和传输方式;跨越一致性协议,用于交易确认和交易反馈;异构区块链跨链数据通信及交易协议;路由管理,用于网关管理和编号管理;多链管理策略,用于纵向管理和横向管理;
(3)中间件层:用于区块链外部的交易和查询以及区块链内部的同步秘钥,建立区块,投票和广播功能;
(4)基础区块链层:包括如下基础模块,即Fabric,Ethereum,比特币及Corda;
(5)基础平台层:该层基于云环境和虚拟机。
优选的,所述OpenData模块基于异构多链架构下的OpenData模型,该模型包括四个子模块:(1)同意授权子模块,用于第三方提出数据需求,用户给予第三方权限,让其获得访问用户数据;(2)认证子模块,用于数据保管方对用户身份进行认证;(3)授权子模块,用于用户确认保管方将会相应第三方对数据获取的请求;(4)取消授权子模块;所述OpenData实现功能包括:快速出账、额度、资金、贷款、信息实施共享以及安全使用创新技术服务。
优选的,所述智能合约模块包括:合约模板、合约审计、合约虚拟机及合约语言。
优选的,所述多账本查询模块包括:关联查询、归类查询、合并查询及排序查询。
优选的,所述数据分析模块包括数据分析与挖掘模块、分布式计算模块、内存计算模块及流式计算模块。
优选的,所述多链协议基于区块链互联模型(Inter-BlockChainModel,IBCM),其中跨链交易传输由区块链路由器进行封装、解析和转发,接入到网络中的区块链***只需要实现路由所提供的接口,将不同类型的交易转化为标准交易,即可以连接同构和异构的区块链***,跨链交易传输采用点对点的方式进行传输,不会经过任何第三方提供的设备,从而保证传输的隐私性,所述区块链路由器是一个区块链***,可以防止作弊,同时每个节点可以扩展为一个集群对外提供服务;包括跨链交易执行成功、跨链交易执行失败、跨链交易超时重传三种情况。
优选的,所述跨链交易执行成功的跨链交易执行过程如下:
假设区块链***S1中的地址A1向区块链***S2中地址A2发起了一笔跨链交易,
(1)区块链***S1在接收到跨链交易T′之后,进入预准备阶段,锁定相关资产,将资产转移到路由R1的临时地址At1中,则有TRANSFER(A1,At1,value)价值转移函数表示将地址A1中数量为value的资产转移到地址At1中,然后将交易T′发送给与其连接的路由R1;
(2)路由R1接收到交易T′之后,使用函数PACKAGE将本地跨链交易打包,最后将打包好的交易发送给路由R2,由路由R2转发给区块链***S2,所述函数PACKAGE为打包函数;
(3)与区块链***S2相连接的路由R2在接收到跨链交易T′之后,使用函数UNPACKAGE将交易T′解包为本地区块链***S2中定义的交易T″,并将交易T″发送给区块链***S2;
(4)区块链***S2接收到由路由R2转发过来的交易T″之后,将交易T″放入本地交易缓存中,经过内部共识通过之后,进入预提交阶段,并经由路由R2将确认交易发送给与区块链***S1连接的路由R1;
(5)路由R1接收到确认交易之后,将确认信息转发给区块链***S1,并放入其交易缓存中,等待进行区块链***S1的内部共识,此时,区块链***经过内部共识之后,可以将交易完全提交,将资产从At1转移到路由R2的临时地址At2中,则有TRANSFER(At1,At2,value)价值转移函数表示将地址At1中数量为value的资产转移到地址At2中,并发送确认交易给路由R1,由路由R1发送给区块链***S2;
(6)区块链***S2接收到由路由R2转发过来的确认交易之后,会将交易完全提交,将资产从At2转移到地址A2中,则有TRANSFER(At2,A2,value)价值转移函数表示将地址At2中数量为value的资产转移到地址A2中,并存储到区块链***中,跨链交易执行完毕。
优选的,所述跨链交易执行失败的跨链交易执行过程为,首先设当有区块链***S1中用户向区块链***S2中用户发起跨链交易时,若在区块链***S1中执行失败,则无需进行跨链传输,只需要在本地区块链***S1中反馈失败即可;若在区块链***S1中可以执行成功,则就需要进行跨链传输,与区块链***S2进行通讯。在区块链***S2中执行失败的跨链交易执行过程包括:
(1)区块链***S1在接收到跨链交易T′之后,会进入预准备阶段,锁定相关资产,将资产转移到路由R1的临时地址At1中,则有TRANSFER(A1,At1,value)价值转移函数表示将地址A1中数量为value的资产转移到地址At1中,然后将交易T′发送给与其连接的路由R1;
(2)路由R1接收到交易T′之后,使用函数PACKAGE将本地跨链交易T′打包,最后将打包好的交易发送给路由R2,由路由R2转发给区块链***S2,所述函数PACKAGE为打包函数;
(3)与区块链***S2相连接的路由R2在接收到跨链交易T之后,使用函数UNPACKAGE将交易T解包为本地区块链***S2中定义的交易T″,并将交易T″发送给区块链***S2;
(4)区块链***S2接收到由路由R2转发过来的交易T″之后,将交易T″放入本地交易缓存中,在进行内部共识过程中,交易T″验证或者执行失败,则拒绝此交易,将拒绝信息通过路由R2转发给区块链***S1;
(5)区块链***S1接收到经由路由R1转发的拒绝信息之后,会将之前锁定的资产解锁并将资产从地址At1中转移到地址A1中,则有TRANSFER(At1,A1,value)价值转移函数表示将地址At1中数量为value的资产转移到地址A1中,交易执行完毕。
优选的,跨链交易超时重传表示在跨链交易的执行过程中,由于跨链传输属于点对点传输,会发生交易发送丢失的情况,区块链***S1中的地址A1向区块链***S2中地址A2发起了一笔跨链交易,在确认交易丢失之后,超时进行重传的跨链交易执行过程包括:
(1)区块链***S1在接收到跨链交易T′之后,会进入预准备阶段,锁定相关资产,将资产转移到路由R1的临时地址At1中,则有TRANSFER(A1,At1,value)价值转移函数表示将地址A1中数量为value的资产转移到地址At1中,然后将交易T′发送给与其连接的路由R1;
(2)路由R1接收到交易T′之后,使用函数PACKAGE将本地跨链交易T′打包,最后将打包好的交易发送给路由R2,由路由R2转发给区块链***S2,所述函数PACKAGE为打包函数;
(3)与区块链***S2相连接的路由R2在接收到跨链交易T之后,使用函数UNPACKAGE将交易解包为本地区块链***S2中定义的交易T″,,并将交易T″,发送给区块链***S2,所述函数UNPACKAGE为解包函数;
(4)区块链***S2接收到由路由R2转发过来的交易T″,之后,将交易T″,放入本地交易缓存中,经过内部共识通过之后,进入预提交阶段,并经由路由R2将确认交易发送给与区块链***S1连接的路由R1;
(5)由路由R2转发的确认交易由于网络故障,未能转发给路由R1。路由R1在等待一段时间仍然没有收到路由R2的消息之后,将会再次发送交易T给路由R2;
(6)路由R2收到交易T之后,分析发现此条交易已经接收并且已经验证执行过,此时会再次发送确认交易给路由R1;
(7)路由R1接收到确认交易之后,将确认信息转发给区块链***S1,并放入其交易缓存中,等待进行区块链***S1的内部共识,区块链***经过内部共识之后,可以将交易完全提交,将资产从At1转移到路由R2的临时地址At2,中,则有TRANSFER(At1,At2,value)价值转移函数表示将地址At1中数量为value的资产转移到地址At2中,并发送确认交易给路由R1,由路由R1发送给区块链***S2;
(8)区块链***S2接收到由路由R2转发过来的确认交易之后,会将交易完全提交,将资产从At2转移到地址A2中,则有TRANSFER(At2,A2,value)价值转移函数表示将地址At2中数量为value的资产转移到地址A2中,并存储到区块链***中,跨链交易执行完毕。
优选的,还包括身份确认模块,所述身份确认模块采用基于多因素身份认证技术设置的节点身份认证机制,基于门限加密法实现,通过多台计算机协作处理容错计算来保护信息,门限加密法将密钥划分为多个子密钥,当子密钥数量达到阈值时,才会重组密钥。更具体来说,门限加密法的模式可以表示为(t,n),其中n代表的是密钥被分解后子密钥的数量,t是应用所规定的阈值,当拥有的子密钥数量达到t时,完成对密钥的重组。
本发明建立了针对基于异构多链架构下的OpenData模型,解决了多条异构区块链之间的互联互通问题,多链***中节点身份认证问题,跨链数据交互时,数据的可追踪性问题以及用户数据隐私性问题,防止隐私数据泄露、滥用,数据安全可信共享OpenData数据安全可信共享的体系架构规定了数据的生成、共享和访问机制,基于区块链的数据存储,改进了数据集中存储的弊端,OpenData的框架下,帮助用户安全的共享数据,让用户安全地享受第三方所提供的服务,也为研究机构提供了高质量、完整、可靠的数据,用切实可行的关键技术解决了“数据割裂”问题。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
附图1为根据本发明实施例的异构多链架构下共享开放数据的整体体系架构示意图;
附图2为根据本发明实施例的数据开放模型示意图;
附图3为根据本发明实施例的区块链交易格式图;
附图4为根据本发明实施例的区块链交易对应的序号示意图;
附图5为根据本发明实施例的区块链Merkle树结构示意图;
附图6为根据本发明实施例的块链结构示意图;
附图7为根据本发明实施例的区块链互联模型示意图;
附图8为根据本发明实施例的跨链交易执行成功的跨链交易流程图;
附图9为根据本发明实施例的跨链交易执行失败的跨链交易流程图;
附图10为根据本发明实施例的跨链交易超时重传的跨链交易流程图。
具体实施方式
目前市面上主流的区块链***及区块链项目,均是属于一种独立的区块链***,相互之间没有数据交换的通道与途径,本实施例打破了这种独立区块链无数据交流的技术障碍,提出一种异构多链架构下跨区块链共享开放数据的体系架构,参见图1,该体系架构包括:
(1)应用层:包括OpenData模块、智能合约模块(包括:合约模板、合约审计、合约虚拟机及合约语言)、多账本查询模块(包括:关联查询、归类查询、合并查询及排序查询)和数据分析模块(包括数据分析与挖掘模块、分布式计算模块、内存计算模块及流式计算模块);
(2)多链协议:包括跨链传输协议,用于交易标准和传输方式;跨越一致性协议,用于交易确认和交易反馈;异构区块链跨链数据通信及交易协议;路由管理,用于网关管理和编号管理;多链管理策略,用于纵向管理和横向管理;
(3)中间件层:用于区块链外部的交易和查询以及区块链内部的同步秘钥,建立区块,投票和广播功能;
(4)基础区块链层:包括如下基础模块,即Fabric,Ethereum,比特币及Corda;
(5)基础平台层:该层基于云环境和虚拟机。
OpenData模块基于异构多链架构下的OpenData模型,参见图2数据开放模型数据流转示意图。该模型包括四个子模块:(1)同意授权子模块,用于第三方提出数据需求,用户给予第三方权限,让其获得访问用户数据;(2)认证子模块,用于数据保管方对用户身份进行认证;(3)授权子模块,用于用户确认保管方将会相应第三方对数据获取的请求;(4)取消授权子模块;所述OpenData实现功能包括:快速出账、额度、资金、贷款、信息实施共享以及安全使用创新技术服务。该模型的扩展可以实现更深层次的功能,包括:
●监管(governance):提供了一个无中心化,完全独立的监管数据共享机制;让参与者履行义务与权利。
●安全策略:能够让用户明白同意书(consent)内容,并且保证数据安全。用户私人数据必须经过本人授权同意。
●数据标准:可以充分利用现有的数据标准,数据集,数据结构。或者建立一个数据模型。建立一个数据标准可以简化全球金融数据交换(ISO 20022financial industrymessage scheme);使用Json、HTTP、Restful。
互联协议主要从安全性、隐私性和操作效率这几个方面进行设计,跨链协议主要解决多链之间数据交换过程中数据的一致性的问题,包括基础结构设计和区块链互联模型设计两个主要的部分。
(一)基础结构设计:基于互联链的可扩展体系结构采用分层组件化设计,各层可以通过组件的插拔实现区块链的扩展。就单独的一个区块链***的扩展而言,区块链层的可扩展是最主要的,澄清如下技术特征的含义和在基础结构设计中的作用有助于本领域技术人员理解本发明的方案。
(1)交易及签名
在区块链***中,所有的信息都以“交易”(Transaction)的形式进行传输和转化,因此,交易是整个区块链***中相对核心的部分。交易是一串经过加密的计算机指令,使用相应的规则操作数据,从而保证区块链***的正常运转。为了兼容同构和异构的区块链***,需要定义标准的交易格式,从而实现不同区块链***之间数据的互联互通。本发明所定义的交易既包含类似于真实的转账交易,同时也包含最上层应用层业务逻辑发送给区块链***中需要存储的数据。在区块链***中,每个区块都会存储交易列表,本发明使用符号
Figure BDA0001692366250000104
表示交易列表(TransactionList),用符号T表示一条交易。交易格式如3所示,标准的交易定义了三种交易类型,通过类型字段进行区分,包括本地交易、跨链交易及确认交易三种。
区块链作为一种价值传递的网络,在进行价值传递的过程中,使用地址(Address)信息来确定价值的所属,即一定量的价值存放在一个地址中,若产生价值传递,则会产生价值从一个地址转移到另外一个地址的过程。在区块链***的交易中,使用地址来表示交易的发起者和接收者,地址用小写字母a表示。一个用户可以有多个地址,如a1,a2,...,an∈ui,表示用户ui拥有a1,a2,...,an。考虑到隐私保护问题,将地址常量设计为一串20字节的哈希值,即
Figure BDA0001692366250000101
其中
Figure BDA0001692366250000102
指字符序列,
Figure BDA0001692366250000103
的含义是20字节的字符序列。
为了适应多种不同的交易类型,本发明中所定义的三种交易类型:本地交易、跨链交易、确认交易都包含如下几个字段:
(a)源地址(from):一个表示价值或者数据的发起者的地址常量,是一个20字节的地址,对于普通交易或者创建智能合约的交易而言,这个字段是空,在这里可以用
Figure BDA0001692366250000111
来表示。此字段使用字符Tf来表示,因此,
Figure BDA0001692366250000112
或者
Figure BDA0001692366250000113
(b)目的地址(to):一个表示价值或者数据的接收者的地址常量,是一个20字节的地址,对于普通交易或者通过使用智能合约创建的交易而言,这个字段是空,在这里可以用
Figure BDA0001692366250000114
来表示。此字段使用字符Tt表示,因此,
Figure BDA0001692366250000115
或者
Figure BDA0001692366250000116
(c)时间戳(timestamp):交易发起的时间戳,用一个64位二进制正整数表示,此字段用字符Ts表示,
Figure BDA0001692366250000117
其中
Figure BDA0001692366250000118
表示一个正整数集合,
Figure BDA0001692366250000119
则表示n位二进制正整数的集合,即集合中所有的数均小于2n
(d)序号(number):交易所对应的序号,如图4所示,用一个128位的二进制正整数来表示,此字段使用符号Tn来表示,因此,
Figure BDA00016923662500001110
其中,前64位表示交易发送的时间戳,中间32位表示交易发起的区块链***ID,最后32位表示此时间戳下,此区块链ID下的编号,从0开始计数。
(e)确认序号(ackNumber):仅用于确认交易,其余交易类型为空,用于对某条序号交易进行确认。用一个128位二进制正整数来表示,此字段使用符号Ta来表示,因此,
Figure BDA00016923662500001111
或者
Figure BDA00016923662500001112
(f)类型(type):交易所属的类型常量,用一个8位的二进制正整数来表示,此字段使用字符Tp表示,因此,
Figure BDA00016923662500001113
(g)交易信息(data):用于存储交易的相关数据,根据不同区块链***特点进行设计,没有固定大小,并且大小没有限制。此字段用符号Td来表示。
(h)签名信息(v,r,w):用于交易签名的相关信息,变量v,r,w分别用Tv,Tr,Tw来表示。
因此,一个交易T可以表示为:
T≡(Tf,Tt,Ts,Tn,Ta,Tp,Td,Tv,Tr,Tw) (1.1)
并且
Figure BDA0001692366250000121
并且
Figure BDA0001692366250000122
并且
Figure BDA0001692366250000123
并且
Figure BDA0001692366250000124
然而判断一条交易是否有效不仅仅需要满足上述条件,还需要满***易签名的正确性。给交易签名类似于电子签名,本发明采用曲线加密算法对交易进行签名。首先假定每个交易发送者都有合法的私钥,用pr来表示。私钥是一个256位的二进制正整数,使用32个字节保存,并且有
Figure BDA0001692366250000125
定义函数签名(ECDSASIGN),生成公钥(ECDSAPUBKEY),以及验证签名(ECDSARECOVER),这些函数功能如下所示:
Figure BDA0001692366250000126
Figure BDA0001692366250000127
Figure BDA0001692366250000128
其中pu是私钥对应的公钥,使用64字节的正整数来表示,并且公钥是由两个32字节正整数拼接而成。v表示解密号,使用一个字节正整数来表示,并且指定了曲线点的符号和有限性。判断一个签名是有效的,需要满足如下条件:
0<r<secp256k1n∧ (2.4)
0<w<secp256k1n∧ (2.5)
v∈{27.28) (2.6)
其中:
Figure BDA0001692366250000129
对于给定的私钥pr,根据上文定义,20字节的地址A(pr)即160位,定义为Keccak-256哈希算法对ECDSA公钥取哈希之后的最右面的160位,如下:
Figure BDA0001692366250000136
在对交易进行签名时,使用Keccak-256哈希加密算法将交易转化为一定长度的数据,通过哈希算法的使用,一方面可以将不同长度的数据转换为相同长度的数据,另外一方面可以对数据是否被篡改进行判断,若数据有缺失或者被篡改,则哈希值将会不同。本申请使用Keccak-256哈希算法将数据加密为32字节的数据,哈希加密函数用KEC来表示。在对交易进行哈希时,Tv,Tr,Tw不列入计算,将交易的哈希表示为h(T),经过Keccak哈希算法计算之后如下:
Figure BDA0001692366250000131
Figure BDA0001692366250000132
签名之后的交易G(T,pr)由如下计算得来:
Figure BDA0001692366250000133
当且仅当
(Tv,Tr,Tw)=ECDSASIGN(h(T),pr) (3.4)
定义交易发送函数为S,发送交易T的过程如下:
Figure BDA0001692366250000134
因此,根据上述推导,判断一条交易签名是否有效,只需要判断经过交易发送函数计算之后是否与发送者的地址相同,即有:
Figure BDA0001692366250000135
(2)Merkle树
区块中存储了交易的列表,在将区块传输到其他节点执行时,一方面需要保证交易列表中所包含的交易不会被篡改或者增加或者减少,另一方面还需要保证交易在传输过程中不会出错。传统的方法是将交易进行加密处理,然后进行传输,在接收节点处解密。然而由于区块传输频繁,交易量较大,频繁加解密以及密钥的管理都相对复杂,因此不能使用传统办法,而Merkle树的使用既解决了传输方面交易列表正确性的问题,又减少了传输环节,从而加快整体速度。Merkle树本身是一个二叉树,其从HashList演化而来,如图5所示。Merkle树的叶子节点是数据块,在这里即是每一个交易,其自底向上进行逐层哈希,最终得到Merkle树的根。通过Merkle树的建立,在进行传输的过程中,附带将Merkle树一同传输,在接收方,只需要各叶子节点上一层的数据即可。若发生篡改,则Merkle树的根就会发生改变,并且可以通过二分查找找到发生篡改的交易信息。
定义Merkle树用符号M表示,每一层采用Keccak-256哈希算法进行加密,则图5中所示可以表示为:
Figure BDA0001692366250000141
Figure BDA0001692366250000142
若交易数量为奇数,则最后一个交易无需组合,直接使用Keccak-256哈希算法进行加密,定义Mt为Merkle树的第t层所有节点集合,
Figure BDA0001692366250000143
为Merkle树的第t层的第i个节点,Merkle树的计算函数为Mk则有:
Figure BDA0001692366250000144
其中
Figure BDA0001692366250000145
(3)块链结构
区块链是一个一个区块根据时间戳排列起来的数据账本,因此区块是区块链***中存储数据的最小单元,每个区块既独立又相互依存,区块之间通过区块哈希进行头尾相连,最终形成一条链。区块存储了***中所有的数据,包括但不限于前一区块哈希、区块哈希、区块高度、时间戳、状态根(全局状态)、Merkle根、版本号,会根据不同的应用场景进行相应的字段增加。本发明所采用的块链结构如图6中所示。
如图6所示,区块的结构主要分为两个主要部分,一个是区块头H,一个是区块体T,分别用BH和Br来表示。区块与区块之间通过区块哈希首尾相连,从而形成一条链,用字符
Figure BDA0001692366250000146
表示区块链,即区块的集合。
其中区块头部包含如下信息:
(a)前一区块哈希(preHash):指前一个区块头部的哈希值,是经过Keccak-256哈希算法加密过后的哈希值,大小为32字节,用符号Hp表示,并且有
Figure BDA0001692366250000151
(b)区块哈希(hash):指当前区块头部的哈希值,是经过Keccak-256哈希算法加密过后的哈希值,大小为32字节,用符号Hc表示,并且有
Figure BDA0001692366250000152
(c)时间戳(timestamp):指生成区块的时间。通过对区块打上时间戳,可以增加伪造或者篡改区块的难度,并且可以作为交易执行以及存在的证明。时间戳字段用一个64位二进制正整数表示,此字段用字符Ht表示,
Figure BDA0001692366250000153
(d)版本号(version):用于区分区块链协议目前的版本,若发现版本号不一致或者不兼容,可以选择暂停计算。大小为8字节,用符号Hv表示,并且有
Figure BDA0001692366250000154
(e)区块高度(height):表示当前区块在区块链中的个数,创世区块高度设置为0,区块高度随着区块增加而递增。此字段用字符Hh表示,是一个64位的二进制整数,因此,有
Figure BDA0001692366250000155
(f)状态根(stateRoot):全局状态树的树根,即执行完区块中所包含交易之后***的全局状态。大小为32字节,用符号Hs表示,并且有
Figure BDA0001692366250000156
(g)前一个状态根(preStateRoot):前一个区块的全局状态树根,即前一个区块执行完其所包含交易之后,***的全局状态值。大小为32字节,用符号Hps表示,并且有
Figure BDA0001692366250000157
(h)Merkle根(merkleRoot):区块所包含交易列表经过Merkle计算之后所得的Merkle根值。大小为32字节,用符号Hm表示,并且有
Figure BDA0001692366250000158
区块体包含如下信息:
(a)交易列表(tranList):位于区块体中,用于存储当前区块所包含的交易列表,用符号Htr表示,并且有
Figure BDA0001692366250000159
(b)交易数量(txLength):表示当前区块中所包含的交易个数,与交易列表相对应。若区块中无交易,即
Figure BDA00016923662500001510
则值为0。用符号Hl表示,是一个32位的二进制整数,因此有
Figure BDA00016923662500001511
因此,一个区块可以表示为:
Figure BDA0001692366250000161
其中
Figure BDA0001692366250000162
Figure BDA0001692366250000163
并且有
Figure BDA0001692366250000164
并且
Figure BDA0001692366250000165
并且
Figure BDA0001692366250000166
并且
Figure BDA0001692366250000167
Figure BDA0001692366250000168
上述定义了区块的基础结构,并且给出了各个字段所需要满足的条件,然而在满足上述条件之后,仅可以说明数据具备区块的性质,对于此区块是否有效,还需要进一步验证。区块头部包含前一区块哈希、区块哈希、时间戳、版本号、区块高度、状态根、前一个状态根、Merkle根这八个字段。然而在对区块头部取哈希时,由于区块链属于分布式***,其各个节点异步执行,并且在进行计算时,节点的计算性能、存储性能会有所不同,部分数据产生会有先后之分,而状态根就属于这类数据,因此,不会将状态根列入。同时,区块哈希是区块头部哈希值,是此次计算最终结果,所以也不会列入区块头部哈希的计算。
定义函数HEADER来计算区块头部哈希,则有:
Figure BDA0001692366250000169
取出区块头部哈希值的字段之后,将字段使用Keccak-256哈希算法加密,最终得到区块头部哈希Hc
Figure BDA0001692366250000171
对于区块的有效性,还需要验证前一区块哈希、Merkle根、前一个状态根以及区块高度这四个字段。定义P(BH)为区块B的父区块,其中BH为区块B的头部。区块B的父区块用符号B′表示,则有:
Figure BDA0001692366250000172
则前一区块哈希可以表示为:
Figure BDA0001692366250000173
Figure BDA0001692366250000174
则Merkle根可以表示为:
Figure BDA0001692366250000175
则前一个状态根可以表示为:
Figure BDA0001692366250000176
则区块高度可以表示为:
Figure BDA0001692366250000177
区块链中的区块不仅仅有区块哈希之间的约束,还有时间戳上的约束,任意一个区块的时间戳都会比其父区块的时间戳大,因此有:
Figure BDA0001692366250000178
则对于区块B有如下成立:
Figure BDA0001692366250000179
Figure BDA00016923662500001710
Figure BDA00016923662500001711
并且如果两个区块的时间戳相同或者区块高度相同,那么这两个区块就是同一个区块。则有如下成立:
Figure BDA00016923662500001712
区块中状态根Hs是在区块执行完区块中所包含的交易Htr之后得到的结果,因此有:
Figure BDA00016923662500001713
其中
Figure BDA0001692366250000181
基于互联链的可扩展体系结构中给出了区块链在内部的扩展方法及模式,并且具有多链,区块链内部的扩展方法可以解决业务方面的扩展,然而仅仅在内部进行扩展仍然不能够满足目前区块链技术的发展。多链架构是在区块链可扩展体系架构的基础之上,给出的可以适应不同区块链之间互联互通的一种模型,在保证各个区块链可以单独运行的基础之上,将各个区块链之间的数据进行共享、互通,从而实现跨区块链的价值传递网络,充分利用各个区块链中的资源。如图7所示,构建了多链协议基于区块链互联模型(Inter-BlockChainModel,IBCM),区块链互联模型在设计中考虑到现实情况,接入到网络中的区块链***会出现同构或者异构的情况,交易格式各不相同,为了解决这些问题,区块链互联模型引入了路由的概念,用于转发交易。模型中,若任意一个区块链***想加入到网络中,需要与一个路由一同接入。通过路由的连接,最终形成一个大的网络。网络中的路由与路由之间,采用类似区块链的组织形式,路由以节点的方式同时存在,所有的路由又形成一个区块链***,用于保存和维护网络中各个区块链***的路由信息。由于区块链具有不可篡改性以及高容错性,因此使用区块链保存路由信息是比较安全的。同时,在进行路由信息新增时,也需要像传统区块链***一样,对信息的增加进行共识,最终达到一致。而信息的更新,由于区块链***的特殊性,也采用信息新增的方式进行处理,在读取路由信息时,只需要获取优先级前32位最大的路由信息即可。随着时间的推移,加入到网络中的区块链***越来越多,路由区块链中的节点会随之增加,必然会降低路由信息共识的速度,然而,由于路由区块链仅维护路由信息,并不会有过多的信息处理,因此,并不会对整个网络有太大的影响。同时,路由区块链上的信息相对稳定,不会频繁产生路由信息的变更,同样不会对共识及网络产生太大影响。在路由区块链数据共识完毕之后,各个区块链***所相连的路由就拥有所有区块链***的“通讯地址”,因此,在有跨链交易时,区块链***之间可以通过点对点的通讯方式进行数据的交换,无需经过任何第三方设备或者第三方组织,从而保证了业务往来之间的隐私。跨链交易传输由区块链路由器进行封装、解析和转发,接入到网络中的区块链***只需要实现路由所提供的接口,将不同类型的交易转化为标准交易,即可以连接同构和异构的区块链***,跨链交易传输采用点对点的方式进行传输,不会经过任何第三方提供的设备,从而保证传输的隐私性,所述区块链路由器是一个区块链***,可以防止作弊,同时每个节点可以扩展为一个集群对外提供服务。
在IBCM中,主要核心思想是为了实现区块链***的外部可扩展,即可以连接不同的区块链***,以满足不同区块链***之间的价值传递。在进行跨区块链之间的价值传递过程中,需要使用跨链协议来规范和约束,保证价值传递的安全可靠性。跨区块链***之间的交易在执行的过程中,由于涉及到多个区块链***,因此也可以归结为分布式的问题,利用解决分布式问题的思想,以区块链***S1中地址A1和区块链***S2中地址A2之间的价值传递为基础,给出了跨链交易执行的过程,其中包括跨链交易执行成功、跨链交易执行失败、跨链交易超时重传三种情况。定义价值转移函数TRANSFER,则有如下:TRANSFER(A1,A2,value)表示将地址A1中数量为value的资产转移到地址A2中。其中图8-10所示是异构区块链跨链数据通信及交易协议以区块链***S1中地址A1和区块链***S2中地址A2之间的价值传递为基础,给出的跨链交易执行的过程,其中包括跨链交易执行成功、跨链交易执行失败、跨链交易超时重传三种情况,分别进行说明。
(一)跨链交易执行成功属于正常情况,排除极端情况,大部分交易都会执行成功,从而实现价值的传递。如图8表示区块链***S1中的地址A1向区块链***S2中地址A2发起了一笔跨链交易所述跨链交易执行成功的跨链交易执行过程如下:
(1)区块链***S1在接收到跨链交易T'之后,进入预准备阶段,锁定相关资产,将资产转移到路由R1的临时地址At1中,则有TRANSFER(A1,At1,value)函数,然后将交易T'发送给与其连接的路由R1;
(2)路由R1接收到交易T'之后,使用函数PACKAGE将本地跨链交易打包,最后将打包好的交易发送给路由R2,由路由R2转发给区块链***S2,所述函数PACKAGE为打包函数;
(3)与区块链***S2相连接的路由R2在接收到跨链交易T'之后,使用函数UNPACKAGE将交易T′解包为本地区块链***S2中定义的交易T″,并将交易T″发送给区块链***S2;
(4)区块链***S2接收到由路由R2转发过来的交易T″之后,将交易T″放入本地交易缓存中,经过内部共识通过之后,进入预提交阶段,并经由路由R2将确认交易发送给与区块链***S1连接的路由R1;
(5)路由R1接收到确认交易之后,将确认信息转发给区块链***S1,并放入其交易缓存中,等待进行区块链***S1的内部共识,此时,区块链***经过内部共识之后,可以将交易完全提交,将资产从At1转移到路由R2的临时地址At2中,则有TRANSFER(At1,At2,value),并发送确认交易给路由R1,由路由R1发送给区块链***S2;
(6)区块链***S2接收到由路由R2转发过来的确认交易之后,会将交易完全提交,将资产从At2转移到地址A2中,则有TRANSFER(At2,A2,value),并存储到区块链***中,跨链交易执行完毕。
(二)跨链交易执行失败:跨链交易在一定程度上与本地交易有相同的地方,同样会有执行失败的情况,当有区块链***S1中用户向区块链***S2中用户发起跨链交易时,若在区块链***S1中执行失败,则无需进行跨链传输,只需要在本地区块链***S1中反馈失败即可;若在区块链***S1中可以执行成功,则就需要进行跨链传输,与区块链***S2进行通讯。在区块链***S2中执行失败如图9所示。执行过程包括:
(1)区块链***S1在接收到跨链交易T′之后,会进入预准备阶段,锁定相关资产,将资产转移到路由R1的临时地址At1中,则有TRANSFER(A1,At1,value)函数,然后将交易T′发送给与其连接的路由R1;
(2)路由R1接收到交易T′之后,使用函数PACKAGE将本地跨链交易T′打包,最后将打包好的交易发送给路由R2,由路由R2转发给区块链***S2,所述函数PACKAGE为打包函数;
(3)与区块链***S2相连接的路由R2在接收到跨链交易T之后,使用函数UNPACKAGE将交易T解包为本地区块链***S2中定义的交易T″,并将交易T″发送给区块链***S2;
(4)区块链***S2接收到由路由R2转发过来的交易T″之后,将交易T″放入本地交易缓存中,在进行内部共识过程中,交易T″验证或者执行失败,则拒绝此交易,将拒绝信息通过路由R2转发给区块链***S1;
(5)区块链***S1接收到经由路由R1转发的拒绝信息之后,会将之前锁定的资产解锁并将资产从地址At1中转移到地址A1中,则有TRANSFER(At1,A1,value)函数,交易执行完毕。
(三)跨链交易超时重传表示在跨链交易的执行过程中,由于跨链传输属于点对点传输,会发生交易发送丢失的情况,参见图10,区块链***S1中的地址A1向区块链***S2中地址A2发起了一笔跨链交易,在确认交易丢失之后,超时进行重传的跨链交易执行过程包括:
(1)区块链***S1在接收到跨链交易T′之后,会进入预准备阶段,锁定相关资产,将资产转移到路由R1的临时地址At1中,则有TRANSFER(A1,At1,value)函数,然后将交易T′发送给与其连接的路由R1;
(2)路由R1接收到交易T′之后,使用函数PACKAGE将本地跨链交易T′打包,最后将打包好的交易发送给路由R2,由路由R2转发给区块链***S2,所述函数PACKAGE为打包函数;
(3)与区块链***S2相连接的路由R2在接收到跨链交易T之后,使用函数UNPACKAGE将交易解包为本地区块链***S2中定义的交易T″,,并将交易T″,发送给区块链***S2,所述函数UNPACKAGE为解包函数;
(4)区块链***S2接收到由路由R2转发过来的交易T″,之后,将交易T″,放入本地交易缓存中,经过内部共识通过之后,进入预提交阶段,并经由路由R2将确认交易发送给与区块链***S1连接的路由R1;
(5)由路由R2转发的确认交易由于网络故障,未能转发给路由R1。路由R1在等待一段时间仍然没有收到路由R2的消息之后,将会再次发送交易T给路由R2;
(6)路由R2收到交易T之后,分析发现此条交易已经接收并且已经验证执行过,此时会再次发送确认交易给路由R1;
(7)路由R1接收到确认交易之后,将确认信息转发给区块链***S1,并放入其交易缓存中,等待进行区块链***S1的内部共识,区块链***经过内部共识之后,可以将交易完全提交,将资产从At1转移到路由R2的临时地址At2,中,则有TRANSFER(At1,At2,value)函数,并发送确认交易给路由R1,由路由R1发送给区块链***S2;
(8)区块链***S2接收到由路由R2转发过来的确认交易之后,会将交易完全提交,将资产从At2转移到地址A2中,则有TRANSFER(At2,A2,value),并存储到区块链***中,跨链交易执行完毕。
该架构包括身份确认模块。目前的区块链技术中,在一个区块链***中存在多种类型的节点,在真实的应用场景中,也存在大量角色,不同的角色具备不同权限。在多个区块链***互连模型中,也存在认证机制、过程各不相同,通过多次简单身份认证的叠加是一种简单的解决方案,但是存在许多问题,大大降低了身份认证的灵活性。身份确认是多链***中的重要的组成部分,通过身份认证限制不同用户和节点对数据的读写权限。通过身份确认机制,可以在区块链网络建立时决定交易所需的权限级别,而且在网络建立时可以定义区块链网络为开放的,以降低访问难度和支持快速和高效推广,或者为高可控环境定义更多限制。通过对不同身份的确认提供标识管理服务以及提供对多链***中的参与者标识与角色相结合的读取和授权的管理。多方身份认证以及管理机制需要进一步完善,以满足更细粒度的权限管理和更复杂、更灵活的业务需求。更具体的来说包括:
(1)多方身份认证的研究,在OpenData模型中,存在数据存储方、数据使用方和用户,不同角色应该对应不同的权限和功能。同时,可靠的身份认证可以有效的实现身份管理。
(2)跨链用户数据所有权,在独立的区块链***内,用户数据所有权通过公私钥可以很好的管控数据所有权,防止数据滥用;在多链架构中,保证数据跨链涉及多次认证,提高认证效率和认证可靠性非常重要。
(3)跨链数据的监管,对于用户数据,用户拥有数据的所有权,对于数据流向、被使用情况,应当用户拥有知情权,对于跨链数据监管,是实现开放数据重要一步。
本发明采用多因素身份认证技术被用来解决多方参与多层次的关键认证***,这是目前万无一失、安全性最高的授权方法。授权是验证用户实体身份的过程。多因素认证技术可以由多个简单认证过程组成,来保证安全的身份确认,并消除在单次简单认证过程中密钥或者令牌泄露。但是在这种方法,单纯的将多次简单认证过程相加并不是一个好的多因素认证方法,这样极大减少了加密过程的灵活性。
本发明采用基于门限加密法实现的多因素认证技术,更加灵活、高效且方便。门限加密法的核心思想是通过多台计算机协作处理容错计算来保护信息,门限加密中最关键的问题是如何安全地共享密钥,一个密钥分享模式允许将密钥分布式存储于多个服务器上,并满足如下要求:良好地服务器数量要超过门限地数值;当需要密钥重组地时候,参与地服务器数量要超过门限值。基于此本发明的实现过程为:门限加密法将密钥划分为多个子密钥,当子密钥数量达到阈值时,才会重组密钥。更具体来说,门限加密法的模式可以表示为(t,n),n代表的是密钥被分解后子密钥的数量,t是应用所规定的阈值,当拥有的子密钥数量达到t时,完成对密钥的重组。
本实施例建立了针对基于异构多链架构下的OpenData模型,解决了多条异构区块链之间的互联互通问题,多链***中节点身份认证问题,跨链数据交互时,数据的可追踪性问题以及用户数据隐私性问题,防止隐私数据泄露、滥用,数据安全可信共享OpenData数据安全可信共享的体系架构规定了数据的生成、共享和访问机制,基于区块链的数据存储,改进了数据集中存储的弊端,OpenData的框架下,帮助用户安全的共享数据,让用户安全地享受第三方所提供的服务,也为研究机构提供了高质量、完整、可靠的数据,用切实可行的关键技术解决了“数据割裂”问题。
虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。

Claims (4)

1.一种基于区块链的数据处理方法,其特征在于,该方法基于一种异构多链架构下跨区块链共享开放数据的体系架构,所述体系架构包括:
(1)应用层:包括OpenData模块、智能合约模块、多账本查询模块和数据分析模块;
(2)多链协议:包括跨链传输协议,用于交易标准和传输方式;跨越一致性协议,用于交易确认和交易反馈;异构区块链跨链数据通信及交易协议;路由管理,用于网关管理和编号管理;多链管理策略,用于纵向管理和横向管理;
(3)中间件层:用于区块链外部的交易和查询以及区块链内部的同步秘钥,具备建立区块、投票和广播功能;
(4)基础区块链层:包括如下基础模块,Fabric,Ethereum,比特币及Corda;
(5)基础平台层:该层基于云环境和虚拟机;
所述OpenData模块基于异构多链架构下的OpenData模型,该模块包括四个子模块:(1)同意授权子模块,用于当第三方提出数据需求时,用户给予第三方权限,让其获得访问用户数据;(2)认证子模块,用于数据保管方对用户身份进行认证;(3)授权子模块,用于用户确认保管方将会响应第三方对数据获取的请求;(4)取消授权子模块;所述OpenData模型实现的功能包括:快速出账、额度实时共享、资金实时共享、贷款实时共享、信息实时共享;
所述智能合约模块包括:合约模板、合约审计、合约虚拟机及合约语言;
所述多账本查询模块包括:关联查询、归类查询、合并查询及排序查询;
所述数据分析模块包括数据分析与挖掘模块、分布式计算模块、内存计算模块及流式计算模块;
所述多链协议基于区块链互联模型,其中跨链交易传输由区块链路由器进行封装、解析和转发,接入到网络中的区块链***只需要实现路由所提供的接口,将不同类型的交易转化为标准交易,即可以连接同构和异构的区块链***,跨链交易传输采用点对点的方式进行传输,不会经过任何第三方提供的设备,从而保证传输的隐私性,所述区块链路由器是一个区块链***,可以防止作弊,同时每个节点可以扩展为一个集群对外提供服务;所述跨链交易包括跨链交易执行成功、跨链交易执行失败、跨链交易超时重传三种情况;
所述跨链交易执行成功的跨链交易执行过程如下:
区块链***S1中的地址A1向区块链***S2中地址A2发起了一笔跨链交易,
(1)区块链***S1在接收到跨链交易T′之后,进入预准备阶段,锁定相关资产,将资产转移到路由R1的临时地址At1中,则有TRANSFER(A1,At1,value)价值转移函数表示将地址A1中数量为value的资产转移到地址At1中,然后将交易T′发送给与其连接的路由R1;
(2)路由R1接收到交易T′之后,使用函数PACKAGE将本地跨链交易打包,最后将打包好的交易发送给路由R2,由路由R2转发给区块链***S2,所述函数PACKAGE为打包函数;
(3)与区块链***S2相连接的路由R2在接收到跨链交易T′之后,使用函数UNPACKAGE将交易T′解包为本地区块链***S2中定义的交易T″,并将交易T″发送给区块链***S2;
(4)区块链***S2接收到由路由R2转发过来的交易T″之后,将交易T″放入本地交易缓存中,经过内部共识通过之后,进入预提交阶段,并经由路由R2将确认交易发送给与区块链***S1连接的路由R1;
(5)路由R1接收到确认交易之后,将确认信息转发给区块链***S1,并放入其交易缓存中,等待进行区块链***S1的内部共识,此时,区块链***经过内部共识之后,可以将交易完全提交,将资产从At1转移到路由R2的临时地址At2中,则有TRANSFER(At1,At2,value)价值转移函数表示将地址At1中数量为value的资产转移到地址At2中,并发送确认交易给路由R1,由路由R1发送给区块链***S2;
(6)区块链***S2接收到由路由R2转发过来的确认交易之后,会将交易完全提交,将资产从At2转移到地址A2中,则有TRANSFER(At2,A2,value)价值转移函数表示将地址At2中数量为value的资产转移到地址A2中,并存储到区块链***中,跨链交易执行完毕。
2.根据权利要求1所述的一种基于区块链的数据处理方法,其特征在于所述跨链交易执行失败的跨链交易执行过程为,区块链***S1中用户向区块链***S2中用户发起跨链交易时,若在区块链***S1中执行失败,则无需进行跨链传输,只需要在本地区块链***S1中反馈失败即可;若在区块链***S1中可以执行成功,则就需要进行跨链传输,与区块链***S2进行通讯;在区块链***S2中执行失败的跨链交易执行过程包括:
(1)区块链***S1在接收到跨链交易T′之后,会进入预准备阶段,锁定相关资产,将资产转移到路由R1的临时地址At1中,则有TRANSFER(A1,At1,value)价值转移函数表示将地址A1中数量为value的资产转移到地址At1中,然后将交易T′发送给与其连接的路由R1;
(2)路由R1接收到交易T′之后,使用函数PACKAGE将本地跨链交易T′打包,最后将打包好的交易发送给路由R2,由路由R2转发给区块链***S2,所述函数PACKAGE为打包函数;
(3)与区块链***S2相连接的路由R2在接收到跨链交易T之后,使用函数UNPACKAGE将交易T′解包为本地区块链***S2中定义的交易T″,并将交易T″发送给区块链***S2;
(4)区块链***S2接收到由路由R2转发过来的交易T″之后,将交易T″放入本地交易缓存中,在进行内部共识过程中,交易T″验证或者执行失败,则拒绝此交易,将拒绝信息通过路由R2转发给区块链***S1;
(5)区块链***S1接收到经由路由R1转发的拒绝信息之后,会将之前锁定的资产解锁并将资产从地址At1中转移到地址A1中,则有TRANSFER(At1,A1,value)价值转移函数表示将地址At1中数量为value的资产转移到地址A1中,交易执行完毕。
3.根据权利要求1所述的一种基于区块链的数据处理方法,其特征在于跨链交易超时重传表示在跨链交易的执行过程中,由于跨链传输属于点对点传输,会发生交易发送丢失的情况,区块链***S1中的地址A1向区块链***S2中地址A2发起了一笔跨链交易,在确认交易丢失之后,超时进行重传的跨链交易执行过程包括:
(1)区块链***S1在接收到跨链交易T′之后,会进入预准备阶段,锁定相关资产,将资产转移到路由R1的临时地址At1中,则有TRANSFER(A1,At1,value)价值转移函数表示将地址A1中数量为value的资产转移到地址At1中,然后将交易T′发送给与其连接的路由R1;
(2)路由R1接收到交易T′之后,使用函数PACKAGE将本地跨链交易T′打包,最后将打包好的交易发送给路由R2,由路由R2转发给区块链***S2,所述函数PACKAGE为打包函数;
(3)与区块链***S2相连接的路由R2在接收到跨链交易T之后,使用函数UNPACKAGE将交易解包为本地区块链***S2中定义的交易T″,并将交易T″,发送给区块链***S2,所述函数UNPACKAGE为解包函数;
(4)区块链***S2接收到由路由R2转发过来的交易T″,之后,将交易T″,放入本地交易缓存中,经过内部共识通过之后,进入预提交阶段,并经由路由R2将确认交易发送给与区块链***S1连接的路由R1;
(5)由路由R2转发的确认交易由于网络故障,未能转发给路由R1;路由R1在等待一段时间仍然没有收到路由R2的消息之后,将会再次发送交易T给路由R2;
(6)路由R2收到交易T之后,分析发现此条交易已经接收并且已经验证执行过,此时会再次发送确认交易给路由R1;
(7)路由R1接收到确认交易之后,将确认信息转发给区块链***S1,并放入其交易缓存中,等待进行区块链***S1的内部共识,区块链***经过内部共识之后,可以将交易完全提交,将资产从At1转移到路由R2的临时地址At2,中,则有TRANSFER(At1,At2,value)价值转移函数表示将地址At1中数量为value的资产转移到地址At2中,并发送确认交易给路由R1,由路由R1发送给区块链***S2;
(8)区块链***S2接收到由路由R2转发过来的确认交易之后,会将交易完全提交,将资产从At2转移到地址A2中,则有TRANSFER(At2,A2,value)价值转移函数表示将地址At2中数量为value的资产转移到地址A2中,并存储到区块链***中,跨链交易执行完毕。
4.根据权利要求1-3任一所述的一种基于区块链的数据处理方法,其特征在于还包括身份确认模块,所述身份确认模块采用基于多因素身份认证技术设置的节点身份认证机制,基于门限加密法实现,通过多台计算机协作处理容错计算来保护信息,门限加密法将密钥划分为多个子密钥,当子密钥数量达到阈值时,才会重组密钥;更具体来说,门限加密法的模式可以表示为(t,n),其中n代表的是密钥被分解后子密钥的数量,t是应用所规定的阈值,当拥有的子密钥数量达到t时,完成对密钥的重组。
CN201810598437.8A 2018-06-12 2018-06-12 一种异构多链架构下跨区块链共享开放数据的体系架构 Active CN108876370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810598437.8A CN108876370B (zh) 2018-06-12 2018-06-12 一种异构多链架构下跨区块链共享开放数据的体系架构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810598437.8A CN108876370B (zh) 2018-06-12 2018-06-12 一种异构多链架构下跨区块链共享开放数据的体系架构

Publications (2)

Publication Number Publication Date
CN108876370A CN108876370A (zh) 2018-11-23
CN108876370B true CN108876370B (zh) 2021-12-17

Family

ID=64337919

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810598437.8A Active CN108876370B (zh) 2018-06-12 2018-06-12 一种异构多链架构下跨区块链共享开放数据的体系架构

Country Status (1)

Country Link
CN (1) CN108876370B (zh)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111222876B (zh) * 2018-11-26 2022-11-11 本无链科技(深圳)有限公司 一种用于解决跨链耦合性的方法及***
WO2020109912A1 (en) * 2018-11-27 2020-06-04 nChain Holdings Limited Computer implemented system and method for storing data on a blockchain
CN109600433B (zh) * 2018-12-06 2022-03-29 北京磁云数字科技有限公司 一种***内数据汇总方法及装置
CN109753816A (zh) * 2018-12-13 2019-05-14 广州通链计算机智能技术有限责任公司 一种区块链跨链的方法及实现***
CN109815206A (zh) * 2018-12-25 2019-05-28 上海点对点科技有限公司 一种基于区块链的分布式存储网络
CN109767336A (zh) * 2018-12-27 2019-05-17 福建省农村信用社联合社 一种基于区块链的p2p理财平台资金银行存管管理方法
CN109685489B (zh) * 2018-12-28 2021-06-01 杭州云象网络技术有限公司 一种区块链之间的资产跨链交易方法
CN109474706B (zh) * 2018-12-29 2019-12-13 北京明朝万达科技股份有限公司 一种数据安全集中服务方法和***
CN111382119B (zh) * 2018-12-29 2023-08-22 华为技术有限公司 区块数据归档方法及相关设备
CN109725856B (zh) * 2018-12-29 2022-04-29 深圳市网心科技有限公司 一种共享节点管理方法、装置、电子设备及存储介质
CN111612615A (zh) * 2019-02-26 2020-09-01 傲为信息技术(江苏)有限公司 基于公链的区块链子链创建方法及***
CN110162559B (zh) * 2019-04-13 2020-07-10 山东公链信息科技有限公司 一种基于通用json同步和异步数据api接口调用的区块链处理方法
CN110163007B (zh) * 2019-04-23 2021-05-04 西安邮电大学 基于区块链的数据完整性验证方法、设备和存储介质
CN110288307B (zh) * 2019-05-13 2022-04-29 西安电子科技大学 基于Fabric区块链的智能合约协同开发***及数据处理方法
CN110245956B (zh) * 2019-05-15 2022-07-05 众安信息技术服务有限公司 一种基于异步多链的区块链交易确认方法及***
CN110321382A (zh) * 2019-05-17 2019-10-11 杭州亦笔科技有限公司 一种基于区块链的异构多链并行方法
CN110321720A (zh) * 2019-05-17 2019-10-11 杭州亦笔科技有限公司 一种区块链的异构跨链交互与认证方法
CN110324148B (zh) * 2019-05-17 2022-05-10 杭州亦笔科技有限公司 一种基于区块链的多数据路由签名分发方法
CN110266655B (zh) * 2019-05-30 2021-11-12 中国工商银行股份有限公司 一种基于区块链的跨链互联方法、设备以及***
CN110223067B (zh) * 2019-06-12 2021-04-06 北京航空航天大学 一种具有去中心化特性的链下一对多支付方法及***
CN110288344A (zh) * 2019-06-25 2019-09-27 中国工商银行股份有限公司 跨区块链的资产转移方法及装置
US11336451B2 (en) 2019-06-28 2022-05-17 Advanced New Technologies Co., Ltd. Cross-blockchain resource transmission
US11196771B2 (en) * 2019-07-16 2021-12-07 International Business Machines Corporation Multi-domain blockchain network with data flow control
CN110543488B (zh) * 2019-09-11 2022-06-07 深圳市迅雷网络技术有限公司 一种验证节点更新方法、装置及设备
CN110648235A (zh) * 2019-09-23 2020-01-03 刘佳 一种基于可信计算环境tee的跨链资产转移方法
CN110647559A (zh) * 2019-09-24 2020-01-03 腾讯科技(深圳)有限公司 数据处理方法、相关节点及***
CN112561695B (zh) * 2019-09-25 2021-07-23 支付宝(杭州)信息技术有限公司 在区块链中并发执行交易的方法和装置
CN112583712B (zh) * 2019-09-30 2023-05-30 北京京东尚科信息技术有限公司 区块链路由器及区块链网络***
CN110766410B (zh) * 2019-10-24 2023-09-22 杭州趣链科技有限公司 基于默克尔树的可信跨链事件构造与验证方法和设备
CN110992177B (zh) * 2019-10-31 2023-09-12 中国科学院计算技术研究所 基于链外通道路由评价机制的区块链通量提高方法及***
CN111080274B (zh) * 2019-12-05 2020-11-03 杭州呯嘭智能技术有限公司 一种基于Corda数据库的支付方法及***
CN110990489A (zh) * 2019-12-12 2020-04-10 南京荣链科技有限公司 一种传感数据批量写入区块的***和方法
CN111311209B (zh) * 2020-02-03 2021-03-16 腾讯科技(深圳)有限公司 跨区块链的数据处理方法、装置、设备及计算机存储介质
CN111008841B (zh) * 2020-03-05 2020-06-09 支付宝(杭州)信息技术有限公司 一种业务处理***、业务处理的方法、装置及设备
CN111445328A (zh) * 2020-03-16 2020-07-24 西安交通大学 一种跨链网关交互***和方法以及供应链数据管理方法
CN111540449B (zh) * 2020-04-03 2023-10-20 肾泰网健康科技(南京)有限公司 一种基于区块链的电子病历共享方法、电子病历接口及***
CN112651724A (zh) * 2020-04-28 2021-04-13 北京邮电大学 跨链交互方法、装置和***
CN111736854B (zh) * 2020-05-08 2024-05-28 贵阳信息技术研究院(中科院软件所贵阳分部) 一种区块链应用高效开发和部署的方法
CN111597228B (zh) * 2020-05-13 2023-06-20 山大地纬软件股份有限公司 一种提高区块链扩展性的多链***及方法
CN111666323B (zh) * 2020-05-15 2023-05-23 西安纸贵互联网科技有限公司 区块链的跨链互通方法及***
WO2022000172A1 (zh) * 2020-06-29 2022-01-06 深圳技术大学 金融衍生品交易信息共享的方法与分布式***及电子终端
CN111666345A (zh) * 2020-06-29 2020-09-15 深圳技术大学 金融衍生品交易信息共享的方法与分布式***及电子终端
CN112202863B (zh) * 2020-09-24 2022-09-20 成都质数斯达克科技有限公司 数据同步方法、装置、电子设备及可读存储介质
US11736456B2 (en) * 2020-09-29 2023-08-22 International Business Machines Corporation Consensus service for blockchain networks
CN111932265B (zh) * 2020-10-13 2021-06-29 南京金宁汇科技有限公司 一种基于双层链式架构区块链的区块交易转化方法
CN112163004A (zh) * 2020-10-14 2021-01-01 上海万向区块链股份公司 基于多链数据融合的列表处理及更新展示***及方法
CN112241553B (zh) * 2020-10-27 2022-11-04 上海万向区块链股份公司 一种基于多账本架构的区块链隐私保护方法及***
CN112258183B (zh) * 2020-10-28 2023-08-01 成都质数斯达克科技有限公司 跨链私密交易方法、区块链网络以及电子设备
CN112287029B (zh) * 2020-11-17 2023-05-16 北京物资学院 一种区块链多链跨链***及其实现机制
CN112565240A (zh) * 2020-12-01 2021-03-26 杭州云象网络技术有限公司 一种用于承载海量通证流通的多链结构兼容方法及***
CN112487098B (zh) * 2020-12-10 2024-07-09 深圳前海微众银行股份有限公司 一种区块链中跨链的原子变量实现方法及装置、电子设备
CN112507025A (zh) * 2020-12-11 2021-03-16 成都商通数治科技有限公司 一种多链异构的方法
CN112235423B (zh) * 2020-12-11 2021-08-10 腾讯科技(深圳)有限公司 跨链事务处理方法及装置、电子设备、存储介质
CN112764887B (zh) * 2021-01-15 2023-10-13 北京百度网讯科技有限公司 事务请求的构建方法、处理方法、装置、设备和存储介质
CN112968772B (zh) * 2021-01-29 2022-10-14 上海分布信息科技有限公司 一种区块链数据的跨链解耦方法、***
CN112835957B (zh) * 2021-02-01 2023-08-29 深圳市元智汇科技有限公司 基于区块链技术的数据中台的数据质量监控方法及***
CN113034139B (zh) * 2021-03-15 2023-12-26 中国人民大学 基于活体生物特征认证的区块链多币钱包及其实现方法
CN113420083B (zh) * 2021-06-02 2024-03-19 湖南大学 一种具有可拓展分布式账本的异构并行区块链结构的***
CN113452781B (zh) * 2021-06-28 2023-02-14 上海计算机软件技术开发中心 一种区块链跨链***和方法
CN114782043B (zh) * 2021-08-05 2023-03-28 北京天德科技有限公司 一种基于多链的安全交易***及安全交易方法
CN113905051B (zh) * 2021-09-24 2023-03-28 同济大学 一种智慧城市跨部门信息交互架构***及方法
CN113962810B (zh) * 2021-10-26 2022-05-10 北京市科学技术情报研究所 一种基于区块链的数据资产配置交易方法及装置
CN113746621B (zh) * 2021-11-08 2022-01-04 湖南宸瀚信息科技有限责任公司 一种基于区块链技术的多链架构信息共享***
CN113837760B (zh) * 2021-11-25 2022-08-26 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备以及存储介质
CN113946857B (zh) * 2021-12-20 2022-03-11 太极计算机股份有限公司 一种基于数据路由的分布式跨链调度方法及装置
CN114528346B (zh) * 2022-01-27 2023-01-13 中科大数据研究院 一种多源异构数据资产依托区块链共享交易的方法
CN114978668B (zh) * 2022-05-19 2023-05-02 中国人民大学 一种跨链数据实体身份管理和认证方法及***
CN115174118B (zh) * 2022-07-11 2024-05-24 电子科技大学 一种融合互信属性的跨异构链可信数据共享方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107360238A (zh) * 2017-07-25 2017-11-17 光载无限(北京)科技有限公司 基于区块链cpow共识算法的智能合约网关
CN108009811A (zh) * 2017-11-30 2018-05-08 中国人民解放军国防科技大学 一种面向云际计算环境价值交换的跨链通信方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10713654B2 (en) * 2016-01-21 2020-07-14 International Business Machines Corporation Enterprise blockchains and transactional systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107360238A (zh) * 2017-07-25 2017-11-17 光载无限(北京)科技有限公司 基于区块链cpow共识算法的智能合约网关
CN108009811A (zh) * 2017-11-30 2018-05-08 中国人民解放军国防科技大学 一种面向云际计算环境价值交换的跨链通信方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
万涛等.安全高效,可信互联——工行区块链创新平台1.0 介绍.《中国金融电脑》.2018,第28-30页. *
区块链技术:架构及进展;邵奇峰等;《计算机学报》;20171115(第05期);969-988页 *
安全高效,可信互联——工行区块链创新平台1.0 介绍;万涛等;《中国金融电脑》;20180407;28-30页 *

Also Published As

Publication number Publication date
CN108876370A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN108876370B (zh) 一种异构多链架构下跨区块链共享开放数据的体系架构
WO2021179661A1 (zh) 跨区块链的数据互存方法、装置、设备及存储介质
CN110933108B (zh) 基于区块链网络的数据处理方法、装置、电子设备及存储介质
CN108768652B (zh) 一种可抗量子攻击的联盟区块链底层加密方法
CN112418860A (zh) 一种基于跨链技术的区块链高效管理架构及工作方法
WO2022037596A1 (zh) 组合签名及验证签名方法、***及存储介质
CN107301521A (zh) 一种基于区块链的仓单***中加强仓单交易安全性的方法
JPWO2018168723A1 (ja) ネットワーク上の装置認証技術
CN109245894B (zh) 一种基于智能合约的分布式云存储***
CN112417512A (zh) 一种基于区块链的跨境贸易隐私数据管理***及方法
CN112529508A (zh) 一种基于pbft联盟链的电力物资管理***
US11368288B2 (en) Apparatus and method of lightweight communication protocols between multiple blockchains
Li et al. A survey on integrity auditing for data storage in the cloud: from single copy to multiple replicas
CN112654972A (zh) 具有受限交易的区块链设置
CN114357492A (zh) 一种基于区块链的医疗数据隐私融合方法及装置
CN113779594B (zh) 基于区块链的数据分发共享方法及***
Deebak et al. Healthcare applications using blockchain with a cloud-assisted decentralized privacy-preserving framework
CN112926983A (zh) 一种基于区块链的存证交易加密***及方法
CN111815329A (zh) 一种基于跨链技术实现高性能区块链网络的方法
CN107566357A (zh) 一种基于分区认证技术的互联网交易信息数据存储方法
RU2686818C1 (ru) Способ масштабирования распределенной информационной системы
CN114244537B (zh) 一种基于跨链通信和多链融合的信息处理***
Cheng et al. Ocean data sharing based on blockchain
CN114169888B (zh) 一种通用型支持多重签名的加密货币保管方法
Mashima et al. Enhancing demand response signal verification in automated demand response systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant