CN116582239A - 一种区块链分片方法、区块链系统及跨分片交易处理方法 - Google Patents
一种区块链分片方法、区块链系统及跨分片交易处理方法 Download PDFInfo
- Publication number
- CN116582239A CN116582239A CN202310305231.2A CN202310305231A CN116582239A CN 116582239 A CN116582239 A CN 116582239A CN 202310305231 A CN202310305231 A CN 202310305231A CN 116582239 A CN116582239 A CN 116582239A
- Authority
- CN
- China
- Prior art keywords
- block
- node
- transaction
- consensus
- fragment
- 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
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 239000012634 fragment Substances 0.000 claims abstract description 111
- 238000012545 processing Methods 0.000 claims abstract description 31
- 230000008569 process Effects 0.000 claims description 33
- 230000008859 change Effects 0.000 claims description 11
- 238000012858 packaging process Methods 0.000 claims description 11
- 238000005192 partition Methods 0.000 claims description 8
- 241000544061 Cuculus canorus Species 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 33
- 238000012795 verification Methods 0.000 abstract 1
- 230000006854 communication Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 19
- 238000004806 packaging method and process Methods 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000002360 preparation method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 230000003442 weekly effect Effects 0.000 description 2
- 241001481828 Glyptocephalus cynoglossus Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000012857 repacking Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种区块链分片方法、区块链系统及跨分片交易处理方法,其中的区块链分片方法利用上一个epoch共识的区块的区块头作为种子计算随机数用于进行分片重构,并根据上一个共识通过的区块计算当前slot的领导节点,保证随机数生成的无偏性和领导节点的不可预测性,保证系统的高效安全;本申请公开的跨分片交易处理方法采用并行的两阶段共识机制,分片内可以更快对区块完成共识投票,进一步的实施例还公开了对交易进行批量处理和生成Merkle子树,用于对发送至同一目标分片的交易统一验证,有效减少系统的开销,提高跨分片交易处理效率。
Description
技术领域
本发明属于区块链分片技术应用领域,尤其涉及一种区块链分片方法、区块链系统及跨分片交易处理方法。
背景技术
分片技术被用于解决区块链系统可扩展性问题,多个分片对不同事务的并行处理能够提高传统区块链的吞吐量,并有效降低交易确认延迟。每个区块链分片不仅处理分片内的交易,还会传输大量的跨分片交易到其他分片,兼顾系统性能和安全性是目前区块链分片系统所关注的,然而现有的很多分片协议往往不能两者兼得,要么在系统安全性方面存在缺陷,要么为了安全性牺牲系统性能。
对于分片内的交易共识,需要选出一个领导节点提出区块,分片内其他节点对区块完成共识,现有的大多数分片协议都要求每个分片的领导节点在一段时间内连续出块,并提前得知领导节点,这使得恶意节点能够轻易对领导节点发起针对性攻击,这会削弱系统的安全性。而当领导节点是恶意节点或被攻击时,需要一个复杂的领导节点更换过程,这会降低系统性能。此外,大多数的分片协议使用拜占庭容错共识机制,从而降低共识效率。
对于跨分片交易,恶意节点可能会发送错误的交易信息到其他分片,而由于各分片独立维护不同的信息,接收交易的分片无法验证跨分片交易的有效性。现有的一些分片协议为了保证交易的安全性,发送交易时附加大量的证明信息,这给系统带来过多的通信开销。
另外,现有的随机数生成方法要么存在偏差,要么计算通信复杂,像区块链这样的分布式系统需要更优的方法来快速生成无偏的随机数。
综上,需要设计更高效安全的共识机制和交易处理方法来解决现有区块链系统性能和安全性方面存在的不足。
发明内容
基于此,本发明提出一种区块链分片方法、区块链系统及跨分片交易处理方法,设计一种新的分片内共识机制和交易处理机制,并且保证区块链系统的可扩展性,增强分片内交易和跨分片交易的系统性能和安全性。
第一方面,一种区块链分片方法,包括:
参考委员会获取当前epoch所有共识通过的区块的区块头,基于区块头生成下一epoch的随机数,根据下一epoch的随机数完成分片重构;
分片内的节点根据共识通过的上一个区块计算当前slot的领导节点。
进一步地,基于区块头生成下一epoch的随机数包括:
对所有区块头异或运算得到下一epoch的种子,根据下一epoch的种子计算下一epoch的随机数。
进一步地,根据下一epoch的随机数完成分片重构包括:
新节点把下一epoch的随机数作为新的PoW难题并提供解决方案,参考委员会验证解决方案的正确性并把新节点根据有限布谷鸟原则随机分配至分片中,完成下一epoch的分片重构。
进一步地,上述方法还包括:
根据分片重构结果把节点变化信息广播至各分片,各分片根据节点变化信息生成分片节点表。
进一步地,根据共识通过的上一个区块计算当前slot的领导节点包括:
获取共识通过的上一个区块的区块头;
每个节点把区块头和当前slot的序号作为种子输入随机数发生器计算随机数;
随机数发生器把随机数映射到一个节点,被映射的节点为当前slot的领导节点。
进一步地,为了保证领导节点轮换的无偏性和安全性,节点利用区块头中的节点签名信息和当前slot的序号作为种子输入随机数发生器计算随机数。
进一步地,随机数发生器使用伪随机数发生器。
进一步地,使用随机预言机作为伪随机数发生器。
第二方面,本发明提供一种区块链系统,包括参考委员会和系统分片;
参考委员会用于根据第一方面的区块链分片方法对系统分片进行分片重构,其中每个系统分片的领导节点根据第一方面的区块链分片方法计算得到。
第三方面,本发明提供一种跨分片交易处理方法,应用于第二方面的区块链系统,在源分片执行,该方法包括:
交易打包过程:领导节点把交易打包进区块并在分片内广播;
区块共识过程:各节点对接收的区块共识投票,并把投票结果广播;
交易发送过程:领导节点把共识通过的区块发送至目标分片;
其中,当前区块的交易打包过程和上一个区块的区块共识过程并行执行。
进一步地,交易打包过程包括:
领导节点把交易打包进区块,在分片内广播该区块和块摘要,块摘要用于使分片内的节点对区块进行预验证。
进一步地,区块共识过程包括:
分片内的节点在第一时长后接收到块摘要,并在第二时长后接收到区块;
节点对区块共识投票,把投票结果在分片内广播,当超过设定数量的节点同意区块时,节点把区块写入本地账本。
进一步地,上述方法的并行执行过程具体包括:
领导节点把交易打包进当前区块的同时,分片内的节点对上一个区块共识投票,以及,领导节点在分片内广播当前区块的同时,分片内的节点把上一个区块写入本地账本。
进一步地,并行执行过程中,领导节点等待上一个区块共识投票结束再封装当前区块。
进一步地,为了防止因上一个区块共识无效而导致当前区块重新打包损害系统性能,领导节点收到广播的上一个区块时,对上一个区块进行验证,把与上一个区块中的交易互斥的交易打包。
进一步地,交易打包过程还包括:
领导节点把交易打包进当前区块时,构建交易的Merkle根并写入当前区块的区块头。
进一步地,为了减少通信和计算的开销,领导节点构建交易的Merkle根包括如下过程:
根据目标分片地址把交易聚类,发送至同一目标分片的交易按交易的哈希值排序,对发送至同一目标分片的交易构建Merkle子树,把不同的Merkle子树合并为一个完整的Merkle树,Merkle树的Merkle根写入当前区块的区块头。
进一步地,交易发送过程包括:
领导节点把发送至同一目标分片的交易批量发送至对应的目标分片,同时广播区块头和所有Merkle子树的根。
进一步地,块摘要至少包括:
当前区块的序列号、当前slot序号、区块哈希值和领导节点的身份标识。
第四方面,本发明提供一种跨分片交易处理方法,应用于第二方面的区块链系统,在目标分片执行,该方法包括:
接收源分片发送的区块,对区块内属于本分片处理的交易进行验证和执行。
进一步地,对区块内属于本分片处理的交易进行验证包括:
接收源分片批量发送的交易,根据交易的哈希值重建对应的Merkle子树的根,根据其他Merkle子树的根重建Merkle根;
比较重建的Merkle根和区块头中的Merkle根,相同则表示交易有效可执行,否则交易无效。
进一步地,为了防止领导节点伪造分片内其他节点及其签名,上述方法还包括:
目标分片内的节点根据分片节点表验证区块头中是否存在非法的节点签名。
第五方面,本发明提供一种区块链分片系统,包括源分片和目标分片;
源分片用于实现第三方面的跨分片交易处理方法,目标分片用于实现第四方面的跨分片交易处理方法。
第六方面,本发明提供一种电子设备,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现前述区块链分片方法和/或跨分片交易处理方法的各个步骤。
第七方面,本发明提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现前述区块链分片方法和/或跨分片交易处理方法的各个步骤。
与现有的分片系统和跨分片交易处理方法相比,本发明具有如下有益效果:
本发明提供的分片方法,在分片重构时利用一个epoch内所有共识通过的区块的区块头作为种子计算下一epoch的随机数,进而根据上一个共识通过的区块计算当前slot的领导节点,每个epoch的随机数的生成基于链上往前生成的区块,而且领导节点的生成也依赖最新一个共识通过的区块,保证了随机数生成的无偏性和不可预测性,即便存在恶意节点系统也能保持高效安全,同时也提高了领导节点选出的效率。本发明提供的跨分片交易方法,针对交易在分片内的共识本发明把传统的串行三阶段共识机制改进为并行的两阶段共识机制,分片内可以更快对领导节点提出的区块完成共识投票,系统能够实现高吞吐量和低延迟;进一步的在跨分片交易时,对于发送至同一分片的交易批量处理并附加一个统一的Merkle证明,用于同时验证这一批交易,保证系统的安全性还有有效减少系统的计算开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的区块链系统框架;
图2为本发明实施例提供的一种区块链分片方法的实施流程;
图3为本发明实施例提供的一种跨分片交易处理方法的实施流程;
图4为本发明实施例提供的一种并行两阶段共识机制的示意;
图5为本发明实施例提供的另一并行两阶段共识机制的示意;
图6为本发明实施例提供的区块结构示意;
图7为本发明实施例提供的一种电子设备硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在区块链分片系统中,各分片内的节点不仅要处理分片内的交易,还需要处理大量跨分片交易,目前多使用BFT类型的共识机制,这类型的共识机制为了保证安全性,往往需要多轮通信(至少3轮)才能完成共识。这些机制默认分片内的网络同步环境良好,设计了比较复杂的通信流程,个别机制在存在恶意节点情况下需要更改视图来完成领导节点的更换,降低了片内共识的效率。另外,目前的分片系统由于领导节点在一段时间内持续出块,并且领导节点是提前得知的,这使得领导节点更易遭受恶意攻击。至于跨分片交易,现有的处理方案在保证交易安全方面仍有不足,或者无法兼顾性能与安全性。
随机性的获取是区块链一个很重要且比较困难的课题,尤其在分片系统中,分片的构建和领导节点的选出都依赖随机性,然而现有的随机数生成方法不能完全保证随机数的无偏性,例如Algorand中VRF函数使用的随机性种子和Elastico使用PoW共识结果都可能被恶意节点偏向。而一些保证无偏性的生成方法,例如Ouroboros使用的PVSS方案、Omniledger使用VRF进行无偏的领导节点选举、RapidChain利用VSS进行密钥分类,这些方案都需要复杂的通信过程,通信开销较大,因此效率不高。
为了解决以上问题,本发明提出一种区块链分片方法、区块链系统及跨分片交易处理方法,其中涉及无偏的领导节点轮换,高效的片内共识机制和跨分片交易处理机制,它们将在以下实施例中一一说明。
如图1所示,其示出了本发明区块链系统的基本模型,其包括了以下四个部分:领导节点轮换、分片内共识、跨分片交易处理和分片重构。一个epoch内有多个slot,分片在每个slot开始都会选出新的领导节点,每个epoch结束会进行分片重构,这期间分片内的节点会发生变化,下面对这四个部分将逐一说明。
基于图1示出的系统模型,图2示出了本发明实施例提供的区块链分片方法的一种实施流程,其可以对应到图1示出的模型中的分片重构和领导节点轮换,以分片重构为起点对该流程进行说明。
(1)分片重构过程
参考委员会获取当前epoch所有共识通过的区块的区块头,基于区块头生成下一epoch的随机数,根据下一epoch的随机数完成分片重构。
具体地,本实施例执行上述分片重构的前提是对于每个经过共识而且通过的区块,其区块头在发送交易的同时广播至系统的其他分片(包括参考委员会),因此参考委员会可以获取一个epoch内所有共识通过的区块的区块头,基于此来生成下一epoch的随机数用于进行分片重构。
一般情况下,区块头至少包括以下信息:区块哈希值、时间戳、区块序列号、slot序号、epoch序号、分片标识、领导节点的签名信息,在这些信息中,slot序号和epoch序号是公开的无法被操纵和篡改,而签名信息是经过分片内节点验证的,因此基于区块头生成的随机数是无偏的。
进一步,生成下一epoch的随机数有如下过程:
对所有区块头异或运算得到下一epoch的种子,根据下一epoch的种子计算下一epoch的随机数。
进一步,根据随机数完成分片重构有如下过程:
当有新节点要加入系统时,新节点把下一epoch的随机数作为新的PoW难题并提供解决方案,参考委员会验证解决方案的正确性并把新节点根据有限布谷鸟原则随机分配至分片中,完成下一epoch的分片重构。
具体地,有限布谷鸟原则是在布谷鸟原则的基础上做的改进,布谷鸟原则需要重新选举所有的分片,所有节点都重新洗牌分配,这会带来很大的计算开销,使得分片重构花费很长的时间,分片系统性能得不到明显的提升。有限布谷鸟原则是RapidChain提出的分片解决方案,无需重新选举所有的分片,而是把分片根据交易活跃程度分为活跃分片和不活跃分片,新节点加入时参考委员会把节点随机加入一个活跃分片,并把该活跃分片的固定数量节点随机分配到不同的不活跃分片中。
进一步,在分片重构期间,分片的节点变化信息会广播至系统内的各个分片,每个分片根据节点变化信息生成一个状态块,状态块包含表示所有分片的分片节点表,系统内的每个节点都存储并维护这个分片节点表,该表包括所有节点的有效公钥,可用于验证节点签名的合法性。
(2)领导节点轮换过程
分片内的节点根据共识通过的上一个区块计算当前slot的领导节点。
具体地,每个slot开始分片内都进行领导节点轮换,本发明利用共识通过的上一个区块作为随机数计算的种子,每一个slot的领导节点轮换都基于上一个共识通过的区块,基于区块是经过分片共识的,区块的签名信息经过了分片内所有节点的验证,因此本发明提出的是一种基于链的领导节点轮换过程,保证系统的随机性。
进一步,可以提取区块头中的签名信息和当前slot的序号作为种子,把种子输入随机数发生器计算随机数,随机数映射到一个节点,节点根据映射结果确定领导节点。
具体地,可以使用伪随机数生成函数例如随机预言机作为随机数生成器。
结合图1和图2及其实施例说明,可以看到图1中示出的第e-1个epoch中,不同slot中分片的领导节点发生变化,例如分片1的领导节点由节点i轮换为节点c,分片2的领导节点由节点a轮换为节点k,分片3的领导节点由节点l轮换为节点f。在第e个epoch中,分片1~3的节点成员发生了变化,节点h从分片3分配到了分片1,节点d从分片1分配到了分片3,分片2增加节点m同时移走了节点a,在第e个epoch的两个连续slot同样发生了分片内领导节点的轮换。
参阅图3,其示出了本发明实施例提供的跨分片交易处理方法的一种实施流程,可以对应到图1示出的模型中的分片内共识和跨分片交易处理,以分片内共识为起点对该流程进行说明。
(1)分片内共识过程
本发明实施例提供的分片内共识为两阶段的并行共识机制,分为第一阶段的交易打包过程和第二阶段的区块共识过程,下面将对两阶段共识机制进行说明。
①交易打包过程
分片的领导节点把交易打包进区块并在分片内广播。
具体地,领导节点把交易打包进区块,在分片内广播该区块和块摘要,块摘要用于使分片内的节点对区块进行预验证,由于块摘要很小,分片的其他节点会先行接收到块摘要再接收完整的区块。通常情况下,块摘要至少包括当前区块的序列号、当前slot序号、区块哈希值和领导节点的身份标识等信息。
基于区块链是一个分布式系统,本发明实施例提出的分片内共识机制不要求片内节点的时钟同步,各个节点可以异步接收区块及块摘要完成自己对区块的投票。
进一步,由于区块内打包的是跨分片交易,而分片之间状态独立,因此接收跨分片交易的目标分片无法直接验证交易是否在源分片共识通过得到确认,一般来说可以在打包区块时构建交易的Merkle根写入区块的区块头供目标分片验证交易的正确性,常规做法是给每个跨分片交易都附上一个Merkle根,也就是每个交易都附加一个完整的Merkle路径。
进一步,上述的Merkle根附加方法会导致大量的系统开销,为了解决这个问题本发明实施例采用修剪Merkle根的方式,在具体的示例方面,领导节点打包交易时先把交易根据目标分片地址聚类,发送至同一目标分片的交易按交易的哈希值排序,对发送至同一目标分片的交易构建Merkle子树,把不同的Merkle子树合并为一个完整的Merkle树,Merkle树的Merkle根写入当前区块的区块头。一个Merkle子树有自己的Merkle根,因此发送至同一个目标分片的一批交易只需要附加一个Merkle根,即这一批交易对应的Merkle子树的根,目标分片可以利用一个Merkle根验证一批交易,显著降低系统开销。
②区块共识过程
分片内各节点对接收的区块共识投票,并把投票结果广播。
具体地,一般来说,分片内的节点会在第一时长后接收到块摘要,并在第二时长后接收到区块,接收到区块后节点对区块共识投票,把投票结果在分片内广播,当超过设定数量的节点同意区块时,节点把区块写入本地账本。在进一步的情形中,可以设定超过一半节点同意区块时则认为区块有效并写入本地账本,否则认为区块无效进入下一个slot。
常见的共识机制基本都有3轮通信,包括预准备、准备和提交区块,本发明实施例提供的两阶段共识机制,第一阶段的交易打包和区块广播可以视作常规机制中的预准备阶段,第二阶段的区块共识投票可以视作常规机制中的准备和提交区块阶段的压缩。
接下来通过图4说明本发明实施例的两阶段共识机制是如何并行执行的。
每个slot都可以划分为上述的两阶段,分别是交易打包和区块共识,在slot t中,领导节点为新提出的区块打包交易的同时,分片内的节点正在为slot t-1提出的区块共识投票。容易理解的是,如果slot t-1没有提出区块,则节点正在共识投票的是slot t-2提出的区块,以此类推其他类型的情形。领导节点把打包好的区块在片内广播的同时,分片内的节点把共识通过的区块写入本地账本。
进一步,区块链上生成的是链式账本,并行执行过程容易导致在上一个区块未共识结束时领导节点无法确定当前区块应该链接在哪个区块,因此领导节点应该等待上一个区块共识投票结束再封装当前区块。
进一步,如果上一个区块共识结果为无效,可能导致当前区块的交易需要重新打包,这会损害系统性能,因此打包当前区块的领导节点在接收到广播的上一个区块时,先验证上一个区块,把与上一个区块互斥的交易(例如,不同账户发送的交易)打包,这样不管上一个区块是否有效都可以生成当前区块。
(2)跨分片交易处理过程
源分片的领导节点把共识通过的区块发送至目标分片。
具体地,在上述交易打包过程中已经生成了同一目标分片的交易对应的Merkle子树,领导节点会把发送至同一目标分片的交易批量发送至对应的目标分片,同时广播区块头和所有Merkle子树的根。
目标分片接收到交易后需要进行验证,具体地,目标分片根据交易的哈希值重建对应的Merkle子树的根,根据其他Merkle子树的根重建Merkle根,比较重建的Merkle根和区块头中的Merkle根,相同则表示交易有效可执行,否则交易无效。在分片重构过程中提到每个节点都会维护分片节点表,这个表包括了所有节点的有效公钥,因此目标分片收到区块头后可以通过比对分片节点表和区块头中的签名信息来确认是否存在非法节点签名。
基于图1示出的系统模型和上述实施例对各过程的说明,下面的实施例通过具体场景和相关计算进一步对本发明的区块链分片方法和跨分片交易处理方法说明。
每个epoch有多个slot,假设系统内有n个节点,系统初始化时这些节点被随机分配到m个分片中,每个分片有k=n/m个节点,分片内节点会在每一个slot的开始选出新的领导节点。
为了防止Sybil Attack(女巫攻击),每个节点在加入系统时都需要身份认证,生成一个身份证明。
与很多分片协议类似,本实施例中系统可以采用gossip协议进行网络信息传输,也就是说在一段时间Δ内,某个诚实节点发送或转发的任何信息都将传递给所有诚实节点。为了解决任何同步共识中存在的响应性差的问题并实现长期响应性,每个分片周期性地(例如,每周或每天)就新的Δ达成一致,这与现有分片协议类似。
除了分片内共识,本实施例提供的区块链分片系统为部分同步系统,且基于账户模型,每个账户有独立的状态,账户状态由哪个分片存储和维护根据账户地址决定,账户地址根据随机预言机的输出映射到分片。
本实施例为分片系统构建了与现有区块链类似的一个威胁模型,存在一个拜占庭对手可以控制系统小于1/3的节点,在分片内通信通道是同步的,因此分片内可以实现1/2的最佳网络故障弹性。拜占庭对手只能在每个epoch开始时破坏一组固定的节点,这组被破坏的节点在一个epoch内保持不变。同时还假设对手可以对领导节点发起针对性攻击。
为了获取随机性,所有节点都可以访问外部的随机预言机。
与前述的几个实施例类似,本实施例从领导节点轮换、分片内共识、跨分片交易处理和分片重构四个部分进行说明。
系统的分片流程和跨分片交易处理大致可以描述为:基于无偏的随机数在每个slot选择一个新的领导节点进行提块;针对领导节点提出的区块执行分片内共识;当达成共识时进行跨分片交易的发送和处理;两个epoch之间是是分片重构阶段,此间分片节点会重新分配。
接下来先说明本实施例针对分片内共识提出的并行两阶段共识机制。
两阶段共识机制分为:第一阶段,交易打包和区块广播;第二阶段,共识投票和插入区块。该机制本质上是一种同步共识机制,可在每个分片中实现1/2的最佳网络故障弹性,由此允许总弹性为1/3。
①交易打包和区块广播
每个slot中,当前slot的领导节点把交易打包进区块,把区块和块摘要在分片内广播。块摘要至少包括当前区块的序列号、当前slot序号、区块哈希值和领导节点的身份标识等信息,用于对区块进行预验证。一般来说节点会先收到块摘要再收到完整的区块。
在同步网络模型中通常会有明确的延迟上限,因此本实施例定义块摘要的广播延迟上限为Δd,表示在领导节点把区块和块摘要广播后分片内的节点会在时长Δd内接收到块摘要;并定义总广播延迟上限为Δb,表示在领导节点把区块和块摘要广播后分片内的节点会在时长Δb内接收到区块和块摘要。
本实施例的共识机制不要求节点之间进行时钟同步,假设某个节点在领导节点广播后的内接收到块摘要,此时该节点将启动时钟并等待区块,这期间不需要所有分片内的节点同步时钟信息,只需要每个节点的时间流一致。
②共识投票和插入区块
正常情况下,节点至多等待时长Δb后会接收到完整的区块,并开始投票,验证交易是否有效并把投票结果在分片内广播,这里定义投票结果的广播延迟上限为Δv。由于节点之间时钟不同步,共识投票阶段每个节点要等待时长Δd+Δb+Δv以确保分片内每个节点都接收到其他节点的投票结果。本实施例设定超过k/2个节点同意区块时由一个节点把区块提交到本地账本,否则认为该区块无效并进入新的slot。
本实施例的两阶段共识投票截止利用了分片内同步网络的特性,不影响系统安全性的同时减少了通信开销,而且由于分片内节点数量较少,共识过程耗时不长,这一特性可以把Δd、Δb、Δv控制在很小范围内,缩短了slot之间的间隔并提高共识效率。
基于上述两阶段共识机制的描述,下面说明该机制是如何并行执行的。把共识机制细化为4个串行的步骤:交易打包、区块广播、共识投票和区块插入,为了实现并行执行,把这4个步骤重组。
具体地,如图5所示,在slot t中,领导节点为新提出的区块bt打包交易的同时,片内节点为上一个区块bt-1共识投票。一个slot可以出0或1个区块,如果slot t-1没有提出区块,节点共识投票的则是区块bt-2。当领导节点广播区块bt的同时,片内节点在本地账本上插入区块bt-1。
这里默认节点正在共识区块bt-1,由于区块链上生成的是链式账本,并行执行过程容易导致区块bt-1未共识结束时领导节点无法确定区块bt应该链接在哪个区块,因此领导节点应该等待区块bt-1共识投票结束再封装区块bt并构建区块头,例如区块bt-1被认为有效时,当前提块bt应链接在bt-1之后。
其次,如果区块bt-1共识结果为无效,可能导致区块bt的交易需要重新打包,这会损害系统性能。而容易理解的是,包括领导节点在内分片的所有节点都能接收到广播的区块,且当前slot的领导节点不一定与前一个slot的领导节点相同,因此打包区块bt的领导节点可以在接收到区块bt-1时,先验证bt-1,把与bt-1互斥的交易(例如,不同账户发送的交易)先打包,这样无论区块bt-1是否有效都可以生成区块bt。
并行两阶段共识机制更注重通信而不是计算的并行,因此在实际设计时,可以使交易打包和区块插入比共识投票和区块广播的耗时更少,节点可能在等待时间Δd+Δv或Δd结束之前收到其他节点的投票结果或者块摘要,此时节点可以在等待时长结束的同时先验证收到的信息。
基于上述的并行两阶段共识机制,下面对领导节点轮换进一步说明。
在每个slot开始,分片都会计算一个新的随机数来选出当前slot的领导节点。具体地,当某个节点启动新slot时,从最新共识完成的区块中提取签名信息(例如区块bt-2,这是由于slot t开始时区块bt-1还没完成共识),节点使用提取的签名信息和当前slot序号作为种子输入一个公众可访问的伪随机数生成函数,该函数把种子的值映射到一个节点,被映射的节点则是slot t的领导节点,负责提块bt。
如图6所示,其示出了区块头包括的信息。在本实施例的设计中,领导节点在生成区块时把当前slot序号和签名信息写入区块头,这样每个节点都能使用最新共识完成的区块中的信息作为种子来计算领导节点,下式给出了其中一种计算表达式:
其中,F(·)表示把输入映射到一个节点的随机预言机,表示领导节点lt-2对区块bt-2的签名信息
下面对跨分片交易处理过程进行说明。
通常地,由于分片之间状态独立,为了防止恶意节点发送虚假交易或者生成虚假签名信息,进行跨分片交易发送时需要给交易附上一个证明供目标分片验证交易是否在源分片共识通过,常用的做法是给每个交易都附上完整Merkle树的Merkle根,这种方法会导致大量的系统开销。为了解决这个问题,尤其是在需要发送大量跨分片交易时,本实施例对附加的Merkle根进行改进。
具体地,仍参阅图6的示意,领导节点在打包交易时先按目标分片地址把交易聚类并按交易哈希值排序,对发送至同一目标分片的交易构建Merkle子树,把不同的Merkle子树合并为一个完整的Merkle树,Merkle树的Merkle根写入当前区块的区块头。一个Merkle子树有自己的Merkle根,因此发送至同一个目标分片的一批交易只需要附加一个Merkle根,即这一批交易对应的Merkle子树的根,目标分片可以利用子树的Merkle根验证一批交易,显著降低系统开销。
一个区块被共识确认后,生产该区块的领导节点会将区块中包含的跨分片交易批量发送到相应的目标分片,在发送跨分片交易时,领导节点会将区块头广播给其他分片。为了使跨分片交易能够被目标分片验证,领导节点还需要将所有Merkle子树的根广播到系统中。
目标分片接收到交易后需要进行验证,具体地,目标分片根据交易的哈希值重建对应的Merkle子树的根,根据其他Merkle子树的根重建Merkle根,比较重建的Merkle根和区块头中的Merkle根,相同则表示交易有效可执行,否则交易无效。提到每个节点都会维护一个分片节点表,这个表包括了所有节点的有效公钥,因此目标分片收到区块头后可以通过比对分片节点表和区块头中的签名信息来确认是否存在非法节点签名。
本实施例的分片重构流程与RapidChain类似,不同的在于epoch的随机数的生成。具体地,本实施例提出一种基于链的随机数生成方法,根据上述的描述,每个共识通过的区块的区块头都会被广播到网络中,则参考委员会可以获取最近一个epoch中所有的区块头,对区块头进行异或运算得到下一个epoch的种子,再利用该种子生成随机数。分片重构时各分片的节点变化信息会广播在网络中,每个分片根据节点变化信息生成一个状态块,状态块包含表示所有分片的分片节点表,系统内的每个节点都存储并维护这个分片节点表。
上述在领导节点轮换和分片重构中提出的基于链的随机数生成方案,slot序号是公开且不能篡改的,把种子映射到某个节点的随机预言机是可访问的,其不能被单个节点操纵和破坏。而对于用到的签名信息,由于节点加入系统时都生成了一个身份证明来防御女巫攻击,并随机分配到分片;其次每次分片重构后节点都会更新分片节点表,因此领导节点不可能在一个分片内伪造多个合法签名,只要单个分片内的恶意节点不超过设定数量(例如,分片节点数量的一半),而签名又需要分片内所有节点的验证,因此这可以兼顾安全性和无偏性。
针对现有分片协议中领导节点被提前得知的问题,本实施例的领导者轮换方案,每个slot都使用最新共识完成的区块的签名信息来计算领导节点,因此在区块共识完成之前无法预知新的随机数,也就无法提前得知领导节点的归属。
现在来说明分片内共识的安全性。假设一个诚实节点ifirst在t0时收到一个区块的块摘要,另一个诚实节点ilast在t0+δ时收到同一个块摘要,则有δ≤Δd。假设一个最坏情况δ=Δd,当节点ilast等待Δb了收到区块并开始投票,此时节点ifirst已经等待了Δb+Δd,并开始了投票和广播投票结果,此时节点ifirst需要再等待Δv确保收到节点ilast的投票结果,因此所有节点都可以在等待时长Δb+Δd+Δv内完成共识。
当一个恶意的领导节点试图向其他节点发送一个不同值的区块,其他节点根据块摘要可以发现该攻击,此时节点不需要在等待时长结束后再开始投票,可以立刻启动投票。如果一个恶意节点想广播一个不同的投票结果,同样会被分片内的诚实节点发现,此时恶意节点的投票视作无效。另外,当恶意领导节点发起沉默攻击(即不发送消息),分片的节点无法在等待时长内收到区块,此时将自动进入新的slot并选出新的领导节点。只要恶意节点数量不超过k/2就不影响区块共识,因为诚实节点总能在等待时长内收到足够数量的投票结果。
在本实施例的设计中,无论当前领导节点是好是坏,都会在新slot开始时自动选出新的领导节点,每个诚实节点对每个slot中提出的区块的有效性都有相同的视图。因此,无论领导节点是否恶意,所有诚实节点都会在投票阶段结束后自动选出下一个领导节点,因此,一个有效的区块最终将由一个诚实的领导节点产生。
另外,每个分片周期性地(例如,每周或每天)就时长上限达成一致,如果网络环境发生变化导致共识暂停,使得节点无法在等待时长内收到足够的投票结果,节点会重新协定时长上限并恢复共识过程。
在通信开销方面,由于本实施例按目标分片对交易进行了聚类并分别生成Merkle子树,假设一个区块有N个跨分片交易,发到分片j的交易数量为Nj,对同一个目标分片的交易只需要附加一个Merkle子树的根来验证,因此每个交易的额外通信开销为O(m/Nj),实现较低的开销。
本申请实施例提供的区块链系统可应用于电子设备。图7示出了这一电子设备的硬件结构框图,参照图7,电子设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:实现前述区块链分片方案中的各个处理流程,或,实现前述源分片和/或目标分片在跨分片交易处理方案中的各个处理流程。
本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:实现前述区块链分片方案中的各个处理流程,或,实现前述源分片和/或目标分片在跨分片交易处理方案中的各个处理流程。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (25)
1.一种区块链分片方法,其特征在于,包括:
参考委员会获取当前epoch所有共识通过的区块的区块头,基于区块头生成下一epoch的随机数,根据下一epoch的随机数完成分片重构;
分片内的节点根据共识通过的上一个区块计算当前slot的领导节点。
2.根据权利要求1所述的区块链分片方法,其特征在于,所述基于区块头生成下一epoch的随机数包括:
对所有区块头异或运算得到下一epoch的种子,根据所述种子计算下一epoch的随机数。
3.根据权利要求1所述的区块链分片方法,其特征在于,所述根据下一epoch的随机数完成分片重构包括:
新节点把下一epoch的随机数作为新的PoW难题并提供解决方案,参考委员会验证解决方案的正确性并把新节点根据有限布谷鸟原则随机分配至分片中,完成下一epoch的分片重构。
4.根据权利要求1所述的区块链分片方法,其特征在于,所述方法还包括:
根据分片重构的结果把节点变化信息广播至各分片,各分片根据所述节点变化信息生成分片节点表。
5.根据权利要求1所述的区块链分片方法,其特征在于,所述根据共识通过的上一个区块计算当前slot的领导节点包括:
获取共识通过的上一个区块的区块头;
分片内的每个节点把区块头和当前slot的序号作为种子输入随机数发生器计算随机数;
随机数发生器把随机数映射到一个节点,被映射的节点为当前slot的领导节点。
6.根据权利要求5所述的区块链分片方法,其特征在于,所述分片内的每个节点利用区块头中的签名信息和当前slot的序号作为种子输入随机数发生器计算随机数。
7.根据权利要求5所述的区块链分片方法,其特征在于,所述随机数发生器使用伪随机数发生器。
8.根据权利要求7所述的区块链分片方法,其特征在于,使用随机预言机作为所述伪随机数发生器。
9.一种区块链系统,其特征在于,包括参考委员会和系统分片;
所述参考委员会根据权利要求1~8任一项所述的区块链分片方法对系统分片进行分片重构,其中所述系统分片的领导节点根据权利要求1~8任一项所述的区块链分片方法计算得到。
10.一种跨分片交易处理方法,其特征在于,应用于权利要求9所述的区块链系统,在源分片执行,包括:
交易打包过程:领导节点把交易打包进区块并在分片内广播;
区块共识过程:各节点对接收的区块共识投票,并把投票结果广播;
交易发送过程:领导节点把共识通过的区块发送至目标分片;
其中,当前区块的交易打包过程和上一个区块的区块共识过程并行执行。
11.根据权利要求10所述的跨分片交易处理方法,其特征在于,所述交易打包过程包括:
领导节点把交易打包进区块,在分片内广播该区块和块摘要,块摘要用于使分片内的节点对区块进行预验证。
12.根据权利要求10所述的跨分片交易处理方法,其特征在于,所述区块共识过程包括:
分片内的节点在第一时长后接收到块摘要,并在第二时长后接收到区块;
节点对区块共识投票,把投票结果在分片内广播,当超过设定数量的节点同意区块时,节点把区块写入本地账本。
13.根据权利要求10所述的跨分片交易处理方法,其特征在于,所述方法的并行执行过程具体包括:
领导节点把交易打包进当前区块的同时,分片内的节点对上一个区块共识投票,以及,领导节点在分片内广播当前区块的同时,分片内的节点把上一个区块写入本地账本。
14.根据权利要求13所述的跨分片交易处理方法,其特征在于,所述方法还包括:
领导节点等待上一个区块共识投票结束再封装当前区块。
15.根据权利要求13所述的跨分片交易处理方法,其特征在于,所述方法还包括:
领导节点收到广播的上一个区块时,对上一个区块进行验证,把与上一个区块中的交易互斥的交易先打包。
16.根据权利要求10所述的跨分片交易处理方法,其特征在于,所述交易打包过程还包括:
领导节点把交易打包进当前区块时,构建交易的Merkle根并写入当前区块的区块头。
17.根据权利要求16所述的跨分片交易处理方法,其特征在于,所述构建交易的Merkle根并写入当前区块的区块头包括:
根据目标分片地址把交易聚类,发送至同一目标分片的交易按交易的哈希值排序,对发送至同一目标分片的交易构建Merkle子树,把不同的Merkle子树合并为一个完整的Merkle树,Merkle树的Merkle根写入当前区块的区块头。
18.根据权利要求10所述的跨分片交易处理方法,其特征在于,所述交易发送过程包括:
领导节点把发送至同一目标分片的交易批量发送至对应的目标分片,同时广播区块头和所有Merkle子树的根。
19.根据权利要求11所述的跨分片交易处理方法,其特征在于,所述块摘要至少包括:
当前区块的序列号、当前slot序号、区块哈希值和领导节点的身份标识。
20.一种跨分片交易处理方法,应用于权利要求9所述的区块链系统,在目标分片执行,包括:
接收源分片发送的区块,对区块内属于本分片处理的交易进行验证和执行。
21.根据权利要求20所述的跨分片交易处理方法,其特征在于,所述对区块内属于本分片处理的交易进行验证包括:
接收源分片批量发送的交易,根据交易的哈希值重建对应的Merkle子树的根,根据其他Merkle子树的根重建Merkle根;
比较重建的Merkle根和区块头中的Merkle根,相同则表示交易有效可执行,否则交易无效。
22.根据权利要求20所述的跨分片交易处理方法,其特征在于,所述方法还包括:
目标分片内的节点根据分片节点表验证区块头中是否存在非法的节点签名。
23.一种区块链分片系统,其特征在于,包括源分片和目标分片;
源分片用于实现权利要求10~19任一项所述的跨分片交易处理方法,目标分片用于实现权利要求20~22任一项所述的跨分片交易处理方法。
24.一种电子设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1~8任一项所述的区块链分片方法,和/或权利要求10~19,和/或权利要求20~22任一项所述的跨分片交易处理方法。
25.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1~8任一项所述的区块链分片方法,和/或权利要求10~19,和/或权利要求20~22任一项所述的跨分片交易处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310305231.2A CN116582239A (zh) | 2023-03-20 | 2023-03-20 | 一种区块链分片方法、区块链系统及跨分片交易处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310305231.2A CN116582239A (zh) | 2023-03-20 | 2023-03-20 | 一种区块链分片方法、区块链系统及跨分片交易处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116582239A true CN116582239A (zh) | 2023-08-11 |
Family
ID=87542041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310305231.2A Pending CN116582239A (zh) | 2023-03-20 | 2023-03-20 | 一种区块链分片方法、区块链系统及跨分片交易处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116582239A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117812092A (zh) * | 2024-02-28 | 2024-04-02 | 中国信息通信研究院 | 基于谓词的区块压缩传输方法和装置、设备和介质 |
-
2023
- 2023-03-20 CN CN202310305231.2A patent/CN116582239A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117812092A (zh) * | 2024-02-28 | 2024-04-02 | 中国信息通信研究院 | 基于谓词的区块压缩传输方法和装置、设备和介质 |
CN117812092B (zh) * | 2024-02-28 | 2024-05-14 | 中国信息通信研究院 | 基于谓词的区块压缩传输方法和装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI711287B (zh) | 基於區塊鏈的交易共識處理方法及裝置、電子設備 | |
Duan et al. | BEAT: Asynchronous BFT made practical | |
Miller et al. | The honey badger of BFT protocols | |
Yin et al. | HotStuff: BFT consensus with linearity and responsiveness | |
CN109345386B (zh) | 基于区块链的交易共识处理方法及装置、电子设备 | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
Malkhi et al. | Maximal extractable value (mev) protection on a dag | |
CN110796547A (zh) | 一种基于联盟区块链的改进的实用拜占庭容错系统 | |
Lu et al. | Bolt-dumbo transformer: Asynchronous consensus as fast as the pipelined bft | |
Zhang et al. | Pace: Fully parallelizable bft from reproposable byzantine agreement | |
CN111901350A (zh) | 区块链系统、数据处理方法、计算机设备及存储介质 | |
Chen et al. | DEXON: a highly scalable, decentralized DAG-based consensus algorithm | |
CN110851537A (zh) | 一种基于区块链分片技术的共识方法 | |
US11275564B2 (en) | Decentralized random number generator | |
Wang et al. | Byzantine fault tolerant algorithm based on vote | |
CN116582239A (zh) | 一种区块链分片方法、区块链系统及跨分片交易处理方法 | |
CN113064764B (zh) | 在区块链系统中执行区块的方法及装置 | |
Li et al. | ISCP: An Improved Blockchain Consensus Protocol. | |
Zhang et al. | {WaterBear}: Practical Asynchronous {BFT} Matching Security Guarantees of Partially Synchronous {BFT} | |
Asayag et al. | Helix: A scalable and fair consensus algorithm resistant to ordering manipulation | |
Li et al. | CoChain: High concurrency blockchain sharding via consensus on consensus | |
WO2019024631A1 (zh) | 区块链轻量化处理方法、区块链节点及存储介质 | |
CN117251889A (zh) | 区块链共识方法、相关装置和介质 | |
CN111756545A (zh) | 一种基于区块链数字签名技术的合同认证方法 | |
CN115941680A (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 |