掌桥专利:专业的专利平台
掌桥专利
首页

一种基于服务器中继的跨链交易方法及系统

文献发布时间:2023-06-19 10:58:46


一种基于服务器中继的跨链交易方法及系统

技术领域

本发明涉及区块链技术领域,尤其涉及一种基于服务器中继的跨链交易方法及系统。

背景技术

区块链源于中本聪提出的比特币系统(Bitcoin),它以分布式的只追加账本的形式运行在一个大型的P2P网络中。一个标准的区块链模型自上而下可以由应用层、合约层、共识层、激励层、网络层和数据链路层组成,其中合约层提供自定义的智能合约,供上层应用层进行调用和开发;共识层提供P2P网络中去中心化的共识协议,比如工作量证明、实用拜占庭容错算法等;激励层提供系统中货币的发行和分配机制;网络层提供P2P网络中的消息转发和消息传播的机制;数据链路层包含交易数据以及对于数据的加密技术等。

从部分上来看,随着去中心化的共识机制带来的一个负面影响就是区块链无法提供高吞吐率和高扩展性,即使扩充区块链节点的数目,对于运行效率的提升是有限的,并且随着数目的动态扩张,对其共识速度的影响甚至是负面的,无法做到线性扩展;除此之外,随着运行时间的增加,区块链存储节点有数据膨胀的风险,一个全节点就必须承载区块链所有的账本数据,甚至可能会超过单链上存储介质的上限。从整体上来看,区块链模型本身是闭环的,随着区块链项目的增多,区块链形成了价值孤岛,链与链之间的资产权益交互非常困难,往往是需要借助线下的第三方完成。从以上缺陷考虑,尽管区块链被大规模的研究和实现,但是它始终无法承载商业化的应用场景,尤其是在大数据、高并发、低延迟的场景下,几乎是无法使用的。

区块链的不可能三角理论,即区块链很难同时做到“去中心化”、“安全性”、“交易处理性能”三条原则。公有链在去中心化和安全性上有可靠的保障,但是在交易处理性能上差强人意;私有链在交易处理性能和安全性上效率可观,但是只有不开放的用户节点具有读写权限,是高度中心化的。联盟链是介于公有链和私有链之间的一种区块链,它能保障安全性和交易处理性能,是多中心化的,即它是由许多同质的机构和组织共同经营管理的。不过,由于区块链本身模型架构的限制,它们都呈现一种在交易处理性能上的颓势,尽管联盟链和私有链在性能上比起公有链有优势,但是放在整体互联网大环境下,其吞吐率、并发量也是不尽如人意的。

从区块链模型和区块链的不可能三角理论中表明,想要获得高性能、大容量的区块链系统,在现有的单链结构下是无法突破的,需要对其底层数据结构进行改造或者对顶层架构进行横向的扩展。

当前业界做区块链跨链平台绝大部分都是公有链,可能联盟链跨链技术不开源。各跨链平台侧重点在于打通不同业务上区块链的信息孤岛,即将闭环的区块链做打通,使其能够相互交流,但在内部架构和实现上会有差异,且均有性能瓶颈及吞吐量不足的问题。

发明内容

本发明要解决的技术问题是,提供一种基于服务器中继的跨链交易方法及系统,实现跨链交易的同时改善系统的性能瓶颈。

本发明采用的技术方案是,所述基于服务器中继的跨链交易方法,整个区块链网络被划分为多个独立的联盟链形式的区块链,所述方法包括:

步骤1,服务器对接收到的跨链交易请求中的跨链交易进行分解得到分解交易,所述分解交易包括:交易输入XTXI和交易输出XTXO;

步骤2,所述服务器对所述XTXI进行区块链网络状态选择,根据选定的区块链网络状态通过哈希散列的方式将所述XTXI溯源到对应的区块链,以执行资产锁定操作;

同理,将所述XTXO分配给对应的区块链以执行资产释放操作。

本领域公知的,在本次交易中作为交易输入XTXI的资源来源于前一次交易中作为交易输出XTXO的该资源。

可选的,所述XTXI的报文头信息包括:处理同一资源的前一次交易的服务器写入的:该服务器处理前一次交易的时间戳、自增序列,所述自增序列用于区分同一时间戳内所处理的不同资源;

在所述步骤2中,所述服务器对所述XTXI进行区块链网络状态选择,根据选定的区块链网络状态通过哈希散列的方式将所述XTXI溯源到对应的区块链,包括:

所述服务器根据所述XTXI的报文头信息中的所述时间戳确定出对应的分片组元信息,在确定出的分片组元信息的基础上,采用一致性哈希散列算法将所述XTXI路由到对应的区块链;

所述分片组元信息即为一段时间内区块链网络中所有区块链信息,一旦某一时段区块链数量发生变化,就生成新的与该时段对应的分片组元信息。

可选的,所述XTXI的报文头信息还包括:处理同一资源的前一次交易的服务器所属的联盟编号和机器号。

可选的,所述XTXO的所述报文头信息包括:处理同一资源的本次交易的服务器写入的:服务器处理本次交易的时间戳、自增序列;

在所述步骤2中,将所述XTXO分配给对应的区块链,包括:

所述服务器根据所述XTXO的报文头信息中的所述时间戳确定出对应的分片组元信息,在确定出的分片组元信息的基础上,采用一致性哈希散列算法将所述XTXO路由到对应的区块链。

可选的,所述XTXO的报文头信息还包括:处理同一资源本次交易的服务器所属的联盟编号和机器号。

可选的,采用一致性哈希散列算法将分解交易路由到对应的区块链,包括:

对分解交易的报文头信息做哈希计算得到目标哈希值,根据所述目标哈希值在哈希环中顺时针寻找一个虚拟节点,该虚拟节点的哈希值是大于所述目标哈希值的最近的一个哈希值,若没有比所述目标哈希值大的哈希值,则继续顺时针找到哈希环中的下一个即最小的第一个哈希值对应的虚拟节点;该虚拟节点对应的真实节点即为找到的区块链;哈希环是由整个哈希值空间组成的一个虚拟的圆环,虚拟节点的哈希值也在这个圆环中,虚拟节点与真实节点是多对一的关系。

可选的,所述方法还包括:

步骤3,所述服务器在其内存中以链表的方式定期将新成功处理的跨链交易记录在链表的一个新增的节点上;

所述步骤2,还包括:所述服务器对所述XTXI进行区块链网络状态选择之前,先基于内存中记录的跨链交易对所述XTXI进行双花验证。

可选的,所述步骤3,还包括:

每当内存的所述链表中的已有节点数量达到设定的数量时,所述服务器对已有节点上记录的跨链交易数据进行验证,验证通过后,将所述已有的节点从链表中删除,以释放内存空间;所述设定的数量为确保同一笔交易不会出现双花的最多连续节点数量。

可选的,所述方法还包括:

步骤4,所述服务器对链内交易请求进行如下兼容处理:

所述服务器接收到链内交易请求时,对所述链内交易请求中的链内交易进行分解得到交易输入和交易输出,对分解得到的交易输入和交易输进行区块链网络状态选择,根据选定的区块链网络状态通过哈希散列的方式路由到对应的同一个区块链,以由该同一个区块链基于所述链内交易的所有分解交易执行资产迁移操作。

本发明还提供一种基于服务器中继的跨链交易系统,整个区块链网络被划分为多个独立的联盟链形式的区块链,所述系统包括:服务器以及两个以上的所述区块链,其中,

所述服务器,用于对接收到的跨链交易请求中的跨链交易进行分解得到分解交易,所述分解交易包括:交易输入XTXI和交易输出XTXO;

所述服务器,还用于对所述XTXI进行区块链网络状态选择,根据选定的区块链网络状态通过哈希散列的方式将所述XTXI溯源到对应的区块链以执行资产锁定操作;同理,再将所述XTXO分配给对应的区块链;

所述区块链,用于对溯源来的所述XTXI的资产执行锁定操作,以及对分配来的所述XTXO执行资产释放操作。

采用上述技术方案,本发明至少具有下列优点:

本发明所述基于服务器中继的跨链交易方法及系统,在联盟链的基础上对联盟链架构做非侵入式的多链改进,即在保证不对其底层架构做修改的情况下,基于联盟链将传统单链架构扩展为多链架构,并提供链与链之间的跨链通信方案,同时提高联盟链处理交易的吞吐率,削减单个节点的存储容量,打通联盟链孤岛,增加联盟链整体系统的可扩展性,使得联盟链跨链共识平台即本发明中的服务器能够承载大数据、高并发的商业化应用场景。

附图说明

图1 为本发明第一实施例的基于服务器中继的跨链交易方法流程图;

图2为本发明第二实施例的基于服务器中继的跨链交易方法流程图;

图3为本发明第三实施例的基于服务器中继的跨链交易方法流程图;

图4为本发明第四实施例的基于服务器中继的跨链交易系统组成示意图。

具体实施方式

为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。

本发明第一实施例,一种基于服务器中继的跨链交易方法,整个区块链网络被划分为多个独立的联盟链形式的区块链,也叫共识区块链或者共识单链,共识单链内部通过共识算法达成共识,且不与其他共识单链做交互,形成一个单独的闭环,每个共识单链负责自己的部分交易,处理自己的核心数据。

如图1所示,所述方法包括:

步骤1,服务器对接收到的跨链交易请求中的跨链交易进行分解得到分解交易,所述分解交易包括:交易输入XTXI和交易输出XTXO;

步骤2,所述服务器对所述XTXI进行区块链网络状态选择,根据选定的区块链网络状态通过哈希散列的方式将所述XTXI溯源到对应的区块链,以执行资产锁定操作;同理,将所述XTXO分配给对应的区块链以执行资产释放操作。

本领域公知的,在本次交易中作为交易输入XTXI的资源来源于前一次交易中作为交易输出XTXO的该资源。

可选的,所述XTXI的报文头信息包括:处理同一资源的前一次交易的服务器写入的:该服务器处理前一次交易的时间戳、自增序列,所述自增序列用于区分同一时间戳内所处理的不同资源;

在所述步骤2中,所述服务器对所述XTXI进行区块链网络状态选择,根据选定的区块链网络状态通过哈希散列的方式将所述XTXI溯源到对应的区块链,包括:

所述服务器根据所述XTXI的报文头信息中的所述时间戳确定出对应的分片组元信息,在确定出的分片组元信息的基础上,采用一致性哈希散列算法将所述XTXI路由到对应的区块链;

所述分片组元信息即为一段时间内区块链网络中所有区块链信息,一旦某一时段区块链数量发生变化,就生成新的与该时段对应的分片组元信息。

可选的,所述XTXI的报文头信息还包括:处理同一资源的前一次交易的服务器所属的联盟编号和机器号。

可选的,所述XTXO的所述报文头信息包括:处理同一资源的本次交易的服务器写入的:服务器处理本次交易的时间戳、自增序列;

在所述步骤2中,将所述XTXO分配给对应的区块链,包括:

所述服务器根据所述XTXO的报文头信息中的所述时间戳确定出对应的分片组元信息,在确定出的分片组元信息的基础上,采用一致性哈希散列算法将所述XTXO路由到对应的区块链。

可选的,所述XTXO的报文头信息还包括:处理同一资源本次交易的服务器所属的联盟编号和机器号。

进一步的,无论是针对分解交易为XTXI还是XTXO,均是采用一致性哈希散列算法将分解交易路由到对应的区块链,具体包括:

对分解交易的报文头信息做哈希计算得到目标哈希值,根据所述目标哈希值在哈希环中顺时针寻找一个虚拟节点,该虚拟节点的哈希值是大于所述目标哈希值的最近的一个哈希值,若没有比所述目标哈希值大的哈希值,则继续顺时针找到哈希环中的下一个即最小的第一个哈希值对应的虚拟节点;该虚拟节点对应的真实节点即为找到的区块链;哈希环是由整个哈希值空间组成的一个虚拟的圆环,虚拟节点的哈希值也在这个圆环中,虚拟节点与真实节点是多对一的关系。

本发明第二实施例,一种基于服务器中继的跨链交易方法,整个区块链网络被划分为多个独立的联盟链形式的区块链,如图2所示,所述方法包括:

步骤1,服务器对接收到的跨链交易请求中的跨链交易进行分解得到分解交易,所述分解交易包括:交易输入XTXI和交易输出XTXO;

步骤2,所述服务器对所述XTXI进行区块链网络状态选择,根据选定的区块链网络状态通过哈希散列的方式将所述XTXI溯源到对应的区块链,以执行资产锁定操作;同理,将所述XTXO分配给对应的区块链以执行资产释放操作。

优选的,区块链在执行资产锁定操作之前,先对所述XTXI验证双花。

步骤3,所述服务器在其内存中以链表的方式定期将新成功处理的跨链交易记录在链表的一个新增的节点上;优选的,所述链表为双向链表。

所述步骤2,还包括:所述服务器对所述XTXI进行区块链网络状态选择之前,先基于内存中记录的跨链交易对所述XTXI进行双花验证。

可选的,所述步骤3,还包括:

每当内存的所述链表中的已有节点数量达到设定的数量时,所述服务器对已有节点上记录的跨链交易数据进行验证,验证通过后,将所述已有的节点从链表中删除,以释放内存空间;所述设定的数量为确保同一笔交易不会出现双花的最多连续节点数量。

本发明实施例与第一实施例大致相同,区别仅在于,本实施例的服务器在内存中以链表的形式对所处理的跨链交易进行了完整记录,虽然服务器不是真正的区块链,但是本实施例模仿区块链的原理,以链表的形式存储跨链交易数据,既突破了区块链的性能瓶颈,又使得在内存中定期对存储的链表剪枝以避免内存中存储数据范围过大成为可能。

因为服务器需要准确验证每一笔跨链交易是否存在双花,这要求服务器存储全账本信息即所有交易信息,用于避免“双花”。由于跨链交易信息是存储在内存中的,而内存容量是有限的,在实际操作上不可能让服务器去真的存储全账本信息,也没有必要去真的存储全账本信息,因为这些信息本就被保存在各自的区块链上了,不需要被冗余保存。为此,需要在内存中对全账本做剪枝操作。剪枝的方式为:每隔一个周期,服务器就会去创建一个检查点 (Check Point),如果在这个检查点之前的双向链表节点上的交易数据通过服务器的交易验证,即,服务器会判断该交易是否是双花交易,以及这个跨链交易是否已经完成资产锁定和释放。那么这个周期之前的链表节点就可以出队并抛弃了,以此来做一个剪枝避免内存中存储数据范围过大。被抛弃的记录跨链交易的链表节点并不是真正的被抛弃了,只是剔除出内存了并且不会在下一个周期做验证了,根据业务需要,可以将这些链表节点保存起来作为历史记录以供验证和分析,一般会采用只追加的方式采用低优先级的线程添加到文件里。剪枝的底层逻辑是“双花”是不可能在一个周期外的时间被重复消费的,如果两次双花的时间间隔了一个周期,那么实际上交易被路由到区块链上时,是可以被识别出来的。由此也可以看出,这里服务器处理“双花”交易的流程实际上是一个预处理,由于服务器并不包含全账本信息,所以它仅能识别一个周期内的“双花”交易,会有超过一个周期的双花交易漏识别,但这并不要紧,因为区块链也会识别出来。这里的预处理只是为了加快响应速度,避免不必要的通信和处理开销。

本发明第三实施例,一种基于服务器中继的跨链交易方法,整个区块链网络被划分为多个独立的联盟链形式的区块链,如图3所示,所述方法包括:

步骤1,服务器对接收到的跨链交易请求中的跨链交易进行分解得到分解交易,所述分解交易包括:交易输入XTXI和交易输出XTXO;

步骤2,所述服务器先基于内存中记录的跨链交易对所述XTXI进行双花验证,再对所述XTXI进行区块链网络状态选择,根据选定的区块链网络状态通过哈希散列的方式将所述XTXI溯源到对应的区块链,以执行资产锁定操作;同理,将所述XTXO分配给对应的区块链以执行资产释放操作。

步骤3,所述服务器在其内存中以链表的方式定期将新成功处理的跨链交易记录在链表的一个新增的节点上;

步骤4,所述服务器对链内交易请求进行如下兼容处理:

所述服务器接收到链内交易请求时,对所述链内交易请求中的链内交易进行分解得到交易输入和交易输出,对分解得到的交易输入和交易输进行区块链网络状态选择,根据选定的区块链网络状态通过哈希散列的方式路由到对应的同一个区块链,以由该同一个区块链基于所述链内交易的所有分解交易执行资产迁移操作。

本发明实施例与第二实施例大致相同,区别在于,本实施例中,服务器还可兼容处理链内交易,其原理与处理跨链交易类似,只是由于在交易是发生在同一个区块链内的,所以不用先执行锁定后执行释放操作,而是直接由区块链执行资产迁移。

本发明第四实施例,一种基于服务器中继的跨链交易系统,整个区块链网络被划分为多个独立的联盟链形式的区块链,如图4所示,所述系统包括:服务器100以及两个以上的所述区块链200,其中,

所述服务器100,用于对接收到的跨链交易请求中的跨链交易进行分解得到分解交易,所述分解交易包括:交易输入XTXI和交易输出XTXO;

所述服务器100,还用于对所述XTXI进行区块链网络状态选择,根据选定的区块链网络状态通过哈希散列的方式将所述XTXI溯源到对应的区块链200以执行资产锁定操作;同理,再将所述XTXO分配给对应的区块链200;

所述区块链200,用于对溯源来的所述XTXI的资产执行锁定操作,以及对分配来的所述XTXO执行资产释放操作。

本实施例中,服务器100与区块链200所完成的功能可以与第一、二或三实施例中的服务器与区块链所完成的功能相同,以组成不同实现方案的系统。

优选的,为了提高处理效率,服务器100与区块链200均可以通过其对应的代理网关与外界交互。服务器100还可以进一步分为主服务器和从服务器两种角色,进行交易分解和交易路由的分工,可以更加高效的响应跨链交易请求,当跨链交易请求数量较多时,还可以通过消息队列集群及使用负载均衡路由器的方式对跨链交易请求进行暂存并分配给服务器,以此实现流量的削峰填谷。

在工程实现上,上述实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的所述方法可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台设备(可以是基站等网络设备)执行本发明实施例所述的方法。

通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。

相关技术
  • 一种基于服务器中继的跨链交易方法及系统
  • 一种基于平行链的跨链交易方法、装置及区块链系统
技术分类

06120112757014