一种适用于许可链场景的跨链数据传递方法及设备与流程

文档序号:16062414发布日期:2018-11-24 12:19阅读:242来源:国知局

本发明涉及许可链场景下的跨链数据传递方法及设备,致力于解决不同链间的互操作问题。

背景技术

区块链系统自诞生以来以其特有的无中心、难改写等特点被广泛应用于多种数据处理场合,其通过共识机制来解决“拜占庭故障”问题,即恶意节点的存在问题,从而实现容错功能。具体来说,通过共识机制选择出系统中绝大多数节点认为安全的一个节点作为记账节点以实现大概率上排除系统中恶意节点对其它节点的影响。

现有区块链技术在单链架构下存在性能、容量、隐私、隔离性、扩展上的瓶颈。不同的业务部署在不同的链上,可以解决这些问题。但是这些业务之间需要互操作的时候,就需要跨链技术。现有的链包括共有链、私有链、联盟链、许可链等。许可链是指参与到区块链系统中的每个节点都是经过许可的。未经许可的节点是不可接入系统中。

现有的跨链技术通常用于公有链场景下。系统的安全性由庞大的全网算力进行保证。跨链信息传递方面,也有足够多,足够分散的节点,保证信息传递的安全性。而许可链场景下,节点比较少,并且一般不采用pow之类的算法,想在两条独立的许可链之间构建可信的跨链通道几乎不可能。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种适用于许可链场景下的跨链数据传递方法、设备及系统。本发明提供一种适用于许可链场景下的跨链数据传递方法,包括如下步骤:

步骤一、设置主链,所述主链上具有多个参与方;设置主链的权限,其中,所述权限为能够获取所有侧链的信任的最终裁决权;

步骤二,创建侧链,所述侧链由主链上的所述多个参与方中的至少一个创建;创建侧链的参与方执行主链所要求的信任措施,以符合主链的信任机制;

步骤三、在主链和侧链上均部署跨链交互所用到的智能合约;

步骤四、在主链和侧链上进行跨链数据传递。

具体的,所述步骤四进一步包括,利用跨链交互无关的独立信使在主链和侧链之间传递数据;进一步的,所述主链和侧链进一步包括:内置产生跨链交互正确执行的证明,以及对应的验证功能。

进一步的,在创建好侧链之后,到主链上注册该侧链;

其中注册该侧链的步骤包括:

a.提供侧链的节点信息、主链、侧链上的验证节点信息;

b.侧链上的验证节点执行主链所要求的信任措施,以符合主链的信任机制;

c.主链向侧链返回一个侧链id,侧链将所述侧链id以及主链的所有验证节点都写入侧链创世块;

d.然后运行该侧链。

根据本发明的另一方面,提供一种适用于许可链场景的跨链装置,包括:

主链设置模块,用于设置主链,所述主链上具有多个参与方;设置主链的权限,其中,所述权限为能够获取所有侧链的信任的最终裁决权;

侧链设置模块,用于创建侧链,所述侧链由主链上的所述多个参与方中的至少一个创建;创建侧链的参与方执行主链所要求的信任措施,以符合主链的信任机制;

智能合约部署模块,在主链和侧链上均部署跨链交互所用到的智能合约;

跨链调用模块,在主链和侧链上进行跨链数据传递。

根据本发明的另一方面,提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:

步骤一、设置主链,所述主链上具有多个参与方;设置主链的权限,其中,所述权限为能够获取所有侧链的信任的最终裁决权;

步骤二,创建侧链,所述侧链由主链上的所述多个参与方中的至少一个创建;创建侧链的参与方执行主链所要求的信任措施,以符合主链的信任机制;

步骤三、在主链和侧链上均部署跨链交互所用到的智能合约;

步骤四、在主链和侧链上进行跨链数据传递。

根据本发明的另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:

步骤一、设置主链,所述主链上具有多个参与方;设置主链的权限,其中,所述权限为能够获取所有侧链的信任的最终裁决权;

步骤二,创建侧链,所述侧链由主链上的所述多个参与方中的至少一个创建;创建侧链的参与方执行主链所要求的信任措施,以符合主链的信任机制;;

步骤三、在主链和侧链上均部署跨链交互所用到的智能合约;

步骤四、在主链和侧链上进行跨链数据传递。

有益效果

根据本发明的一种适用于许可链场景下的跨链数据传递方法,能够通过利用主链上经过验证的部分参与方创建侧链,并且同时在主链和侧链上部署智能合约,利用了的独立信使传递跨链调用信息,从而保证信息转递的安全的情况下,实现了主链和侧链之间的跨链调用。侧链的参与方在主链上抵押保证金,保证部分参与方不会抱团作恶。这样主链也可以相信侧链上的信息。

另一方面,本发明的方法能保证系统的安全性。主链有许可链所有参与方,侧链有部分参与方。这样侧链可以无条件相信主链上的信息。跨链信息的搬运方式。通过中立的独立信使(可以来自一个专门的信使市场)来搬运跨链信息,使得系统更加的去中心化,更加的可信。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种适用于许可链场景下的跨链数据传递方法的总体流程框图

图2为本发明一实施例的跨链交互步骤示意图

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合说明书附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明实施方案中,跨链调用是指在主链上调用一个需要在侧链上执行的相关的智能合约,最终目的是实现跨链交互,这个交互是广义上的是区块链交互,可以是资产转移,也可以是智能合约的一段普通代码。

根据本发明实施例一,参考图1,提供一种适用于许可链场景的跨链数据传递方法。具体包括如下步骤:

步骤一、设置主链,其中,所有参与方均加入主链。

根据本发明的一方面,举例而言,假设主链为m,在主链上有多个参与方,所述多个参与方分别为a1、a2、a3、a4、a5、a6、a7…a10,上述多个参与方a1,a2,a3…a10均加入到主链m上。

进一步的,在所述主链有动态增加节点功能的情况下,也可以动态的增加其他参与方,上述参与方作为链的节点。

步骤二、主链上的部分参与方创建侧链。

上述部分参与方创建侧链的过程包括:首先所述部分参与方准备好侧链所需的服务器,所述服务器包括有存储器、处理器等组件,以及通过网络端口连接到外部网络。根据本发明的一方面,所述服务器上安装有数据库。

所述的侧链是由主链上参与方a1、a2…a10中的一部分参与方创建的。举例而言,主链上的参与方中的a1、a3、a7、a9、a10可以作为参与方参与创建侧链。所述参与创建侧链的参与方的数目不做限制。

进一步的,上述参与方创建好侧链之后,需要到主链上注册该侧链。具体的,在主链上注册该侧链的过程中需要提供侧链的节点信息、验证节点信息。

进一步,可选的,为了提高对验证节点的信任度,要求所述的侧链的每个验证节点都要在主链上抵押押金。根据本实施例的一方面,验证节点在主链上抵押押金之后,主链会返回一个侧链id。侧链将id以及侧链中在主链的所有验证节点都写入侧链创世块,然后运行该侧链。

步骤三、在主链和侧链上同时部署跨链交互所用到智能合约。

所述的智能合约(smartcontract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交互。这些交互可追踪且不可逆转。根据本发明的实施例,为了实现跨链调用,所述的智能合约需要在主链和对应的侧链上都进行部署。

步骤四,在主链和侧链之间进行跨链数据传递。

根据本发明的一方面,所述跨链数据传递可以使用跨链调用的方式,所述跨链调用是指在主链上调用一个需要在侧链上执行相关智能合约的方法,最终目的是实现跨链交互,这个交互是广义上的区块链交互,优选的可以是资产转移,或可以是智能合约的一段普通代码。

在跨链调用时,需要在跨链交互中指定目标侧链的id,目标合约地址,以及目标函数。

具体的,本发明的跨链调用需要借助于独立信使完成数据传递,跨链交互首先在主链执行,在主链执行之后,可以将所述交互哈希数据发送给独立信使,来做跨链数据传递。所述的独立信使可以是区块链上的一个用户。具体的,包括如下步骤:

由用户向主链上提交一交互数据,并获得所述主链返回的所述交互数据的交互哈希数据;上述交互即原始交互。

所述用户通知所述独立信使该交互哈希数据需要跨链传递;

所述独立信使通过该交互哈希数据从主链获得交互证明;并从原始交互的信息中获取目标侧链id和目标合约地址、以及目标函数;以及

所述独立信使根据所述目标侧链id从所述主链查询所述目标侧链的节点信息;

所述独立信使生成第二交互数据,根据前述获得的目标侧链的节点信息,发送所述第二交互数据到目标侧链节点;其中,所述独立信使生成的第二交互数据包括生成调用目标合约和目标函数的交互,原始交互的证明作为参数附在交互中。

所述目标侧链验证交互证明并执行所述目标函数内容;

其中,所述独立信使将该第二交互数据发送到目标侧链的节点,目标侧链验证交互的证明后,从原始交互中获取数据,执行对应的操作。具体的,所述的验证交互的证明可以是一组信息,用来证实这个交互确实已经在主链已经上链;优选的,该组信息可以包括原始交互哈希、交互默克尔树相关路径信息、块头信息。根据不同的区块链,具体形式可以有所不同。

最后,完成跨链数据传递。

根据本发明的一方面,可选的,侧链节点都在主链注册过。

根据本发明的一方面,节点信息可以使用节点ip地址和端口信息,用于访问一个节点。每一条链都有自己的验证节点,简而言之,主链有主链的验证节点,侧链也有侧链的验证节点。

根据本发明实施例二,可以在如下场景实现隐私交互:

主链chain1(包括节点1,2,3,4,5,6)有t1代币的智能合约,侧链chain2(包括节点4,5,6)也部署了t1代币的合约(需要跨链调用的智能合约,要在主链和对应的侧链上都进行部署,因此t1在侧链chain2上也有部署)。虽然侧链chain2内的成员需要做隐私交易,即侧链内部的交易不想让主链知道,但是有一些情况需要做跨链交易。

举例而言,主链chain1内有账户a、b、c;侧链chain2内有账户d、e、f。当账户d、e、f之间做t1转账时,他们之间通过侧链chain2的节点发起的交易,因此该交易不需要广播到主链上的成员,而只需在侧链内部广播。

但是在某些情况下下,主链chain1上的账户a希望与侧链上的账户d通过调用智能合约t1(需要跨链调用合约t1)进行转账交易。其中,所述t1中包含一对函数如下:

(1)函数send_to_side_chain,参数包括:目标侧链destchain_id,目标合约地址dest_contract,目标函数dest_function,转账金额_value,收款人账户payee。在该函数中,先做一些交易的简单转账验证,如验证发送交易者的t1余额足够用于转账,然后将转账金额从发送者的账户中扣除,转至一个临时账户。相当于资金冻结。

(2)函数recv_from_side_chain,参数包括:原始交易raw_tx(包括该交易的调用的函数入参),块头信息block_header,交易验证信息receipt_merkle_tree_proof。该函数执行如下功能:

首先,验证原始交易的目标侧链正是当前链,即raw_tx的destchain_id正是当前链id;

其次,验证原始交易的目标函数正是当前函数,即raw_tx的dest_function正是当前函数recv_from_side_chain;

然后,检查分析主链的交易验证信息receipt_merkle_tree_proof。receipt_merkle_tree_proof中包含原始交易哈希,交易回执receipt(在某些链中,交易执行完后再共识,那么不需要交易回执,有些特殊的链中,交易先共识后执行,那么有可能会执行失败,此时需要交易回执),交易执行结果的梅克尔树路径信息,块头信息。验证时,通过分析这些信息可以证明某一个交易是否已经成功执行并上链。上述验证均成功后,将临时账户中的金额转移至raw_tx中payee账户。参见附图2,具体流程为:

(1)账户a向主链chain1节点提交交易tx,该tx调用t1的send_to_side_chain,填入参数为目标侧链id为chain2,目标合约地址为t1,目标函数为recv_from_side_chain,转账金额为100,收款人账户为d。

(2)主链chain1给账户a返回交易哈希tx_hash。

(3)账户a将交易哈希tx_hash发送给独立信使relayer,来做跨链信息传递。

(4)独立信使relayer根据tx_hash获取交易原始数据raw_tx以及在链上执行的证明信息,包括block_hearder,receipt_merkle_tree_proof。

(5)独立信使relayer从交易原始数据raw_tx中得到目标侧链id(chain2),目标合约地址(t1),目标函数信息(recv_from_side_chain)。

(6)独立信使根据目标侧链id(chain2)从主链上查询目标侧链的节点信息(如chain2的节点4、5、6,以及他们的ip地址及端口信息)。

(7)独立信使生成交易,该交易调用目标合约t1的目标函数recv_from_side_chain,并将原始交易的证明(block_hearder,receipt_merkle_tree_proof)作为参数同时传入recv_from_side_chain。

(8)独立信使将上一步的交易发送到chain2的节点(节点4、5、6),执行recv_from_side_chain中对应的操作。

基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,用于存储为上述计算设备所用的计算机程序指令,其包含用于执行上述任一实施例提供的一种适用于许可链场景的跨链数据传递方法的程序。

所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1