CN109471744A - 基于区块链的主链加并行多子链***架构 - Google Patents
基于区块链的主链加并行多子链***架构 Download PDFInfo
- Publication number
- CN109471744A CN109471744A CN201811392135.1A CN201811392135A CN109471744A CN 109471744 A CN109471744 A CN 109471744A CN 201811392135 A CN201811392135 A CN 201811392135A CN 109471744 A CN109471744 A CN 109471744A
- Authority
- CN
- China
- Prior art keywords
- subchain
- chain
- main chain
- node
- request
- 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.)
- Granted
Links
Classifications
-
- 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明包含1条主链及n条并行子链,其中n=1….X,每个节点存储主链数据,并被***初始分配存储某条子链的全部数据,每个节点还包含子链跨链消息队列。其中,所述主链数据不存储具体交易,而存储***全局信息,子链出块后,会通过主链P2P网络广播向主链提交子链块头,子链对主链的修改信息,跨链请求/响应通知信息;所有子链的提交会形成主链块,广播到所有节点;每个节点在收到主链块后,会更新本地主链,以保持所有节点的主链数据一致;当前节点根据主链数据中的跨链请求/响应通知信息获取请求或响应当前子链的其他子链信息,直接连该其他子链节点获取请求或响应信息详情并进行处理。
Description
技术领域
本发明涉及区块链技术,特别是提出一种主链加并行多子链的***架构,提高了区块链的可扩展性和性能。
背景技术
现在区块链中的每个普通节点都要:1、存储所有状态;2、串行执行所有交易;3、与其他所有机器达成共识。
针对现有区块链的扩展基本思路是:1、单个节点只存储部分状态;2、单个节点只处理部分交易;3、只让部分节点参与共识。
请参阅图1所示,其为按用户分片的示意图。如果按用户分片,则难以处理不同分片用户之间的转账,合约也难以部署,如果部署在所有分片上,则合约状态无法一致,如果只部署在某一个分片上,又无法处理其他分片用户的请求。
请参阅图2所示,其为按合约分片的示意图。如果按合约分片,每个合约都需要能处理所有用户的交易,而每笔交易都会查看/修改用户的账户状态(例如,对于以太坊,所有交易都因消耗gas要修改账户余额,对于EOS,要修改账户的CPU/带宽/存储配额),合约是并行执行的,无法保证用户状态的一致性,此外,合约之间经常互相调用,如果分布在不同分片上,又无法调用。
而,第三个扩展思路,部分节点参与共识,会引发1%攻击,即假定有100个分片,攻击者只需要控制1%的节点,即可完全控制一个分片。
现有扩展方案主要有以太坊sharding、以太坊plasma、Cosmos Network、Polkadot、Lisk、阿希链、Zilliqa、VBFT、DPOS、Algorand、Dfinity等。
以太坊sharding:长远解决以太坊扩展问题。目前主要考虑1%攻击,分片链不能执行交易,离实际应用有较远距离。
以太坊plasma:按应用即合约分片,部分合约在侧链上存储和执行,可以将代币转至侧链,后续交易在侧链上进行,即使侧链不可信,也可以将代币安全转回主链,代表实现有Loom network的游戏链。局限是侧链必须采用UTXO模型,现实应用范围过窄,转回代币耗时过长,需要至少7天。
Cosmos Network、Polkadot:按应用分片,有一个主链,每个应用使用自己的侧链,定义主链/侧链交互协议,同时提供底层平台和工具方便第三方开发自定义的侧链。局限是子链对用户不透明,子链有1%攻击问题,两个项目都在开发中,缺乏详细介绍。
Lisk、阿希链:按应用分片,侧重于创建侧链的易用性。局限是子链对用户不透明,子链有1%攻击问题,相比Cosmos/Polkadot,侧链定制化弱。
Zilliqa:按用户分片,不同子链的链内交易(即用户和合约在同一个分片)可以并行执行。局限是不能完全并行,没有状态分片,没有跨链通信,在开发中,缺乏详细介绍。
VBFT、DPOS、Algorand、Dfinity:部分节点参与共识,同时避免1%攻击,DPOS是投票选举节点,VBFT/Algorand/Dfinity采用可验证随机选择共识节点。局限是依然受限于单机存储/处理/网络能力。
总结来说,目前可扩展性依然是一个难点,通过分片和多链进行扩展是一个基本解决思路,但关键问题是如何进行分片?如何使多链对外呈现为一个链?如何在保证安全的前提下,保持较低的跨链开销,实现线性扩展?这也正是本发明要研究和解决的问题。
发明内容
本发明的目的在于在不牺牲安全性和分布式的前提下,解决当前区块链的扩展性问题。
本发明首先提供一种基于区块链主链加并行多子链的***架构,其包含一条主链和N条并行子链,其中n=1….X,其中每个节点存储主链数据,且每个节点被***初始分配存储一条子链的全部数据,每个节点还包含子链跨链消息队列;其中,所述各节点由***初始分配存储的子链的全部数据包含相应子链的账户、合约及交易;其中,所述主链数据不存储具体交易,而存储***全局信息;其中,所述子链跨链消息队列包含两种,一类是跨链请求队列,另一类是跨链响应队列;每个节点网络层,包含主链P2P网络,子链数据P2P网络和子链验证P2P网络;其中,主链P2P网络用于子链向主链提交数据、传播主链数据、跨链通信协调;其中,存储某条子链的全部数据的各个节点通过子链数据P2P网络同步子链交易和区块;其中,负责验证同一子链交易的各个节点通过子链验证P2P网络对交易和区块进行验证并签名;所有子链的提交的数据会形成主链块,广播到所有节点,每个节点在收到主链块后,会更新本地主链,以保持所有节点的主链一致。
其中,所述主链数据至少包含:子链个数、子链块头、账户与子链的映射关系、合约与子链的映射关系、数据节点与子链的映射关系、验证节点与子链的映射关系、跨链请求/响应通知信息、所有合约代码;所述跨链请求队列,每个目标子链创建一个,存储发往目标子链的请求消息详情,不同的目标子链分成不同的队列;所述跨链响应队列,每个源链创建一个,存储发往源链的响应消息详情,不同的源链分成不同的队列;所述跨链请求/响应通知信息是对应于跨链请求/响应队列的通知,不含详情。
本发明技术方案子链和主链的交互过程为:子链出块后,会通过主链P2P网络广播向主链提交子链块头,子链对主链的修改信息,跨链请求/响应通知信息;所有子链的提交会形成主链块,广播到所有节点;每个节点在收到主链块后,会更新本地主链,以保持所有节点的主链数据一致;当前节点根据主链数据中的跨链请求/响应通知信息获取请求或响应当前子链的其他子链信息,直接连该其他子链节点获取请求或响应信息详情并进行处理。
其中,当前节点获取跨链请求或响应信息详情时,一并请求默克尔证明数据,目标节点根据本地的主链信息中包含的当前子链块头和默克尔证明数据验证当前节点的请求信息,验证通过后,处理请求。
本发明还提供了一种跨链***合约,该合约对外的接口是send方法,它的参数有源地址、目标子链、接收地址、支付金额和请求消息,所述跨链***合约中具有一跨链***合约的地址,该地址是一个没有私钥的固定值,该地址是在代码中固定的、公开的;所述跨链***合约的工作流程为:
用户首先支付给源子链的跨链***合约,所在的源子链用户子链节点收到请求消息详情后,它会放入本地针对接收子链的跨链请求队列,在源子链出块后,源子链节点会通过主链P2P网络向主链提交源链块头信息,提交信息中还有汇聚的块中所有交易的跨链请求通知信息;各个子链向主链提交的交易会形成主链块,及包含其中的跨链通知信息,通过主链P2P网络广播到所有节点;
当接收子链目标节点收到主链块时,发现其中有源子链向接收子链的跨链请求通知,就直接连接源子链节点,获取请求信息详情,及请求的默克尔证明数据;接收子链目标节点根据本地的主链信息中包含的源子链块头和默克尔证明数据验证用户子链节点的请求信息,验证用户确实支付过后,处理请求,支付给目标地址,生成跨链响应详情信息,存入并更新跨链响应队列状态;在接收子链目标节点通过主链P2P网络向主链提交块头信息时,会提交跨链响应通知信息;
当接收子链的提交被包含到主链块中并被同步到用户子链节点时,用户子链节点直接连接接收子链目标节点,获取响应详情,包括响应的默克尔证数据;用户子链节点根据本地的主链信息中包含的接收子链块头和默克尔证明数据验证链目标节点的响应,验证通过后,更新请求队列,处理可能的失败回滚,如果接收子链支付失败,则给用户退款,最后调用用户提供的回调函数。
上述所有方案中,节点返回任何交易或区块hash的时候,在hash中嵌入子链id值,查询是从交易hash和块hash中解析出源子链id和/或接收子链id,并根据子链id查询到子链节点连接信息,该子链节点连接信息存储在主链数据的数据节点与子链的映射关系中。
本发明***架构有如下特点:
1、通用性:不仅仅可以实现跨链转账,还可以实现任何跨链消息传递。
2、可靠性:与TCP协议类似,通信是可靠的,请求一定有响应,不是单向传输。
3、安全性:任何节点都有主链信息,也即有所有子链的子链块头,可以作为所有子链的SPV客户端,可以通过Merkle Proof验证任意子链的请求/响应,而不需要信任直接连接的子链节点。
跨链通信也是高效和可扩展的,这体现在:
1、子链的跨链通信详情不发送到主链,也不在主链P2P网络传播,主链上传播的只有新请求/响应通知信息。
2、子链的跨链通信通知消息是子链块中所有交易的汇总,随子链块头一起提交给主链,没有额外的通信开销。
3、主链上没有具体交易,在一个主链块中的交易个数仅与子链个数有关,在一个共识周期中,每个子链只有一个节点提交交易到主链,交易内容只是主链修改、子链块头和汇总的跨链通知信息,所以主链的交易、网络通信、存储等都不是瓶颈。
4、子链节点独立应用主链块,直接连接邻近的其他子链节点获取请求/响应详情,这个过程是并行的、分布式的,没有节点是瓶颈。
总结来说,虽然跨链通信经由主链,但主链的负载很低,不是瓶颈,可以容纳的子链个数与主链块中可以包含的交易数有关,以块大小1MB、单笔交易1KB计算,可以容纳1024个子链,在子链个数到达该值之前,整个***处理能力可以随子链个数增加而线性扩展。
附图说明
图1为现有技术中按用户分片的区块链拓展方式示意图。
图2为现有技术中按合约分片的区块链拓展方式示意图。
图3为本发明中使用主链加并行多子链的***逻辑图。
图4为本发明中基于主链加并行多子链逻辑下的单个节点的架构图。
图5为本发明中基于图4中单点而部署的多点架构方案。
图6为主链和子链交互的流程图。
图7为根据交易哈希txhash和块哈希blockhash获得节点连接信息及交易和块详情的流程图。
图8为发起交易的节点和目标节点之间通过默克尔证明(MerkleProof)进行数据验证的流程图。
具体实施方式
请参阅图3所示,其为本发明提出的主链加多并行子链的***逻辑图。本发明包含1条主链及n条并行子链,其中n=1….X,每个节点存储主链数据,并被***初始分配存储某条子链的全部数据,每个节点还包含子链跨链消息队列。其中,所述主链数据不存储具体交易,而存储***全局信息,至少包含:子链个数、子链块头、账户与子链的映射关系、合约与子链的映射关系、数据节点与子链的映射关系、验证节点与子链的映射关系、跨链请求/响应通知信息、所有合约代码、子链负载、子链是否生效等。其中,所述跨链通知消息是与子链跨链消息队列中消息详情对应的一个通知消息。每一条子链具有一个子链id,每一个节点具有一个节点id,本文中子链信息指子链id,子链位置包含子链id及源子链对应的子链节点连接信息,该子链节点连接信息存储在数据节点<->子链映射表,主要包含一个子链位于那些节点上,这些节点的IP地址和端口。
其中,所述各节点由***初始分配的子链的全部数据包含相应子链的账户、合约及交易。该子链的全部数据中的合约,除包含合约代码,还包含合约的状态等完整信息。其中,所述子链跨链消息队列包含两类,一类是跨链请求队列,每个目标子链创建一个,存储发往目标子链的请求消息详情,不同的目标子链分成不同的队列;另一类是跨链响应队列,每个源链创建一个,存储发往源链的响应消息详情,不同的源链分成不同的队列。
所述各个节点通过P2P网络实现点对点的访问,实现上述架构方案,在网络层,除包含主链P2P外,还包含子链P2P,主链P2P网络用于子链向主链提交数据(子链块头,子链对主链的修改信息,跨链通知信息)、传播主链数据、跨链通信协调(跨链通知信息在各个节点之间的通信)。子链P2P又分为两类:子链数据P2P和子链验证P2P。存储某条子链的全部数据的各个节点通过子链数据P2P网络同步子链交易和区块。负责验证同一子链交易的各个节点通过子链验证P2P对交易和区块进行验证并签名。对于某一个节点,它可能是某个子链数据的存储者,参与子链数据P2P网络,同时可能是同一个子链或其他子链的验证者,参与子链验证P2P网络。节点的子链角色是***初始分配的,存储者角色相对不变,而负责哪条子链的验证则是动态随机调整的,每个出块周期都不一样,这是在实现可扩展的同时保证安全,避免1%攻击的方法。
请参阅图4所示,其为本发明中单个节点的架构图。每个节点存储主链数据、被分配的子链数据及该子链的跨链消息队列。请同时参阅图5所示,其为基于图4中节点架构下的多节点部署方案。该方案中示例的列出了6个节点A、B、C、D、E、F。每个节点均存储有主链数据,其中节点A、B和C被***初始分配存储子链x的数据,组成子链x的数据P2P网络。节点D、E和F被***初始分配存储子链y的数据,组成子链y的数据P2P网络。该图中显示的方案包含一条主链及并行的2条x,y子链。在图中时刻,节点A、D和E负责子链x数据的验证,节点B、C和F负责子链y数据的验证。
请参阅图6所示,其为主链加并行多子链***架构下主链和子链的交互。子链出块后,会通过主链P2P网络广播子链块头、子链对主链的修改以及跨链请求/响应通知信息的子链集。所有子链的提交会形成主链块,广播到所有节点。每个节点在收到主链块后,会更新本地主链,以保持所有节点的主链一致,根据主链块头中的跨链请求/响应通知消息通知获取请求或响应当前子链的其他子链信息,直接连接其他子链节点获取请求/响应详情并进行处理。
在此架构下,可以使用主链块头验证其他子链交易。本架构下,每个节点因为被***初始分配存储某一条子链的全部数据,其是其对应子链的全节点,同时每个节点均存储主链数据,是其他所有子链的轻节点,每个节点是主链的全节点。默克尔证明:指一个轻节点向一个全节点发起一次证明请求,询问全节点完整的默克尔树中,是否存在一个指定的数据或者交易;全节点向轻节点返回一个默尔克证明路径,由轻节点进行计算,验证存在性。
本方案中,默克尔证明可用于验证请求/响应详情。
请参阅图7所示,其为根据交易哈希txhash和块哈希blockhash获得节点连接信息及交易和块详情的流程图。在hash中嵌入子链id值,查询是从交易hash和块hash中解析出源子链id和/或接收子链id,并根据子链id查询到子链节点连接信息,该子链节点连接信息存储在主链数据的数据节点与子链的映射关系中,主要包含一个子链位于那些节点上,这些节点的IP地址和端口。
本***内部由主链和多条子链组成,每个节点都有主链信息,但只有一条子链的信息。然而,在用户看来,子链的概念并不存在,每个节点都只有一条链,都有关于这条链的完整信息,它的所有交互都可以通过该节点完成。传统主链的交易功能转为协调功能,由其并行的子链来处理每一笔具体的交易,由于每个节点存储了主链数据,每个用户与某个节点交互时,均可以通过主链数据中记录的***全局信息实现最终的交易。
请参阅图8所示,其为跨链请求/响应的流程,为发起交易的节点和目标节点之间通过默克尔证明(Merkle Proof)进行数据验证的流程图。本发明基于上述主链加并行多子链架构,提出一跨链***合约,该跨链***合约对外的接口是send方法,它的参数有源地址srcAddr、目标子链destChain、接收地址destAddr、支付金额bill和请求消息reqMsg。跨链***合约中具有一跨链***合约的地址,该地址是一个没有私钥的固定值,该地址是在代码中固定的、公开的,只要该地址是正确的,接收地址和金额也是正确的,跨链转账就是安全的。
图中,链A是源子链,A节点是用户子链节点,链B是接收子链,B节点是目标接收节点,每个节点的交易均通过其所在子链进行数据提交、验证、出块和同步等,链A节点包含了节点的概念也包含了所在链的概念,文中及图中简化了共识过程,用一个节点作为代表。
用户首先支付给链A的跨链***合约,用户所在的源子链A节点收到请求消息详情reqMsg后,它会放入本地针对接收子链destChain的跨链请求队列。在源子链A出块后,源子链A节点会通过主链P2P网络向主链提源交链A块头信息,提交信息中还有汇聚的块中所有交易的跨链请求通知信息,比如链A有向链B的请求[req,A->B],但不含请求详情。各个子链向主链提交的交易会形成主链块,及包含其中的跨链通知信息,通过主链P2P网络广播到所有节点。
接收子链B节点收到主链块时,发现其中有链A向链B的请求通知,就直接连接链A节点,获取请求详情,及请求的默克尔证明(Merkle Proof)数据。链B节点根据本地的主链信息中包含的链A块头和默克尔证明(Merkle Proof)数据验证链A节点的请求信息,验证用户确实支付过后,处理请求,支付给目标地址,生成跨链响应详情信息,存入并更新跨链响应队列状态。在链B节点通过主链P2P网络向主链提交块头信息时,会提交跨链响应通知信息,比如链B有向链A的响应,但不含响应详情。
当链B的提交被包含到主链块中并被同步到链A节点时,链A节点直接连接链B节点,获取响应详情,包括响应的默克尔证明(Merkle Proof)数据。链A节点根据本地的主链信息中包含的链B块头和默克尔证明(Merkle Proof)数据验证链B节点的响应,验证通过后,更新请求队列,处理可能的失败回滚,如果链B支付失败,则给用户退款,最后调用用户提供的回调函数。
上述方案,实际交易不通过主链完成,主链仅仅记录子链的摘要信息,极大地提高了区块链的性能,随机选取子链的验证节点,可以避免1%的攻击,大大提高了安全性能。
Claims (6)
1.一种基于区块链主链加并行多子链的***架构,其特征在于:包含一条主链和N条并行子链,其中n=1….X,其中每个节点存储主链数据,且每个节点被***初始分配存储一条子链的全部数据,每个节点还包含子链跨链消息队列;
其中,所述各节点由***初始分配存储的子链的全部数据包含相应子链的账户、合约及交易;
其中,所述主链数据不存储具体交易,而存储***全局信息;
其中,所述子链跨链消息队列包含两种,一类是跨链请求队列,另一类是跨链响应队列;
每个节点网络层,包含主链P2P网络,子链数据P2P网络和子链验证P2P网络;
其中,主链P2P网络用于子链向主链提交数据、传播主链数据、跨链通信协调;
其中,存储某条子链的全部数据的各个节点通过子链数据P2P网络同步子链交易和区块;
其中,负责验证同一子链交易的各个节点通过子链验证P2P网络对交易和区块进行验证并签名;
所有子链的提交的数据会形成主链块,广播到所有节点,每个节点在收到主链块后,会更新本地主链,以保持所有节点的主链一致。
2.如权利要求1所述的基于区块链主链加并行多子链的***架构,其特征在于:
所述主链数据至少包含:子链个数、子链块头、账户与子链的映射关系、合约与子链的映射关系、数据节点与子链的映射关系、验证节点与子链的映射关系、跨链请求/响应通知信息、所有合约代码;
所述跨链请求队列,每个目标子链创建一个,存储发往目标子链的请求消息详情,不同的目标子链分成不同的队列;所述跨链响应队列,每个源链创建一个,存储发往源链的响应消息详情,不同的源链分成不同的队列;
所述跨链请求/响应通知信息是对应于跨链请求/响应队列的通知,不含详情。
3.如权利要求2所述的基于区块链主链加并行多子链的***架构,其特征在于:
子链出块后,会通过主链P2P网络广播向主链提交子链块头,子链对主链的修改信息,跨链请求/响应通知信息;
所有子链的提交会形成主链块,广播到所有节点;
每个节点在收到主链块后,会更新本地主链,以保持所有节点的主链数据一致;
当前节点根据主链数据中的跨链请求/响应通知信息获取请求或响应当前子链的其他子链信息,直接连该其他子链节点获取请求或响应信息详情并进行处理。
4.如权利要求3所述的基于区块链主链加并行多子链的***架构,其特征在于:
当前节点获取跨链请求或响应信息详情时,一并请求默克尔证明数据,目标节点根据本地的主链信息中包含的当前子链块头和默克尔证明数据验证当前节点的请求信息,验证通过后,处理请求。
5.如权利要求4所述的基于区块链主链加并行多子链的***架构,其特征在于:还包含一种跨链***合约,该合约对外的接口是send方法,它的参数有源地址、目标子链、接收地址、支付金额和/或请求消息,所述跨链***合约中具有一跨链***合约的地址,该地址是一个没有私钥的固定值,该地址是在代码中固定的、公开的;
所述跨链***合约的工作流程为:
用户首先支付给源子链的跨链***合约,所在的源子链用户子链节点收到请求消息详情后,它会放入本地针对接收子链的跨链请求队列,在源子链出块后,源子链节点会通过主链P2P网络向主链提交源链块头信息,提交信息中还有汇聚的块中所有交易的跨链请求通知信息;各个子链向主链提交的交易会形成主链块,及包含其中的跨链通知信息,通过主链P2P网络广播到所有节点;
当接收子链目标节点收到主链块时,发现其中有源子链向接收子链的跨链请求通知,就直接连接源子链节点,获取请求信息详情,及请求的默克尔证明数据;接收子链目标节点根据本地的主链信息中包含的源子链块头和默克尔证明数据验证用户子链节点的请求信息,验证用户确实支付过后,处理请求,支付给目标地址,生成跨链响应详情信息,存入并更新跨链响应队列状态;在接收子链目标节点通过主链P2P网络向主链提交块头信息时,会提交跨链响应通知信息;
当接收子链的提交被包含到主链块中并被同步到用户子链节点时,用户子链节点直接连接接收子链目标节点,获取响应详情,包括响应的默克尔证数据;用户子链节点根据本地的主链信息中包含的接收子链块头和默克尔证明数据验证目标链节点的响应,验证通过后,更新请求队列,处理可能的失败回滚,如果接收子链支付失败,则给用户退款,最后调用用户提供的回调函数。
6.如权利要求5所述的基于区块链主链加并行多子链的***架构,其特征在于:节点返回任何交易或区块hash的时候,在hash中嵌入子链id值,查询是从交易hash和块hash中解析出源子链id和/或接收子链id,并根据子链id查询到子链节点连接信息,该子链节点连接信息存储在主链数据的数据节点与子链的映射关系中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811392135.1A CN109471744B (zh) | 2018-11-21 | 2018-11-21 | 基于区块链的主链加并行多子链***架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811392135.1A CN109471744B (zh) | 2018-11-21 | 2018-11-21 | 基于区块链的主链加并行多子链***架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109471744A true CN109471744A (zh) | 2019-03-15 |
CN109471744B CN109471744B (zh) | 2021-08-17 |
Family
ID=65674245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811392135.1A Active CN109471744B (zh) | 2018-11-21 | 2018-11-21 | 基于区块链的主链加并行多子链***架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109471744B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110210845A (zh) * | 2019-06-11 | 2019-09-06 | 网易(杭州)网络有限公司 | 用于区块链数据迁移的方法、装置、介质和计算设备 |
CN110490562A (zh) * | 2019-07-10 | 2019-11-22 | 布比(北京)网络技术有限公司 | 一种多区块链的跨链数据处理方法和*** |
CN110727712A (zh) * | 2019-10-15 | 2020-01-24 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
CN110766410A (zh) * | 2019-10-24 | 2020-02-07 | 杭州趣链科技有限公司 | 基于默克尔树的可信跨链事件构造与验证方法和设备 |
CN110874798A (zh) * | 2019-10-30 | 2020-03-10 | 链农(深圳)信息科技有限公司 | 一种基于区域链的网络平台及其安全通信方法 |
CN111026511A (zh) * | 2019-11-20 | 2020-04-17 | 中国科学院计算技术研究所 | 基于事务数据分区-链间融合的区块链并行***及方法 |
CN111213135A (zh) * | 2019-08-27 | 2020-05-29 | 阿里巴巴集团控股有限公司 | 用于基于区块链的通知的***和方法 |
CN111342972A (zh) * | 2020-02-24 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 一种区块链的事务实现方法、装置、设备和介质 |
CN111339114A (zh) * | 2020-02-28 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 一种数据访问方法、装置、设备及存储介质 |
CN111769957A (zh) * | 2020-09-02 | 2020-10-13 | 百度在线网络技术(北京)有限公司 | 区块链跨链查询方法、装置、设备和存储介质 |
WO2020238429A1 (zh) * | 2019-05-28 | 2020-12-03 | 深圳前海微众银行股份有限公司 | 一种区块链中数据处理方法及装置 |
CN112037057A (zh) * | 2020-04-10 | 2020-12-04 | 支付宝(杭州)信息技术有限公司 | 区块链数据的订正方法及装置 |
CN111428275B (zh) * | 2020-03-13 | 2021-03-26 | 华东师范大学 | 一种面向联盟链的服务不停机分片增加方法 |
CN112907367A (zh) * | 2019-12-03 | 2021-06-04 | 微观(天津)科技发展有限公司 | 基于区块链的跨境贸易数据管理方法、装置及存储介质 |
CN113259119A (zh) * | 2021-06-02 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 区块链消息的分发方法及装置 |
CN113300851A (zh) * | 2021-05-18 | 2021-08-24 | 中国信息通信研究院 | 基于dht的区块链消息广播方法、电子设备及存储介质 |
CN113381863A (zh) * | 2020-03-10 | 2021-09-10 | 本无链科技(深圳)有限公司 | 一种用于区块链的招呼型广播***及方法 |
CN113420169A (zh) * | 2021-06-22 | 2021-09-21 | 重庆紫光华山智安科技有限公司 | 档案存储、查询方法、***、电子设备及介质 |
CN113760651A (zh) * | 2021-08-12 | 2021-12-07 | 熵链科技(福建)有限公司 | 区块链的主子链运行状态收集方法、***及存储介质 |
CN114499872A (zh) * | 2021-12-24 | 2022-05-13 | 山东浪潮工业互联网产业股份有限公司 | 一种基于工业互联网的星火链跨链方法及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411506A (zh) * | 2016-08-31 | 2017-02-15 | 飞天诚信科技股份有限公司 | 适用于数字货币的密钥派生方法及装置 |
CN107104850A (zh) * | 2017-03-24 | 2017-08-29 | 钱德君 | 一种量子链测试方法 |
US20170331896A1 (en) * | 2016-05-13 | 2017-11-16 | De La Rue International Limited | Methods and systems for processing assets |
US20170366353A1 (en) * | 2015-06-02 | 2017-12-21 | ALTR Solutions, Inc. | Generation of hash values within a blockchain |
CN107844976A (zh) * | 2017-10-25 | 2018-03-27 | 武汉天喻信息产业股份有限公司 | 一种基于区块链的存证应用交易***及方法 |
CN108712491A (zh) * | 2018-05-17 | 2018-10-26 | 易链科技(深圳)有限公司 | 区块链节点、交易信息处理方法、终端设备和介质 |
CN108734578A (zh) * | 2018-05-02 | 2018-11-02 | 东莞市波动赢机器人科技有限公司 | 基于交易机器人的数据处理方法和*** |
-
2018
- 2018-11-21 CN CN201811392135.1A patent/CN109471744B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170366353A1 (en) * | 2015-06-02 | 2017-12-21 | ALTR Solutions, Inc. | Generation of hash values within a blockchain |
US20170331896A1 (en) * | 2016-05-13 | 2017-11-16 | De La Rue International Limited | Methods and systems for processing assets |
CN106411506A (zh) * | 2016-08-31 | 2017-02-15 | 飞天诚信科技股份有限公司 | 适用于数字货币的密钥派生方法及装置 |
CN107104850A (zh) * | 2017-03-24 | 2017-08-29 | 钱德君 | 一种量子链测试方法 |
CN107844976A (zh) * | 2017-10-25 | 2018-03-27 | 武汉天喻信息产业股份有限公司 | 一种基于区块链的存证应用交易***及方法 |
CN108734578A (zh) * | 2018-05-02 | 2018-11-02 | 东莞市波动赢机器人科技有限公司 | 基于交易机器人的数据处理方法和*** |
CN108712491A (zh) * | 2018-05-17 | 2018-10-26 | 易链科技(深圳)有限公司 | 区块链节点、交易信息处理方法、终端设备和介质 |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020238429A1 (zh) * | 2019-05-28 | 2020-12-03 | 深圳前海微众银行股份有限公司 | 一种区块链中数据处理方法及装置 |
CN110210845B (zh) * | 2019-06-11 | 2021-06-18 | 网易(杭州)网络有限公司 | 用于区块链数据迁移的方法、装置、介质和计算设备 |
CN110210845A (zh) * | 2019-06-11 | 2019-09-06 | 网易(杭州)网络有限公司 | 用于区块链数据迁移的方法、装置、介质和计算设备 |
CN110490562A (zh) * | 2019-07-10 | 2019-11-22 | 布比(北京)网络技术有限公司 | 一种多区块链的跨链数据处理方法和*** |
CN111213135B (zh) * | 2019-08-27 | 2023-11-21 | 创新先进技术有限公司 | 用于基于区块链的通知的***和方法 |
CN111213135A (zh) * | 2019-08-27 | 2020-05-29 | 阿里巴巴集团控股有限公司 | 用于基于区块链的通知的***和方法 |
CN110727712A (zh) * | 2019-10-15 | 2020-01-24 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
CN110727712B (zh) * | 2019-10-15 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
CN110766410B (zh) * | 2019-10-24 | 2023-09-22 | 杭州趣链科技有限公司 | 基于默克尔树的可信跨链事件构造与验证方法和设备 |
CN110766410A (zh) * | 2019-10-24 | 2020-02-07 | 杭州趣链科技有限公司 | 基于默克尔树的可信跨链事件构造与验证方法和设备 |
CN110874798A (zh) * | 2019-10-30 | 2020-03-10 | 链农(深圳)信息科技有限公司 | 一种基于区域链的网络平台及其安全通信方法 |
CN111026511A (zh) * | 2019-11-20 | 2020-04-17 | 中国科学院计算技术研究所 | 基于事务数据分区-链间融合的区块链并行***及方法 |
CN111026511B (zh) * | 2019-11-20 | 2023-08-08 | 中国科学院计算技术研究所 | 基于事务数据分区-链间融合的区块链并行***及方法 |
CN112907367A (zh) * | 2019-12-03 | 2021-06-04 | 微观(天津)科技发展有限公司 | 基于区块链的跨境贸易数据管理方法、装置及存储介质 |
CN111342972A (zh) * | 2020-02-24 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 一种区块链的事务实现方法、装置、设备和介质 |
CN111342972B (zh) * | 2020-02-24 | 2023-09-15 | 百度在线网络技术(北京)有限公司 | 一种区块链的事务实现方法、装置、设备和介质 |
CN111339114A (zh) * | 2020-02-28 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 一种数据访问方法、装置、设备及存储介质 |
CN111339114B (zh) * | 2020-02-28 | 2023-05-09 | 百度在线网络技术(北京)有限公司 | 一种数据访问方法、装置、设备及存储介质 |
CN113381863A (zh) * | 2020-03-10 | 2021-09-10 | 本无链科技(深圳)有限公司 | 一种用于区块链的招呼型广播***及方法 |
CN111428275B (zh) * | 2020-03-13 | 2021-03-26 | 华东师范大学 | 一种面向联盟链的服务不停机分片增加方法 |
CN112037057B (zh) * | 2020-04-10 | 2022-03-01 | 支付宝(杭州)信息技术有限公司 | 区块链数据的订正方法及装置 |
CN112037057A (zh) * | 2020-04-10 | 2020-12-04 | 支付宝(杭州)信息技术有限公司 | 区块链数据的订正方法及装置 |
CN111769957A (zh) * | 2020-09-02 | 2020-10-13 | 百度在线网络技术(北京)有限公司 | 区块链跨链查询方法、装置、设备和存储介质 |
CN113300851B (zh) * | 2021-05-18 | 2022-06-21 | 中国信息通信研究院 | 基于dht的区块链消息广播方法、电子设备及存储介质 |
CN113300851A (zh) * | 2021-05-18 | 2021-08-24 | 中国信息通信研究院 | 基于dht的区块链消息广播方法、电子设备及存储介质 |
CN113259119B (zh) * | 2021-06-02 | 2021-10-29 | 支付宝(杭州)信息技术有限公司 | 区块链消息的分发方法及装置 |
CN113259119A (zh) * | 2021-06-02 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 区块链消息的分发方法及装置 |
CN113420169A (zh) * | 2021-06-22 | 2021-09-21 | 重庆紫光华山智安科技有限公司 | 档案存储、查询方法、***、电子设备及介质 |
CN113760651A (zh) * | 2021-08-12 | 2021-12-07 | 熵链科技(福建)有限公司 | 区块链的主子链运行状态收集方法、***及存储介质 |
CN113760651B (zh) * | 2021-08-12 | 2024-04-02 | 熵链科技(福建)有限公司 | 区块链的主子链运行状态收集方法、***及存储介质 |
CN114499872A (zh) * | 2021-12-24 | 2022-05-13 | 山东浪潮工业互联网产业股份有限公司 | 一种基于工业互联网的星火链跨链方法及设备 |
CN114499872B (zh) * | 2021-12-24 | 2024-05-28 | 浪潮工业互联网股份有限公司 | 一种基于工业互联网的星火链跨链方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109471744B (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471744A (zh) | 基于区块链的主链加并行多子链***架构 | |
CN109286685A (zh) | 可拓展子链的主链加并行多子链的***架构 | |
CN109493050A (zh) | 基于区块链主链加并行多子链的转账流程 | |
CN109472572A (zh) | 基于区块链主链加并行多子链的合约部署及交易 | |
US20240048376A1 (en) | Methods and systems implemented in a network architecture with nodes capable of performing message-based transactions | |
CN107666484B (zh) | 一种基于区块链的内容分发网络cdn共享方法及*** | |
CN109345387A (zh) | 区块链跨链交易方法、跨链通信装置及存储介质 | |
CN109493052A (zh) | 基于主链加并行多子链的跨链***合约及其转账流程 | |
CN109493051A (zh) | 可动态进行账户分配及迁移的主链加并行多子链***架构 | |
WO2020059865A1 (ja) | 決済システム、決済方法、利用者装置、決済プログラム | |
CN109522362A (zh) | 基于区块链数据的非完全数据同步方法、***及设备 | |
CN108650182A (zh) | 网络通信方法、***、装置、设备及存储介质 | |
CN109242456A (zh) | 区块链跨链交易方法、***及存储介质 | |
CN105337923B (zh) | 数据分发方法和***及数据发送装置和数据接收装置 | |
CN112132447A (zh) | 一种基于区块链的算力网络信任评估与保障算法 | |
CN108009811A (zh) | 一种面向云际计算环境价值交换的跨链通信方法 | |
CN110868434B (zh) | 一种多层分片架构的区块链共识方法及*** | |
EP4318362A1 (en) | Blockchain-based data processing method, apparatus and device, and storage medium | |
CN109885264A (zh) | 一种区块链节点的逻辑分片方法及其*** | |
CN110427346A (zh) | 一种基于区块链的文件存储***及其文件存储方法 | |
CN109102269A (zh) | 基于区块链的转账方法及装置、区块链节点及存储介质 | |
CN106874361B (zh) | 应用于海关申报的数据处理方法和装置 | |
CN106453625B (zh) | 信息同步方法及高可用性集群*** | |
CN109213792A (zh) | 数据处理的方法、服务端、客户端、装置及可读存储介质 | |
CN109784921A (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 |