CN111046437A - 基于同构多链的区块链并行事务处理方法及系统、终端 - Google Patents
基于同构多链的区块链并行事务处理方法及系统、终端 Download PDFInfo
- Publication number
- CN111046437A CN111046437A CN201911055830.3A CN201911055830A CN111046437A CN 111046437 A CN111046437 A CN 111046437A CN 201911055830 A CN201911055830 A CN 201911055830A CN 111046437 A CN111046437 A CN 111046437A
- Authority
- CN
- China
- Prior art keywords
- transaction
- chain
- subnet
- user
- asset
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Abstract
本发明涉及一种基于同构多链的并行事务处理方法,包括:构建一个或多个子网链,每个该子网链具有相同的区块链构架;将拟执行的逻辑事务划分为至少一个实际事务;将该实际事务分发给对应的子网链以进行并行事务处理。本发明中的事务处理主要包括单向的资产转移,对Dapp类应用兼容,资产的聚合与分散。整体架构划分为客户端和区块链平台两部分,客户端依据区块链平台的统计信息构建优化的并行交易,统筹兼顾用户需求,提升系统整体性能;同时追踪用户账户的信息,维护相关状态,实现链下的通信。本发明瞄准单条链存在的性能问题,创新性的提出了逻辑交易并行执行算法,解决了原始区块链技术架构中的优化性能瓶颈问题,提升了全局事务处理的通量上限。
Description
技术领域
本发明属于区块链技术领域,具体涉及一种区块链事务数据的同构多链并行事务处理的方法及系统。
背景技术
区块链作为新兴技术,还有很多问题亟待完善,区块链协议在应用过程中面临着可扩展性的障碍。代表性的比特币区块链以及以太坊区块链数据均已超过200GB,根据Etherscan最新统计,完整运行以太坊全部数据的“存档节点”的数据总量已超2TB。在目前的区块链共识协议中,区块链账本数据量会随时间越来越大,尤其以区块链中的公有链为代表,区块链全局账本数据需要在公有链的尽可能多的节点进行全复制存储,大大提高了系统的准入门槛,并极大程度的降低了系统可扩展性。
源于比特币的区块链技术,在产生之初,其设计目标只是针对小范围技术社区内的验证和使用需求,其原始的区块链基础设计目标并没有考虑向更广范围的、高并发的互联网应用推广,区块链协议的简单和健壮性是区块链技术的最初设计前提。由此,区块链全网节点采用统一的共识过程,事务数据和区块数据在全网进行洪泛式传播,并且,每个共识节点需要验证并存储所有的区块数据,这些特点成为了最初的区块链技术特征并继承至今。
以比特币为代表的区块链技术,普遍采用全网统一的共识过程、全网复制共享的全局账本数据,这样的机制造成了事务处理速度远远低于主流的中心化处理系统。在比特币网络中,每笔事务的数据量平均500字节,如果到达每秒500笔事务的处理速度,每个区块链数据节点需要增加10TB的存储。然而,每个节点对每笔事务的验证时间大约5ms,因此每个节点每秒处理的事务理论数量上限为200。由于全网采用统一的共识过程,假设节点的平均网络带宽为10Mbit/s,那么每个节点的每秒可以接收的事务数量上限是1000,但事实上,受同步机制的影响,每个区块链网络节点每秒能接收到并验证的事务数量上限只是200左右。因此,受制于区块链核心协议的限制,对区块链系统的运行参数进行调整所能预期的效率提升是有限的,在区块链核心协议之上的改进技术更受关注。
在区块链技术的基础架构和协议框架下,通过优化其协议内置的参数(出块间隔、区块大小)和运行环境参数(挖矿节点的GPU、内存、硬盘、网络带宽)等,其预期的优化效果上限可以预估且无法达到传统中心化技术的通量水平。
这种现状严重制约了区块链技术在高并发、高通量业务场景的应用。普通的信用卡公司可以每秒处理10000笔事务,支付卡VISA每秒处理的事务数量峰值可以到达50000笔,支付宝每秒处理的事务数量峰值可以达到25万笔,并且事务的确认时间只需几秒钟。
侧链(或称跨链)技术实现多链之间的业务互通,侧链技术的目的是将不同的区块链网络链接在一起,形成覆盖范围更广的信任网络。目前有很多流行的区块链网络,它们有各自的特点,比特币成为最受关注的代表,Blockstream公司提出,将多种类型的区块链网络挂钩到比特币区块链上,其目的是搭建不同区块链系统之间的价值传递桥梁,尤其是实现价值在比特币区块链和其它区块链之间相互转换。2013年,Adam Back和Blockstream公司的开发团队发布了最初版的侧链白皮书,通过双向楔入的方式,允许资产在比特币区块链和其它链之间移动,侧链技术在一定程度上解决了比特币事务上限的问题,通过双向楔入的方式将部分事务移动到其它的替代链上,也就是多链之间的互操作或称跨链事务。
2015年6月,Blockstream公司发布侧链项目的源代码——侧链元素(SidechainsElements),侧链元素通过比特币测试网络的代币进行锚定测试。2015年10月,第一个商业化的侧链Liquid发布了。正式添加双向楔入式侧链的比特币改进协议(BitcoinImprovement Proposal)BIP在2016年上半年完成。
截止目前,侧链技术关注的核心问题是业务场景跨链,因此,侧链技术并没有给通量需求带来技术进步。
2015年,针对比特币事务容量问题而出现的见证隔离、微支付通道及闪电网络技术受到广泛关注,闪电网络由比特币的微支付系统支撑实现。抽象出的“支付通道网络”(payment channel networks)技术被视为突破区块链事务容量限制的最有前景的技术方向之一,支付通道网络的提出可以有效缓解事务性能不足的问题。支付通道网络由大量的两两双向支付通道构成,双向支付通道可由参与的双方共同发起一个区块链事务来创建,通道关闭时在区块链数据结构上进行最终状态的确认。
Rohrer E,Laβ J F,Tschorsch F(Towards a Concurrent and DistributedRoute Selection for Payment Channel Networks[J].2017.)实现了支付通道网络新的路由选择算法,提出了容量锁定概念,提高了支付过程的并发度。Khalil R,Gervais A(Revive:Rebalancing Off-Blockchain Payment Networks[C]//ACM SigsacConference.ACM,2017:439-453)针对闪电网络中的多跳支付过程进行了路径优化研究,利用线性规划的方法平衡节点多通道之间的支付余额,使得多跳支付路径缩短,提高支付效率,降低支付费用。Malavolta G,Moreno-Sanchez P,KateA等人(Concurrency andPrivacy with Payment-Channel Networks[C]//ACM Sigsac Conference.ACM,2017:455-471.)针对闪电网络存在的并发性和隐私性问题进行研究,提出了两个闪电网络协议Fulgor和Rayo。Fulgor和Rayo的核心是多跳哈希时间锁(Multi-Hop HTLC),提供有条件的支付功能,同时减少了运行时间和通信开销。Fulgor是一个可证明隐私性的、与比特币的脚本系统兼容的闪电网络支付协议,Fulgor是一个阻塞协议,因此与当前可用的闪电网络一样容易出现并发支付死锁的问题。相反,Rayo是闪电网络的第一个非阻塞的、强制执行的协议,文献中的实验表明,经过10个中间用户的支付通道只需要5秒,从而证明了这两个协议的可行性。Green M,Miers I(Bolt:Anonymous Payment Channels for DecentralizedCurrencies[C]//ACM Sigsac Conference.ACM,2017:473-489.)研究了闪电网络中的支付通道的匿名性方法,提出的方法在保证安全性、隐私性和即时性的同时,减少了支付网络的负载,该文提出了三种类型的支付通道,包括引入不可信的第三方,这些方法可以通过通用技术方便的构建。目前该方法并没有支持多方之间支付通道匿名性,并且,当发生争议时,需要向网络公开支付通道中的余额状态,这也是有悖匿名的初衷的。
发明内容
为解决上述问题,本发明提出一种基于同构多链的并行事务处理方法,包括:构建多条子网链,每条该子网链具有相同的区块链架构;将拟执行的逻辑事务划分为至少一笔实际事务;将该实际事务分发给对应的子网链以进行并行事务处理。
本发明所述的并行事务处理方法,其中逻辑事务划分的步骤包括:根据事务处理参与方的资产信息和参与处理该逻辑事务的子网链的状态信息,将逻辑事务logicTx划分为实际事务Tcm,Tcm仅在对应的子网链cm内进行处理;其中,m∈[1,M],1≤M≤N,M、N、m为正整数,M为参与处理逻辑事务logicTx的子网链数量,N为构建的子网链的总数量。
本发明所述的并行事务处理方法,其中当逻辑事务logicTx为用户A向用户B转移交易值为V的资产时,该逻辑事务划分的步骤还包括:将logicTxAB划分为实际事务Tcm,每笔实际事务Tcm满足αm≥Vm、V≤∑αm和V=∑Vm,αm为用户A在cm的资产余额,Vm为每笔Tcm的交易值;该并行事务处理的步骤具体包括:对Tcm进行并行处理,使得交易值为Vm的资产在cm上由用户A向用户B进行转移,以实现交易值为V的资产由用户A向用户B的转移。
本发明所述的并行事务处理方法,其中当逻辑事务logicTx为用户A通过用户B进行交易值为V的资产聚合/分散时,该逻辑事务划分的步骤还包括:
将逻辑事务logicTx拆分为逻辑事务logicTxAB和逻辑事务logicTxBA,其中,logicTxAB为用户A向用户B进行交易值为V的资产转移事务,logicTxBA为用户B向用户A进行交易值为V的资产转移事务;将logicTxAB划分为在子网链cm上执行的第一实际事务Tcm,将logicTxBA划分为在子网链cm'上执行的第二实际事务Tcm',并同时满足αm≥Vm、αm'≥Vm'、V≤∑αm、V≤∑αm'和V=∑Vm=∑Vm',Vm为Tcm的交易值,Vm'为Tcm'的交易值,αm为用户A在cm的资产余额,αm'为用户B在cm'的资产余额,m'∈[1,M],m'为正整数;该并行事务处理的步骤具体包括:对Tcm和Tcm'进行并行处理,使得交易值为Vm的资产在cm上由用户A向用户B进行转移,同时交易值为Vm'的资产在cm'上由用户B向用户A进行转移,以实现用户A的交易值为V的资产由cm向cm'的聚合或分散。
本发明所述的并行事务处理方法,其中构建该子网链时,为每条该子网链部署原子时间锁合约,以确保同一逻辑事务划分出的所有实际事务在对应的子网链上执行时的原子性。
本发明还提出一种基于同构多链的并行事务处理系统,使用如上所述的并行事务处理方法进行逻辑事务的并行处理,该并行事务处理系统包括:区块链平台,包括多条具有相同区块链架构的子网链,每条该子网链包括多个共识节点;客户端,用于将该逻辑事务划分为至少一笔实际事务;其中,该客户端将该实际事务分发给该子网链,该子网链的共识节点对分配的实际事务进行处理,以实现该逻辑事务。
本发明所述的并行事务处理系统,其特征在于,该客户端根据事务处理参与方的资产信息和参与处理该逻辑事务的子网链c的状态信息,将逻辑事务logicTx划分为实际事务Tcm,Tcm仅在子网链cm内进行处理;其中,该资产信息包括该事务处理参与方在子网链cm上的账户信息、资产分布和事务处理偏好,该状态信息包括子网链cm的负载状况、交易费用,m∈[1,M],1≤M≤N,M、N、m为正整数,M为参与处理逻辑事务logicTx的子网链数量,N为构建的子网链的总数量。
本发明所述的并行事务处理系统,其中每条该子网链均部署有原子时间锁合约,以确保同一逻辑事务划分出的所有实际事务在对应的子网链上执行时的原子性。
本发明还提出一种可读存储介质,存储有可执行指令,该可执行指令用于执行如上所述的基于同构多链的并行事务处理方法。
本发明还提出一种数据处理终端,用于作为子网链的共识节点进行事务处理,该数据处理终端包括:如上所述的可读存储介质;处理器,用于调取并执行该可读存储介质中的可执行指令,以对接收到的实际事务进行处理。
附图说明
图1是本发明的基于同构多链的并行事务处理系统结构示意图。
图2是本发明的负载均衡模块执行过程示意图。
图3是本发明的子网链事务处理模块架构图。
图4是本发明的多链单向转账事务处理示意图。
图5是本发明的资产聚合与分散时间轴示意图。
图6是本发明实施例的用户A向用户B转移数量为V的资产的事务处理流程图。
图7是本发明实施例的用户A进行资产聚合的事务流程图。
图8是本发明的数据处理终端结构示意图。
具体实施方式
为了使本发明的技术方案更加清晰明了,以下结合附图对本发明进一步详细说明,应当理解,此处所描述的具体实例仅仅用以解释本发明,并不限定于本发明。
发明人在进行区块链通量研究时,发现现有技术中通量优化的缺陷是单链系统的性能提升空间很小,受限于单条链的共识算法、网络带宽等因素,现有方案对于多链的研究尚未深入,没有成熟完善的方案。究其根本,是未能考虑“事务数据”可同时在多条同构链上进行并行处理的特性,主要存在的问题包括以下两个方面:
(1)事务数据重复验证的可靠性冗余:区块链网络在一个出块周期内的、待验证处理的“事务数据”具有“源地址”和“目的地址”等属性信息。在公有链的协议中,事务数据在整个网络内尽可能被所有的共识节点进行重复验证,这是为了避免“双花攻击”,同时也是基于可靠性的设计。然而,事务数据在全部共识节点的重复验证的可靠性冗余过高,这在相当多的应用场景下是没有必要的,并且同一时段内的许多待验证处理的事务数据(例如,“源地址”不同的事务)不存在“双花攻击”的问题,因此可以在不同的共识节点并行验证。
(2)现有区块链系统架构限制:区块链高通量的研究集中在链上的性能参数调优、跨链通信和链外通道三个方面。其中,链上协议运行参数调优受区块链本身体系架构和共识协议的制约,使得通量优化受限于网络带宽和共识节点的硬件性能,其优化的预期上限无法满足需求;跨链通信的研究目标是异构区块链平台的业务互通,对通量性能的提升是其次要目标;链外通道的研究目标是在区块链核心协议的基础上构造第二层协议,其理论优化的预期上限可以满足要求,但其结算类事务的处理速率依旧受限于底层区块链本身,并且链外通道对资产的锁定与链上业务造成了负面影响,使得链上有“通货紧缩”趋势。
发明人经过对现有区块链通量优化技术的研究发现,解决该问题可以通过同构多链并行事务处理的方式实现,将现有区块链事务的串行处理过程中转化为多链并行处理过程,使得通量优化技术建立在区块链基础架构和核心协议的基础之上,不再受限于带宽和单点瓶颈。为了实现事务并行化的处理,一笔逻辑事务在单链资产无法满足支付时可以拆分为多笔实际事务,提升事务处理并发度,从而达到系统性能提升的目标。
本发明提出一种基于同构多链的并行事务处理方法,包括:构建多条子网链,每条该子网链具有相同的区块链架构;将拟执行的逻辑事务划分为至少一笔实际事务;将该实际事务分发给对应的子网链以进行并行事务处理。其中,逻辑事务划分的步骤包括:根据事务处理参与方的资产信息和参与处理该逻辑事务的子网链的状态信息,将逻辑事务划分为实际事务,每笔实际事务仅在对应的子网链内进行处理;该资产信息包括该事务处理参与方在子网链上的账户信息、资产分布和事务处理偏好,该状态信息包括子网链的负载状况、交易费用。构建该子网链时,为每条该子网链部署原子时间锁合约,以确保同一逻辑事务划分出的所有实际事务在对应的子网链上执行时的原子性。
本发明还提出一种基于同构多链的并行事务处理系统,包括:区块链平台,包括多条具有相同区块链架构的子网链,每条该子网链包括多个共识节点;客户端,用于将该逻辑事务划分为至少一笔实际事务;其中,该客户端将该实际事务分发给该子网链,该子网链的共识节点对分配的实际事务进行处理,以实现该逻辑事务。
其中并行事务处理系统的客户端根据事务处理参与方的资产信息和参与处理该逻辑事务的子网链的状态信息,将逻辑事务划分为多笔实际事务,每笔仅在对应的子网链内进行处理;该资产信息包括该事务处理参与方在子网链上的账户信息、资产分布和事务处理偏好,该状态信息包括子网链的负载状况、交易费用。
图1是本发明的基于同构多链的并行事务处理系统结构示意图。本发明所提出的同构多链架构如图1所示。
本发明提出的同构多链并行事务处理架构由区块链平台和客户端两部分组成。其中,客户端管理账户信息,“定期”获取本地账户的全网最新状态,当需要发送交易的时候,获取全网区块链的负载信息。用户直接发出的新事务,称之为逻辑事务,客户端通过负载均衡模块的决策,将逻辑事务划分为实际事务,发送至对应子网链的事务处理模块进行并行处理。
区块链平台由多条子网链组成,每条子网链拥有全局唯一的网络标识。每条子网链只需要负责子网内的事务处理,独立完成共识过程。实际事务处理过程使用了子网内置的原子哈希时间锁合约,链启动时以自动部署此智能合约,用以确保一笔逻辑事务划分为多笔实际事务后,在多条子网链上执行时的原子性。同时,本发明假设每条子网链中的原生代币以及可量化资产是1:1的对应关系,以简化架构的说明。理论上,此对应关系可以通过加入其它功能模块进行等值的关系转换,本发明并不以此为限。
需要特别说明的是,图1中子网链均由多个共识节点组成,图1中“子网事务处理模块”、“网络分区模块”、“数据服务模块”为对应区块链中每个共识节点均包含的功能模块。本发明后文中,例如,客户端将事务发送给子网链事务处理模块,是指客户端将逻辑事务在本地的事务处理模块进行处理后生成的实际事务,发送给各子网链中的节点,由各节点运行本地程序的子网事务处理模块处理对应事务。
客户端与区块链平台具体模块设计如下:
一、客户端
客户端主要包括账户私钥管理、事务数据管理、负载均衡决策三个模块。
1)账户私钥管理模块负责生成并在本地保存账户私钥。与此同时,使用椭圆曲线数字签名算法(ECDSA)与Keccak-256算法得到私钥对应的账户地址。每个用户可以拥有不同的账户,不同账户可以在不同链上拥有资产。
2)事务数据管理模块的主要功能为:事务数据发送模块与事务数据监听模块。其中事务数据发送模块可以处理包括但不仅限于多链的单向转账,对DApp类应用兼容(即状态类应用事务),资产的聚合与分散(多链的双向转账)等类型事务,这些类型事务的处理过程将与区块链平台中的事务处理模块一起进行介绍。
■事务数据发送模块:调用负载均衡决策模块,决定此笔逻辑事务需要划分为几笔实际事务,需要在哪几条子网链上进行处理。收到负载均衡的决策结果后,将该事务发送至对应子网链“子网事务处理模块”。在事务发送成功后,将该事务移至事务数据监听模块
■事务数据监听模块:监听客户端已发送事务的执行状态(等待/成功/失败),在检测到事务打包确认或返回错误信息后,将结果反馈给用户。同时维护当前客户端保存账户在各条链上的资产持有情况。
3)负载均衡决策模块负责定期向各子网链的数据服务模块查询本地账户最新状态,更新本地账户信息。同时需要维护子网链的状态信息,包括但不仅限于子网链当前的负载、拥塞程度、交易费、账户注册情况等,根据用户转账的需求,结合链上信息为事务处理模块提供更好的事务划分决策,优化用户体验,达到事务拆分、事务费选取、减少用户等待时间、提升网络整体事务处理速率的目的。图2是本发明的负载均衡模块执行过程示意图。
负载均衡模块的输入包含:事务发送方在各条子网链上的账户余额,各子网链中交易池的交易量、交易费、吞吐量,用户想在有余额的子网链上预留的资产金额,当前逻辑事务的转移总额,用户期望事务完成时间。需要注意的是,当前提出的这些输入是当前案例下决策过程需要的参数,后期可根据需求进行参数的增加和减少。负载均衡模块应用这些输入,运行算法得到多个可同时满足用户期望时间,支付费用条件的组合方案,将具有最小费用的事务拆分策略返回给事务数据发送模块。
二、区块链平台——子网链
子网链负责接收并执行特定网络中账户状态改变的相关事务,维护特定网络中账户的最新状态,为上层应用提供该网络空间中最新的账户状态信息。在系统正常运行过程中,子网链的“子网事务处理模块”依据网络划分规则接收客户端发来的事务,针对不同的事务类型,调用不同的功能函数,并在各自的子网内完成共识过程。其中支持的事务类型与客户端中支持的事务类型对应,包括但不仅限于多链单向转账,对DApp类应用兼容,多链资产的聚合与分散。数据服务模块则实时监听子网链的最新状态,更新内部存储,为上层应用提供链上状态查询接口。
1)子网事务处理模块
子网链的子网事务处理模块在接收到客户端发来的子网事务之后。首先,检验该事务的基本信息(事务的类型,源账户资产是否充足、是否存在“双花攻击”等)。若检验通过,则将该事务添加至本地事务池(待执行事务的缓存结构)中,矿工选择事务并进行打包处理。若检验不通过,向客户端返回“事务执行失败”的信息,并将该事务丢弃。图3是本发明的子网链事务处理模块架构图。如图3所示:
事务检验模块仅接收当前系统支持的事务类型,检验信息包括事务类型,源地址余额是否充足等。若检验通过,则将该事务加入到对应事务类型的处理数组当中,并向客户端事务处理模块返回“事务接收”信息。若检验不通过,则向客户端事务处理模块返回“事务错误”信息。
子网事务处理数组存储对应子网链上的待处理事务,由矿工根据交易费选择打包。
多类型事务处理模块负责处理不同类型的事务,每种类型的事务,因其功能性的不同,处理过程中的考量也不同,分别在“多链单向转账”、“DApp类应用兼容”、“资产的聚合与分散”子功能模块中进行介绍,需要注意的是,这些功能代表比较通用的一大类功能,如果有其他的业务需求,可以增加部署其他的功能模块,实现系统的可扩展性。
2)网络分区模块
本发明中使用了一种比较简单高效的网络划分规则,可以支持子网链按需扩展。不同于已存技术中按照用户地址空间对事务进行划分,本架构中每个子网链都具有唯一的网络标识符(id),严格呈线性增长。当客户端构建新事务时,会根据客户端的负载均衡模块向多条子网链发送事务,因此事务在哪条链被执行完全由客户端决定。区块链平台的分片模块则主要负责子网链的管理,包括对链编号、增加新链等。当现存区块链系统已经达到饱和状态,为了满足区块链的生态需求而增加子网链时,需要确定增加链条的数量。因为对系统的升级更新需要社区的共识,因此对增加链数量的决定规则至关重要。如果增加链数量过少,需要考虑其带来的效益和为了达成共识的花销的关系。如果增加链数量过多,可能会破坏区块链生态的稳定性。本发明不对具体的数量做限定,可后期根据具体的业务及应用场景设定。
当系统启动时,假定同时启动了N条子网链,子网链上的初始资产为0;挖矿会不断地产生区块,同时发行原生资产。各应用提供商可根据应用的需求在目标子网链上部署应用,应用的需求指应用提供商预计应用运行时所需要的资金流通程度,包括资产实时的流动速度,子网链中的资产总量,目标是使应用有足够的资产可以高效运行。应用的发布可以提高区块链生态的活跃性,增加资产的流通。资产发行的速度是确定的,当应用所需的资产流通速度远大于发行速度时,子网链上会产生应用过热、负载过重、资产流通不畅的情况,导致链拥塞,交易费增加,用户体验下降等副作用,此时则需要增加新的子网链,分担原有子网链的负载。新链启动时,为满足应用的资产需求,需要一个冷冻时期,使得新链中的资产量至少不小于所要分担应用的需求。当冷冻期结束后,由应用提供商根据原有链的状态决定是否对应用进行部署,并对原有子网链的业务进行迁徙,迁徙指用户在新的子网链的应用中进行事务,和使用原有子网链中的应用一样。
3)数据服务模块
子网链数据服务模块通过追踪链上的状态变化,为上层应用提供完整的账户状态信息、链信息等。
“多链单向转账”、“DApp类应用兼容”、“资产的聚合与分散”子功能模块中对事务进行具体处理。其中事务数据包含的核心内容为发送方向接收方发起的事务行为,其包含的典型数据结构为:“源地址A”、“目的地址B”、“转移金额V”、“事务序号N”、“事务输入(Input)”、“事务类型”、“其他”。其中的地址为非对称密钥技术中公钥经Keccak-256算法得到的哈希值的后160位(20字节)。
(1)多链单向转账
多链单向转账是指,当用户A在多条链上拥有资产,需要给B转账时单条链的资产不足以支付,多条链协同原子性地完成此转账事务的过程。目的是加速单向转账的处理过程,相较于现有单链系统实现系统整体性能提升。与此同时,相对于传统的单链,多链可以缓解链的压力,在理论上事务处理速度会得到线性的增加。
本方法需要客户端和子网链的协同工作。基本思路是由客户端完成一笔事务的初始分割,由区块链平台(多条子网链)完成具体的处理。图4是本发明的多链单向转账事务处理示意图。
■客户端单向转账事务处理
当用户发起一笔单向转账事务,客户端的负载均衡处理模块会索引此用户的多个账户在多个链上的资产分布情况,首先判断总资产是否能满足转账需求,如果不能,则返回失败信息。否则,需要根据链的负载、费用等系统及经济因素对账户的余额进行事务构造,以求用最少的费用、最快的处理速度完成事务。当逻辑事务被划分为多笔实际事务后,事务数据发送模块对多笔逻辑事务进行封装,事务类型字段为单向转账事务,以便区块链接收到事务后进入不同的处理子模块;输入字段包含一个秘密(secret)的散列。接收方只有从发送方获取到该秘密(Secret)的原始数据,并将该Secret作为事务输入,构造“取款”事务,才能在对应子网链获取到发送方锁定的资金。
■子网链单向转账事务处理
子网链的子网事务处理模块接收到事务时,首先会检查事务所属的类型,将处理过程分派至具体的执行模块,此处为单向转账事务处理模块。单向转账事务处理模块将发送方的事务作为锁定合约的输入,会对此事务发送方的链上资产余额进行检查,确定有足够时进行锁定。原始逻辑事务对应的多笔实际事务都需要进行相同的处理,因为不同链的处理能力,快慢的不同,被锁定需要的时间也不同。为了保证原始逻辑事务的原子性,即多笔实际事务要么都成功转给接收方,要么都失败,只有发送方的资产在多条链上都锁定成功时,发送方客户端的事务发送处理模块会与接收方的客户端进行通信,将秘密的原值通告给接收方。此时接收方可以将秘密值作为锁定合约的输入,使用私钥对“取款”事务进行签名,将资产转入对应子网链上的账户中。
需要注意的是,如果系统需要弱化事务最终原子性的假设,那么可以引入相对时间的概念,即发送方客户端发送多笔逻辑事务时,会在事务输入字段内填充一个区块号,作为过期时间。当逻辑事务划分后的某些实际事务在对应区块时仍未被打包进子网链,那么可认为此转账不成功。发送方可以向锁定合约发送资金撤回事务,申请将已经包含在子网链的部分实际事务转发回发送方账户,以更新事务拆分策略,发起新的转账。
(2)对DApp类应用兼容
对DApp类应用兼容是指,此架构可以很好地与各类去中心化应用(DApp)适配。包括但不仅限于兼容ERC20、ERC721等各类DApp。此类场景下,主要目的是允许应用开发商依据自身业务的需求,包括流量需求,区块链平台大小,想要提供的服务质量等发布应用。当刚开始部署应用时,可以根据子网链的拥塞程度,收费情况在多子网链间做选择,可以仅部署在一条或少数几条链上,以降低部署开销。之后随着应用业务的发展,可以选择将业务扩展在更多条子网链上,以满足日益增长的用户量,降低单个子网链拥塞,提高用户服务质量的需求。
以发行代币(Token)为例,可先将代币发行在一条或几条子网链上,具体则是将发行代币的合约分别部署在需要的链上。随后用户可在这一条或几条链上流通此类代币,发行方也可以根据需求在其他子网链上继续部署发行代币的合约。
以去中心化应用(Dapp)为例,应用服务方可根据考量各因素,选择将应用部署在一条或几条子网链上。在同一个子网链上的用户之间可以自由进行交互,因为仅限于各自的子网链上。但每个账户在不同链上的应用状态不同,类似游戏的各大区之间互不干扰。根据具体需求,应用服务方可以在区块链上层搭建应用读取多链上的账户状态以完成用户的跨区交互。
(3)资产聚合与分散
资产聚合是指:某一方将其在多个子网链上的资产整合到几个或一个子网链上。资产分散则是相反的过程,将几个子网链上的资产分散到更多子网链上。本发明中没有使用跨链转账的技术来实现这种功能,而是利用了前面详述的多链单向事务转账的思想,在彼此有需求的参与双方分别进行多链单向事务转账。对于资产聚合,简单来讲,就是将初始发送方不想继续持有余额的子网链中的资产发送给其他需要在对应子网链上持有更多资产的另一方,在这里称作初始接收方,而初始接收方同时需要向初始发送方感兴趣的其他聚合目标链上转发等额资产。将第二次的转账中的发送方和接收方分别称作接力发送方、接力接收方,分别对应于初始接收方和初始发送方。
相对于多链单向事务转账,资产的聚合与分散是可看作两个多链单向转账的过程,但本质上不是多链单向转账的简单累加。因为需要增加资产原子性保证,能够同时收到对方转移的资产或同时取回自己抵押的资金。为了解决这个问题,当双方事务在对应的子网链锁定合约锁定好之后,引入了一种确认消息(Confirm Message),包括双方已经锁定的事务详情,以及双方对锁定事务确定的签名。即只有双方都签名并确定双方事务都已经准备好,可以执行转账事务时,从锁定合约向接收方转账的操作才可以发生。当一方已经单方面完成所有子网链上的资金锁定,则可以等待并索引对方的资金锁定,直至对方也已经锁定完全,则可以构造确认消息(Confirm Message),并签名。首先完成确认消息构造的一方可以与另一方的客户端进行通信,将确认消息及签名发送至对方客户端,对方客户端对确认消息进行检查,无误后也签名。通过这样的方式,就可以拥有一个由双方都签名的确认消息,即双方对对方的锁定行为进行确认。
为了保证事务的原子性,使用原多链单向转账中的过期时间的机制,即将事务发送至锁定合约时,会包括一个区块号,当区块链的区块高度已经到这个区块号,逻辑交易所划分的实际交易还没有完全锁定成功,或者其他原因,则允许发送方将已经锁定的资金撤回。因为可以有撤回操作,则过期时间后不会再发生向对方取款的事务。
此时存在的一个安全问题是,对确认消息进行签名的顺序会影响取款的顺序:后签名的参与者在善意的情况下会将有双方签名的完整确认消息发送回先签名一方,则双方都可以使用确认消息去提取对方锁定资金。若后签名方不向先签名方发送带有自己签名的最终确认消息,只有后签名方在取款时,先签名方才可以在区块链上的事务数据字段读取到确认消息,然后才能开始取款。然而,后签名方可以在已锁定资金过期前的一小段时间内才将开始取款操作,当先签名方发现链上的确认消息并准备取款时,后签名方的锁定事务可能已经处于过期时间,不能再进行取款操作。那么后签名方既可以先发对先签名方的锁定事务进行取款操作,还可以在原有资金锁定时间过期后撤回锁定事务,从而损害对方利益。
图5是本发明的资产聚合与分散时间轴示意图。如图5所示,为了解决此问题,在资产聚合与分散事务处理过程中,实际事务的过期时间前设置另一个区块号,作为安全时间。即安全时间以前,参与双方进行资金锁定,确认消息的构造和协商,并进行取款操作,一旦到达安全时间,如果确认消息已经上链,那么对确认消息的后签名方不可以再取款,只有先签名方可以取款。从而预防后签名方在过期时间前的一小段时间才上传确认消息。如果确认消息没有上链,那么认为此次资产聚合/分散处理失败,安全事件至过期时间作为冷冻期,在过期时间结束后,双方可以分别对已锁定资金进行撤回。此处需要注意的是,由用户自身承担未在取款节点前完成取款的损失。
■客户端资产聚合与分散事务处理
当初始发送方发起资产聚合/分散事务时,首先需要标识事务类型,并根据自身需求在事务的输入字段中指明初始接收方作为接力发送方时需要在哪(些)条子网链上向锁定合约内转账,以及作为发送方进行转账的子网链网络标识符。此处需要说明的是,寻找匹配方,即寻找愿意与发送方进行资产互转的另一方的过程由上层应用完成,可以是通过一些社交软件、线下沟通等方式,本发明不对其做具体的说明和限定。此时客户端中的负载均衡模块只负责提供区块链上的状态信息供用户端参考,即由用户决定要在哪些链上进行资产转移,而不是由负载均衡模块根据链状态,拥塞,事务费等信息做决策。匹配方的接力发送方同时发起资产聚合/分散事务,与初始发送方的步骤类似。
■子网链资产聚合与分散事务处理
子网链的子网事务处理模块接收到事务时,首先会检查事务所属的类型,将处理过程分派至具体的执行模块,此处为资产聚合与分散事务处理模块。相关子网链(包括初始发送方向初始接收方转账的锁定合约,以及接力发送方向接力接收方转账的锁定合约所在的子网链)将资产锁定。直到双方发现各子网链上的锁定金额和链下协商结果相同,则双方的客户端资产聚合与分散事务处理模块会签署一个确认消息(Confirm Message),包括双方的签名,对应的子网链网络标识符,事务标识等,将此消息作为取款事务的输入,发送至所有的锁定合约,转移属于自己的资产。
(4)通量提升效果理论证明
本发明提出的“一种基于同构多链并行事务处理架构”中各子网链并行处理客户端发出的事务,通过负载均衡实现逻辑事务与各子网链的实际事务映射,支持智能合约发放代币(Token)、去中心化应用(Dapp)和资产的聚合和分散等功能,在保证系统可扩展性、事务的原子性、事务数据一致性的前提下,实现网络整体通量水平的大幅提升。
假设1笔逻辑事务映射至α笔实际事务,且子网链个数为N,则网络整体通量提升水平为:
α值受到几个因素的影响,如账户在各子网的资产余额,各链的负载、各链的当前交易费用等。
在同构链数(子网链个数)为N的网络中,当在一条链上的资产足以满足一次转账所需金额时,则仅仅需要一次在该链上的子网事务:
若所有事务均为仅需一次的子网链事务,网络整体通量提升水平约N倍。
若所有事务均为极端情况,即需要对该账户在每个链上的资产进行事务。由于多链单向转账需要将每一条链上的资产先锁定在合约中,再由接收方通过Secret取出合约中资产,因此1笔逻辑事务会映射成2N笔实际事务,该情况下网络整体通量水平为1/2。但该种情况实属极端,大多数转账事务通过一次单链单向转账即可,此数据仅作为理论分析考量。
因此,网路整体通量提升水平在1/2倍至N倍之间。
负载均衡决策模块的具体实现会影响通量提升的程度,例如,当负载均衡模块将账户在各子网链上的资产排序,按照资产最多的子网链开始调度,以使映射的实际事务数最小的情况下,理论上会最大限度地提升通量。但依然要考量其他因素,如各子网链当前的负载,拥塞程度,事务费,注册情况,根据用户转账的需求,结合链上信息为事务处理模块提供更好的事务划分决策,优化用户体验。
当前主流的区块链技术架构中,普遍继承了原始区块链设计中的单链运行模式,在实际业务场景下普遍面临通量较低、扩展性较差等问题,相关研究主要集中在跨链、链外状态通道等技术路线,缺少同构多链并行交易处理的深入研究。实际上,区块链内的核心事务数据在业务模式上可分为各子网,用户在上层逻辑上可以感受不到子网的存在,由钱包和底层网络决定具体的子网资产转移,这为链上海量事务数据的分区并行处理提供了技术前提。相比于现有技术,本发明的技术方案可实现链上事务数据的高效并行处理,可提升现有区块链网络内的事务处理通量最大至N倍。至此,本发明的技术方案巧妙解决了主流区块链技术架构中单链扩展性受限及通量较低的问题。
下面以多链单向转账流程、资产聚合与分散流程为例,结合附图和实施例对本发明作进一步的详细说明。在讲述具体流程之前,本部分先对所涉及的关键数据结构进行说明:
账户
●账户:本发明提出的架构中可用于发起事务的数据对象,包含余额、已发送事务等信息,若不经特殊说明,本发明中提到的账户均为客户端创建的账户;
●账户相关网络:账户资产所在的各网络id;
●账户私钥:由secp256k1曲线生成256位(32字节)的字符串;
●账户公钥:账户私钥经椭圆曲线数字签名算法(ECDSA)映射后得到的512位(64字节)的字符串;
●账户地址:账户公钥经Keccak-256算法得到的哈希值的后160位(20字节),用与索引每个账户,并在事务中标识账户。在本发明中,使用账户地址及其历史事务记录进行事务数据分区;
●合约地址:根据创建合约的账户地址及对应智能合约创建事务的事务序号所生成的160位(20字节)字符串;
●原子锁定合约:部署在子网链之上用于处理多链资金锁定的智能合约;
●用于资产聚合与分散事务处理中的解锁合约:部署在子网链上用于处理资产聚合与分散的取款智能合约;
事务
●事务:本架构中进行账户状态转变的原子操作,包含源地址、目的地址、转移金额、事务序号、事务类型、事务输入等字段。事务输入中多链单向转账事务可有秘密值字段等,资产的聚合和分散事务中可有只有双方都签名并确定双方事务都已经准备好的确认消息(confirm message)。其中,
■源地址:账户地址
■目的地址:账户地址/合约地址
■转移金额:由源地址向目的地址转移的资金数量
■事务类型:用于标识发出的事务是何种事务
■事务输入:智能合约处理参数(16进制字符串)
■其他
图6是本发明实施例的用户A向用户B转移数量为V的资产的事务处理流程图。如图6所示,进行由用户A(支付方)向用户B(接收方)的单向转账的操作步骤具体包括:
步骤S11,A所在客户端的事务数据监听模块会向子网链的数据服务模块索引当前账户拥有余额的所有子网链,获取到A在c1,c2,...,cm,...,cM等M条子网链上有资产分布,对应的资产数量分别为a1,a2,...,aM。将其记作<cm,am>对。同时获取B在对应子网链上的地址,记作toTm,其中,M≤N,N为构建的子网链的总数量,M、N、m为正整数。
步骤S12,客户端的事务数据发送模块首先生成一笔由A到B的逻辑交易,记作logicTx,需要的转账金额记作V,调用负载均衡模块。
步骤S12.1负载均衡模块的输入包括:A的资产分布情况<cm,am>对,B的地址toTm,逻辑事务(逻辑交易)logicTx,用户A的偏好设置,如:用户A想在有余额的子网链上预留的资产金额,记作remaini,用户A期望事务完成时间,记作ExpTime。负载均衡模块索引子网链状态信息,也作为处理的输入。进行如下判断:
步骤S12.1.1,若A的某单链资产如子网链cm中资产am足以覆盖需转账的金额V,即am>V,则根据用户的偏好返回一个单链单向转账的策略,即将账户A在子网链cm上的资产转账金额V给B在子网链cm上的地址,其后续流程与仅有一条链的区块链系统中发起一笔转账交易无异;
步骤S12.1.2,若A的所有资产a不足以覆盖需转账的金额V,即a1+a2+...+aM<V,则返回错误信息;
步骤S12.1.3,若A需要转账的金额V小于其拥有的总资产a,但无法被某一单链的资产am覆盖,则根据用户的偏好计算出并返回多笔实际交易,记作realTxm,每笔实际交易包括<cm,Vm,toTm>,即选择的子网链cm、子网链cm上转账金额Vm,B在子网链cm上的转账接收方地址toTm,事务过期时间,锁定事务的秘密值散列Hash(secret);其中需要满足αm≥Vm、V≤∑αm和V=∑Vm。将多笔实际交易realTxm返回给事务数据发送模块。
步骤S13,事务数据发送模块根据负载均衡模块的返回值,构造多笔实际事务(多链单向转账事务)Tcm=<cm,Vm,toTm,expire,Hash(secret)>,并由A的私钥签名发送,其目的地址为原子锁定合约,转账金额为Vm,事务类型为多链单向转账事务,事务输入为随机生成的秘密值(secret)的散列,其他字段输入过期时间expire,在一些实施例中,过期时间expire以区块号K表示,代表实际事务Tcm中的某些实际事务在对应区块K时仍未被打包进子网链。
步骤S13.1,事务数据监听模块监听各个子网链上的事务执行结果,若任何一个执行失败,向用户A返回“事务错误”信息;这种情况下,A需要根据错误消息重新发送事务。
步骤S13.1.1,如果A在某条子网链上的资金在过期时间到达时也没有被锁定成功,即其他子网链上已经锁定的事务,在过期时间expire到达也无法被取款,则A可以撤回已经锁定的事务资金,将已经包含在子网链的实际事务转发回A,以更新事务拆分策略,发起新的转账。
步骤S13.2,如果A在所有子网链上的资金在过期时间到达前被锁定成功,则更新A的资产,A的资产总额减少V,即A发生交易的子网链cm上资产减少对应的Vm。A客户端与B客户端进行通信,将解锁合约中资金所需的秘密值secret发送给B。
步骤S14,B所在客户端收到秘密值secret之后,一般情况下,会立即构造取款事务Rcm,进行取款。B的账户管理模块索引未取回的资产,事务数据发送模块构造取款事务Rcm,目的地址为原子时间锁合约,事务输入为秘密值secret。
步骤S15,合约收到事务后Rcm,查询所有A给B转账的事务Tcm,将秘密值secret做散列运算作为输入,与原转账事务中的秘密散列值进行比较。
步骤S15.1,如果两个散列值一直,则将对应资产Vm转回B。B资产总额增加V,B在子网链cm上资产增加Vm,事务正常结束。
步骤S15.2,如果B传入的秘密值不正确,则事务失败,客户端的事务数据监听模块会向用户A和B展示“事务错误”信息。
通过以上过程,实现账户在多个子网链事务优化划分,提升事务执行的并行化程度,提升网络整体通量水平。
图7是本发明实施例的用户A进行资产聚合的事务流程图。如图7所示,以用户A将几条子网链的资产进行聚合的逻辑事务logicTx为例阐述具体流程。本发明将逻辑事务logicTx拆分为用户A向用户B进行交易值为V的资产转移事务logicTxAB和用户B向用户A进行交易值为V的资产转移事务logicTxBA。
根据logicTxAB,用户A需要被聚合的子网链cm以及需要被聚合的资产Vm记作<cm,Vm>,根据logicTxBA,用户B用于聚合的子网链cm'及资产Vm'记作<cm',Vm'>,聚合总资产为V,其中V=∑Vm=∑Vm',需要注意的是,因为是进行聚合操作,则聚合子网链个数m应当小于或等于被聚合子网链个数m',即|m|≤|m'|,当进行分散操作时,|m|≥|m'|。
步骤S21,A所在的客户端设置资产聚合的需求:包括总聚合金额V,可以进行被聚合的子网链cm,A在子网链cm上的资产am;一般来说,∑am≥V,从而可以在多条子网链链间做选择。之后调用负载均衡模块,以<cm,am,V>作为输入。
步骤S21.1,负载均衡模块针对用户的输入,查询可被聚合链cm的状态信息,预估交易费feei,事务执行时间ExpTime1,为防止恶意行为账户需要预留的资金remain,,至少是如果发送赎回事务时能够提供的交易费。负载均衡模块向用户返回多种被聚合的链组合<cm,Vm>,以及参考信息<feei,ExpTime1>。
步骤S22,用户根据负载均衡模块的返回信息,确定要进行被聚合的链对<cm,Vm>,并发布需要的聚合链对<cm',Vm'>,通过上层应用或线下的方式找到满足条件的匹配方B。B在子网链cm'上的资产αm'要满足αm'≥Vm'。A向B转账是在被聚合链cm上,发送的事务称作被聚合事务Tcm。B向A转账是在聚合链cm'上,发送的事务称作聚合事务Tcm'。
步骤S23,因为资产聚合/分散事务可看作两个单向多链转账事务。A与B需要根据链下协商结果,相互发起转账事务。A的事务数据发送模块构造由A向B转账的多笔被聚合实际事务Tcm,每笔实际事务包括<ci,Vi,toi,securei,expirei>,即子网链ID、每条子网链上转账金额,使得各子网链转账资产∑Vi=V,接收方地址,安全时间,过期时间,两个时间节点使用未来某个区块号标识。B的事务数据发送模块构造由B向A转账的多笔聚合实际事务Tcm'。数据结构与A类似。A与B分别向子网链发送事务,事务数据监听模块监听事务的执行情况。
步骤S23.1,如果事务数据监听模块监听到有事务执行失败,则向用户展示详细错误信息。用户可以根据错误信息,重新构造交易并发送。
步骤S23.2,当子网链上的事务已经到达过期时间时,事务数据监听模块会返回过期事务的信息。
步骤S24,A或B发送完所有链上事务后,如果事务数据监听模块监听到所有事务都执行成功,之后需要监听并等待对方的锁转账事务锁定成功。一旦一方监听到对方的转账事务都锁定成功,则可以构建包括双方事务的确认消息(Confirm Message),消息记作msg,包括此次资产聚合包括的每一笔事务消息,又分为被聚合链上的事务(A向B送的事务),聚合链上的事务(B该给A发送的事务,在链下寻找匹配方时就会确定每条聚合链的id及转账金额,当匹配方的事务完成时,A可以索引到相应事务)。
步骤S24.1,这里假定A先构造好了确认消息,将其用私钥签名,得到包括签名的确认消息msgA。A所在客户端与B所在客户端进行通信,将msgA发送至B。
步骤S24.2,B检查确认消息,如果检查无误、,则对确认消息进行签名,得到确认消息msgAB;B将有双方签名的确认消息msgAB发送至A。
步骤S25,A和B分别构造取款事务Rcm、Rcm',目的地址是原子锁定合约,事务输入为msgAB,进行取款操作。
步骤S25.1,如果已经到达被锁定事务的安全时间,则后签名方B不能再取款;
步骤S25.2,如果已经到达被锁定事务的过期时间,则先签名方A不能再取款。
资产的分散与上述流程同理。
图8是本发明的数据处理终端结构示意图。如图8所示,本发明还提出一种数据处理终端,用于作为子网链的共识节点进行事务处理,数据处理终端包括处理器和可读存储介质,其中处理器调取并执行该可读存储介质中的可执行指令,以对接收到的实际事务进行处理;可读存储介质存储有可执行指令,可执行指令被处理器执行时,实现上述基于同构多链的并行事务处理方法方法。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于可读存储介质中,如只读存储器、磁盘或光盘等。上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明实施例不限制于任何特定形式的硬件和软件的结合。
本发明提供了一种同构的多链并行交易处理架构。区块链由全局唯一的网络标识号码划分为不同的子网链,从而使得并发的事务可以在各个子网链上并行地进行共识验证过程。依据子网划分的数量,可近线性提高区块链全网内的事务处理通量。本发明中的事务处理主要包括单向的资产转移,对Dapp类应用兼容,资产的聚合与分散。整体架构划分为客户端和区块链平台两部分,客户端依据区块链平台的统计信息构建优化的并行交易,统筹兼顾用户需求,提升系统整体性能;同时追踪用户账户的信息,维护相关状态,实现链下的通信。区块链平台则对事务进行处理,包括链上的资产锁定、事务验证等底层逻辑。子网链的数量可根据需求动态增加,并且支持智能合约类应用,从而保证系统可以按需可扩展性。此发明瞄准单条链存在的性能问题,创新性的提出了逻辑交易并行执行算法,解决了原始区块链技术架构中的优化性能瓶颈问题,提升了全局事务处理的通量上限。
本发明的目的在于,解决区块链基础架构和核心协议面临的通量优化及扩展性受限的问题,从将现有单链划分为多条同构链(分区)并行处理事务的角度入手,在区块链基础架构和核心协议之上,提出了一种基于同构多链的区块链(子网链)并行事务处理方法,解决了原有通量优化方案的瓶颈问题,新方法的通量优化预期1/2至N倍(其中,N为子网链个数)于独立的区块链通量优化技术,且与独立的区块链通量优化技术正交。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中的普通技术人员,在不脱离本发明的精神和范围内,可以做出若干变形和改进,故本发明的保护范围当视后附的申请专利范围所界定者为准。
Claims (10)
1.一种基于同构多链的并行事务处理方法,其特征在于,包括:
构建多条子网链,每条该子网链具有相同的区块链架构;
将拟执行的逻辑事务划分为至少一笔实际事务;
将该实际事务分发给对应的子网链以进行并行事务处理。
2.如权利要求1所述的并行事务处理方法,其特征在于,逻辑事务划分的步骤包括:根据事务处理参与方的资产信息和参与处理该逻辑事务的子网链的状态信息,将逻辑事务logicTx划分为实际事务Tcm,Tcm仅在对应的子网链cm内进行处理;其中,m∈[1,M],1≤M≤N,M、N、m为正整数,M为参与处理逻辑事务logicTx的子网链数量,N为构建的子网链的总数量。
3.如权利要求2所述的并行事务处理方法,其特征在于,当逻辑事务logicTx为用户A向用户B转移交易值为V的资产时,该逻辑事务划分的步骤还包括:将logicTxAB划分为实际事务Tcm,每笔实际事务Tcm满足αm≥Vm、V≤∑αm和V=∑Vm,αm为用户A在cm的资产余额,Vm为每笔Tcm的交易值;
该并行事务处理的步骤具体包括:对Tcm进行并行处理,使得交易值为Vm的资产在cm上由用户A向用户B进行转移,以实现交易值为V的资产由用户A向用户B的转移。
4.如权利要求2所述的并行事务处理方法,其特征在于,当逻辑事务logicTx为用户A通过用户B进行交易值为V的资产聚合/分散时,该逻辑事务划分的步骤还包括:
将逻辑事务logicTx拆分为逻辑事务logicTxAB和逻辑事务logicTxBA,其中,logicTxAB为用户A向用户B进行交易值为V的资产转移事务,logicTxBA为用户B向用户A进行交易值为V的资产转移事务;
将logicTxAB划分为在子网链cm上执行的第一实际事务Tcm,将logicTxBA划分为在子网链cm'上执行的第二实际事务Tcm',并同时满足αm≥Vm、αm'≥Vm'、V≤∑αm、V≤∑αm'和V=∑Vm=∑Vm',Vm为Tcm的交易值,Vm'为Tcm'的交易值,αm为用户A在cm的资产余额,αm'为用户B在cm'的资产余额,m'∈[1,M],m'为正整数;
该并行事务处理的步骤具体包括:对Tcm和Tcm'进行并行处理,使得交易值为Vm的资产在cm上由用户A向用户B进行转移,同时交易值为Vm'的资产在cm'上由用户B向用户A进行转移,以实现用户A的交易值为V的资产由cm向cm'的聚合或分散。
5.如权利要求2所述的并行事务处理方法,其特征在于,构建该子网链时,为每条该子网链部署原子时间锁合约,以确保同一逻辑事务划分出的所有实际事务在对应的子网链上执行时的原子性。
6.一种基于同构多链的并行事务处理系统,其特征在于,该并行事务处理系统使用如权利要求1~5任一项所述的并行事务处理方法进行逻辑事务的并行处理,该并行事务处理系统包括:
区块链平台,包括多条具有相同区块链架构的子网链,每条该子网链包括多个共识节点;
客户端,用于将该逻辑事务划分为至少一笔实际事务;
其中,该客户端将该实际事务分发给该子网链,该子网链的共识节点对分配的实际事务进行处理,以实现该逻辑事务。
7.如权利要求6所述的并行事务处理系统,其特征在于,该客户端根据事务处理参与方的资产信息和参与处理该逻辑事务的子网链c的状态信息,将逻辑事务logicTx划分为实际事务Tcm,Tcm仅在子网链cm内进行处理;其中,m∈[1,M],1≤M≤N,M、N、m为正整数,M为参与处理逻辑事务logicTx的子网链数量,N为构建的子网链的总数量。
8.如权利要求6所述的并行事务处理系统,其特征在于,每条该子网链均部署有原子时间锁合约,以确保逻辑事务执行的原子性。
9.一种可读存储介质,存储有可执行指令,该可执行指令用于执行如权利要求1~5任一项所述的基于同构多链的并行事务处理方法。
10.一种数据处理终端,用于作为子网链的共识节点进行事务处理,该数据处理终端包括:
如权利要求9所述的可读存储介质;
处理器,用于调取并执行该可读存储介质中的可执行指令,以对接收到的实际事务进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911055830.3A CN111046437A (zh) | 2019-10-31 | 2019-10-31 | 基于同构多链的区块链并行事务处理方法及系统、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911055830.3A CN111046437A (zh) | 2019-10-31 | 2019-10-31 | 基于同构多链的区块链并行事务处理方法及系统、终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111046437A true CN111046437A (zh) | 2020-04-21 |
Family
ID=70232791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911055830.3A Pending CN111046437A (zh) | 2019-10-31 | 2019-10-31 | 基于同构多链的区块链并行事务处理方法及系统、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111046437A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614709A (zh) * | 2019-02-26 | 2020-09-01 | 傲为信息技术(江苏)有限公司 | 基于区块链的分区交易方法及系统 |
CN111736963A (zh) * | 2020-06-08 | 2020-10-02 | 中国科学院计算技术研究所 | 一种用于无主链多分片区块链的事务处理系统及方法 |
CN112001801A (zh) * | 2020-10-28 | 2020-11-27 | 支付宝(杭州)信息技术有限公司 | 在区块链系统中进行资源转移的方法和装置 |
CN112214328A (zh) * | 2020-10-23 | 2021-01-12 | 中国科学院计算技术研究所 | 一种用于同构多链中交易处理的负载均衡方法 |
CN112418861A (zh) * | 2020-12-07 | 2021-02-26 | 江南大学 | 一种应用于工业物联网的节点快速共识方法 |
CN112435123A (zh) * | 2020-11-25 | 2021-03-02 | 国网能源研究院有限公司 | 一种基于同构多链系统的交易方法、系统及存储介质 |
CN112565435A (zh) * | 2020-12-10 | 2021-03-26 | 广东投盟科技有限公司 | 基于事务链的业务处理方法、系统及计算机可读存储介质 |
CN112636930A (zh) * | 2020-12-31 | 2021-04-09 | 重庆邮电大学 | 一种基于原子交换的资产交易方法和系统 |
CN112653619A (zh) * | 2020-12-07 | 2021-04-13 | 布比(北京)网络技术有限公司 | 一种闪电网络的多路径路由确定方法及系统 |
CN112882802A (zh) * | 2021-02-01 | 2021-06-01 | 杭州云象网络技术有限公司 | 一种用于跨链的多链消息表事务处理方法及跨链系统 |
CN113064764A (zh) * | 2021-04-19 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 在区块链系统中执行区块的方法及装置 |
CN113205424A (zh) * | 2020-10-28 | 2021-08-03 | 支付宝(杭州)信息技术有限公司 | 在区块链中部署和调用合约的方法和装置 |
CN114529405A (zh) * | 2022-02-24 | 2022-05-24 | 发明之家(北京)科技有限公司 | 一种基于智能交易的信息访问管理方法及系统 |
CN114866306A (zh) * | 2022-04-24 | 2022-08-05 | 北京丁牛科技有限公司 | 一种安全防护方法、装置和存储介质 |
CN115034900A (zh) * | 2022-06-07 | 2022-09-09 | 四川大学 | 面向多链服务的Fabric跨链原子交换方法、装置和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881459A (zh) * | 2018-07-02 | 2018-11-23 | 甘肃山呼信息技术有限公司 | 一种面向实际应用的高可扩展公用区块链系统 |
CN108960823A (zh) * | 2018-03-30 | 2018-12-07 | 杭州复杂美科技有限公司 | 一种区块链多链并发交易系统 |
CN109035016A (zh) * | 2018-06-28 | 2018-12-18 | 杭州复杂美科技有限公司 | 一种多链并发交易方法 |
CN109286685A (zh) * | 2018-11-21 | 2019-01-29 | 北京蓝石环球区块链科技有限公司 | 可拓展子链的主链加并行多子链的系统架构 |
CN109472572A (zh) * | 2018-11-21 | 2019-03-15 | 北京蓝石环球区块链科技有限公司 | 基于区块链主链加并行多子链的合约部署及交易 |
CN109472568A (zh) * | 2018-10-23 | 2019-03-15 | 顺丰科技有限公司 | 一种区块链交易方法、装置、管理系统、设备及存储介质 |
CN109508968A (zh) * | 2018-10-25 | 2019-03-22 | 常州唯康信息科技有限公司 | 区块链系统以及其控制方法 |
CN109726251A (zh) * | 2018-12-28 | 2019-05-07 | 苏州鸿链信息科技有限公司 | 一种基于区块链开展的跨链分布式业务系统及方法 |
CN109949033A (zh) * | 2018-11-15 | 2019-06-28 | 陕西医链区块链集团有限公司 | 一种基于区块链的安全交易系统及方法 |
CN110310203A (zh) * | 2019-06-21 | 2019-10-08 | 普洛斯科技(重庆)有限公司 | 一种区块链交易方法和装置 |
-
2019
- 2019-10-31 CN CN201911055830.3A patent/CN111046437A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108960823A (zh) * | 2018-03-30 | 2018-12-07 | 杭州复杂美科技有限公司 | 一种区块链多链并发交易系统 |
CN109035016A (zh) * | 2018-06-28 | 2018-12-18 | 杭州复杂美科技有限公司 | 一种多链并发交易方法 |
CN108881459A (zh) * | 2018-07-02 | 2018-11-23 | 甘肃山呼信息技术有限公司 | 一种面向实际应用的高可扩展公用区块链系统 |
CN109472568A (zh) * | 2018-10-23 | 2019-03-15 | 顺丰科技有限公司 | 一种区块链交易方法、装置、管理系统、设备及存储介质 |
CN109508968A (zh) * | 2018-10-25 | 2019-03-22 | 常州唯康信息科技有限公司 | 区块链系统以及其控制方法 |
CN109949033A (zh) * | 2018-11-15 | 2019-06-28 | 陕西医链区块链集团有限公司 | 一种基于区块链的安全交易系统及方法 |
CN109286685A (zh) * | 2018-11-21 | 2019-01-29 | 北京蓝石环球区块链科技有限公司 | 可拓展子链的主链加并行多子链的系统架构 |
CN109472572A (zh) * | 2018-11-21 | 2019-03-15 | 北京蓝石环球区块链科技有限公司 | 基于区块链主链加并行多子链的合约部署及交易 |
CN109726251A (zh) * | 2018-12-28 | 2019-05-07 | 苏州鸿链信息科技有限公司 | 一种基于区块链开展的跨链分布式业务系统及方法 |
CN110310203A (zh) * | 2019-06-21 | 2019-10-08 | 普洛斯科技(重庆)有限公司 | 一种区块链交易方法和装置 |
Non-Patent Citations (4)
Title |
---|
GREEN M: "Bolt: Anonymous Payment Channels for Decentralized Currencies", 《ACM SIGSAC CONFERENCE》 * |
KHALIL R: "Rebalancing Off-Blockchain Payment Networks", 《ACM SIGSAC CONFERENCE》 * |
MALAVOLTA G: "Concurrency and Privacy with Payment-Channel Networks", 《ACM SIGSAC CONFERENCE》 * |
敏捷区块链基金会: ""敏捷公共区块链——面向实际应用的高可扩展公用区块链网络"", 《敏捷公共区块链》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111614709A (zh) * | 2019-02-26 | 2020-09-01 | 傲为信息技术(江苏)有限公司 | 基于区块链的分区交易方法及系统 |
CN111736963A (zh) * | 2020-06-08 | 2020-10-02 | 中国科学院计算技术研究所 | 一种用于无主链多分片区块链的事务处理系统及方法 |
CN111736963B (zh) * | 2020-06-08 | 2022-10-11 | 中国科学院计算技术研究所 | 一种用于无主链多分片区块链的事务处理系统及方法 |
CN112214328A (zh) * | 2020-10-23 | 2021-01-12 | 中国科学院计算技术研究所 | 一种用于同构多链中交易处理的负载均衡方法 |
CN112214328B (zh) * | 2020-10-23 | 2023-07-21 | 中国科学院计算技术研究所 | 一种用于同构多链中交易处理的负载均衡方法 |
CN112001801A (zh) * | 2020-10-28 | 2020-11-27 | 支付宝(杭州)信息技术有限公司 | 在区块链系统中进行资源转移的方法和装置 |
CN113205424A (zh) * | 2020-10-28 | 2021-08-03 | 支付宝(杭州)信息技术有限公司 | 在区块链中部署和调用合约的方法和装置 |
CN112435123A (zh) * | 2020-11-25 | 2021-03-02 | 国网能源研究院有限公司 | 一种基于同构多链系统的交易方法、系统及存储介质 |
CN112418861A (zh) * | 2020-12-07 | 2021-02-26 | 江南大学 | 一种应用于工业物联网的节点快速共识方法 |
CN112653619A (zh) * | 2020-12-07 | 2021-04-13 | 布比(北京)网络技术有限公司 | 一种闪电网络的多路径路由确定方法及系统 |
CN112565435A (zh) * | 2020-12-10 | 2021-03-26 | 广东投盟科技有限公司 | 基于事务链的业务处理方法、系统及计算机可读存储介质 |
CN112565435B (zh) * | 2020-12-10 | 2021-08-17 | 广东投盟科技有限公司 | 基于事务链的业务处理方法、系统及计算机可读存储介质 |
CN112636930B (zh) * | 2020-12-31 | 2022-05-03 | 重庆邮电大学 | 一种基于原子交换的资产交易方法和系统 |
CN112636930A (zh) * | 2020-12-31 | 2021-04-09 | 重庆邮电大学 | 一种基于原子交换的资产交易方法和系统 |
CN112882802A (zh) * | 2021-02-01 | 2021-06-01 | 杭州云象网络技术有限公司 | 一种用于跨链的多链消息表事务处理方法及跨链系统 |
CN113064764A (zh) * | 2021-04-19 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 在区块链系统中执行区块的方法及装置 |
CN113064764B (zh) * | 2021-04-19 | 2023-10-27 | 支付宝(杭州)信息技术有限公司 | 在区块链系统中执行区块的方法及装置 |
CN114529405B (zh) * | 2022-02-24 | 2022-11-15 | 发明之家(北京)科技有限公司 | 一种基于智能交易的信息访问管理方法及系统 |
CN114529405A (zh) * | 2022-02-24 | 2022-05-24 | 发明之家(北京)科技有限公司 | 一种基于智能交易的信息访问管理方法及系统 |
CN114866306A (zh) * | 2022-04-24 | 2022-08-05 | 北京丁牛科技有限公司 | 一种安全防护方法、装置和存储介质 |
CN115034900A (zh) * | 2022-06-07 | 2022-09-09 | 四川大学 | 面向多链服务的Fabric跨链原子交换方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111046437A (zh) | 基于同构多链的区块链并行事务处理方法及系统、终端 | |
EP3688929B1 (en) | System and method for providing privacy and security protection in blockchain-based private transactions | |
CN110868439B (zh) | 一种区块链系统 | |
Sompolinsky et al. | Accelerating bitcoin's transaction processing. fast money grows on trees, not chains | |
US11228439B2 (en) | Scale out blockchain with asynchronized consensus zones | |
CN111598566A (zh) | 基于混合跨链的网络支付系统 | |
CN110650189A (zh) | 一种基于中继的区块链的交互系统及方法 | |
CN111371905B (zh) | 一种基于云计算的区块链分层共识证明系统与方法 | |
CN112541758A (zh) | 基于区块链的多轮投票式容错排序共识机制与方法 | |
CN111736963A (zh) | 一种用于无主链多分片区块链的事务处理系统及方法 | |
CN112235420B (zh) | 基于区块链的数据同步方法、系统及相关设备 | |
CN109711192B (zh) | 区块链系统节点间交易方法及系统 | |
CN113407977B (zh) | 基于聚合签名的跨链扩展方法及系统 | |
CN111275555B (zh) | 区块链交易处理方法、交易节点以及区块链系统 | |
US11265162B2 (en) | System and method for providing privacy and security protection in blockchain-based private transactions | |
CN112488682B (zh) | 一种区块链的三方转账方法及装置 | |
CN111478775A (zh) | 一种交互式聚合签名方法、设备及存储介质 | |
Mazumdar et al. | HushRelay: A privacy-preserving, efficient, and scalable routing algorithm for off-chain payments | |
Ye et al. | Garou: An efficient and secure off-blockchain multi-party payment hub | |
CN113157450B (zh) | 在区块链系统中执行区块的方法及装置 | |
CN111815329A (zh) | 一种基于跨链技术实现高性能区块链网络的方法 | |
CN111177262A (zh) | 一种区块链共识方法、相关装置及系统 | |
CN113411338B (zh) | 一种基于状态通道的链上-链下协同的资源交易方法 | |
CN112231415B (zh) | 区块链网络的数据同步方法、系统、电子设备及可读介质 | |
CN112950180A (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 |