区块链主链与侧链间交易的方法及系统与流程

文档序号:13165679阅读:385来源:国知局
区块链主链与侧链间交易的方法及系统与流程

本发明涉及区块链技术领域,尤其涉及一种区块链主链与侧链间交易的方法及系统。



背景技术:

自2009年比特币系统推出以来,它带来了众多计算机科学和电子现金方面的创新,以比特币及其衍生竞争币为代表的去中心化加密货币受到了广泛关注。该货币类系统的特点是基于区块链构建分布式共享总账,从而保证系统运行的安全、可靠、去中心化特性。

区块链是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案,是一串使用密码学方法相关联产生的数据块。该技术方案主要让参与系统中的任意多个节点,通过一串使用密码学方法相关联产生的数据块,每个数据块中包含了一定时间内的系统全部信息交流数据,并且生成数据指纹用于验证其信息的有效性和链接下一个数据库块。

但是,目前的区块链系统采用的是单区块链结构,其参与的每一节点需要存储所有的历史交易数据,随着主链上的交易越来越多,导致数据量更大、计算量也更大,对于单一节点的数据存储空间和计算能力需求越来越高;并且现有区块链的可扩展性差,业务单一。



技术实现要素:

本发明提供一种区块链主链与侧链间交易的方法及系统,以扩展区块链的业务种类,减少交易过程的数据量和计算量。

本发明的一个方面是提供一种区块链主链与侧链间交易的方法,包括:

侧链代理节点接收由主链代理节点发送的第一区块,其中,所述第一区块为所述主链代理节点根据由主链账户向侧链账户转账的第一交易请求信息生成,所述第一区块用于各主链节点更新所述主链账户的主链代币余额;

所述侧链代理节点根据所述第一交易请求信息生成第二区块,并在各侧链节点中广播,以使所述各侧链节点根据所述第二区块以及预先锚定的汇兑比例更新所述侧链账户的侧链代币余额。

本发明的另一个方面是提供一种区块链主链与侧链间交易的方法,包括:

侧链代理节点接收由侧链账户向主链账户转账的第二交易请求信息;

所述侧链代理节点根据所述第二交易请求信息生成第三区块,并在各侧链节点中广播,以使所述各侧链节点根据所述第三区块更新所述侧链账户的侧链代币余额;

所述侧链代理节点将所述第三区块发送给主链代理节点,以使所述主链代理节点经验证所述第三区块有效后,根据所述第二交易请求信息生成第四区块并在各主链节点广播,以使所述各主链节点根据所述第四区块以及预先锚定的汇兑比例更新所述主链账户的主链代币余额。

本发明的另一个方面是提供一种区块链主链与侧链间交易系统,包括主链节点和侧链节点,所述主链节点和所述侧链节点在p2p网络中互联,其中所述主链节点中包括主链代理节点,所述侧链节点中包括侧链代理节点;

所述侧链代理节点包括:处理器、存储器、以及存储在所述存储器上并可以由所述处理器运行的计算机程序,所述处理器运行所述计算机程序时实现上述的区块链主链与侧链间交易的方法。

本发明提供的区块链主链与侧链间交易的方法及系统,通过侧链可扩展区块链的业务种类,同时通过分流的方式减少了主链的交易量,并且主链节点和侧链节点各自存储和验证本链区块数据和交易数据,减少了交易的数据量和计算量,解决了不同业务承载在同一条链上对单一节点来说导致的数据存储与计算量膨胀的问题。

附图说明

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

图1为本发明一实施例提供的区块链主链与侧链间交易系统的结构图;

图2为本发明一实施例提供的区块链主链与侧链间交易的方法流程图;

图3为本发明另一实施例提供的区块链主链与侧链间交易的方法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。具体的,区块链是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案,是一串使用密码学方法相关联产生的数据块。该技术方案主要让参与系统中的任意多个节点,通过一串使用密码学方法相关联产生的数据块,每个数据块中包含了一定时间内的系统全部信息交流数据,并且生成数据指纹用于验证其信息的有效性和链接下一个数据库块。由于区块链系统为去中心化的系统,因此每一节点存储所有的历史交易数据,在每次交易发生时均需要各节点对交易信息的验证,验证的工作量较大,同时区块链系统是通过算力竞争获取记账权利,其对节点的计算能力需求也越来越高。此外区块链上只能进行转账,其业务单一,可拓展性差。

图1为本发明一实施例提供的区块链主链与侧链间交易系统的结构图,如图1所述,针对现有区块链系统的上述问题,本发明实施例提供一种区块链主链与侧链间交易系统,包括主链节点20和侧链节点10,所述主链节点20和所述侧链节点10在p2p网络中互联,其中所述主链节点20中包括主链代理节点21,所述侧链节点10中包括侧链代理节点11。需要说明的是,本系统中主链节点20和侧链节点10可以为计算机、比特币挖矿机或智能移动终端等。

本系统中,主链代理节点21由主链中持有资产的节点投票选举所得;侧链代理节点11由侧链中持有资产的节点投票选举所得,或者为侧链创建节点。其中侧链创建是由主链的某一节点开始,侧链上无初始资产,在侧链节点中记录着一个标识,标示这条侧链的创建节点,以区分主链节点和侧链节点,该侧链由侧链创建节点所有。在侧链上可进行欠条、智能财产、优惠券、债券等其他业务,可拓展性较好。

本实施例的区块链主链与侧链间交易系统,可由区块链主链向侧链进行转账,也可由侧链向主链转账。

具体的,当由主链账户向侧链账户转账时,主链代理节点21根据由主链账户向侧链账户转账的第一交易请求信息生成第一区块,并在各主链节点20上广播,以使各主链节点20更新所述主链账户的主链代币余额;主链账户也将第一区块发送给侧链代理节点11。侧链代理节点11接收到第一区块,根据所述第一交易请求信息生成第二区块,并在各侧链节点10中广播,以使各侧链节点10根据所述第二区块以及预先锚定的汇兑比例更新所述侧链账户的侧链代币余额,从而完成由主链账户向侧链账户转账。

当由侧链账户向主链账户转账时,侧链代理节点11接收由侧链账户向主链账户转账的第二交易请求信息;并根据第二交易请求信息生成第三区块,并在各侧链节点10中广播,以使各侧链节点10根据第三区块更新侧链账户的侧链代币余额;侧链代理节点11将第三区块发送给主链代理节点21。主链代理在收到第三区块,经验证第三区块有效后,根据第二交易请求信息生成第四区块并在各主链节点20广播,以使各主链节点20根据第四区块以及预先锚定的汇兑比例更新主链账户的主链代币余额,从而完成由侧链账户向主链账户转账。

需要说明的是,上述的区块中还包含前一个区块形成的哈希散列,以防止双花(double-spending),但不包含随机数,不需要竞争计算随机数的答案。也即在主链上由主链代理节点21承担记账责任,其通过产块仅获得交易手续费,但没有产块奖励;在侧链上同样,由侧链代理节点11承担记账责任,也是通过产块获得交易手续费,没有产块奖励。由于不需要算力竞争,因此不需要参与的节点有较高的计算能力。

此外,侧链代理节点11和主链代理节点21在将各相应的区块进行广播前,均需要对区块进行验证,包括交易的合法性以及相应的账户是否有足够的余额,当然,验证的过程也可在广播后由各节点进行。通过验证提高交易的安全性。

本实施例的区块链主链与侧链间交易系统中,侧链上可以只有一个侧链账户,类似于以太坊的智能合约账户,这个账户没有公私钥,也不属于某个个人,只有一个地址,并且仅属于这条侧链,在该侧链账户下包含与侧链每个用户对应的子账户,由主链节点向侧链节点转账时,可先将主链代币增加到该侧链账户,然后由侧链账户汇兑成侧链代币,增加到侧链节点对应的用户子账户中;而由侧链节点向主链节点转账时,则先从对应的子账户扣除侧链代币,再由侧链账户汇兑成主链代币并减少相应的数额,转回主链节点。在各侧链节点10中均存储该侧链账户的信息。当然,侧链上也可不止一个侧链账户,也可以为每个侧链用户拥有一个账户。

本实施例的区块链主链与侧链间交易系统,通过侧链可扩展区块链的业务种类,同时通过分流的方式减少了主链的交易量,并且主链节点和侧链节点各自存储和验证本链区块数据和交易数据,减少了交易的数据量和计算量,解决了不同业务承载在同一条链上对单一节点来说导致的数据存储与计算量膨胀的问题。此外,采用去中心化的方案使侧链和主链间资产可实现的双向锚定,并且多条侧链均可使用或锚定同一条主链上的资产,减少了资产种类,避免了不同资产间的相互汇兑问题,使得业务更加清晰有条理。

图2为本发明一实施例提供的区块链主链与侧链间交易的方法流程图。如图2所述,本实施例提供了一种区块链主链与侧链间交易的方法,执行主体为侧链代理节点,其实现了由主链账户向侧链账户转账,该方法具体步骤如下:

s101、侧链代理节点接收由主链代理节点发送的第一区块,其中,所述第一区块为所述主链代理节点根据由主链账户向侧链账户转账的第一交易请求信息生成,所述第一区块用于各主链节点更新所述主链账户的主链代币余额。

区块是构成区块链的单元,每一区块包含了一次比特币交易的信息,用于验证其信息的有效性和生成下一个区块,以使区块链从创始区块(genesisblock)开始连接到当前区块,记录历史交易数据,通常区块中包含交易信息、前一区块形成的哈希散列以及随机数。本实施例中的第一区块包含第一交易请求信息,此外还可包含前一区块形成的哈希散列,但不包含随机数,因为不需要竞争记账权,故不需要计算随机数的答案。第一区块由主链代理节点根据第一交易请求信息生成,并且向主链的各节点进行广播,以使各主链节点在接收到第一区块后根据第一区块更新各主链节点各自存储的主链账户的主链代币余额,即将主链账户减少相应的主链代币数额。其中第一交易请求信息由主链账户所在的主链节点生成并发送给主链代理节点,具体可包括主链账户标识、侧链账户标识以及交易金额。

侧链代理节点接收由主链代理节点发送的第一区块,具体的,可以在主链代理节点向主链的各节点广播时一并广播给侧链代理节点,也可单独发送给侧链代理节点。

本实施例中,主链代理节点由主链中持有资产的节点投票选举所得;侧链代理节点由侧链中持有资产的节点投票选举所得,或者为侧链创建节点。

即本实施例可基于dpos股份授权证明机制,类似于董事会投票,由持有资产的节点投票选举,由选举所得的代理节点代理本链上的验证和记账。具体的,每一节点可投的总票数与其持有资产数额向对应,即持有资产数额多的节点可投更多的票。需要说明的是,通过投票选举所得的主链代理节点主链代理节点和侧链代理节点并不仅限于一个节点,可以由多个节点协作共同代理。当然,也可直接指定侧链创建节点作为代理节点。需要说明的是,由于侧链是从主链中一节点开始创建的,即侧链创建节点也是主链中的一个节点,因此侧链创建节点既可做主链代理节点,也可做侧链代理节点,当然也可同时做主链代理节点和侧链代理节点。通过代理节点代理本链上的验证和记账,可最小化维护网络安全的费用和运行网络的成本。由于产块权由主链代理节点和侧链代理节点拥有,因此并无节点间的算力竞争,因此并无产块奖励,只有交易的手续费,即主链代理节点通过生成第一区块获取交易手续费;侧链代理节点通过生成第二区块获取交易手续费。

s102、侧链代理节点根据第一交易请求信息生成第二区块,并在各侧链节点中广播,以使所述各侧链节点根据所述第二区块以及预先锚定的汇兑比例更新所述侧链账户的侧链代币余额。

本实施例中,侧链代理节点从第一区块中提取第一交易请求信息,并根据第一交易请求信息生成第二区块,并将第二区块在各侧链节点中广播,各侧链节点在接收到第二区块后,根据所述第二区块以及预先锚定的汇兑比例更新侧链账户的侧链代币余额,即各侧链节点在其各自存储的侧链账户中增加经汇兑后的相应的侧链代币数额,进而完成从主链账户向侧链账户的转账。

本实施例的区块链主链与侧链间交易的方法,实现了从主链账户向侧链账户的转账,通过侧链可扩展区块链的业务种类,同时通过分流的方式减少了主链的交易量,并且主链节点和侧链节点各自存储和验证本链区块数据和交易数据,减少了交易的数据量和计算量,解决了不同业务承载在同一条链上对单一节点来说导致的数据存储与计算量膨胀的问题。

进一步的,在上述实施例的基础上,s101所述的侧链节点根据所述第一交易请求信息生成第二区块,并在各侧链节点中广播前,还包括:

所述各侧链节点同步主链区块,并从所述主链区块获取与所述第一交易请求信息相关交易的信息,其中,所述相关交易包括所有主链区块中和所述侧链账户相关的交易以及所有主链区块中与所述侧链有关的交易。

本实施例中,由于主链节点和侧链节点在p2p网络中互联,因此侧链节点可以同步主链区块,并从主链区块中提取相关交易的信息,其中提取过程可以仅有侧链代理节点完成,并广播到各侧链节点,使各侧链节点仅存储与侧链有关的区块数据和交易数据,从而减少了各侧链节点的数据存储量。当然可以直接由各侧链节点直接从主链区块中获取。

进一步的,s102所述的各侧链节点根据所述第二区块以及预先锚定的汇兑比例更新所述侧链账户的侧链代币余额前,还包括:所述各侧链节点根据所述相关交易的信息验证所述第一交易请求信息的合法性以及所述主链账户的主链代币余额。

本实施例,通过各侧链节点根据相关交易的信息验证第二区块的有效性,即第一交易请求信息的合法性以及所述主链账户的主链代币余额,在验证有效后才能接受第二区块更新所述侧链账户的侧链代币余额,从而提高了交易的安全性。当然,上述验证过程也可仅由侧链代理节点进行验证,各侧链节点在接收到第二区块后直接接受第二区块。

图3为本发明另一实施例提供的区块链主链与侧链间交易的方法流程图。如图3所述,本实施例提供了一种区块链主链与侧链间交易的方法,执行主体为侧链代理节点,其实现了由侧链账户向主链账户转账,该方法具体步骤如下:

s301、侧链代理节点接收由侧链账户向主链账户转账的第二交易请求信息。

本实施例中,第二交易请求信息由侧链账户所在的侧链节点生成并发送给主链代理节点。其中第二交易请求信息具体可包括侧链账户标识、主链账户标识以及交易金额。

s302、所述侧链代理节点根据所述第二交易请求信息生成第三区块,并在各侧链节点中广播,以使所述各侧链节点根据所述第三区块更新所述侧链账户的侧链代币余额。

本实施例中,侧链代理节点在各侧链节点中广播第三区块,各侧链节点在接收到第三区块后根据第三区块更新各侧链节点各自存储的侧链账户的侧链代币余额,即将侧链账户减少相应的侧链代币数额。

进一步的,s302中所述的侧链代理节点根据所述第二交易请求信息生成第三区块,具体包括:

所述侧链代理节点验证所述第二交易请求信息的合法性以及所述侧链账户的侧链代币余额;

所述侧链节点根据经验证有效的所述第二交易请求信息生成第三区块,并在所述第三区块中携带所述侧链代理节点的数字签名,用于所述主链代理节点验证所述第三区块。

其中,需要说明的是,当侧链代理节点为多个时,第三区块中至少要携带侧链代理节点中超过51%个节点的数字签名,从而提高验证的可信度。在主链代理节点对第三区块验证时,只需验证第三区块是否包含有侧链代理节点的数字签名即可,降低了验证成本。

s303、所述侧链代理节点将所述第三区块发送给主链代理节点,以使所述主链代理节点经验证所述第三区块有效后,根据所述第二交易请求信息生成第四区块并在各主链节点广播,以使所述各主链节点根据所述第四区块以及预先锚定的汇兑比例更新所述主链账户的主链代币余额。

本实施例中,由于第三区块为侧链代理节点生成,其有利于在各侧链节点中广播和验证,而欲将第三区块中包含的第二交易请求信息广播到各主链节点,还需要主链代理节点重新根据第二交易请求信息生成可在各主链节点中广播的第四区块,以使各主链节点根据第四区块以及预先锚定的汇兑比例更新所述主链账户的主链代币余额。

需要说明的是,预先锚定的汇兑比例可与上述实施例相同。

进一步的,s303中所述侧链代理节点将所述第三区块发送给主链代理节点,具体包括:

所述侧链代理节点延迟预定时间后将所述第三区块发送给主链代理节点。

本实施例中通过延迟发送,以使当侧链被攻击发出赎回交易后可以回滚,即有足够的时间暂停侧链向主链的转账交易,避免在侧链被攻击后造成侧链账户的财产损失,提高侧链的安全性。具体的,由于侧链代理节点持续对多个交易进行生成第三区块,当前交易的第三区块生成后,在侧链代理节点继续生成n个第三区块后才发送给主链代理节点。例如,当前交易的第三区块的块号为1000,当侧链代理节点出块到1050块时再将块号为1000的第三区块发送给主链代理节点。

进一步的,与上述实施例相同,本实施例中的主链代理节点由主链中持有资产的节点投票选举所得;侧链代理节点由侧链中持有资产的节点投票选举所得,或者为侧链创建节点。并且,侧链代理节点通过生成第三区块获取交易手续费;主链代理节点通过生成第四区块获取交易手续费,此处不再赘述。

本实施例提供的区块链主链与侧链间交易的方法,实现了从侧链账户向主链账户的转账,通过侧链可扩展区块链的业务种类,同时通过分流的方式减少了主链的交易量,并且主链节点和侧链节点各自存储和验证本链区块数据和交易数据,减少了交易的数据量和计算量,解决了不同业务承载在同一条链上对单一节点来说导致的数据存储与计算量膨胀的问题。

本发明另一实施例提供一种区块链主链与侧链间交易系统,包括主链节点和侧链节点,所述主链节点和所述侧链节点在p2p网络中互联,其中所述主链节点中包括主链代理节点,所述侧链节点中包括侧链代理节点;

所述侧链代理节点包括:处理器、存储器、以及存储在所述存储器上并可以由所述处理器运行的计算机程序,所述处理器运行所述计算机程序时实现上述方法实施例所提供的区块链主链与侧链间交易的方法,具体功能此处不再赘述。

本实施例提供的区块链主链与侧链间交易系统,通过侧链可扩展区块链的业务种类,同时通过分流的方式减少了主链的交易量,并且主链节点和侧链节点各自存储和验证本链区块数据和交易数据,减少了交易的数据量和计算量,解决了不同业务承载在同一条链上对单一节点来说导致的数据存储与计算量膨胀的问题。此外,采用去中心化的方案使侧链和主链间资产可实现的双向锚定,并且多条侧链均可使用或锚定同一条主链上的资产,减少了资产种类,避免了不同资产间的相互汇兑问题,使得业务更加清晰有条理。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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