CN112861190B - 数据跨链协同方法、系统及装置 - Google Patents

数据跨链协同方法、系统及装置 Download PDF

Info

Publication number
CN112861190B
CN112861190B CN202110439978.8A CN202110439978A CN112861190B CN 112861190 B CN112861190 B CN 112861190B CN 202110439978 A CN202110439978 A CN 202110439978A CN 112861190 B CN112861190 B CN 112861190B
Authority
CN
China
Prior art keywords
chain
cross
transaction
service
processing
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
CN202110439978.8A
Other languages
English (en)
Other versions
CN112861190A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110439978.8A priority Critical patent/CN112861190B/zh
Publication of CN112861190A publication Critical patent/CN112861190A/zh
Application granted granted Critical
Publication of CN112861190B publication Critical patent/CN112861190B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请提供了一种数据跨链协同方法、系统、装置、电子设备及计算机可读存储介质;方法包括:多个区块链中的每个区块链通过链适配组件接入至少一个跨链协同服务,对于其中的任意一个区块链即源区块链,通过接入源区块链的跨链协同服务接收源区块链对应的跨链交易,并请求接入源区块链的至少一个跨链协同服务对跨链交易进行数据跨链的安全验证处理;由于跨链交易表示的是源区块链与目标区块链之间的交易,故根据安全验证处理得到的第一验证结果,将跨链交易通过接入目标区块链的跨链协同服务存储至目标区块链,以完成跨链交易。通过本申请,能够基于跨链协同服务提升数据跨链的安全性和灵活性。

Description

数据跨链协同方法、系统及装置
技术领域
本申请涉及区块链技术,尤其涉及一种数据跨链协同方法、系统、装置、电子设备及计算机可读存储介质。
背景技术
区块链(Blockchain)是涉及分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模型,本质上是一个去中心化的数据库,在数字资产、物流追踪及产品保护等场景有着广泛应用。
由于网络孤立、链环境不一致及链底层多样化等因素,会导致区块链形成数据孤岛(Isolated Data Island),即区块链与区块链之间相互隔离,无法进行通信。但是,在某些业务中又涉及到区块链之间的数据交互,在已形成数据孤岛的基础上,会导致这些业务无法开展。
针对于此,相关技术并未提供有效的解决方案。
发明内容
本申请实施例提供一种数据跨链协同方法、系统、装置、电子设备及计算机可读存储介质,能够灵活地实现数据跨链,同时保证数据跨链的安全性。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据跨链协同方法,包括:
通过跨链协同服务加载链适配组件,并接入调用所述链适配组件的源区块链;其中,所述源区块链为多个区块链中的任意一个,所述多个区块链中的每个区块链接入至少一个跨链协同服务;
接收所述源区块链对应的跨链交易;其中,所述跨链交易为所述源区块链与所述多个区块链中区别于所述源区块链的目标区块链之间的交易;
请求接入所述源区块链的至少一个所述跨链协同服务对所述跨链交易进行数据跨链的安全验证处理,得到第一验证结果;
根据所述第一验证结果,将所述跨链交易发送至接入所述目标区块链的所述跨链协同服务,以使接入所述目标区块链的所述跨链协同服务将所述跨链交易存储至所述目标区块链。
本申请实施例提供一种数据跨链协同系统,包括多个区块链以及多个跨链协同服务;
所述跨链协同服务,用于:
加载链适配组件,并接入调用所述链适配组件的源区块链;其中,所述源区块链为所述多个区块链中的任意一个,所述多个区块链中的每个区块链接入至少一个跨链协同服务;
接收所述源区块链对应的跨链交易;其中,所述跨链交易为所述源区块链与所述多个区块链中区别于所述源区块链的目标区块链之间的交易;
请求接入所述源区块链的至少一个所述跨链协同服务对所述跨链交易进行数据跨链的安全验证处理,得到第一验证结果;
根据所述第一验证结果,将所述跨链交易发送至接入所述目标区块链的所述跨链协同服务;
接入所述目标区块链的所述跨链协同服务,用于将接收到的所述跨链交易存储至所述目标区块链。
本申请实施例提供一种数据跨链协同装置,包括:
接收模块,用于通过跨链协同服务加载链适配组件,并接入调用所述链适配组件的源区块链;其中,所述源区块链为多个区块链中的任意一个,所述多个区块链中的每个区块链接入至少一个跨链协同服务;
所述接收模块,还用于接收所述源区块链对应的跨链交易;其中,所述跨链交易为所述源区块链与所述多个区块链中区别于所述源区块链的目标区块链之间的交易;
验证模块,用于请求接入所述源区块链的至少一个所述跨链协同服务对所述跨链交易进行数据跨链的安全验证处理,得到第一验证结果;
存储模块,用于根据所述第一验证结果,将所述跨链交易发送至接入所述目标区块链的所述跨链协同服务,以使接入所述目标区块链的所述跨链协同服务将所述跨链交易存储至所述目标区块链。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的数据跨链协同方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的数据跨链协同方法。
本申请实施例具有以下有益效果:
通过跨链协同服务加载链适配组件以接入区块链,并基于跨链协同服务进行区块链之间的数据跨链,一方面,在数据跨链的过程中能够通过安全验证处理来保证安全性,另一方面,区块链与跨链协同服务之间的对应关系(接入关系)可以根据实际应用场景进行调整,灵活性和自由度较强。
附图说明
图1是本申请实施例提供的数据跨链协同系统的架构示意图;
图2是本申请实施例提供的终端设备的架构示意图;
图3A是本申请实施例提供的数据跨链协同方法的流程示意图;
图3B是本申请实施例提供的数据跨链协同方法的流程示意图;
图3C是本申请实施例提供的数据跨链协同方法的流程示意图;
图3D是本申请实施例提供的数据跨链协同方法的流程示意图;
图3E是本申请实施例提供的数据跨链协同方法的流程示意图;
图3F是本申请实施例提供的数据跨链协同方法的流程示意图;
图4是本申请实施例提供的数据跨链协同系统的示意图;
图5是本申请实施例提供的数据跨链原理的示意图;
图6是本申请实施例提供的跨链协同服务的架构示意图;
图7是本申请实施例提供的跨链协同服务网络的示意图;
图8是本申请实施例提供的数据跨链过程的流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。在以下的描述中,所涉及的术语“多个”是指至少两个。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)交易(Transaction):等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本申请实施例遵循了这一习惯。
例如,部署(Deploy)交易用于向区块链网络中的节点安装指定的智能合约并准备好被调用;调用(Invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值对)和查询操作(即查询状态数据库中的键值对)。
2)区块链(Blockchain):是由区块(Block)形成的加密的、链式的交易的存储结构。例如,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,从而基于哈希值实现区块中交易的防篡改和防伪造;新产生的交易被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长。
3)区块链网络(Blockchain Network):通过共识的方式将新区块纳入区块链的一系列的节点的集合。
4)账本(Ledger):是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。其中,区块链是以文件系统中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持对区块链中交易的快速查询。
5)智能合约(Smart Contracts):也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询的操作。
6)共识(Consensus):是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
7)跨链协同服务:电子设备运行的用于进行数据跨链的服务,在本申请实施例中,每个跨链协同服务可以接入至少一个区块链,其中,一个电子设备(如服务器)可以运行一个或多个跨链协同服务,或者可以由多个电子设备来运行一个跨链协同服务。对于接入过程,可以由跨链协同服务加载特定的链适配组件,区块链(区块链网络)通过调用该链适配组件对应的接口,来接入该跨链协同服务。
下面说明本申请实施例提供的数据跨链协同系统的示例性应用,参见图1,图1是本申请实施例提供的数据跨链协同系统100的架构示意图,包括业务主体200(示例性示出了归属于业务主体200的终端设备210及其图形界面220)、区块链网络300(区块链网络300包括多个节点,图1中示例性示出了节点310)、服务器400-1、服务器400-2以及区块链网络500(图1中示例性地示出了节点510)。
在本申请实施例中,区块链网络的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如终端设备和服务器,都可以在不需要授权的情况下接入区块链网络;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如终端设备/服务器)可以接入区块链网络,并成为区块链网络中的客户端节点。
需要指出地,客户端节点可以只提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,而对于区块链网络的常规(原生)节点的功能,例如下文的排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实现。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络中,通过区块链网络实现数据和业务处理过程的可信和可追溯。
区块链网络可以接收业务主体的客户端节点提交的交易,执行交易以更新账本或者查询账本,并在客户端节点的图形界面显示执行交易的各种中间结果或最终结果。
下文以业务主体接入区块链网络以实现数据上链和数据查询为例,说明区块链网络的示例性应用。
参见图1,业务主体200通过终端设备210接入区块链网络300,即终端设备210成为区块链网络300的客户端节点。终端设备210可以生成交易,在交易中指定需要调用的智能合约、以及向智能合约传递的参数,交易还携带终端设备210签署的签名信息。然后,终端设备210可以将交易广播到区块链网络300。
区块链网络300中的节点310接收到交易时,对交易携带的签名信息进行验证处理,在对签名信息验证成功时,根据交易中携带的终端设备210的身份,确认终端设备210是否是具有交易权限,签名验证和权限验证中的任何一个验证判断失败都将导致交易失败。验证成功时签署节点310自身的签名信息,并继续在区块链网络300中广播。
区块链网络300中具有排序功能的节点310接收到验证成功的交易后,将交易填充到新的区块中,并广播到区块链网络300中提供共识服务的节点。
区块链网络300中的提供共识服务的节点310对新区块进行共识过程以达成一致,提供账本功能的节点310将新区块追加到区块链的尾部,并执行新区块中的交易:对于提交数据的交易,在账本数据库中添加该数据对应的键值对;对于查询数据的交易,从账本数据库中查询该数据对应的键值对,并返回查询结果。
在图1中,由于网络孤立、链环境不一致及链底层多样化等因素,可能会导致区块链网络300和区块链网络500均形成数据孤岛,即区块链网络300与区块链网络500之间无法互通。但是,在某些业务中,可能又会涉及到区块链网络300与区块链网络500之间的数据交互,因此,在本申请实施例中,通过跨链协同服务来实现数据跨链。
在本申请实施例中,跨链协同服务可以由终端设备或者服务器提供,图1中以服务器运行跨链协同服务为例。如图1所示,服务器400-1运行的跨链协同服务接入区块链网络300,服务器400-2运行的跨链协同服务接入区块链网络500。终端设备210可以向区块链网络300提交跨链交易,以使区块链网络300的节点将跨链交易存储于自身维护的区块链(还可以存储至状态数据库),这里的跨链交易是指区块链网络300维护的区块链(为了便于区分,后文命名为源区块链)与区块链网络500维护的区块链(为了便于区分,后文命名为目标区块链)之间的交易。
服务器400-1运行的跨链协同服务可以对源区块链进行监听,并将监听到的跨链交易作为接收到的跨链交易;也可以直接接收终端设备210发送的跨链交易,并将该跨链交易发送至区块链网络300(即存储至源区块链),即实现代理上链的功能。然后,服务器400-1运行的跨链协同服务请求接入源区块链的至少一个跨链协同服务(例如接入源区块链的所有或部分跨链协同服务)对跨链交易进行数据跨链的安全验证处理,得到第一验证结果。然后,服务器400-1运行的跨链协同服务根据第一验证结果,将跨链交易发送至接入目标区块链的跨链协同服务,图1中以服务器400-2运行的跨链协同服务为例。服务器400-2运行的跨链协同服务在接收到跨链交易时,将跨链交易发送至区块链网络500,以使区块链网络500的节点510将跨链交易存储至目标区块链中,完成数据跨链。
在一些实施例中,涉及到的服务器(如图1中的服务器400-1或服务器400-2)可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器,其中,云服务可以是数据跨链服务,供终端设备进行调用。涉及到的终端设备(如图1中的终端设备210)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能电视、智能手表等,但并不局限于此。电子设备(如终端设备或服务器)与区块链网络之间可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
值得说明的是,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
以本申请实施例提供的电子设备是终端设备为例说明,可以理解的,对于电子设备是服务器的情况,图2中示出的结构中的部分(例如用户接口、呈现模块和输入处理模块)可以缺省。参见图2,图2是本申请实施例提供的终端设备600的结构示意图,图2所示的终端设备600包括:至少一个处理器610、存储器650、至少一个网络接口620和用户接口630。终端设备600中的各个组件通过总线系统640耦合在一起。可理解,总线系统640用于实现这些组件之间的连接通信。总线系统640除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统640。
处理器610可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口630包括使得能够呈现媒体内容的一个或多个输出装置631,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口630还包括一个或多个输入装置632,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器650可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器650可选地包括在物理位置上远离处理器610的一个或多个存储设备。
存储器650包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器650旨在包括任意适合类型的存储器。
在一些实施例中,存储器650能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统651,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块652,用于经由一个或多个(有线或无线)网络接口620到达其他计算设备,示例性的网络接口620包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块653,用于经由一个或多个与用户接口630相关联的输出装置631(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块654,用于对一个或多个来自一个或多个输入装置632之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的数据跨链协同装置可以采用软件方式实现,图2示出了存储在存储器650中的数据跨链协同装置655,其可以是程序和插件等形式的软件,包括以下软件模块:接收模块6551、验证模块6552及存储模块6553,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
将结合本申请实施例提供的电子设备的示例性应用和实施,说明本申请实施例提供的数据跨链协同方法。
参见图3A,图3A是本申请实施例提供的数据跨链协同方法的流程示意图,将以接入源区块链的跨链协同服务与接入目标区块链的跨链协同服务之间进行交互的角度,结合图3A示出的步骤进行说明。
在步骤101中,接入源区块链的跨链协同服务接收源区块链对应的跨链交易;其中,源区块链为多个区块链中的任意一个;跨链交易为源区块链与多个区块链中区别于源区块链的目标区块链之间的交易。
在本申请实施例中,数据跨链协同系统可以包括多个区块链,其中每个区块链接入有至少一个跨链协同服务,其中,跨链协同服务可以是由终端设备或者服务器运行的。
这里,对区块链与跨链协同服务之间的接入方式不做限定,例如,在跨链协同服务中可以添加链适配组件的软件开发工具包(SDK,Software Development Kit)的文件目录(或称文件路径),从而加载(或称缓存)相应的链适配组件,同时,区块链网络的节点可以通过调用该链适配组件的接口,来接入该链适配组件以及加载该链适配组件的跨链协同服务。其中,区块链网络(区块链网络的节点)接入某个跨链协同服务,即表示该区块链网络所维护的区块链也接入了该跨链协同服务。
作为示例,本申请实施例提供了如图4所示的区块链与跨链协同服务之间的接入示意图,在图4中,跨链协同服务1通过链A适配组件接入区块链网络A,通过链B适配组件接入区块链网络B;跨链协同服务2通过链A适配组件接入区块链网络A;跨链协同服务3通过链C适配组件接入区块链网络C。其中,区块链网络A维护区块链A,区块链网络B维护区块链B,区块链网络C维护区块链C。值得说明的是,跨链协同服务1中的链A适配组件与跨链协同服务2中的链A适配组件虽然类型相同,即都是针对区块链A,但是可以认为是不同的链适配组件
在上述构建的数据跨链协同系统的基础上,接入源区块链的跨链协同服务可以接收源区块链对应的跨链交易,其中,源区块链为多个区块链中的任意一个,跨链交易为源区块链与多个区块链中区别于源区块链的目标区块链之间的交易。在接入源区块链的跨链协同服务的数量包括多个的情况下,可以预先设定由其中的某一个跨链协同服务来接收源区块链对应的跨链交易。另外,本申请实施例对目标区块链的数量不做限定,例如可以是一个或多个。
为了便于理解,根据图4进行举例说明,则源区块链可以是区块链A,目标区块链可以是区块链C,可以通过接入源区块链的跨链协同服务1来接收源区块链对应的跨链交易。
在一些实施例中,可以通过这样的方式来实现上述的接入源区块链的跨链协同服务接收源区块链对应的跨链交易:接入源区块链的跨链协同服务执行以下任意一种处理:监听源区块链的应用在源区块链存储的跨链交易,并将监听到的跨链交易作为接收到的跨链交易;接收源区块链的应用发送的跨链交易。
对于接入源区块链的跨链协同服务,本申请实施例提供了两种方式来接收源区块链对应的跨链交易。其一是监听源区块链的应用在源区块链中存储的跨链交易,并将监听到的跨链交易作为接收到的跨链交易;其二是接收源区块链的应用直接发送的跨链交易,并将该跨链交易存储至源区块链中,即可以实现代理上链的功能。其中,源区块链的应用可以是指源区块链所在区块链网络的节点所运行的应用,这里的节点可以是原生节点或客户端节点。
值得说明的是,在接入源区块链的跨链协同服务的数量包括多个的情况下,源区块链的应用还可以指定其中的某个跨链协同服务来接收源区块链对应的跨链交易,例如可以通过发送请求的方式来指定,或者直接在跨链交易中指定。以图4进行举例,接入区块链A的跨链协同服务包括跨链协同服务1和跨链协同服务2,则区块链A的应用可以指定跨链协同服务1来接收区块链A对应的跨链交易。通过上述方式,能够提升接收源区块链对应的跨链交易时的灵活性。
在步骤102中,接入源区块链的跨链协同服务请求接入源区块链的至少一个跨链协同服务对跨链交易进行数据跨链的安全验证处理,得到第一验证结果。
接入源区块链的某个跨链协同服务在接收到源区块链对应的跨链交易时,请求接入源区块链的至少一个跨链协同服务对跨链交易进行数据跨链的安全验证处理,这里,可以请求接入源区块链的所有或部分跨链协同服务对跨链交易进行安全验证处理。
接入源区块链的跨链协同服务在接收到针对跨链交易的验证请求时,可以获取源区块链存储的跨链交易(保证得到的跨链交易的准确性),并对跨链交易进行安全验证处理得到验证结果,为了便于区分,将这里得到的验证结果命名为第一验证结果。
以图4举例,跨链协同服务1可以向同样接入区块链A的跨链协同服务2发送验证请求。跨链协同服务2在接收到验证请求时,从区块链A中查询得到跨链交易,并对跨链交易进行安全验证处理得到第一验证结果。在一些实施例中,跨链协同服务1也可以请求自身对接收到的跨链交易进行安全验证处理。
在一些实施例中,接入源区块链的跨链协同服务请求接入源区块链的至少一个跨链协同服务对跨链交易进行安全验证处理之后,还包括:当接入源区块链的跨链协同服务接收到对跨链交易进行安全验证处理的验证请求时,查询验证区块链网络中的与跨链交易对应的第一验证结果;其中,验证区块链网络用于根据部署的智能合约对跨链交易进行安全验证处理;验证区块链网络用于维护源区块链以及源区块链的中继区块链中的任意一种。
在本申请实施例中,当接入源区块链的任意一个跨链协同服务接收到对跨链交易进行安全验证处理的验证请求时,自身可以不进行安全验证处理,而是向验证区块链网络进行查询。其中,验证区块链网络的节点用于根据预先部署的智能合约对跨链交易进行安全验证处理,即验证区块链网络的节点预设有对跨链交易进行安全验证处理的相关逻辑。验证区块链网络可以是源区块链对应的区块链网络,在源区块链对应的区块链网络无法部署用于安全验证处理的智能合约的情况下,验证区块链网络也可以是源区块链的中继区块链对应的区块链网络。
这里,可以对源区块链进行中继处理得到中继区块链,例如中继区块链可以用于存储源区块链中的所有区块头数据。在中继区块链对应的区块链网络中,易于部署各种类型的智能合约,便于根据智能合约对跨链交易进行安全验证处理。本申请实施例对用于进行中继处理的中继技术不做限定,例如可以是Polkadot或Cosmos中继技术。
以图4举例,跨链协同服务2在接收到针对跨链交易的验证请求时,可以向验证区块链网络发送相应的查询请求,以使验证区块链网络的节点根据预先部署的智能合约对跨链交易进行安全验证处理,并将得到的第一验证结果发送至跨链协同服务2。通过上述方式,能够减轻跨链协同服务的处理压力,提升跨链协同服务的负载能力。
在一些实施例中,可以通过这样的方式来实现上述的接入源区块链的跨链协同服务请求接入源区块链的至少一个跨链协同服务对跨链交易进行安全验证处理:接入源区块链的跨链协同服务对接收到的跨链交易进行安全验证处理;当对接收到的跨链交易进行安全验证处理得到的验证结果为验证成功时,请求接入源区块链的其他跨链协同服务对跨链交易进行安全验证处理。接入源区块链的跨链协同服务对接收到的跨链交易进行安全验证处理之后,还包括:当对接收到的跨链交易进行安全验证处理得到的验证结果为验证失败时,删除接收到的跨链交易。
以图4举例,跨链协同服务1在接收到区块链A对应的跨链交易时,首先可以对接收到的跨链交易进行安全验证处理,即请求自身对跨链交易进行安全验证处理。当跨链协同服务1对跨链交易进行安全验证处理得到的验证结果为验证成功时,跨链协同服务1请求接入区块链A、且区别于跨链协同服务1的所有或部分跨链协同服务对跨链交易进行安全验证处理;当跨链协同服务1对跨链交易进行安全验证处理得到的验证结果为验证失败时,跨链协同服务1删除该跨链交易,即停止对该跨链交易进行数据跨链,此外,还可以对跨链交易对应的业务进行回滚处理(如通知区块链A的应用对跨链交易对应的业务进行回滚处理),即回滚至执行跨链交易之前的状态。通过上述方式,由跨链协同服务1预先进行安全验证处理,从而在验证失败时能够有效节省其他跨链协同服务的计算资源。
在步骤103中,接入源区块链的跨链协同服务根据第一验证结果,将跨链交易发送至接入目标区块链的跨链协同服务。
这里,接入源区块链的跨链协同服务可以根据第一验证结果,判断是否将跨链交易发送至接入目标区块链的跨链协同服务。
其中,在接入目标区块链的跨链协同服务的数量包括多个时,可以将跨链交易发送至接入目标区块链的任意一个跨链协同服务,也可以发送至接入目标区块链的指定的一个跨链协同服务,这里,可以由源区块链的应用进行指定,例如可以通过发送请求的方式进行指定或者直接在跨链交易中进行指定。
以图4举例,跨链协同服务1可以获取跨链协同服务2的第一验证结果,并根据该第一验证结果,判断是否将跨链交易发送至接入区块链C(目标区块链)的跨链协同服务3。
在一些实施例中,可以通过这样的方式来实现上述的将跨链交易发送至接入目标区块链的跨链协同服务:接入源区块链的跨链协同服务根据跨链数据模板对跨链交易进行更新处理,得到更新后的跨链交易;将更新后的跨链交易发送至接入目标区块链的跨链协同服务。
在本申请实施例中,涉及的跨链交易可能包括冗余的内容(即不需要进行跨链的内容),因此,可以预先为数据跨链过程设定统一的跨链数据模板,并将跨链数据模板存储至各个跨链协同服务中。
以图4进行举例,跨链协同服务1可以根据预先存储的跨链数据模板对跨链交易进行更新处理,更新处理的过程即是根据跨链数据模板提取出跨链交易中的关键内容(或称必要内容)的过程,关键内容可以根据实际应用场景进行设定,如账户地址以及业务参数等,跨链交易中区别于关键内容的内容即为冗余内容。完成更新处理后,跨链协同服务1将得到的更新后的跨链交易发送至跨链协同服务3,以使跨链协同服务3将更新后的跨链交易存储至区块链C。如此,更新后的跨链交易包括的是必须进行跨链的关键内容,能够提升跨链交易的内容简洁性,同时提升跨链协同服务间进行数据传输的效率。
值得说明的是,对跨链交易进行更新处理的步骤可以在步骤102之前执行,可以与步骤102同时执行,也可以在步骤102之后执行,对此不做限定。
在一些实施例中,可以通过这样的方式来实现上述的接入源区块链的跨链协同服务根据第一验证结果,将跨链交易发送至接入目标区块链的跨链协同服务:当验证成功的第一验证结果的数量满足数量条件时,接入源区块链的跨链协同服务根据目标区块链的数据格式对跨链交易进行转义处理;将转义处理后的跨链交易发送至接入目标区块链的跨链协同服务。
这里,可以为第一验证结果设定数量条件,当验证成功的第一验证结果的数量满足数量条件时,接入源区块链的跨链协同服务(如图4中的跨链协同服务1)将跨链交易发送至接入目标区块链的跨链协同服务;当验证成功的第一验证结果的数量未满足数量条件时,接入源区块链的跨链协同服务可以删除接收到的跨链交易,即停止对该跨链交易进行数据跨链,此外,还可以对跨链交易对应的业务进行回滚处理。
数量条件可以根据实际应用场景进行设定,例如可以是接入源区块链且存活(即正在运行)的所有跨链协同服务得到的第一验证结果均为验证成功,又例如可以是验证成功的第一验证结果的数量/第一验证结果的总数量≥设定比例,其中设定比例如2/3。
接入源区块链的跨链协同服务在将跨链交易发送至接入目标区块链的跨链协同服务之前,可以根据目标区块链的数据格式对跨链交易进行转义处理,以使转义处理后的跨链交易符合目标区块链的数据格式。如此,使得转义处理后的跨链交易能够被目标区块链对应的区块链网络的节点理解(识别),即能够提升接入目标区块链的跨链协同服务后续进行数据上链的成功率。例如,源区块链的数据格式中的字段a与目标区块链的数据格式中的字段b的实际含义相同,则在转义处理的过程中,可以将字段a修改为字段b。
值得说明的是,在本申请实施例中,接入源区块链的跨链协同服务可能也具有独立的数据格式,因此,转义处理可能会涉及到多次转义,即从源区块链的数据格式转义到接入源区块链的跨链协同服务的数据格式,再从接入源区块链的跨链协同服务的数据格式转义到目标区块链的数据格式。其中,接入源区块链的跨链协同服务也可以将符合自身数据格式的跨链交易发送至接入目标区块链的跨链协同服务,以使接入目标区块链的跨链协同服务针对接收到的跨链交易,执行从接入源区块链的跨链协同服务的数据格式到目标区块链的数据格式的转义。
值得说明的是,接入源区块链的跨链协同服务在对跨链交易进行转义处理之前,还可以根据跨链数据模板对跨链交易进行更新处理,从而减少转义处理的计算量。
在一些实施例中,可以通过这样的方式来实现上述的接入源区块链的跨链协同服务请求接入源区块链的至少一个跨链协同服务对跨链交易进行安全验证处理,得到第一验证结果:当接入源区块链的跨链协同服务接收到针对跨链交易的跨链请求时,请求接入源区块链的至少一个跨链协同服务对跨链交易进行安全验证处理,得到第一验证结果;可以通过这样的方式来实现上述的接入源区块链的跨链协同服务根据第一验证结果,将跨链交易发送至接入目标区块链的跨链协同服务:接入源区块链的跨链协同服务根据第一验证结果,将存储于本地数据库中的跨链交易发送至接入目标区块链的跨链协同服务。
以图4进行举例,跨链协同服务1在接收到区块链A对应的跨链交易时,可以将该跨链交易存储于跨链协同服务1的本地数据库,便于后续获取。
当跨链协同服务1接收到针对跨链交易的跨链请求(如区块链A的应用发起的跨链请求)时,证明此时需要进行数据跨链,跨链协同服务1请求接入区块链A的至少一个跨链协同服务对跨链交易进行安全验证处理,得到第一验证结果。跨链协同服务1在得到第一验证结果后,若根据第一验证结果判断出需要将跨链交易发送至接入目标区块链的跨链协同服务(如跨链协同服务3),则跨链协同服务1可以从本地数据库中获取跨链交易,以进行发送。跨链协同服务1在将跨链交易成功发送至跨链协同服务3时,可以删除本地数据库中的跨链交易,以节省存储资源。同理,跨链协同服务3在接收到跨链交易时,也可以将跨链交易存储于自身的本地数据库。
此外,跨链协同服务1还可以将存储于本地数据库中的跨链交易发送至区块链A的应用,例如进行可视化呈现,便于区块链A的应用的用户获知数据跨链的具体过程。在上述方式中,可以通过跨链请求来触发安全验证处理,能够提升数据跨链的灵活性和时机合理性。
在步骤104中,接入目标区块链的跨链协同服务将接收到的跨链交易存储至目标区块链。
这里,接入目标区块链的跨链协同服务在接收到跨链交易时,将跨链交易发送至目标区块链对应的区块链网络的节点,以存储于目标区块链中,如此,可以视为数据跨链完成(跨链交易完成)。
以图4举例,跨链协同服务3在接收到来自于跨链协同服务1的跨链交易时,将跨链交易发送至区块链网络C,以使区块链网络C的节点将跨链交易存储至区块链C中。
如图3A所示,本申请实施例在数据跨链的过程中,通过数据跨链的安全验证处理来保证数据跨链的安全性,同时,区块链与跨链协同服务之间的对应关系(接入关系)也可以根据实际应用场景进行调整,灵活性和自由度较强。
在一些实施例中,参见图3B,图3B是本申请实施例提供的数据跨链协同方法的流程示意图,基于图3A,在步骤101之前,还可以在步骤201中,接入源区块链的跨链协同服务根据第三方服务中的地址信息进行寻址处理,并根据寻址处理得到的跨链协同服务对应的通信方式,请求与寻址处理得到的跨链协同服务建立通信连接。
这里,数据跨链协同系统还可以包括第三方服务,该第三方服务存储所有跨链协同服务的地址信息,如互联网协议(IP,Internet Protocol)地址。接入源区块链的跨链协同服务可以根据第三方服务中的地址信息进行寻址处理,获取寻址处理得到的跨链协同服务对应的通信方式(可以预先配置),并根据获取到的通信方式请求与寻址处理得到的跨链协同服务建立通信连接。其中,通信方式可以包括通信协议、认证方式以及安全属性中的至少之一,通信协议如点对点(P2P,Peer-to-Peer)、超文本传输协议(HTTP,HyperTextTransfer Protocol)以及超文本传输安全协议(HTTPS,Hyper Text Transfer Protocolover Securesocket layer)等;认证方式如单向认证及双向认证等;安全属性如安全传输层(TLS,Transport Layer Security)属性,用于提升通信连接的安全性。
值得说明的是,本申请实施例对第三方服务的具体实现方式不做限定,例如第三方服务可以由数据库、服务器或者区块链提供。在第三方服务由区块链(为了便于区分,将提供第三方服务的区块链命名为治理区块链)提供的情况下,各跨链协同服务可以通过相应的链适配组件来接入治理区块链(或称接入治理区块链对应的区块链网络),从而实现与第三方服务之间的数据交互。
以图4举例,第三方服务存储有跨链协同服务1至3的地址信息,跨链协同服务1可以从第三方服务中获取跨链协同服务2和3的地址信息,以分别对跨链协同服务2和3进行寻址处理。然后,跨链协同服务1根据跨链协同服务2所配置的通信方式,与跨链协同服务2建立通信连接;跨链协同服务1根据跨链协同服务3所配置的通信方式,与跨链协同服务3建立通信连接。同理,跨链协同服务2也可以与跨链协同服务3建立通信连接,即所有的跨链协同服务可以互联,从而构成一个统一的跨链协同服务网络。
值得说明的是,步骤201可以在步骤101之前执行,也可以在步骤101之后执行。
在一些实施例中,第三方服务存储有接入每个区块链的至少一个跨链协同服务的身份信息;根据寻址处理得到的跨链协同服务对应的通信方式,请求与寻址处理得到的跨链协同服务建立通信连接之后,还包括:当跨链协同服务接收到建立通信连接的连接请求时,将连接请求中的身份信息与第三方服务中的身份信息进行匹配处理,得到身份匹配结果;当身份匹配结果为匹配成功时,建立与发起连接请求的跨链协同服务之间的通信连接。
这里,第三方服务还可以存储所有跨链协同服务的身份信息,该身份信息可以用于对跨链协同服务的身份进行验证,以确定跨链协同服务是否有权限执行数据跨链的相关操作。
以图4举例,当跨链协同服务2接收到跨链协同服务1发送的建立通信连接的连接请求时,将从第三方服务中获取到的跨链协同服务1的身份信息与连接请求中携带的身份信息进行匹配处理,得到身份匹配结果。当身份匹配结果为匹配成功(即第三方服务中的跨链协同服务1的身份信息与连接请求中的身份信息一致)时,跨链协同服务2建立与跨链协同服务1之间的通信连接;当身份匹配结果为匹配失败(即第三方服务中的跨链协同服务1的身份信息与连接请求中的身份信息不一致)时,跨链协同服务2拒绝建立与跨链协同服务1之间的通信连接。
此外,跨链协同服务也可以查询第三方服务中是否存在自身对应的身份信息,如果不存在,则不允许执行与数据跨链相关的任何操作。在上述方式中,第三方服务可以提供身份验证功能,能够进一步提升数据跨链的安全、保密性。
在图3B中,图3A示出的步骤102可以更新为步骤202,在步骤202中,接入源区块链的跨链协同服务在已建立通信连接的多个跨链协同服务中,请求接入源区块链的至少一个跨链协同服务对跨链交易进行安全验证处理,得到第一验证结果。
这里,接入源区块链的跨链协同服务(如图4中的跨链协同服务1)可以在已建立通信连接的所有跨链协同服务中,筛选出接入源区块链的所有或部分跨链协同服务,并请求筛选出的跨链协同服务对跨链交易进行安全验证处理,得到第一验证结果。已建立通信连接,证明对应的跨链协同服务存活(正在运行),因此,能够保证针对跨链交易的验证请求能够顺利地到达。
此外,在步骤103中,接入源区块链的跨链协同服务还可以基于已建立的通信连接,将跨链交易发送至接入目标区块链的跨链协同服务。
如图3B所示,本申请实施例通过第三方服务中的地址信息,能够实现不同跨链协同服务之间的互联,从而便于进行数据交互。
在一些实施例中,参见图3C,图3C是本申请实施例提供的数据跨链协同方法的流程示意图,图3A示出的步骤102可以通过步骤301至步骤305实现,将结合各个步骤进行说明。
在步骤301中,接入源区块链的跨链协同服务请求接入源区块链的至少一个跨链协同服务对跨链交易进行数据跨链的安全验证处理。
为了便于理解,以图4进行举例,即跨链协同服务1请求跨链协同服务2对跨链交易进行安全验证处理。
在步骤302中,当接入源区块链的跨链协同服务接收到对跨链交易进行安全验证处理的验证请求时,获取源区块链存储的跨链交易;其中,跨链交易包括公钥、公钥地址、签名信息以及明文信息。
例如,跨链协同服务2在接收到跨链协同服务1发送的、对跨链交易进行安全验证处理的验证请求时,获取区块链A(即源区块链)存储的跨链交易,如此,可以保证跨链协同服务2得到的跨链交易的准确性。
在本申请实施例中,可以利用私钥签名-公钥验签的原理,对跨链交易进行安全验证处理。为了便于理解,以跨链交易包括公钥、公钥地址、签名信息以及明文信息的情况进行举例说明。值得说明的是,在一些情况中,跨链交易可能不包括公钥,例如跨链交易是通过椭圆曲线数字签名算法(ECDSA,Elliptic Curve Digital Signature Algorithm)进行签名处理得到的,在该情况下,可以根据ECDSA算法对跨链交易中的签名信息及明文信息进行恢复处理,以恢复出公钥。
在步骤303中,接入源区块链的跨链协同服务对明文信息进行哈希处理得到明文哈希,根据公钥对明文哈希进行加密处理得到加密明文哈希,并将加密明文哈希与签名信息进行匹配处理,得到第一匹配结果。
例如,跨链协同服务2对跨链交易中的明文信息进行哈希处理得到明文哈希,这里,对采用的哈希算法不做限定。然后,跨链协同服务2根据跨链交易中的公钥对明文哈希进行加密处理得到加密明文哈希,并将加密明文哈希与跨链交易中的签名信息进行匹配处理,得到第一匹配结果。
举例来说,当加密明文哈希与签名信息相同时,可以确定第一匹配结果为匹配成功;当加密明文哈希与签名信息不同时,可以确定第一匹配结果为匹配失败。
在步骤304中,接入源区块链的跨链协同服务对公钥进行哈希处理得到公钥哈希,并将公钥哈希与公钥地址进行匹配处理,得到第二匹配结果。
例如,跨链协同服务2对跨链交易中的公钥进行哈希处理得到公钥哈希,并将公钥哈希与跨链交易中的公钥地址进行匹配处理,得到第二匹配结果。
举例来说,当公钥哈希与公钥地址相同时,可以确定第二匹配结果为匹配成功;当公钥哈希与公钥地址不同时,可以确定第二匹配结果为匹配失败。即正确的公钥地址是与公钥哈希相同的。
在步骤305中,当第一匹配结果和第二匹配结果均为匹配成功时,接入源区块链的跨链协同服务确定对跨链交易进行安全验证处理得到的第一验证结果为验证成功。
例如,当第一匹配结果和第二匹配结果中的任意一个为匹配失败时,跨链协同服务2确定得到的第一验证结果为验证失败;当第一匹配结果和第二匹配结果均为匹配成功时,跨链协同服务2确定得到的第一验证结果为验证成功。
值得说明的是,以上的安全验证处理的方式可以应用于本申请实施例的其他步骤中,例如可以通过智能合约的形式部署于验证区块链网络的节点中,又例如可以由接入目标区块链的跨链协同服务执行。当然,以上的安全验证处理的方式仅为示例,并不构成对本申请实施例的限定。
如图3C所示,本申请实施例对跨链交易中的签名信息和公钥地址进行验证,能够有效地提升安全验证处理的准确性,保证跨链交易不被恶意篡改。
在一些实施例中,参见图3D,图3D是本申请实施例提供的数据跨链协同方法的流程示意图,图3A示出的步骤103可以更新为步骤401,在步骤401中,当验证成功的第一验证结果的数量满足数量条件时,接入源区块链的跨链协同服务将跨链交易发送至接入目标区块链的跨链协同服务。
为了便于理解,以图4进行举例,跨链协同服务1可以获取接入区块链A(即源区块链)的其他跨链协同服务的第一验证结果。当验证成功的第一验证结果的数量满足数量条件时,跨链协同服务1将跨链交易发送至接入区块链C(即目标区块链)的跨链协同服务3。
在图3D中,图3A示出的步骤104可以更新为步骤402,在步骤402中,接入目标区块链的跨链协同服务对接收到的跨链交易进行签名处理,并将签名处理后的跨链交易存储至目标区块链。
例如,跨链协同服务3对跨链协同服务1发送的跨链交易进行签名处理,并将签名处理后的跨链交易发送至区块链网络C,以使区块链网络C的节点将签名处理后的跨链交易存储至区块链C。同时,跨链协同服务3也可以将签名处理后的跨链交易存储至本地数据库。值得说明的是,本申请实施例对签名处理所用的签名算法不做限定,例如可以是ECDSA算法。
在一些实施例中,跨链协同服务通过链适配组件接入区块链,且用于接入不同区块链的链适配组件不同;可以通过这样的方式来实现上述的接入目标区块链的跨链协同服务对接收到的跨链交易进行签名处理:接入目标区块链的跨链协同服务根据用于接入目标区块链的链适配组件对应的私钥,对接收到的跨链交易进行签名处理。
在本申请实施例中,跨链协同服务可以通过链适配组件来接入区块链,其中,用于接入不同区块链的链适配组件不同,不同的链适配组件对应的私钥不同,不同的链适配组件对应的公钥也不同。
因此,对于跨链协同服务3来说,可以根据用于接入区块链C的链适配组件(即图4中的链C适配组件)对应的私钥,对接收到的跨链交易进行签名处理。签名处理后的跨链交易可以包括链C适配组件对应的公钥、对链C适配组件对应的公钥进行哈希处理得到的公钥地址、跨链协同服务3进行签名处理(也可以是通过链C适配组件进行签名处理)得到的签名信息、以及明文信息,当然,这并不构成对签名处理后的跨链交易的限定。通过上述方式,能够保证签名处理的有效性,能够通过签名处理后的跨链交易准确识别出签名方。
在图3D中,步骤402之后,还可以在步骤403中,接入目标区块链的跨链协同服务请求接入目标区块链的至少一个跨链协同服务对签名处理后的跨链交易进行数据跨链的安全验证处理,得到第二验证结果。
在本申请实施例中,还可以对签名处理后的跨链交易进行二次确认。例如,跨链协同服务3可以请求接入区块链C的所有或部分跨链协同服务对签名处理后的跨链交易进行安全验证处理,为了便于区分,将这里得到的验证结果命名为第二验证结果。
值得说明的是,步骤403中的安全验证处理可以是指对跨链交易的新增内容进行安全验证处理,还可以指对跨链交易的原始内容进行安全验证处理。其中,新增内容是指通过步骤402的签名处理在跨链交易中新增的内容,如链C适配组件对应的公钥、对链C适配组件对应的公钥进行哈希处理得到的公钥地址、以及跨链协同服务3进行签名处理得到的签名信息;原始内容是指在步骤402之前,跨链交易包括的内容。
值得说明的是,步骤403可以在将签名处理后的跨链交易存储至目标区块链的步骤之前执行,也可以在将签名处理后的跨链交易存储至目标区块链的步骤之后执行,还可以同时执行。
在步骤404中,当验证成功的第二验证结果的数量未满足数量条件时,接入目标区块链的跨链协同服务对签名处理后的跨链交易进行失败应对处理。
例如,跨链协同服务3可以获取接入区块链C的其他跨链协同服务的第二验证结果。当验证成功的第二验证结果的数量未满足数量条件时,跨链协同服务3对签名处理后的跨链交易进行失败应对处理。
值得说明的是,步骤404中的数量条件与步骤401中的数量条件可以相同,也可以不同,可以根据实际应用场景进行自由设定。
在一些实施例中,可以通过这样的方式来实现上述的接入目标区块链的跨链协同服务对签名处理后的跨链交易进行失败应对处理:当目标区块链未存储签名处理后的跨链交易时,接入目标区块链的跨链协同服务重新将签名处理后的跨链交易存储至目标区块链;当目标区块链已存储签名处理后的跨链交易、以及对应的交易失败结果时,接入目标区块链的跨链协同服务将交易失败结果发送至第三方服务。
在本申请实施例中,可能存在两种问题,导致验证成功的第二验证结果的数量未满足数量条件。其一是网络问题,例如由于网络波动,导致跨链协同服务3没有成功将签名处理后的跨链交易存储至区块链C,对于该情况,跨链协同服务3可以从本地数据库中获取签名处理后的跨链交易,并重新将签名处理后的跨链交易存储至区块链C。
其二是交易问题,即签名处理后的跨链交易本身就存在问题,对于该情况,区块链网络C的节点会在区块链C中同时存储签名处理后的跨链交易、以及对应的交易失败结果。跨链协同服务3可以获取区块链C中的交易失败结果,并将交易失败结果发送至第三方服务,如存储至治理区块链中。通过上述方式,对于不同的问题进行针对性处理,能够提升失败应对处理的处理效果。
在一些实施例中,接入目标区块链的跨链协同服务将交易失败结果发送至第三方服务之后,还包括:接入源区块链的跨链协同服务获取第三方服务中的交易失败结果,并根据交易失败结果对跨链交易对应的业务进行回滚处理。
例如,跨链协同服务3将交易失败结果发送至第三方服务后,跨链协同服务1可以获取第三方服务中的交易失败结果,并根据交易失败结果对跨链交易对应的业务进行回滚处理,以使业务回滚到执行跨链交易之前的状态。本申请实施例对回滚处理的具体方式不做限定,例如可以是业务中的数据修改和/或经济补偿等。通过上述方式,能够最大程度地保证业务的正常运行,减少损失。
如图3D所示,本申请实施例提供了二次确认的机制,能够进一步提升数据跨链的准确性和安全性;在数据跨链失败时,可以进行失败应对处理,从而减少损失(如数据损失或经济损失等)。
参见图3E,图3E是本申请实施例提供的数据跨链协同方法的流程示意图,将以接入源区块链的跨链协同服务的角度,结合图3E示出的步骤进行说明。
在步骤501中,通过跨链协同服务加载链适配组件,并接入调用链适配组件的源区块链;其中,源区块链为多个区块链中的任意一个,多个区块链中的每个区块链接入至少一个跨链协同服务。
在步骤502中,通过接入源区块链的跨链协同服务,接收源区块链对应的跨链交易;其中,跨链交易为源区块链与多个区块链中区别于源区块链的目标区块链之间的交易。
在本申请实施例中存在多个区块链,其中每个区块链通过链适配组件接入有至少一个跨链协同服务,其中,跨链协同服务可以是由电子设备(终端设备或者服务器)运行的。
为了便于理解,将结合图4说明数据跨链协同的过程,这里,以源区块链为区块链A,目标区块链为区块链C举例。对于接入区块链A的跨链协同服务1来说,运行跨链协同服务1的电子设备可以通过跨链协同服务1来接收区块链A对应的跨链交易。
在步骤503中,通过接入源区块链的跨链协同服务,请求接入源区块链的至少一个跨链协同服务对跨链交易进行数据跨链的安全验证处理,得到第一验证结果。
例如,运行跨链协同服务1的电子设备通过跨链协同服务1,请求接入区块链A的所有或部分跨链协同服务对跨链交易进行安全验证处理,对于每一个接入区块链A、且需要对跨链交易进行安全验证处理的跨链协同服务来说,进行安全验证处理后会得到第一验证结果。
值得说明的是,在步骤503中,需要对跨链交易进行安全验证处理的跨链协同服务可以包括跨链协同服务1自身,也可以包括区别于跨链协同服务1的其他跨链协同服务(如跨链协同服务2)。
在步骤504中,通过接入源区块链的跨链协同服务,根据第一验证结果将跨链交易发送至接入目标区块链的跨链协同服务,以使接入目标区块链的跨链协同服务将跨链交易存储至目标区块链。
例如,运行跨链协同服务1的电子设备通过跨链协同服务1,根据第一验证结果将跨链交易发送至接入目标区块链的跨链协同服务(如图4中的跨链协同服务3),以使接入目标区块链的跨链协同服务将接收到的跨链交易存储至目标区块链(如区块链C)。如此,可以确定跨链交易交易完成,在本申请实施例中,接入目标区块链的跨链协同服务还可以对跨链交易进行二次确认,以进一步提升数据跨链的安全性。
如图3E所示,本申请实施例在数据跨链的过程中,通过安全验证处理来保证数据跨链的安全性,同时,区块链与跨链协同服务之间的对应关系(接入关系)也可以根据实际应用场景进行调整,灵活性和自由度较强。
在一些实施例中,参见图3F,图3E示出的步骤502之后,还可以在步骤601中,通过接入源区块链的跨链协同服务对接收到的跨链交易进行数据跨链的安全验证处理。
例如,运行跨链协同服务1的电子设备通过跨链协同服务1,对接收到的跨链交易进行安全验证处理。
在步骤602中,当对接收到的跨链交易进行安全验证处理得到的验证结果为验证成功时,通过接入源区块链的跨链协同服务,根据跨链数据模板对跨链交易进行更新处理得到更新后的跨链交易,并将更新后的跨链交易存储至本地数据库。
例如,当通过步骤601得到的验证结果为验证失败时,停止数据跨链;当通过步骤601得到的验证结果为验证成功时,运行跨链协同服务1的电子设备通过跨链协同服务1,根据跨链数据模板对跨链交易进行更新处理得到更新后的跨链交易,并将更新后的跨链交易存储至跨链协同服务1的本地数据库。其中,更新处理的目的是提取出原始的跨链交易中的必要内容(关键内容)。
其中,跨链数据模板可以预先存储于各个跨链协同服务中,跨链协同服务的本地数据库可以是运行该跨链协同服务的电子设备所提供的。
在一些实施例中,参见图3F,图3E示出的步骤503可以通过步骤603至步骤604实现,将结合各个步骤进行说明。
在步骤603中,通过接入源区块链的跨链协同服务,根据第三方服务中的地址信息进行寻址处理,并根据寻址处理得到的跨链协同服务对应的通信方式,请求与寻址处理得到的跨链协同服务建立通信连接。
这里,第三方服务存储有所有跨链协同服务的地址信息。举例来说,运行跨链协同服务1的电子设备通过跨链协同服务1,获取第三方服务中区别于跨链协同服务1的其他跨链协同服务的地址信息,并根据获取到的地址信息进行寻址处理。然后,根据寻址处理得到的跨链协同服务对应的通信方式,请求与寻址处理得到的跨链协同服务建立通信连接,便于后续基于建立的通信连接进行数据交互。
值得说明的是,本申请实施例对步骤603的执行顺序不做限定,例如可以在步骤602之后执行,也可以在步骤502之前执行。
在步骤604中,通过接入源区块链的跨链协同服务在已建立通信连接的多个跨链协同服务中,请求接入源区块链的至少一个跨链协同服务对跨链交易进行数据跨链的安全验证处理,得到第一验证结果。
例如,运行跨链协同服务1的电子设备通过跨链协同服务1,在跨链协同服务1已建立通信连接的多个跨链协同服务中,请求接入区块链A(源区块链)、且区别于跨链协同服务1的全部或部分跨链协同服务对跨链交易进行安全验证处理。对于接收到针对跨链交易的验证请求的每个跨链协同服务来说,对跨链交易进行安全验证处理后会得到第一验证结果,跨链协同服务1可以通过已建立的通信连接获取第一验证结果。
在一些实施例中,参见图3F,图3E示出的步骤504可以通过步骤605至步骤606实现,将结合各个步骤进行说明。
在步骤605中,当验证成功的第一验证结果的数量满足数量条件时,通过接入源区块链的跨链协同服务,根据目标区块链的数据格式对本地数据库中的更新后的跨链交易进行转义处理。
例如,运行跨链协同服务1的电子设备通过跨链协同服务1获取第一验证结果,当验证成功的第一验证结果的数量满足数量条件时,根据区块链C(目标区块链)的数据格式对本地数据库中的更新后的跨链交易进行转义处理,其中,转义处理的目的在于使区块链网络C中的节点能够清楚获取更新后的跨链交易的实际含义。
在步骤606中,通过接入源区块链的跨链协同服务,将转义处理后的跨链交易发送至接入目标区块链的跨链协同服务,以使接入目标区块链的跨链协同服务将跨链交易存储至目标区块链。
例如,运行跨链协同服务1的电子设备通过跨链协同服务1,将转义处理后的跨链交易发送至接入区块链C的跨链协同服务3。如此,运行跨链协同服务3的电子设备便可通过跨链协同服务3,将转义处理后的跨链交易存储至目标区块链,完成数据跨链。
如图3F所示,本申请实施例通过预先验证、更新处理、寻址处理、数量条件约束以及转义处理等机制,能够有效保障数据跨链的安全性和成功率。
下面,将说明本申请实施例在实际的应用场景中的示例性应用。本申请实施例能够在多个区块链之间已形成数据隔离的基础上实现数据跨链,同时保证数据跨链的安全性。同时,本申请实施例能够提升数据跨链的灵活性和易扩展性,在对数据跨链协同系统不做调整的情况下,能够支持两个区块链以及三个以上的区块链之间的数据互跨。
本申请实施例提供了如图5所示的数据跨链原理的示意图,在图5中,区块链网络A所维护的区块链与区块链网络B所维护的区块链之间相互隔离,即区块链网络A的节点(如图5示出的节点51)无法直接访问区块链网络B的节点。在本申请实施例中,通过特定的跨链结构来实现区块链网络A与区块链网络B之间的通信,该跨链结构可以是第三方结构或中间件等。
在本申请实施例中,跨链结构可以实现为跨链协同服务,从而基于跨链协同服务提供数据跨链功能。作为示例,提供了如图6所示的跨链协同服务的架构示意图,跨链协同服务的组件可以包括跨链协同服务注册中心、服务寻址、跨链协同服务间通信、跨链通用接口、跨链事务控制、跨链互操作验证及链适配器(对应上文的链适配组件),将在后文进行分别说明。
1)跨链协同服务注册中心:是链适配器的注册中心,也是跨链协同服务间相互注册的注册中心。对于链适配器来说,在跨链协同服务中可以添加链适配器的SDK的文件目录(或称文件路径),从而加载(缓存)相应的链适配器,同时,区块链网络可以通过调用该链适配器的接口(通用接口),来接入该链适配器以及加载该链适配器的跨链协同服务。例如,跨链协同服务可以通过加载区块链网络A的链适配器(简称为链A适配器)来接入区块链网络A,其中,区块链网络A已经实现了链A适配器的接口。
对于跨链协同服务来说,可以将自身的地址信息(如IP地址等)以及身份信息登记到治理区块链网络(对应上文的第三方服务)所维护的治理区块链中。如此,可以基于治理区块链中的地址信息进行服务寻址,还可以基于治理区块链中的身份信息对跨链协同服务进行身份安全验证处理。其中,跨链协同服务可以通过治理链适配器来接入治理区块链网络。
2)服务寻址:基于跨链协同服务之间的相互注册,能够找到不同跨链协同服务的地址信息,从而实现服务寻址。例如,跨链协同服务可以从治理区块链中获取其他跨链协同服务的地址信息。
3)跨链协同服务间通信:跨链协同服务间通信可以包括可用性通信和业务通信两个部分。在可用性通信的部分中,基于服务寻址,可以根据多个跨链协同服务构建一个统一的跨链协同服务网络,在该跨链协同服务网络中,可以进行数据交互。在业务通信的部分中,跨链协同服务可以根据实际需求来配置所需的通信方式,例如可以配置通信协议,如P2P、HTTP及HTTPS等;还可以在通信协议的基础上配置认证方式,例如配置HTTPS是双向认证还是单向认证;还可以配置安全属性,如TLS属性,以保证通信连接的安全性。
作为示例,本申请实施例提供了如图7所示的跨链协同服务网络的示意图,跨链协同服务71、72、73和74可以通过特定的通信方式(如P2P)进行互联(即建立通信连接),从而构建跨链协同服务网络。当某个跨链协同服务通过加载的链适配器接收到跨链交易时,可以根据治理区块链中存储的身份信息对自身进行匹配处理,得到身份匹配结果。当身份匹配结果为匹配成功时,该跨链协同服务可以请求跨链协同服务网络中的、同样加载了该链适配器的其他跨链协同服务对跨链交易进行安全验证处理,得到验证结果(为了便于区分,命名为第一验证结果);当身份匹配结果为匹配失败时,禁止进行数据跨链。其他跨链协同服务在进行安全验证处理得到第一验证结果后,可以将第一验证结果在跨链协同服务网络中进行广播。
4)跨链通用接口:抽离出跨链的通用接口,即链适配器对应的接口。对于区块链网络来说,可以通过适配(或称调用、实现)该接口,从而轻易地接入对应的跨链协同服务。
5)跨链事务控制:用于对跨链交易相关的事务进行控制,从而保证跨链双方(即源区块链和目标区块链)数据的一致性和完整性。
6)跨链互操作验证:基于构建的跨链协同服务网络,可以对跨链交易进行安全验证处理。这里,可以根据实际应用场景确定安全验证处理的时机,例如可以进行立即验证,即是在将跨链交易上链(如存储至目标区块链)的过程中对跨链交易进行验证;又如可以进行事后验证,即是在跨链交易已上链完成时,对跨链交易进行验证;又如可以进行间隔性验证,即是在数据跨链协同系统运行的过程中,随机抽取部分的跨链交易进行验证。
7)链适配器:在跨链协同服务内部,可以通过插件式的方式动态地加载各种链适配器,让链适配器成为跨链协同服务中的组件。同时,跨链协同服务也可以向外提供加载的链适配器的通用接口,对于区块链网络来说,通过实现该通用接口即可成功地接入相应的跨链协同服务。
通过跨链协同服务的上述组件,至少可以实现以下技术效果。
1)一个跨链协同服务可以接入多个区块链,从而实现多链互跨的效果。
2)跨链协同服务之间可以通过特定的通信方式(如P2P)进行互联,能够支持跨链协同服务之间的服务互发现,为服务寻址提供基础。
3)在进行数据跨链时,从源区块链网络接收到跨链交易的跨链协同服务可以不用接入目标区块链,即通过跨链协同服务网络来实现数据互跨。如此,能够解除数据跨链过程中必须同时接入源区块链和目标区块链的限制,减少节点的部署数量,节省电子设备的计算资源消耗,同时也能够减轻跨链协同服务的处理压力。
由于节点的部署比较消耗资源,通常来说,部署一个节点需要占用500G的固态驱动器(SSD,Solid State Disk)、4核以上的中央处理器(CPU,Central Processing Unit)以及8G以上的内存。以A链(甲机构所维护的区块链)和B链(乙机构所维护的区块链)之间进行数据跨链举例,在相关技术提供的方案中,考虑到安全性和共识算法,至少需要部署4个节点,例如,至少需要在A链的区块链网络中部署一个甲机构对应的节点和一个乙机构对应的节点,B链同理。而在本申请实施例中,可以无需在A链的区块链网络中部署乙机构对应的节点,也无需在B链的区块链网络中部署甲机构对应的节点,如此,在保证数据跨链的安全性的基础上,能够减少部署节点的资源消耗。
4)抽离出跨链的通用接口,区块链网络只需适配该通用接口即可快速地接入跨链协同服务。如此,既将跨链行为进行了标准化,同时也能够提升接入效率,此外,因为接口必须实现,为事务控制及安全验证处理提供了必要的接口使用,保证数据跨链的真实可靠。
5)跨链事务控制及跨链互操作验证两个组件都可以进行模块化处理,在实际应用场景中,可以根据实际需要选择不同的处理模式,只需要接入源区块链的跨链协同服务及接入目标区块链的跨链协同服务中都含有相应的控制及验证逻辑即可,如此,可以提升灵活性和自由度。
本申请实施例提供了如图8所示的数据跨链的流程示意图,为了便于理解,以A链(源区块链)与B链(目标区块链)之间进行的数据跨链为例,并以步骤形式进行说明。其中,A链由甲机构维护,B链由乙机构维护。
1)加载A链适配器的跨链协同服务(即接入源区块链的跨链协同服务)接收A链对应的跨链交易。这里,可以通过A链适配器监听A链应用在A链存储的跨链交易,并将监听到的跨链交易作为接收到的跨链交易;也可以直接通过A链适配器接收A链应用发送的跨链交易,在该情况下,可以通过A链适配器将接收到的跨链交易存储至A链,即实现代理上链。
2)步骤1)所指的跨链协同服务(可以是该跨链协同服务的A链适配器)对接收到的跨链交易进行安全验证处理,并在验证结果为验证成功时,执行步骤3)。
其中,可以通过私钥签名-公钥验签的原理,对跨链交易进行安全验证处理。举例来说,若跨链交易包括公钥、公钥地址、签名信息以及明文信息,则可以结合公钥和明文信息验证签名信息是否真实正确(例如对明文信息进行哈希处理得到明文哈希,根据公钥对明文哈希进行加密处理得到加密明文哈希,并判断加密明文哈希与签名信息是否一致),同时通过公钥验证公钥地址是否正确(例如对公钥进行哈希处理得到公钥哈希,并判断公钥哈希与公钥地址是否一致)。
3)步骤1)所指的跨链协同服务(可以是该跨链协同服务的A链适配器)对跨链交易进行通用处理,提取出其中的关键内容,得到更新后的跨链交易。例如,可以根据定制的跨链数据模板,对跨链交易进行解析,并将解析出的账户地址、数值等参数填充至跨链数据模版中,得到更新后的跨链交易。这里,还可以将更新后的跨链交易存储至跨链协同服务的本地数据库,以便在接收到跨链请求时,直接根据本地数据库中的更新后的跨链交易进行数据跨链。此外,也可以将本地数据库中的更新后的跨链交易呈现给A链应用查看,实现友好展示,提升数据跨链的透明程度。
4)步骤1)所指的跨链协同服务通过跨链协同服务注册中心,确定加载A链适配器且存活的其他所有跨链协同服务,即通过服务寻址找到这些跨链协同服务,并根据这些跨链协同服务对应的通信方式建立通信连接,从而请求这些跨链协同服务对存储于A链中的跨链交易进行安全验证处理。
5)对于接收到针对跨链交易的验证请求的跨链协同服务来说,调用内部的A链适配器从A链中获取跨链交易,并进行安全验证处理。
6)对于接收到针对跨链交易的验证请求的跨链协同服务来说,将对跨链交易进行安全验证处理得到的第一验证结果在跨链协同服务网络中进行广播。
7)当验证成功的第一验证结果的数量满足数量条件时,表示跨链交易是正确、可靠的,因此,步骤1)所指的跨链协同服务(可以是该跨链协同服务的跨链协同服务注册中心)将更新后的跨链交易进行转义处理,并将转义处理后的跨链交易发送至加载B链适配器的某一个跨链协同服务,这里的某一个跨链协同服务可以由A链应用指定。其中,转义处理的目的是为了适配B链的数据格式。转义处理可以包括一次或多次转义,例如A链的数据格式为“from,value,sign”,步骤1)所指的跨链协同服务的数据格式为“from,amount,sign”,B链的数据格式为“sender,receiver,signer”,因此会涉及到两次转义,其中,步骤1)所指的跨链协同服务可以将符合“from,amount,sign”的数据(可以由跨链协同服务注册中心执行从“from,value,sign”到“from,amount,sign”的转义)发送至加载B链适配器的跨链协同服务,由B链适配器执行从“from,amount,sign”到“sender,receiver,signer”的转义。
数量条件可以根据实际应用场景进行设定,例如可以是:加载A链适配器且对跨链交易验证成功的跨链协同服务的数量/加载A链适配器且存活的跨链协同服务的总数量≥2/3。
8)对于步骤7)所指的加载B链适配器的跨链协同服务来说,通过B链适配器对应的私钥,对接收到的转义处理后的跨链交易进行签名处理,并将签名处理后的跨链交易存储至B链,即作为图8中的B链交易。其中,不同链适配器对应的私钥不同,例如两个跨链协同服务均加载了B链适配器,但这两个B链适配器对应的私钥不同。
当然,上述示例并不构成对数据上链的限定,例如可以通过部署在B链对应的区块链网络中的智能合约来进行数据上链,即进行合约代理。其中,该智能合约设定在收集到针对跨链交易的足够数量的签名信息后,将该跨链交易存储至B链中,该智能合约还可以指定特定的签名方,如加载B链适配器的若干个跨链协同服务。
9)对于步骤7)所指的加载B链适配器的跨链协同服务来说,通过跨链协同服务注册中心,确定加载B链适配器且存活的其他所有跨链协同服务,即通过服务寻址找到这些跨链协同服务,并根据这些跨链协同服务对应的通信方式建立通信连接,从而请求这些跨链协同服务对存储于B链中的签名处理后的跨链交易进行安全验证处理。
10)对于接收到步骤9)中的验证请求(即针对签名处理后的跨链交易的验证请求)的跨链协同服务来说,调用内部的B链适配器从B链中获取签名处理后的跨链交易,并进行安全验证处理。
11)对于接收到步骤9)中的验证请求的跨链协同服务来说,将对签名处理后的跨链交易进行安全验证处理得到的第二验证结果在跨链协同服务网络中进行广播。
12)当验证成功的第二验证结果的数量满足数量条件时,表示签名处理后的跨链交易是正确、可靠的,即数据跨链成功。对于涉及到本次数据跨链的跨链协同服务来说,将本次数据跨链设置为事务完成,此时,跨链协同服务网络在全网已经达成一致。
当验证成功的第二验证结果的数量未满足数量条件时,证明数据跨链失败,可以进一步细分为网络问题和交易问题。如果是网络问题,例如B链中并未存储签名处理后的跨链交易,那么只是代表签名处理后的跨链交易暂时不能上链,可以由步骤7)所指的加载B链适配器的跨链协同服务,重新将签名处理后的跨链交易存储至B链,即再次进行数据上链。
如果是交易问题,例如B链中已存储签名处理后的跨链交易、以及对应的交易失败结果,则步骤7)所指的加载B链适配器的跨链协同服务可以将该交易失败结果存储至治理区块链中。当步骤1)所指的跨链协同服务从治理区块链获取到交易失败结果时(即监听到B链数据上链出错),可以通知A链应用进行相应处理,例如对跨链交易对应的业务进行回滚处理,如对参与跨链交易的用户进行补偿。
通过本申请实施例,至少能够实现以下技术效果:1)跨链协同服务可以接入多个区块链,能够实现多个区块链之间的数据互跨操作;2)跨链协同服务间可以通过特定的通信方式建立通信连接,其中,可以添加安全属性(如TLS属性),从而在保证服务寻址功能的基础上,提升通信连接及数据交换的安全性;3)跨链交易的验证是由跨链协同服务间达成一致,本申请实施例对验证机制不做限定,例如可以是公证人机制(由特定的跨链协同服务作为公证人,以对跨链交易进行安全验证处理)及中继机制(如通过中继区块链对应的智能合约来进行安全验证处理)等;4)在数据跨链的过程中,接入源区块链的跨链协同服务不需要接入目标区块链,只需要整个跨链协同服务网络中存在接入目标区块链的跨链协同服务即可,其中,接入每个区块链的跨链协同服务的数量可以根据上文的数量条件进行设定,如此,能够提升数据跨链协同系统的架构灵活性,避免每个跨链协同服务都需要接入每个区块链;5)跨链协同服务可以适应多种跨链模式,如上文的治理区块链形式、中心化处理形式(如仅需特定的一个跨链协同服务对跨链交易进行安全验证处理)及合约代理形式等。
下面继续说明本申请实施例提供的数据跨链协同装置655实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器650的数据跨链协同装置655中的软件模块可以包括:接收模块6551,用于通过跨链协同服务加载链适配组件,并接入调用链适配组件的源区块链;其中,源区块链为多个区块链中的任意一个,多个区块链中的每个区块链接入至少一个跨链协同服务;接收源区块链对应的跨链交易;其中,跨链交易为源区块链与多个区块链中区别于源区块链的目标区块链之间的交易;验证模块6552,用于请求接入源区块链的至少一个跨链协同服务对跨链交易进行数据跨链的安全验证处理,得到第一验证结果;存储模块6553,用于根据第一验证结果,将跨链交易发送至接入目标区块链的跨链协同服务,以使接入目标区块链的跨链协同服务将跨链交易存储至目标区块链。
在一些实施例中,验证模块6552,还用于:根据第三方服务中的地址信息进行寻址处理,并根据寻址处理得到的跨链协同服务对应的通信方式,请求与寻址处理得到的跨链协同服务建立通信连接;其中,第三方服务存储有接入每个区块链的至少一个跨链协同服务的地址信息;在已建立通信连接的多个跨链协同服务中,请求接入源区块链的至少一个跨链协同服务对跨链交易进行数据跨链的安全验证处理。
在一些实施例中,第三方服务存储有接入每个区块链的至少一个跨链协同服务的身份信息;验证模块6552,还用于:当通过跨链协同服务接收到建立通信连接的连接请求时,将连接请求中的身份信息与第三方服务中的身份信息进行匹配处理,得到身份匹配结果;当身份匹配结果为匹配成功时,建立与发起连接请求的跨链协同服务之间的通信连接。
在一些实施例中,验证模块6552,还用于:当通过接入源区块链的跨链协同服务接收到对跨链交易进行安全验证处理的验证请求时,获取源区块链存储的跨链交易;其中,跨链交易包括公钥、公钥地址、签名信息以及明文信息;对明文信息进行哈希处理得到明文哈希,根据公钥对明文哈希进行加密处理得到加密明文哈希,并将加密明文哈希与签名信息进行匹配处理,得到第一匹配结果;对公钥进行哈希处理得到公钥哈希,并将公钥哈希与公钥地址进行匹配处理,得到第二匹配结果;当第一匹配结果和第二匹配结果均为匹配成功时,确定对跨链交易进行安全验证处理得到的第一验证结果为验证成功。
在一些实施例中,验证模块6552,还用于:当通过接入源区块链的跨链协同服务接收到对跨链交易进行安全验证处理的验证请求时,查询验证区块链网络中的与跨链交易对应的第一验证结果;其中,验证区块链网络用于根据部署的智能合约对跨链交易进行安全验证处理;验证区块链网络用于维护源区块链以及源区块链的中继区块链中的任意一种。
在一些实施例中,存储模块6553,还用于:根据跨链数据模板对跨链交易进行更新处理,得到更新后的跨链交易;将更新后的跨链交易发送至接入目标区块链的跨链协同服务。
在一些实施例中,存储模块6553,还用于:当验证成功的第一验证结果的数量满足数量条件时,根据目标区块链的数据格式对跨链交易进行转义处理;将转义处理后的跨链交易发送至接入目标区块链的跨链协同服务。
在一些实施例中,验证模块6552,还用于:当接收到针对跨链交易的跨链请求时,请求接入源区块链的至少一个跨链协同服务对跨链交易进行数据跨链的安全验证处理;存储模块6553,还用于:将存储于本地数据库中的跨链交易发送至接入目标区块链的跨链协同服务。
在一些实施例中,接收模块6551,还用于:执行以下任意一种处理:监听源区块链的应用在源区块链存储的跨链交易,并将监听到的跨链交易作为接收到的跨链交易;接收源区块链的应用发送的跨链交易。
在一些实施例中,验证模块6552,还用于:对接收到的跨链交易进行数据跨链的安全验证处理;当对接收到的跨链交易进行安全验证处理得到的验证结果为验证成功时,请求接入源区块链的其他跨链协同服务对跨链交易进行数据跨链的安全验证处理;当对接收到的跨链交易进行安全验证处理得到的验证结果为验证失败时,删除接收到的跨链交易。
在一些实施例中,存储模块6553,还用于:将跨链交易发送至接入目标区块链的跨链协同服务;通过接入目标区块链的跨链协同服务,对接收到的跨链交易进行签名处理,并将签名处理后的跨链交易存储至目标区块链;验证模块6552,还用于通过接入目标区块链的跨链协同服务,请求接入目标区块链的至少一个跨链协同服务对签名处理后的跨链交易进行数据跨链的安全验证处理,得到第二验证结果;数据跨链协同装置655还包括失败应对模块,用于当验证成功的第二验证结果的数量未满足数量条件时,对签名处理后的跨链交易进行失败应对处理。
在一些实施例中,失败应对模块,还用于:当目标区块链未存储签名处理后的跨链交易时,重新将签名处理后的跨链交易存储至目标区块链;当目标区块链已存储签名处理后的跨链交易、以及对应的交易失败结果时,将交易失败结果发送至第三方服务;通过接入源区块链的跨链协同服务,获取第三方服务中的交易失败结果,并根据交易失败结果对跨链交易对应的业务进行回滚处理。
在一些实施例中,用于接入不同区块链的链适配组件不同;存储模块6553,还用于:根据用于接入目标区块链的链适配组件对应的私钥,对接收到的跨链交易进行签名处理。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的数据跨链协同方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3A、图3B、图3C、图3D、图3E及图3F示出的数据跨链协同方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (17)

1.一种数据跨链协同方法,其特征在于,包括:
通过跨链协同服务加载链适配组件,并接入调用所述链适配组件的源区块链;其中,所述源区块链为多个区块链中的任意一个,所述多个区块链中的每个区块链接入至少一个跨链协同服务;
接收所述源区块链对应的跨链交易;其中,所述跨链交易为所述源区块链与所述多个区块链中区别于所述源区块链的目标区块链之间的交易;
请求接入所述源区块链的至少一个所述跨链协同服务对所述跨链交易进行数据跨链的安全验证处理,得到第一验证结果;
当验证成功的第一验证结果的数量满足数量条件时,将所述跨链交易发送至接入所述目标区块链的所述跨链协同服务,以使接入所述目标区块链的所述跨链协同服务将所述跨链交易存储至所述目标区块链。
2.根据权利要求1所述的方法,其特征在于,所述请求接入所述源区块链的至少一个所述跨链协同服务对所述跨链交易进行数据跨链的安全验证处理,包括:
根据第三方服务中的地址信息进行寻址处理,并根据所述寻址处理得到的跨链协同服务对应的通信方式,请求与所述寻址处理得到的跨链协同服务建立通信连接;其中,所述第三方服务存储有接入每个所述区块链的至少一个所述跨链协同服务的地址信息;
在已建立所述通信连接的多个所述跨链协同服务中,请求接入所述源区块链的至少一个所述跨链协同服务对所述跨链交易进行数据跨链的安全验证处理。
3.根据权利要求2所述的方法,其特征在于,所述第三方服务存储有接入每个所述区块链的至少一个所述跨链协同服务的身份信息;
所述请求与所述寻址处理得到的跨链协同服务建立通信连接之后,所述方法还包括:
当通过所述跨链协同服务接收到建立通信连接的连接请求时,将所述连接请求中的身份信息与所述第三方服务中的身份信息进行匹配处理,得到身份匹配结果;
当所述身份匹配结果为匹配成功时,建立与发起所述连接请求的所述跨链协同服务之间的通信连接。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当通过接入所述源区块链的所述跨链协同服务接收到对所述跨链交易进行安全验证处理的验证请求时,获取所述源区块链存储的所述跨链交易;其中,所述跨链交易包括公钥、公钥地址、签名信息以及明文信息;
对所述明文信息进行哈希处理得到明文哈希,根据所述公钥对所述明文哈希进行加密处理得到加密明文哈希,并将所述加密明文哈希与所述签名信息进行匹配处理,得到第一匹配结果;
对所述公钥进行哈希处理得到公钥哈希,并将所述公钥哈希与所述公钥地址进行匹配处理,得到第二匹配结果;
当所述第一匹配结果和所述第二匹配结果均为匹配成功时,确定对所述跨链交易进行安全验证处理得到的第一验证结果为验证成功。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当通过接入所述源区块链的所述跨链协同服务接收到对所述跨链交易进行安全验证处理的验证请求时,查询验证区块链网络中的与所述跨链交易对应的第一验证结果;
其中,所述验证区块链网络用于根据部署的智能合约对所述跨链交易进行安全验证处理;所述验证区块链网络用于维护所述源区块链以及所述源区块链的中继区块链中的任意一种。
6.根据权利要求1所述的方法,其特征在于,所述将所述跨链交易发送至接入所述目标区块链的所述跨链协同服务,包括:
根据跨链数据模板对所述跨链交易进行更新处理,得到更新后的所述跨链交易;
将更新后的所述跨链交易发送至接入所述目标区块链的所述跨链协同服务。
7.根据权利要求1所述的方法,其特征在于,所述将所述跨链交易发送至接入所述目标区块链的所述跨链协同服务,包括:
根据所述目标区块链的数据格式对所述跨链交易进行转义处理;
将转义处理后的所述跨链交易发送至接入所述目标区块链的所述跨链协同服务。
8.根据权利要求1所述的方法,其特征在于,所述请求接入所述源区块链的至少一个所述跨链协同服务对所述跨链交易进行数据跨链的安全验证处理,包括:
当接收到针对所述跨链交易的跨链请求时,请求接入所述源区块链的至少一个所述跨链协同服务对所述跨链交易进行数据跨链的安全验证处理;
所述将所述跨链交易发送至接入所述目标区块链的所述跨链协同服务,包括:
将存储于本地数据库中的所述跨链交易发送至接入所述目标区块链的所述跨链协同服务。
9.根据权利要求1所述的方法,其特征在于,所述接收所述源区块链对应的跨链交易,包括:
执行以下任意一种处理:
监听所述源区块链的应用在所述源区块链存储的跨链交易,并将监听到的跨链交易作为接收到的跨链交易;
接收所述源区块链的应用发送的跨链交易。
10.根据权利要求1所述的方法,其特征在于,所述请求接入所述源区块链的至少一个所述跨链协同服务对所述跨链交易进行数据跨链的安全验证处理,包括:
对接收到的所述跨链交易进行数据跨链的安全验证处理;
当对接收到的所述跨链交易进行安全验证处理得到的验证结果为验证成功时,请求接入所述源区块链的其他所述跨链协同服务对所述跨链交易进行数据跨链的安全验证处理;
所述方法还包括:
当对接收到的所述跨链交易进行安全验证处理得到的验证结果为验证失败时,删除接收到的所述跨链交易。
11.根据权利要求1至10任一项所述的方法,其特征在于,所述将所述跨链交易发送至接入所述目标区块链的所述跨链协同服务,以使接入所述目标区块链的所述跨链协同服务将所述跨链交易存储至所述目标区块链,包括:
将所述跨链交易发送至接入所述目标区块链的所述跨链协同服务;
通过接入所述目标区块链的所述跨链协同服务,对接收到的所述跨链交易进行签名处理,并将签名处理后的所述跨链交易存储至所述目标区块链;
所述方法还包括:
通过接入所述目标区块链的所述跨链协同服务,请求接入所述目标区块链的至少一个所述跨链协同服务对签名处理后的所述跨链交易进行数据跨链的安全验证处理,得到第二验证结果;
当验证成功的第二验证结果的数量未满足所述数量条件时,对签名处理后的所述跨链交易进行失败应对处理。
12.根据权利要求11所述的方法,其特征在于,所述对签名处理后的所述跨链交易进行失败应对处理,包括:
当所述目标区块链未存储签名处理后的所述跨链交易时,重新将签名处理后的所述跨链交易存储至所述目标区块链;
当所述目标区块链已存储签名处理后的所述跨链交易、以及对应的交易失败结果时,将所述交易失败结果发送至第三方服务;
所述方法还包括:
通过接入所述源区块链的所述跨链协同服务,获取所述第三方服务中的所述交易失败结果,并根据所述交易失败结果对所述跨链交易对应的业务进行回滚处理。
13.根据权利要求11所述的方法,其特征在于,用于接入不同所述区块链的链适配组件不同;
所述对接收到的所述跨链交易进行签名处理,包括:
根据用于接入所述目标区块链的链适配组件对应的私钥,对接收到的所述跨链交易进行签名处理。
14.一种数据跨链协同系统,其特征在于,包括:
多个区块链以及多个跨链协同服务;
所述跨链协同服务,用于:
加载链适配组件,并接入调用所述链适配组件的源区块链;其中,所述源区块链为所述多个区块链中的任意一个,所述多个区块链中的每个区块链接入至少一个跨链协同服务;
接收所述源区块链对应的跨链交易;其中,所述跨链交易为所述源区块链与所述多个区块链中区别于所述源区块链的目标区块链之间的交易;
请求接入所述源区块链的至少一个所述跨链协同服务对所述跨链交易进行数据跨链的安全验证处理,得到第一验证结果;
当验证成功的第一验证结果的数量满足数量条件时,将所述跨链交易发送至接入所述目标区块链的所述跨链协同服务;
接入所述目标区块链的所述跨链协同服务,用于将接收到的所述跨链交易存储至所述目标区块链。
15.一种数据跨链协同装置,其特征在于,包括:
接收模块,用于通过跨链协同服务加载链适配组件,并接入调用所述链适配组件的源区块链;其中,所述源区块链为多个区块链中的任意一个,所述多个区块链中的每个区块链接入至少一个跨链协同服务;
所述接收模块,还用于接收所述源区块链对应的跨链交易;其中,所述跨链交易为所述源区块链与所述多个区块链中区别于所述源区块链的目标区块链之间的交易;
验证模块,用于请求接入所述源区块链的至少一个所述跨链协同服务对所述跨链交易进行数据跨链的安全验证处理,得到第一验证结果;
存储模块,用于当验证成功的第一验证结果的数量满足数量条件时,将所述跨链交易发送至接入所述目标区块链的所述跨链协同服务,以使接入所述目标区块链的所述跨链协同服务将所述跨链交易存储至所述目标区块链。
16.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至13任一项所述的数据跨链协同方法。
17.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至13任一项所述的数据跨链协同方法。
CN202110439978.8A 2021-04-23 2021-04-23 数据跨链协同方法、系统及装置 Active CN112861190B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110439978.8A CN112861190B (zh) 2021-04-23 2021-04-23 数据跨链协同方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110439978.8A CN112861190B (zh) 2021-04-23 2021-04-23 数据跨链协同方法、系统及装置

Publications (2)

Publication Number Publication Date
CN112861190A CN112861190A (zh) 2021-05-28
CN112861190B true CN112861190B (zh) 2021-07-16

Family

ID=75992802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110439978.8A Active CN112861190B (zh) 2021-04-23 2021-04-23 数据跨链协同方法、系统及装置

Country Status (1)

Country Link
CN (1) CN112861190B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259454B (zh) * 2021-06-02 2021-10-15 支付宝(杭州)信息技术有限公司 跨链交互方法及装置
CN113395363B (zh) * 2021-08-18 2021-10-29 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及存储介质
CN114499963A (zh) * 2021-12-24 2022-05-13 杭州趣链科技有限公司 多层级跨链协同方法、装置、计算机设备及存储介质
CN114006911B (zh) * 2021-12-31 2022-04-26 杭州趣链科技有限公司 数据处理方法、装置、终端设备及存储介质
CN114677137A (zh) * 2022-03-30 2022-06-28 网易(杭州)网络有限公司 区块链跨链方法、系统及装置、电子设备、存储介质
CN115065687B (zh) * 2022-05-12 2024-05-07 中国科学院计算技术研究所 Hyperledger Fabric与以太坊间的跨链数据共享方法及系统
CN115941693B (zh) * 2023-03-10 2023-05-05 中国信息通信研究院 链群接入区块链的方法、装置、设备和介质
CN116542795B (zh) * 2023-05-09 2024-02-02 武汉智网兴电科技开发有限公司 基于区块链的审计数据跨链交互方法及装置
CN117217856B (zh) * 2023-08-28 2024-03-19 成都雨链科技有限公司 一种基于区块链的平台统一大市场协同方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111181968A (zh) * 2019-12-30 2020-05-19 北京金山云网络技术有限公司 跨区块链通信方法、装置、跨链服务系统及跨链交易系统
CN111681003A (zh) * 2020-07-07 2020-09-18 腾讯科技(深圳)有限公司 资源跨链转移方法、装置、计算机设备以及存储介质
CN112003889A (zh) * 2020-07-10 2020-11-27 南京邮电大学 分布式跨链系统及跨链信息交互与系统访问控制机制
US10901983B2 (en) * 2019-03-01 2021-01-26 Wanchain Ltd. System and method for universal blockchain interoperability
CN112527893A (zh) * 2020-11-26 2021-03-19 暨南大学 一种基于sgx的安全高效跨链服务操作方法及系统
CN112651046A (zh) * 2020-12-30 2021-04-13 杭州趣链科技有限公司 跨链交易的数据同步方法、装置、系统及终端设备
CN112686668A (zh) * 2020-12-29 2021-04-20 东软集团股份有限公司 联盟链跨链系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019055585A1 (en) * 2017-09-12 2019-03-21 Kadena Llc PARALLEL CHAIN ARCHITECTURE FOR BLOCK CHAIN SYSTEMS
CN108600301B (zh) * 2018-03-08 2021-05-18 青岛墨一客区块链有限公司 一种区块链之间的跨链方法及主区块链
CN112446785B (zh) * 2020-11-06 2023-09-22 杭州趣链科技有限公司 跨链交易方法、系统、装置、设备和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10901983B2 (en) * 2019-03-01 2021-01-26 Wanchain Ltd. System and method for universal blockchain interoperability
CN111181968A (zh) * 2019-12-30 2020-05-19 北京金山云网络技术有限公司 跨区块链通信方法、装置、跨链服务系统及跨链交易系统
CN111681003A (zh) * 2020-07-07 2020-09-18 腾讯科技(深圳)有限公司 资源跨链转移方法、装置、计算机设备以及存储介质
CN112003889A (zh) * 2020-07-10 2020-11-27 南京邮电大学 分布式跨链系统及跨链信息交互与系统访问控制机制
CN112527893A (zh) * 2020-11-26 2021-03-19 暨南大学 一种基于sgx的安全高效跨链服务操作方法及系统
CN112686668A (zh) * 2020-12-29 2021-04-20 东软集团股份有限公司 联盟链跨链系统及方法
CN112651046A (zh) * 2020-12-30 2021-04-13 杭州趣链科技有限公司 跨链交易的数据同步方法、装置、系统及终端设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BitXHub:基于侧链中继的异构区块链互操作平台;叶少杰 等;《计算机科学》;20200615;第47卷(第06期);第294-302页 *
Virtual chain: A storage model supporting cross-blockchain transaction;Yan Wang 等;《Concurrency & Computation Practice & Experience》;20201231;第1-16页 *

Also Published As

Publication number Publication date
CN112861190A (zh) 2021-05-28

Similar Documents

Publication Publication Date Title
CN112861190B (zh) 数据跨链协同方法、系统及装置
US11563557B2 (en) Document transfer processing for blockchains
WO2021073452A1 (zh) 基于区块链网络的数据处理方法、装置、电子设备及存储介质
CN110933163B (zh) 区块链合约部署方法、装置、设备以及存储介质
US20200052884A1 (en) Parallel transaction validation and block generation in a blockchain
US20210081938A1 (en) Method and apparatus for computer-assisted provision of a security-protected digital twin
JP2022529967A (ja) ブロックチェーン・ネットワークからのデータの抽出
CN110599095B (zh) 基于区块链网络的危废处理方法及区块链网络的节点
US10922097B2 (en) Collaborative model execution
CN112835612A (zh) 一种基于区块链的电子文档版本管理方法及装置
US11188920B2 (en) Autocommit transaction management in a blockchain network
US11720545B2 (en) Optimization of chaincode statements
US20200092082A1 (en) Distributed platform for computation and trusted validation
US20190354989A1 (en) Automated data projection for smart contract groups on a blockchain
EP4216077A1 (en) Blockchain network-based method and apparatus for data processing, and computer device
CN108022090B (zh) 虚拟账户管理方法、设备、系统及可读存储介质
CN112231741B (zh) 基于区块链系统的数据处理方法、装置、介质及电子设备
CN111327613A (zh) 分布式服务的权限控制方法、装置及计算机可读存储介质
US11196543B2 (en) Minimum evidence calculation in blockchain transactions
CN113746719B (zh) 一种任务信息处理方法、装置、电子设备及存储介质
CN111163074A (zh) 一种网关服务控制方法及装置
CN112215710A (zh) 年金数据处理方法、区块链系统、介质及电子设备
CN112926981B (zh) 用于区块链的交易信息处理方法、装置、介质及电子设备
WO2023142098A1 (zh) 合同任务的处理方法及装置
CN117014175A (zh) 云系统的权限处理方法、装置、电子设备及存储介质

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40044607

Country of ref document: HK