CN114391241B - 具有可调整法定数量的区块链分片 - Google Patents
具有可调整法定数量的区块链分片 Download PDFInfo
- Publication number
- CN114391241B CN114391241B CN202080064133.9A CN202080064133A CN114391241B CN 114391241 B CN114391241 B CN 114391241B CN 202080064133 A CN202080064133 A CN 202080064133A CN 114391241 B CN114391241 B CN 114391241B
- Authority
- CN
- China
- Prior art keywords
- network
- node
- shard
- blockchain
- block
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 77
- 238000012795 verification Methods 0.000 claims abstract description 25
- 230000003993 interaction Effects 0.000 claims description 116
- 239000012634 fragment Substances 0.000 claims description 75
- 230000008569 process Effects 0.000 claims description 31
- 230000015654 memory Effects 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 16
- 238000005192 partition Methods 0.000 abstract description 32
- 230000000694 effects Effects 0.000 description 37
- 238000004891 communication Methods 0.000 description 23
- 230000009471 action Effects 0.000 description 13
- 230000001360 synchronised effect Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000012546 transfer Methods 0.000 description 11
- 230000010076 replication Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 238000005070 sampling Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 6
- 238000013467 fragmentation Methods 0.000 description 5
- 238000006062 fragmentation reaction Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002040 relaxant effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008521 reorganization Effects 0.000 description 2
- FMFKNGWZEQOWNK-UHFFFAOYSA-N 1-butoxypropan-2-yl 2-(2,4,5-trichlorophenoxy)propanoate Chemical compound CCCCOCC(C)OC(=O)C(C)OC1=CC(Cl)=C(Cl)C=C1Cl FMFKNGWZEQOWNK-UHFFFAOYSA-N 0.000 description 1
- 240000005589 Calophyllum inophyllum Species 0.000 description 1
- 241000544061 Cuculus canorus Species 0.000 description 1
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 101100284769 Drosophila melanogaster hemo gene Proteins 0.000 description 1
- 241001379910 Ephemera danica Species 0.000 description 1
- 241000283242 Kogia Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003053 immunization Effects 0.000 description 1
- 238000002649 immunization Methods 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 238000010200 validation analysis 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
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3265—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种方法包括由节点计算机向网络分片中的多个节点计算机广播包括区块链的新区块的提议消息。所述节点计算机可从所述多个节点计算机接收至少一个投票消息,所述至少一个投票消息指示对所述新区块的验证。所述节点计算机可在预定时间量之后接收多个预提交消息,所述多个预提交消息包括至少所述新区块和基于所述至少一个投票消息创建的区块证书。如果所述多个预提交消息中的接收到的预提交消息的数目大于与所述网络分片相关联的法定数量值,则所述节点计算机可将所述新区块提交给所述区块链。
Description
相关申请交叉引用
本申请为PCT申请,其要求2019年9月11日提交的第62/898,905号美国临时申请的权益,所述美国临时申请出于所有目的以全文引用的方式并入本文中。
背景技术
分片是一种根据网络大小扩展区块链协议的方法:网络被划分(例如,经由随机取样)为被称作分片的小群验证器节点,其通过代表网络中的所有节点达成拜占庭共识(Byzantine consensus)来并行处理交互。分片可以比整个网络快得多的速率对交互(例如,交易)进行签名,这是因为分片的大小较小,而且共识协议引发的消息复杂性至少是二次的(在参与者数目方面)。
尽管如此,由于可能形成其中恶意节点占据足够大部分的网络分片的变节分片,从而损害整个分片协议的安全,因此不能任意地使分片较小。实际上,此类事件的概率随着网络分片大小的倒数呈指数增长,从而产生实际上由数百个节点组成的大分片。
本发明的实施例单独地以及共同地解决了这些问题和其它问题。
发明内容
本公开的一个实施例涉及一种方法,其包括:由节点计算机向网络分片中的多个节点计算机广播包括区块链的新区块的提议消息;由所述节点计算机从所述多个节点计算机接收至少一个投票消息,所述至少一个投票消息指示对所述新区块的验证;在预定时间量之后,由所述节点计算机接收包括至少所述新区块和基于所述至少一个投票消息创建的区块证书的多个预提交消息;以及如果所述多个预提交消息中的接收到的预提交消息的数目大于与所述网络分片相关联的法定数量值,则由所述节点计算机将所述新区块提交给所述区块链。
本公开的另一实施例涉及一种被编程为执行上述方法的节点计算机。
关于本发明的实施例的其它细节可参见具体实施方式和附图。
附图说明
图1示出实施例的分片变节与先前工作的比较。
图2示出根据实施例的区块链***。
图3A示出根据实施例的节点计算机。
图3B示出根据实施例的客户端装置。
图4示出在RapidChain中对大小N=2000并且F=33%的网络中的网络分片进行取样的故障概率曲线图。
图5示出根据实施例的从大小N=2000并且F=33%的网络获得不同类型的分片的概率曲线图。
图6示出当节点计算机加入和/或离开时交互到分片表的重组。
图7示出说明根据实施例的区块提交方法的流程图。
图8示出根据实施例的跨分片验证方法的流程图。
图9示出实施例的分片变节与先前工作的额外比较。
图10示出根据实施例的分片大小在部分同步中如何影响无故障时间(time-to-failure)的曲线图。
图11示出根据实施例的法定数量大小的曲线图。
图12示出根据实施例的四个网络分片的图解说明。
具体实施方式
在论述本发明的实施例之前,可以进一步详细描述一些术语。
“区块链”可以是通过密码术关联的不断扩充的记录列表。区块链可包括一系列区块。区块链中的每个区块可包括一个或多个历史交易的电子记录以及元数据。在一些实施例中,区块链中的区块可通过包括对前一区块(例如,前一区块的散列输出)的参考而相联系。区块链中的每个新区块的内容可基于新交易和区块链中的先前区块而以算法方式确定。区块链中的信息可以是不可变的。区块链可被分片成存储在委员会处的区块链分片。例如,一个委员会可存储区块链的一个分片,而不同委员会可以存储区块链的不同分片。
“验证网络”可包括被编程为提供对交互的验证的一组计算机节点。验证网络可以是使用经由通信链路互连的若干计算机节点的分布式计算***。验证网络可使用任何适当网络实施,所述网络包括内联网、互联网、蜂窝网络、局域网或任何其它此类网络或其组合。在一些情况下,节点可由第三方或管理实体独立操作。此类实体可连续地添加或从验证网络移除计算机节点。在一些实施例中,验证网络中的节点可以是完整节点。
“节点”可以是线或路径相交或分支的点,或者可以是中心点或连接点。在一些情况下,节点可以是“计算机节点”,其可以是任何计算机或可在含有所述节点的网络内独立地操作的计算机群组。在一些实施例中,可完全验证区块链中的每个区块和交互的节点可表征为“完整节点”。在一些情况下,完整节点可存储完整区块链(即,每个区块和每个交互)。在一些情况下,客户端装置可以是验证网络中的节点计算机。
“网络分片”可包括网络的节点(例如,节点计算机)的子群组。网络分片可包括网络的任何合适数目的节点计算机,并且网络中可存在任何合适数目的网络分片。在一些情况下,网络分片中的节点计算机可以是区块链网络中的验证器节点。网络分片中的节点计算机可维持区块链或区块链的一部分。在一些实施例中,由网络分片维持的区块链可以是区块链分片。“区块链分片”可以是区块链的一部分。所述部分可包括区块链的数个区块,但不包括整个区块链。在一些实施例中,验证网络中的每个网络分片可包括相同数目的节点计算机。
“参考网络分片”可包括可作为网络中节点计算机的参考的网络分片。参考网络分片可包括可周期性地重新配置网络中的网络分片的数个节点计算机。参考分片的节点计算机可维持并更新节点到分片表和交互到分片表。参考分片的节点计算机可将对节点到分片表和交互到分片表的更新广播到网络的网络分片。参考分片可包括诚实多数节点计算机。
“区块”可包括保持一个或多个交互的记录的数据元素,并且可以是区块链的子部件。区块可包括区块标头和区块主体。区块可包括被散列并编码成梅克尔树(Merkle tree)的一批有效交互。每个区块可包括区块链中前一区块(或多个区块)的密码散列。
“区块标头”可以是包括关于区块的信息的标头。区块标头可用于标识区块链中的特定区块。区块标头可包括任何合适的信息,例如前一散列、梅克尔根、时间戳和临时数。在一些实施例中,区块标头还可包括难度值。
“交互”可以包括互惠作用或影响。“交互”可以包括各方、各装置和/或各实体之间的通信、联系或交换。示例交互包括两方之间的交易和两个装置之间的数据交换。在一些实施例中,交互可以包括用户请求访问安全数据、安全网页、安全位置等。在其它实施例中,交互可以包括支付交易,在所述支付交易中,两个装置可以交互以促进支付。
“交互数据”可以是与交互相关联的数据。例如,交互可以是将数字资产从一方转移到另一方。例如,交互数据可以包括交易金额和未花费的交易输出(UTXO)。在一些实施例中,交互数据可指示为交互一方的不同实体以及被交换的价值或信息。交互数据可包括价值、与发送方相关联的信息(例如令牌或账户信息、别名、装置标识符、联系地址等)、与接收方相关联的信息(例如令牌或账户信息、别名、装置标识符、联系地址等)、一次性值(例如随机值、临时数、时间戳、计数等)和/或任何其它合适的信息。交互数据的实例可以是交易数据。
“数字资产”可以指与价值关联的数字内容。在一些情况下,数字资产还可指示价值的转移。例如,数字资产可包括指示货币值(例如法定货币或密码货币)的转移的数据。在其它实施例中,数字资产可对应于其它非货币值,例如访问权限数据(例如用于访问信息的授权使用次数或时间分配)和所有权数据(例如数字权限数据)。数字资产还可以包括关于一个或多个数字资产属性的信息。例如,数字资产可以包括将价值从一个实体或账户转移到另一实体或账户的有用信息。数字资产还可以包括汇款信息(例如标识发送实体的信息)。在一些实施例中,数字资产可以包括以下中的一个或多个:数字资产标识符,值(例如,金额、原始货币类型,目的地货币类型等),转账费用信息,货币兑换率,***号,购买订单号,时间戳,发送实体标识符(例如,发送方企业ID),发送实体账号,发送实体名称,发送实体联系信息(例如,地址、电话号码、电子邮件地址等),发送机构信息(例如,金融机构名称、企业ID和BIN),接收方实体标识符(例如,接收方企业ID),接收方实体账号,接收方实体名称,接收方实体联系信息(例如,地址、电话号码、电子邮件地址等)和/或接收机构信息(例如,金融机构名称、企业ID和BIN)。当接收到数字资产时,接收方可具有足够的信息以继续针对所指示价值的结算交易。
术语“验证”和其派生词可以包括利用信息来确定基础主题在一组给定的情况下是否有效的过程。验证可包括任何信息比较以确保某些数据或信息是正确的、有效的、准确的、合法的和/或信誉良好的。
“法定数量值”可包括投票阈值数目。验证网络中的每个网络分片可具有指示执行特定功能所需的投票数目的法定数量值。例如,网络分片的领导者节点可针对区块链提议新区块。网络分片的每个节点计算机都可基于一个或多个准则就新区块是否应被包括在区块链中进行投票。如果至少法定数量值数目的节点计算机投票将新区块包括在区块链中,则所述新区块可被包括在所述区块链中。
“累加器值”可包括对集的约束性提交。累加器可以是单向隶属函数。累加器可将一个或多个值(例如,金额、输出等)累加到累加器值中。累加器可应答关于潜在候选值是否是所述(例如,累积值的)集的成员的查询,但不揭示所述集的单个成员。
“梅克尔树”可以是可编码交互数据的数据结构。梅克尔树可以是平衡的二叉树,其中树的叶节点保持某一值,并且每个非叶节点可存储至少两个子节点的值的串接的散列。当将新叶添加到梅克尔树时,可重新计算整个树。例如,梅克尔树中的每个节点可被确定为至少两个子节点的散列。
“梅克尔证明”可以是梅克尔树中包括交互的证明。梅克尔证明可包括从梅克尔树的梅克尔根到与交互标识符相关联的节点的路径以及路径中的每个节点的同胞节点。所述路径可包括将梅克尔根节点连接到与交互标识符相关联的节点的每个节点。
“视图编号”可包括标识特定节点计算机的值。视图编号可以是唯一地标识特定网络分片的领导者节点计算机的值。例如,网络分片的每个节点计算机可在任何广播消息中包括视图编号,然后检查接收到的消息以验证每个消息中的视图编号是相同的。这样,可验证网络分片中的每个节点计算机认同与所述视图编号相关联的特定节点计算机是当前历元的领导者节点计算机。
“区块证书”可包括可充当区块的证据或证明的数据项。区块证书可以是阈值签名。所述阈值签名可基于来自(例如,通过网络分片共享的)私钥的份额的单个签名份额而生成。例如,当节点计算机发送投票消息以投票将区块包括到区块链中时,节点计算机利用节点计算机的网络分片的秘密密钥的节点计算机的份额来对投票消息的散列摘要进行签名。投票消息上的签名的法定数量数目构成所述区块上的区块证书。
“提议消息”可包括提议动作或计划的消息。提议消息可包括将新区块包括在区块链中的提议。提议消息可由网络分片的节点计算机广播到网络分片的其它节点计算机。提议消息可包括要向网络分片提议的新区块。提议消息还可包括区块链中前一区块的视图编号和区块证书。
“投票消息”可包括针对动作或计划投票的消息。可响应于提议消息而提供投票消息。投票消息可包括所述消息是投票消息和/或投票的指示(例如,是、否、0、1等)。投票消息可包括视图编号和提议要添加到区块链的新区块(例如,如在提议消息中提出)。
“预提交消息”可包括指示对动作或计划的预提交的消息。如果网络分片中不存在疑义度,则可响应于投票消息而提供预提交消息。预提交消息可包括视图编号。预提交消息还可包括被提议添加到区块链(例如,如提议消息中提议)并且被投票添加到所述区块链(例如,如投票消息中投票)的新区块。预提交消息还可包括用于新区块的区块证书。
“提交交互请求消息”可包括请求对交互的提交的消息。提交交互请求消息可包括交互数据和一个或多个包括证明。可将提交交互请求消息从客户端装置发送给网络分片中的节点计算机,以请求将交互(例如,交易)包括在由网络分片维持的区块链中。
“包括证明”可包括某事物被包括在别的某事物中的证据。包括证明可包括未使用的交易输出(UTXO)等金额包括在或曾经包括在区块链的区块中的证据。例如,客户端装置可向第一网络分片请求金额x的包括证明,使得交易可在第二网络分片中提交。所述包括证明可证明由输入(例如,将在第二网络分片处使用的金额)参考的输出(例如,第一网络分片的UTXO)存储在维持第一网络分片的区块链中,并且在一些情况下,可证明已针对交易移除所述输出。包括证明可包括梅克尔树、区块标头,以及与区块标头相关联的区块被包括在区块链中的提交证明。
“关断消息”可包括请求关闭的消息。关断消息可请求关闭网络分片。网络分片的多个诚实节点计算机可生成关断消息并将关断消息发送给参考网络分片,以请求在当前历元关闭所述网络分片。关断消息可包括关闭网络分片的请求以及网络分片标识符。在一些实施例中,关断消息可包括请求的关断的原因(例如,投票不活动、预提交不活动、视图改变不活动、视图改变界限等)。在一些实施例中,如果不活动定时器达到零(例如,指示网络分片的状态为不活动),则可创建关断消息。
“不活动定时器”可包括用于检测不活动状态的机制。不活动定时器可由网络分片中的每个节点计算机在本地设置。不活动定时器可被设置成预定时间量。例如,可将不活动定时器设置为消息递送时间的上界的两倍的值(例如,2Δ)。节点计算机可在执行节点计算机期望有响应的动作之后将不活动定时器设置到预定时间量。不活动定时器可随着时间推移而无动作发生时倒计时到零。
“提议表更新消息”可包括提议已更新表的消息。提议表更新消息可包括节点到分片表。提议表更新消息可由参考网络分片中的一个或多个节点计算机广播到网络中的多个网络分片中的节点计算机。
“节点到分片表”可包括将计算机节点与网络分片相关联的表。节点到分片表可以是将网络中的每个计算机节点与网络中的网络分片相关联的参考表。节点到分片表可指示针对当前历元将哪些计算机节点指派给哪些网络分片。在一些实施例中,节点到分片表可包括作为表中的网络分片之一的空值网络分片。空值网络分片可以是将未处于在当前历元期间处理交互的网络分片中的计算机节点分组在一起的网络分片。节点到分片表可由网络中的参考网络分片维持。节点到分片表可包括节点计算机的节点计算机标识符和网络分片的分片标识符。在一些实施例中,节点到分片表可包括每个节点计算机的IP地址或其它通信信息。
“交互到分片表”可包括将交互与网络分片相关联的表。交互到分片表可以是将每个新交互(例如,提供到网络的新交互)与网络中的网络分片相关联的参考表。交互到分片表可由网络中的参考网络分片维持。参考网络分片可基于新交互的确定的散列将新交互与网络分片相关联。
“提交过程”可包括为对值进行提交而采取的一系列步骤。提交过程可包括网络分片的节点计算机确定是否提交特定动作(例如,在区块链中包括新区块、更新节点到分片表等)以及提交所述动作。可在节点计算机(例如,领导者节点)向网络分片中的多个节点计算机提议动作之后发生提交过程。提交过程可包括提供关于提议的动作的投票消息和预提交消息。提交过程可至少基于预提交消息而产生对所述动作的提交。在一些实施例中,可能需要法定数量值数目的预提交消息来对动作进行提交。
“用户”可包括个人。在一些实施例中,用户可与一个或多个个人账户和/或客户端装置相关联。
“客户端装置”可以是能够向节点计算机发送数据和/或从节点计算机接收数据的计算装置。客户端装置的示例可包括移动电话、智能手机、个人数字助理(PDA)、笔记本电脑、台式计算机、服务器计算机、例如汽车的车辆、轻型客户端装置、平板PC等。另外,用户装置可以是任何类型的可穿戴技术装置,例如,手表、耳机、眼镜等。用户装置可以包括能够处理用户输入的一个或多个处理器。用户装置还可以包括用于接收用户输入的一个或多个输入传感器。用户装置可以包括用户可以操作的任何电子装置,所述电子装置还可以提供与网络的远程通信能力。远程通信能力的实例包括使用移动电话(无线)网络、无线数据网络(例如,3G、4G或类似网络)、Wi-Fi、Wi-Max,或可提供对例如互联网或专用网络等网络的访问的任何其它通信介质。
“处理器”可以包括处理某事的装置。在一些实施例中,处理器可以包括任何合适的一个或多个数据计算装置。处理器可以包括一起工作以实现期望的功能的一个或多个微处理器。处理器可以包括CPU,该CPU包括至少一个高速数据处理器,该高速数据处理器足以执行程序部件以用于执行用户和/或***生成的请求。CPU可以是微处理器,诸如AMD的Athlon、Duron和/或Opteron;IBM和/或Motorola的PowerPC;IBM和Sony的Cell处理器;Intel的Celeron、Itanium、Pentium、Xeon和/或XScale;和/或类似的处理器。
“服务器计算机”可以包括功能强大的计算机或计算机群集。例如,服务器计算机可以是大型主机、小型计算机集群或像单元一样工作的一组服务器。在一个示例中,服务器计算机可以是耦合到网络服务器的数据库服务器。服务器计算机可以包括一个或多个计算设备,并且可以使用多种计算结构、布置和编译中的任一种来服务于来自一个或多个客户端计算机的请求。
“存储器”可以是可存储电子数据的任何合适的一个或多个装置。合适的存储器可包括非瞬态计算机可读介质,其存储可由处理器执行以实现所要方法的指令。存储器的示例可包括一个或多个存储器芯片、磁盘驱动器等。此类存储器可使用任何合适的电气、光学和/或磁性操作模式来操作。
实施例可包括可扩展区块链分片协议,所述协议通过创建显著更小的网络分片来实现远高于现有解决方案的吞吐量。为了确保恶意节点不会损害协议的完整性(例如,双重支付资金),在提交新的交易区块时,可调整共识协议的法定数量大小。取决于每个网络分片中允许的变节节点的数目,法定数量大小的选择方式可使得:(1)恶意节点在任何分片中永不可形成法定数量,以及(2)诚实节点在至少一些网络分片中始终可形成法定数量。此外,本发明的实施例可包括跨分片交易验证协议,所述协议减少分片间通信,并消除维持交易区块的存储开销。
I.上下文
各种实施例可利用拜占庭容错状态机复制(Byzantine fault tolerant state-machine replication,BFT SMR)、区块链分片、累加器和无状态区块链,其中的每一者在下节中予以描述。
A.拜占庭容错状态机复制
在拜占庭容错状态机复制中,一组节点可尝试在没有第三方帮助的情况下、甚至在一些节点可能由拜占庭敌手控制时针对一系列值达成一致,所述拜占庭敌手可制造任意偏离协议的故障节点。状态机复制协议的正确性可基于两个特性来评估:安全性和活性。安全性可保证所有诚实节点处理相同的交互(例如,交易)序列。活性可确保所有正确的交互最终都被处理(例如,交互不会无限期地保持未决)。状态机复制的可解性可取决于根据网络同步假设而允许的故障节点的最大数目。例如,在同步网络假设下,可能需要诚实多数节点[6]。在部分同步网络下,变节节点的分率上界限可例如为1/3。此外,确定性异步协议无法解决状态机复制[9]。为了避免这种不可能和/或为了实现实用性,各种实施例可提供概率性的安全性或活性保证。在后一种情况下,实施例可提供最终活性(或最终一致性),因为节点可以一的概率来决定值,而无时间限制。
B.区块链分片
分片的区块链协议可结合加入网络的参与者的数目通过允许多个节点委员会并行处理传入的交易来增大交互处理能力。因此,将整个协议在每一共识轮次中处理的交互总数目乘以委员会的数目。
Luu等人[3]提出Elastico,一种用于公共区块链的分片的共识协议。在每个共识历元中,每个参与者都会基于从区块链最后一个状态获得的历元随机性来解决工作量证明(proof-of-work,PoW)难题。PoW的最低有效位用于确定相互协调以处理交易的委员会。Kokoris-Kogias等人[4]提出OmniLedger,一种试图修复Elastico的一些问题的分片分布式分类账协议。假设慢速自适应敌手可在每个历元开始时攻陷多达1/4分率的节点,所述协议在每个历元(约一天一次)运行全局重新配置协议,以允许新的参与者加入协议。OmniLedger使用采用同步通道的慢速身份区块链协议来生成身份并将参与者指派给委员会。在每个历元中使用抗偏差随机生成协议生成新的随机性,所述协议依赖于可验证随机函数(VRF)[10]而以类似于Algorand的抽签算法[11]的方式进行不可预测的领导者选举。
Zamani等人[5]提出RapidChain,这是一种在1/3变节背景下的分片的区块链协议,其可在未采用任何受信任设置的情况下实现对处理交易的通信、计算和存储开销的完全分片。RapidChain采用了一种委员会内共识算法,所述算法可经由区块管线、用于大区块的闲聊协议(gossiping protocol)和基于cuckoo规则的重新配置机制[12]来实现高吞吐量。
C.累加器
累加器可以是对集的约束性提交。在一些实施例中,累加器可以是提供集的简洁表示的工具,可在其中查询成员资格并且可能查询非成员资格。由于“无状态”区块链模型[13],[14],[15],可结合区块链使用累加器。在无状态区块链模型中,验证器在UTXO或账户集上维持累加器,而不是显式地维持账户集。客户端可通过侦听网络并提供有关其交易的成员资格证明来维持显式集以支出其UTXO或余额。各种实施例可利用在[15]中描述的RSA累加器方案。简单来说,根据各种实施例的累加器可执行以下功能:
1.Add(A,x).给定累加器A和元素x,将x加到A。
2.Delete(A,x).给定累加器A和元素x,如果A中存在x,则从A删除x。
3.GenMemWitness(S,x).给定集S和元素x∈S,生成用于x的成员资格见证w。
4.GenNonMemWitness(S,y).给定集S和元素生成用于y的非成员资格见证u。
5.VerMem(A,x,w).给定包括集S的元素的累加器A、元素x和成员资格见证w,在w=GenMemWitness(S,x)的情况下返回1,否则返回0。
6.VerNonMem(A,y,u).给定包括集S的元素的累加器A、元y和非成员资格见证u,在u=GenNonMemWitness(S,y)的情况下返回1,否则返回0。
对于适当选择的N,RSA累加器基于单向RSA函数a→gamod N。集{a1,...,an}由累加器紧凑地表示。用于元素ai的见证w像A那样建构,但跳过指数ai,并且检查所述见证通过检查/>等于A来完成。将元素{b1,...,bm}添加到累加器通过将A升高“更新”{b1,...,bm}来完成,而对于见证w同样如此。
RSA累加器的大小是恒定的(单个群组元素),并且其见证更新与其它集合元素分开。相比之下,梅克尔树的大小是线性的(例如,按叶的数目),并且对一个元素的更新会修改内部树节点,从而使其它元素的梅克尔证明无效。另外,虽然对RSA累加器的更新可分批进行,但梅克尔树更新需要对数时间来用于每个元素。
D.无状态区块链
术语无状态区块链可包括区块链设计,其中(验证器)节点可处理交易而不需要所述节点存储和维持显式区块链状态。这降低了节点的存储要求,并且使新节点更容易加入网络。
在有状态区块链中,节点必须存储显式区块链状态,所述状态可通过以相应次序处理区块而构建。每当新节点加入网络时,新节点必须通过从现有节点获取最新状态来使其状态与网络的其余部分同步。所述状态可能非常大,从而使得这种同步过程耗时。此外,随着状态变大,一些节点可能会离开所述网络,因为它们无法满足存储要求。
对于无状态区块链,节点只需要在区块链状态上维持累加器,而不是显式地维持状态本身。鉴于累加器的大小极小(例如,在RSA累加器的情况下,仅单个群组元素[15]),这有效地缓解了节点的存储问题。此外,在能够参与网络之前,新节点仅获得最新累加器就足够了。
此模型中的折衷是交易规模增大。每个交易可带有其每个输入的成员资格证明,其证明所述输入包含在累加器内(例如,其未被使用)。要生成此类证明,客户端必须知晓显式区块链状态。为此,客户端可侦听网络的区块广播,并自行维持副本,或依靠代表客户端维持所述状态的完整副本并且始终可用的半可信实体。
例如,考虑某一时间点具有UTXO集U的基于UTXO的区块链。此时,验证器仅在U上计算累加器。另一方面,客户端明确知晓U,并提交带有相对于U生成的关于其输入的成员资格证明的交易。假设网络选择验证器节点P来提议下一区块。P从其存储器中选择交易区块,验证其关于U的成员资格证明,并相应地更新累加器。然后,所述验证器节点广播显式区块以及最新累加器状态。接收此区块的其它验证器通过处理区块中包含的交易来验证累加器状态,更新其累加器,并且仅舍弃区块内容。
II.简介
大规模采用加密货币和区块链协议的主要障碍之一是它们的可扩展性限制,主要体现在它们可处理交互的速率上。这主要是由于需要在许多地理上分散的节点之间复制数据以增大针对故障和集中操控的弹性。
已提出若干可扩展性方法,通常分为两类:链上和链外可扩展性。链上方法旨在提高可扩展性,通常通过改进基本的共识机制、添加额外的信任假设和/或将处理任务仅委托给(验证器)节点的小子集(例如,委员会或分片)来进行。链外方法通过允许各方经由直接的点对点通信进行交易并且仅偶尔与区块链交互以解决纠纷或提取资金来最大限度地减少区块链本身的使用。
两种扩展方法都取得了进展;然而,链上扩展滞后至少1-2个数量级。另一方面,只有通过施加某些限制,链外机制才会实现更好的可扩展性,所述限制例如抵押存款和/或如在微支付中针对高频低值交易等[1]。对于需要高可靠性、高值交互的即时结算的应用,例如实时支付[2],链上扩展更适用,并且可实现更高的交互吞吐量。此外,对于广泛采用链外通道而言,链上扩展仍然是必要的,因为打开和关闭这些通道仍涉及链上交互,其速率取决于用户需要多频繁地对交易提出异议、“取现”其资金或增大其通道容量。
链上扩展进展较慢主要归因于跨节点复制交易分类账的二次开销。区块链分片机制最近取得了重大进展[3],[4],[5]。在这些协议中,每个网络分片的成员运行拜占庭容错(BFT)状态机复制(SMR)协议以建构其局部区块链。随着新节点加入***,新分片被创建,并且因此***的吞吐量随着***的大小线性。
现有的分片协议以一定方式对其分片进行取样,使得所有分片都满足SMR的两个特性:安全性和活性。安全性确保网络分片内的所有诚实节点都维持相同的状态,而活性则保证网络分片处理指派给它的(有效)交易。为了在网络分片中实现活性和安全性这两者,网络分片中的变节节点的分率必须小于某一常数,其取决于以下基本网络假设:众所周知,如果变节节点的分率在同步网络中超过1/2以及在部分同步网络中超过1/3,则在网络分片中不可能实现活性和安全性[6]。
本文所述的实施例分别考虑了SMR的安全性和活性特性,以示出即使对相对小的分片进行采样,也可确保所有网络分片的安全性,并且可确保一些网络分片的活性。在此类设置下,协议是安全的(在定理4中正式确定),因为当一些分片处理交易时,所有分片都是安全的并且是活跃的(在定理5中正式确定)。实施例通过调整SMR的法定数量大小参数来实现此类设置,所述法定数量大小参数可以是确保安全性和活性特性所需的诚实节点的最小数目。
实施例可将法定数量大小参数q设置成某个值,使得网络分片中具有q个或更多个变节节点的概率足够低,并且具有q个或更多个诚实节点的概率足够高。正因为如此,高概率地,实施例最终形成网络分片,其中一些实施例具有q个或更多个诚实节点,并且所有实施例具有严格小于q个变节节点。具有q个或更多个诚实节点的网络分片被称为超诚实分片,而具有严格小于q个诚实节点和q个变节节点的网络分片被称为安全分片。通过使用保证超诚实网络分片的活性和安全性两者以及仅保证安全网络分片的安全性的分片内SMR协议,实施例确保了协议的安全性和活性。
A.实施例
本文描述了在交易吞吐量和确认时延方面可超越目前先进技术而扩展的分片区块链协议。
1.可调整法定数量
对法定数量大小q进行调整的可调整法定数量的概念由实施例在分片的区块链***的上下文中引入,所述分片的区块链***在每个网络分片内利用SMR。先前的结果对其网络分片进行取样,使得所有网络分片都满足SMR的活性和安全性特性。可调整法定数量技术允许***通过允许一些分片仅满足安全性特性来对SMR特性放宽要求。随后,可调整法定数量可显著缩小网络分片大小。在一些实施例中,法定数量值可以是预定值。例如,可在广播新区块以包括在区块链中之前确定所述值。
2.具有可调整法定数量的分片的区块链
开发了一种分片的无许可(permissionless)区块链协议,所述协议使用可调整法定数量放宽来提高其性能。实施例在吞吐量和时延方面改进了同步和部分同步设置中的目前先进技术。
3.无锁、客户端驱动、跨分片验证
在UTXO模型中描述一种新的跨分片交易验证协议,其经由客户端驱动的验证协议使跨分片通信减到最少。实施例可通过避免严格的原子性来消除维持交易锁的存储开销。另外,在原子性故障的情况下,实施例可维持与嵌入式回滚机制的一致性。最后,与[4]和[5]中的先前分片协议不同,实施例可抵抗针对跨分片协议的重放攻击[7]。
4.分片的设置中的无状态区块链
各种实施例将无状态区块链模型调适到分片的设置中。实施例可利用无状态区块链来解决相对于网络分片过程存在的一些独特问题。实施例还可实现通过显著减小区块链状态的大小来使分片的区块链的重新配置阶段更高效。
B.方法和***的概述
在本节中,呈现实施例的概述。具体地说,一个实施例可包括可调整法定数量,这允许***对比现有区块链分片协议小得多的分片进行取样(参看表1)。如本文所展示,这点可在不牺牲***的完整性的情况下实现。
考虑经由对等网络连接的N个节点,其中每个节点仅连接到恒定数目的节点。节点可通过向整个网络或在节点的子集(例如,网络分片)内传播消息来彼此通信。实施例在称为历元的固定时间段内进行。第一历元可通过执行一次性引导协议开始,所述协议可允许所有节点在随机位序列(例如历元随机性)上达成一致。接着,每个节点可使用历元随机性来学习(1)所有节点到网络分片的随机指派,以及(2)随后驱动分片内SMR的领导者序列。一旦形成网络分片,每个网络分片的成员就可运行同步BFT SMR协议来构建交易区块序列(例如,区块链)。此外,在一些实施例中,可通过跨网络分片打乱节点来周期性地重新配置网络分片,以防止自适应敌手控制网络分片。
如本文所论述,SMR协议可具有1)安全性和2)活性这两种特性。在无分片设置中,仅满足安全性或仅满足活性特性可能无足轻重。例如,节点可通过什么也不做来轻易地满足安全性。鉴于所有节点都在同一状态上开始,因此它们不可能在什么也不做之后最终进入不同状态。为了满足活性,节点可能仅在本地处理每个交易,而不关注其它节点的状态。然而,在这种情况下,不存在跨节点的一致复制。对这些特性中的任一个放宽要求并不会在无分片设置中提供有用的协议。
相反,实施例显示,在分片设置中对一些但非全部网络分片的活性放宽要求可提供多个益处。例如,假设每个网络分片都满足安全性,但有一些则不满足活性。实施例可因每个网络分片满足安全性(如在定理4中正式确定)而保证协议的安全性,并且协议因一些网络分片满足活性(如在定理5中正式确定)而展现活性。虽然对一些分片上的活性放宽要求可能会带来额外的挑战,例如处理路由到安全分片的交易,但实施例可进一步高效地解决这些问题。
根据一些实施例,对一些分片上的活性放宽要求的益处在于,与先前工作相比,获得更小的分片,同时维持类似的故障概率。由于分片较小,实施例提供较高吞吐量和较低确认时延。在图1中,曲线图示出实施例与RapidChain在示例设置下的比较,展示根据实施例对活性放宽要求可如何缩小网络分片大小以及因此提高网络中的网络分片总数目。在图1中,将RapidChain和各种实施例通过具有大小N=2000并且F=33%的弹性的网络进行比较。在此设置中,RapidChain的每个网络分片确保最多达50%的分片变节安全性和活性,而根据实施例的每个分片确保最多达30%的变节活性和最多达70%的变节安全性。此外,RapidChain创建具有200个节点的10个网络分片,其中对于RapidChain,网络分片的故障概率(例如,网络分片不满足安全性的概率)为1.9·10-7。相比之下,实施例可在相同设置中创建具有50个节点的40个分片。然而,根据实施例的***确保网络分片故障概率为8.6·10-8。此外,具有超诚实网络分片的概率为0.37。这意味着,既活跃又安全的超诚实网络分片的预期数目为14.8。
此外,为了对活性特性放宽要求,实施例可通过考虑网络大小N和网络弹性F(例如,网络中假设的变节节点的最大分率)来调整分片内SMR的法定数量大小参数q。例如,实施例可将q设置为某个值,使得在网络分片中,具有q个或更多个变节节点的概率足够低,并且具有q个或更多个诚实节点的概率足够高。具有q个或更多个诚实节点的网络分片可以是超诚实节点,并且具有严格小于q个诚实节点和q个变节节点两者的节点是安全节点。实施例可调整q,使得节点计算机的***处于仅具有高概率的超诚实和安全分片的设置中。通过利用保证超诚实分片的活性和安全性两者以及仅保证安全分片的安全性的SMR协议,实施例确保了网络的安全性和活性。
另外,实施例可处理安全分片。如本文所描述,安全分片可能仅确保安全性。在安全分片中,诚实节点始终维持相同状态,但并不保证所述网络分片处理交互(例如,在分片中的变节节点保持静默的情况下)。
实施例可通过利用此类网络分片内的诚实节点和参考网络分片来解决此问题。所述参考网络分片可以是杰出的诚实多数分片,其任务是周期性地重新配置网络分片(而例如其它分片的任务是处理交互)以及维持和更新各种查找表。例如,参考网络分片可维持两个查找表:1)节点到分片表,其示出哪个节点被指派给哪个分片,以及2)交互到分片表,其指定如何将交互指派给网络分片。
例如,令S为安全网络分片,其中假设网络分片中的变节节点保持静默。在足够长时间后,网络分片中的诚实节点将检测到S中活性的缺乏。节点可观察到它们无法处理交互,并且它们无法更换未能产生有效区块提议的网络分片领导者节点。在此时间之后,它们可生成投诉消息并将投诉消息提供给参考网络分片。在从S接收足够数目的投诉后,参考网络分片可更新所维持的查找表。例如,参考网络分片可将S的每个节点重新指派到节点到分片表中的特殊符号⊥(或表中其它合适的标识符),并将先前指派给S的交互重新指派给交互到分片表中的活动网络分片之一。因此,交互不再被路由到S,并且S的(诚实)节点停止参与分片内SMR。这在持续的历元中有效地关闭了S。
然而,在以下情况中会产生技术挑战:假设S内的变节节点诚实地参与,直到在变得静默之前的某个时间。此情况不同于先前示例,因为S的状态(例如,UTXO集)不是空的。假设由于重新指派,St接管了S的交易。为了代表S处理交易,St必须了解S的最新状态。换句话说,每当具有非空UTXO集的网络分片关闭时,***需要跨网络分片传输该状态。为了高效地实现这一点,实施例可利用无状态区块链模型,所述模型使用密码累加器来简洁地维持区块链状态。
III.模型和问题定义
本节描述可能描述为存在于实施例中的网络模型和威胁模型。
A.网络模型
实施例考虑具有N个节点的对等网络,所述N个节点通过例如[16]那样的防盗身份生成机制建立身份(例如,公钥/私钥),这可能要求每个节点解决关于由所有其它节点已验证的本地生成身份(例如,公钥)的计算困难的难题。在不丧失通用性并且类似于混合区块链协议[17]、[18]、[3]、[4]的情况下,实施例可假设共识协议中的所有参与者都具有等效计算资源。
此外,实施例可假设在网络中发送的所有消息都用发送者的私钥来认证。消息可通过保证在消息递送上存在已知上界Δ的同步闲聊协议[19]传播(例如,当诚实节点r1在时间t向另一诚实节点r2发送消息m时,r2在t+Δ之前接收到m)。然而,消息的次序未必被保留(例如,在r1首先发送m1然后发送m2的情况下,r2可能接收到m2,之后接收到m)。这可类似于无许可协议[3]、[20]、[4]、[21]所采用的同步模型。
B.威胁模型
实施例可考虑在任何时间控制最多达1/3的节点的概率多项式时间拜占庭敌手。变节节点可能不仅彼此共谋,还可能以任意方式(例如,通过发送无效或不一致的消息、通过保持静默等)偏离协议。类似于各种分片协议[17]、[22]、[18]、[4]、[21],敌手可以是历元自适应敌手(例如,慢速自适应敌手)。敌手可在协议的开始和/或每个历元之间选择变节节点集,但无法在历元内改变此集(例如,在节点在分片之间打乱后,敌手无法选择要攻陷哪个节点)。节点可能出于任何原因(例如,由于内部故障或网络故障)而在某一历元期间或在两个历元之间与网络断连。然而,在任何时刻,至少2/3的计算资源属于在线(即,在网络时间界限内响应)的诚实参与者。另外,各种实施例并不依赖于任何公钥基础设施或任何安全广播信道,但可假设存在防冲突散列函数所需的随机预言。
C.问题定义和特性
可假设一组交易由一组客户端(例如,客户端装置上的瘦客户端等)发送给节点计算机的网络,所述客户端可在区块验证过程外部,并且可能不属于网络分片。网络中的节点可将交互分批成区块,并且通过分片内SMR协议来提交所述区块。如果网络分片中的每个诚实节点都提交某一区块,则网络分片将提交所述区块。如果网络分片提交含有交易的区块,则所述网络分片提交交互。各种实施例可具有以下特性:
分片内安全性。如果S是安全分片或超诚实分片,并且如果S中的诚实节点在高度k处提交区块Bk,则S中的每个诚实节点最终在高度k处提交Bk。
分片内活性。当用户将有效交易T提交给超诚实分片S时,T最终由S提交。
可证明提交。网络分片S的每个提交的区块Bk都带有证明Bk是由S提交的提交证明
分片间安全性。一旦网络分片提交交易T,则任何分片都无法提交交易T'而使得T和T'冲突。
分片间活性。当用户将有效交易T提交给网络分片S时,S会提交T,或者S关闭并且另一分片S'提交T。
可扩展性。
IV.***
图2示出根据实施例的***200。***200可包括多个节点(例如,节点计算机)。例如,所述多个节点可包括节点202。所述多个节点中的节点可被分组成计算群组。在一些实施例中,一组节点可以是网络分片。例如,节点202以及四个其它节点可在网络分片204中。每个分片可具有法定数量的节点。例如,网络分片204可具有法定数量206。法定数量206可包括网络分片204中的5个节点中的三个节点。法定数量206可能并不总是如图2所指示的特定三个节点。实际上,法定数量206可以是为网络分片204维持的区块链(例如,区块链208)创建新区块所需的节点数目。网络分片204的节点可维持区块链208。区块链208的每个区块可包括可散列在一起的多个交互210(例如,在梅克尔树中以形成梅克尔根)。在一些实施例中,每个分片可维持不同的区块链。另外,在一些实施例中,每组节点(例如,网络分片204)的每个区块链也可被称为网络分片。
在一些实施例中,网络分片中的多个节点计算机是第一网络分片中的第一多个节点计算机,所述第一网络分片维持作为第一区块链的区块链并且与第一法定数量值相关联。***中还可存在与第二法定数量值相关联的在维持第二区块链的第二网络分片中的第二多个节点计算机。每个网络分片中的每个节点都能够直接或间接地与***中的每个其它节点通信。
为了简化说明,图2中示出某一数目的一组部件。然而,应理解,对于每种部件,本发明的实施例可包括不止一个。另外,本发明的一些实施例可包括比图2中所示的所有部件少或多的部件。
图2中的装置之间的消息可使用安全通信协议来发送,所述安全通信协议例如但不限于:文件传输协议(FTP);超文本传输协议(HTTP);安全超文本传输协议(HTTPS);SSL;ISO(例如,ISO 8583)和/或其类似者。通信网络可以包括以下中的任一个和/或组合:直接互连;因特网;局域网(LAN);城域网(MAN);作为因特网上节点的运行任务(OMNI);安全定制连接;广域网(WAN);无线网络(例如,采用例如但不限于无线应用协议(WAP)、I-模式等等的协议);等等。通信网络可以使用任何合适的通信协议以生成一个或多个安全通信信道。在一些实例中,通信信道可以包括安全通信信道,安全通信信道可以任何已知方式建立,例如通过使用相互认证和会话密钥,以及建立安全套接层(SSL)会话。
图3A示出根据实施例的节点计算机300的框图。示例性节点计算机300可包括处理器304。处理器304可耦合到存储器302、网络接口306和计算机可读介质308。计算机可读介质308可包括任何合适数目的模块。
存储器302可用于存储数据和代码。存储器302可在内部或在外部(例如,基于云的数据存储)耦合到处理器304,并且可包括易失性和/或非易失性存储器的任何组合,例如RAM、DRAM、ROM、快闪或任何其它合适的存储器装置。
计算机可读介质308可包括可由处理器304执行的代码,以用于执行包括以下方面的方法:由节点计算机向网络分片中的多个节点计算机广播包括区块链的新区块的提议消息;由所述节点计算机从所述多个节点计算机接收至少一个投票消息,所述至少一个投票消息指示对所述新区块的验证;在预定时间量之后,由所述节点计算机接收包括至少所述新区块和基于所述至少一个投票消息创建的区块证书的多个预提交消息;以及如果所述多个预提交消息中的接收到的预提交消息的数目大于与所述网络分片相关联的法定数量值,则由所述节点计算机将所述新区块提交给所述区块链。
网络接口306可包括可允许节点计算机300与外部计算机通信的接口。网络接口306可使得节点计算机300能够将数据传送到另一装置(例如,多个节点中的其它节点计算机等)以及从另一装置传送数据。网络接口306的一些示例可包括调制解调器、物理网络接口(例如以太网卡或其它网络接口卡(NIC))、虚拟网络接口、通信端口、个人计算机存储卡国际协会(PCMCIA)插槽和卡等。通过网络接口306启用的无线协议可包括Wi-FiTM。经由网络接口306传输的数据可呈信号的形式,所述信号可以是电信号、电磁信号、光信号或能够由外部通信接口接收的任何其它信号(统称为“电子信号”或“电子消息”)。可包括数据或指令的这些电子消息可经由通信路径或信道在网络接口306与其它装置之间提供。如上文所提到,可使用任何合适的通信路径或信道,例如,电线或电缆、光纤、电话线、蜂窝链路、射频(RF)链路、WAN或LAN网络、互联网或任何其它合适的介质。
图3B示出根据实施例的客户端装置350的框图。示例性客户端装置350可包括处理器354。处理器354可耦合到存储器352、网络接口356和计算机可读介质358。计算机可读介质358可包括任何合适数目的模块。
存储器352可用于存储数据和代码。存储器352可在内部或在外部(例如,基于云的数据存储)耦合到处理器354,并且可包括易失性和/或非易失性存储器的任何组合,例如RAM、DRAM、ROM、快闪或任何其它合适的存储器装置。
计算机可读介质358可包括可由处理器354执行的代码,以用于执行包括以下方面的方法:由客户端装置提供第一证明请求,所述第一证明请求包括对来自维持第一区块链的第一分片的第一包括证明的请求;由所述客户端装置从所述第一网络分片的第一节点计算机接收所述第一包括证明;由所述客户端装置提供第二证明请求,所述第二证明请求包括对来自维持第二区块链的第二分片的第二包括证明的请求;由所述客户端装置从所述第二网络分片的第二节点计算机接收所述第二包括证明;由所述客户端装置生成提交交互请求消息,所述提交交互请求消息包括交互数据以及所述第一包括证明和所述第二包括证明;以及由所述客户端装置将所述提交交互请求消息提供给维持第三区块链的第三分片,其中所述第三分片的第三节点计算机验证所述第一包括证明和所述第二包括证明,并且如果所述第一包括证明和所述第二包括证明有效,则至少将所述交互数据包括在所述第三区块链的新区块中。
网络接口356可与网络接口306类似,此处无需重复其描述。
V.方法
SMR协议可具有若干特性,包括安全性、活性、终止性和外部可证明性。安全性可包括:如果区块由任何诚实节点在某一位置提交,则每个诚实节点最终在同一位置提交所述区块。活性可包括:每个客户端请求最终由所有诚实节点提交。如果某个正确的节点通过证明π决定v并且所有正确的节点都可使用π验证v是决策,则可存在外部可证明性。
在一些实施例中,一种方法可包括由节点计算机向网络分片中的多个节点计算机广播包括区块链的新区块的提议消息。所述节点计算机可从所述多个节点计算机接收至少一个投票消息,所述至少一个投票消息指示对所述新区块的验证。所述节点计算机可在预定时间量之后接收多个预提交消息,所述多个预提交消息包括至少所述新区块和基于所述至少一个投票消息创建的区块证书。如果所述多个预提交消息中的接收到的预提交消息的数目大于与所述网络分片相关联的法定数量值,则所述节点计算机可将所述新区块提交给所述区块链。
A.调整法定数量大小
将论述对法定数量大小参数的调整,特别是关于分片内SMR协议的法定数量大小参数如何帮助实施例减小网络分片的大小的同时仍维持某一故障概率。
网络大小(例如,网络中的节点计算机的数目)由N表示,网络弹性由F表示,最大可能的变节节点数目由表示,并且网络分片大小由n表示。S可表示网络分片。然后,网络分片S中的诚实节点的数目是随机变量HS,而网络分片S中的变节节点的数目是随机变量CS,其中n=HS+CS。分片内SMR的法法定数量大小参数由q表示。法定数量大小q可大于网络分片n中的节点数目的一半(例如,q>n/2)。基于上述定义,可创建三个不同类型的网络分片:1)如果HS≥q,则网络分片S被认为是超诚实的;2)如果CS≥q,则网络分片S被认为是超变节的,以及3)如果网络分片S既不是超诚实的也不是超变节的(例如,HS<q并且CS<q),则所述网络分片被认为是安全的。
假设节点均匀地分布到网络分片,则经由超几何分布,任意分片S为超诚实的概率是:
S为超变节的概率是:
S为安全分片的概率是:
Pr[S为安全的]=(Pr[S为超变节]+Pr[S为超诚实]) (3)
鉴于在各种实施例中,分片内SMR不会确保超变节分片的安全性,由此为了确保协议的安全性,对超变节分片进行取样的概率应足够小。由此,在给定的网络大小N和弹性F下,可确定网络分片大小n和法定数量大小q的值,所述值提供足够小的超变节分片取样概率,并且进一步提供足够大的超诚实分片取样概率。足够大和足够小的概率可以是任何合适的大小,并且可以是特定于应用的(例如,可将所述概率定义为相对于安全参数而言可忽略/不可忽略)。在本文的分析中,目标是展示各种实施例改进了现有技术水平,包括RapidChain[5]。例如,对于给定网络大小N和弹性F,可展示实施例可具有与RapidChain的情况相当的至少预期的无故障时间,并且同时示出实施例具有比RapidChain中的网络分片数目更多的超诚实网络分片(例如,因为在RapidChain中,所有分片都满足活性)。
接下来,将论述在网络大小N=2000并且弹性F=33%下的实施例和RapidChain的无故障时间和性能。然后将分析扩展到网络大小为N=4000且弹性为F=33%的设置。这些是RapidChain作者曾分析的设置。结果汇总于下文表1中。表1示出实施例与RapidChain在预期无故障时间和预期活动分片数目方面的比较。当计算预期无故障时间时,假设两个协议的历元持续时间为24小时。
表1:实施例与RapidChain的比较
如表1中指出,在实施例中,网络大小为4,000个节点,并且可具有11,165年的预期无故障时间和31.6个活动分片。无故障时间有利地高于具有相同节点数目的RapidChain协议。此外,在实施例中,活动分片的数目也高于RapidChain协议,因此有利地产生更快的交互处理。此外,分片弹性值可高于RapidChain中的值,因此使得实施例比RapidChain协议更稳健。
作为简单图解说明,图12示出四个网络分片A、B、C和D,每个网络分片含有10个节点,并且分别具有0、2、6和8个变节节点。分片A和B在Rapidchain协议和实施例下都将是安全的和活跃的。分片D在RapidChain或本发明的实施例下都是不安全的或不活跃的。分片C可能导致RapidChain协议出故障(例如,虚假或错误的交互被记录到***中的任何分片中的区块链中)。然而,分片C不会导致实施例出故障。如下文描述中指出且如图1中所示,并且如果***的法定数量值设置为70%,则分片C将被认为是“安全的”,因为虚假交互将永远不会被记录到所述分片上的区块链中。然而,所述分片将不会被认为是“活跃的”,因为它无法将任何交易输出到其区块链上或将该结果广播到其它网络分片。如下文所解释,本发明的实施例可使用消息协议,所述消息协议可解决过长时间保持静默的网络分片的问题。例如,如下文所解释,参考网络分片可从静默网络分片中的诚实节点接收关断。一旦接收到此消息,就可关断静默网络分片,并且可将其中的节点重新布置或重新分布到其它网络分片。
在一些实施例中,当存在至少一个超变节分片时,可能违反安全性。而当存在至少一个非诚实多数分片时,就会违反RapidChain的安全性。因此,实施例的故障概率是取得至少一个超变节分片的概率,而RapidChain的故障概率是取得至少一个非诚实多数分片的概率。由于对分片进行取样时没有进行更换,因此上文方程式1和2仅给出第一个采样的分片的精确值。如通常所做,实施例通过使用联合界(union-bound)来报告故障概率的上界。
图4示出从N=2000并且F=33%的网络取样非诚实多数分片的概率。对于n=200,取得非诚实多数分片的概率约为1.94·10-7。图5示出从N=2000并且F=33%的网络取样不同类型的分片的概率。在评估不同值之后,各种实施例可利用n=50的网络分片大小作为最优分片大小。然而,例如,可利用任何合适的分片大小,并且所述分片大小可基于网络中节点计算机的数目进行调整。获得超变节分片的概率约为8.57·10-8,并且当法定数量大小为q=35时,取得超诚实分片的概率约为0.37。
RapidChain的作者报告了图4所示的设置中n=200的网络分片大小。在图4中,当n=200时,取样非诚实多数分片的概率最初为1.94·10-7。在此设置中,RapidChain的故障概率上界可为假设历元持续时间为24小时,则这种情况的无故障时间大约为1,412年。类似地,对于图5中所示的实施例,在n=50并且q=35的情况下取得超变节分片的概率最初为8.57·10-8。因此,在此设置中,可将实施例的故障概率上界定为/>在历元持续时间为24小时时,这种情况的无故障时间大约为800年。
上述***中的实施例和RapidChain的性能可通过检验保证处理交易的活动数目分片(例如,确保活性的分片)来评估。实施例和Rapidchain都可包括网络参考分片,所述网络参考分片包括例如200个节点计算机。除了参考网络分片,RapidChain还有1800/200=9个活动分片。对于实施例,根据期望线性,预期活动分片的数目是1800/50·0.37=13.3。
此外,RapidChain无法通过减少RapidChain的无故障时间来弥补这种差异。即使将RapidChain中的网络分片大小从200减少到190,RapidChain也只得到约600年的无故障时间,低于实施例。与先前工作相比,各种实施例提供了更好地扩展的优点,并且对于特定***参数,具有更高的无故障时间和更多活动分片。
B.分片内密钥生成
在节点被指派到分片之后,每个分片可在内部运行分布式密钥生成(DKG)算法,例如[23]的算法。目标是利用阈值签名方案(例如,阈值BLS[24])来最小化通信复杂度。成功完成此步骤的分片可被参考网络分片认证,并且可仅允许已认证分片在即将来临的历元处理交互。
具体地说,在运行DKG协议之后,网络分片S生成密钥对skS-pkS以使得pkS是循网络分片共享的公钥,其中H(pkS)的散列摘要可以是网络分片的身份,并且skS是在S的节点当中可验证地n中取q共享的对应秘密密钥。在此步骤之后,S的每个节点r使用节点的秘密密钥份额生成节点的分片身份上的签名份额σr(H(pkS))。然后,每个节点将自己的签名份额发送给参考网络分片。在累加足够多的这些份额之后,参考网络分片建构阈值签名并用pkS进行验证。
如果验证通过,则参考网络分片通过将S指派到其交互(例如,交易)的份额而将S添加到交互到分片表。此表由参考网络分片提交并广播到网络。此阶段的完成指示历元的开始。例如,在接收到此表后,每个分片开始处理指派给它们的交易。
安全分片S'中的变节节点有可能(例如,通过保持静默)停止DKG协议。然而,在此情况下,会从交互到分片表排除S',并且将其中的每个节点指派到节点到分片指派表中的⊥。这指示交易未被路由到S',并且S'内的(诚实)节点在即将来临的历元中不参与分片内SMR。这有效地关闭了S',直到下一重新配置阶段。
C.指派交互到分片
当向分片指派新的交互时,要考虑两个因素:1)***必须确保每个交互都被唯一地指派给网络分片以维持一致性,以及2)***在这样做时应考虑负载平衡。
参考网络分片的任务是维持和更新交互到分片表。节点计算机在每个历元开始时从参考网络分片接收此表,并对其进行查找以确定交互是指派到节点位于其中的网络分片还是指派到了不同分片。交互到分片表可实施为完整的二叉查找树(binary searchtree)。网络分片标识符可处于二叉查找树的叶处,而从根到叶的路径指定了指派给网络分片的交互散列的前缀。例如,如果从根到网络分片S的路径为00,则S处理前2位为00的交互。当创建新的网络分片或关闭现有分片时,参考网络分片可相应地对树进行组织,并且可将已更新表广播到网络。
图6示出当节点计算机加入和/或离开时交互到分片表的重组。在历元e中,第一网络602包括4个分片:和/>新节点在历元e与e+1之间加入网络,因此,在历元e+1中,所述网络在5个分片之间拆分。树相应地重组成第二网络604。最后,一些节点离开网络,并且所述网络在历元e+2中在3个分片之间进行分片。树再次重组成第三网络606。
D.分片内SMR
接下来将论述分片内SMR协议。根据各种实施例的分片内SMR的目标是满足安全分片的安全性,并且满足超诚实分片的安全性和活性两者。在论述协议之前,将示出区块结构。
高度k处的区块Bk是由标头和由下式给出的主体/>组成的元组,
区块主体含有可组织为梅克尔树的一组交互。区块的标头可以是元组,
其中k是区块的高度,e是其中创建区块的历元,AUTXO是最新UTXO状态的累加器,HMT是梅克尔交易树的根,H(Bk-1)是先前区块的标头的摘要,并且H(pkS)是创建所述区块的网络分片的身份。归因于无状态区块链模型,在提交区块之后,节点可舍弃区块的主体。节点可仅维持最新的区块标头以及与其一起的区块提交证书。如下文所解释,区块标头上的提交证书可证明对应区块被提交给区块链。
实施例可按两个阶段进行:1)稳态阶段和2)视图改变阶段。稳态阶段可在迭代中继续,其中在每次迭代中,网络分片的当前领导者节点计算机向网络分片的其余部分提议区块。如果领导者节点计算机在稳态期间通过提议疑义性区块或根本不提议任何区块而恶意表现,则网络分片中的其它节点可执行视图改变协议以更换变节领导者,然后返回到稳态。稳态和视图改变的明确描述可参看下文的伪码1和伪码2。
伪码1:分片内SMR的稳态阶段
伪码2:分片内SMR的视图改变阶段
在形式上,在以下三个定理中示出根据实施例的由分片内SMR确保的特性。
定理1(分片内安全性)。如果S是安全分片或超诚实分片,并且如果S中的诚实节点在高度k处提交区块Bk,则S中的每个诚实节点最终在高度k处提交Bk。
定理2(分片内活性)。当用户将有效交易T提交给超诚实分片S时,T最终由S提交。
定理3(可证明提交)。网络分片S的每个提交的区块Bk都带有证明Bk是由S提交的提交证明
图7示出说明根据实施例的区块提交方法的流程图。图7中所示的方法可由网络分片中的节点执行。在一些实施例中,节点可以是网络分片的领导者节点。
在步骤702之前,节点计算机可从客户端装置接收提交交互请求消息。提交交互请求消息可包括交互数据和由一个或多个网络分片创建的一个或多个包括证明。节点计算机可验证一个或多个包括证明,如图7中进一步详细描述。如果包括证明有效,则节点计算机可将交互数据包括到由网络分片维持的区块链的新区块中。
节点计算机可生成可包括所述交互数据的新区块。新区块可包括区块标头和区块主体。区块标头可以是包括累加可用金额(例如,UTXO)的至少累加器值的元组。区块标头还可包括区块高度、历元编号、梅克尔树的根(例如,梅克尔根)和区块链中的前一区块的前一区块标头的摘要。当生成新区块时,在一些实施例中,节点计算机可在区块链的一个或多个最新金额上使用累加器来确定累加器值。
在步骤702,网络分片中的领导者节点(例如,领导者节点计算机)可将包括区块链的新区块的提议消息广播到网络分片中的多个节点计算机。提议消息可包括新区块、视图编号和前一区块证书。视图编号可以是与当前领导者节点相关联的值。例如,如果第一节点是领导者节点,则视图编号可以是1。
前一区块证书可包括可充当前一区块已提交给区块链的证据的数据项。在一些实施例中,前一区块证书可以是基于来自(例如,整个网络分片共享的)私钥的份额的单个签名份额而生成的阈值签名。例如,当分片的节点计算机发送投票消息以投票将前一区块包括到区块链中时,节点计算机利用节点计算机的网络分片的秘密密钥的节点计算机的份额来对投票消息的散列摘要进行签名。投票消息上的签名的法定数量数目构成所述区块上的区块证书。
网络分片中的每个节点计算机可从领导者节点计算机接收提议消息。网络分片中的每个节点计算机验证提议消息中的新区块是正确形成的区块(例如,包括前一区块的正确散列值等)。此外,在一些实施例中,每个节点计算机可在广播所述至少一个投票消息之前验证所述前一区块证书。例如,可通过节点计算机针对前一区块广播的至少q个提交消息来形成所述前一区块证书。
如果节点计算机确定新区块有效,则节点计算机可广播投票消息。投票消息可包括新区块和视图编号。当节点计算机广播投票消息时,节点计算机可将定时器(例如,预提交时间)设置为预定时间(例如,2Δ)。
每当节点计算机r发送消息m时,节点计算机就用表示为<m>r的节点计算机的秘密密钥份额来对节点计算机的散列摘要进行签名。设定消息m上的q个签名份额构成消息m的法定数量证书。具体地说,法定数量证书是从单个份额生成的阈值签名。取决于消息m的内容,这些证书可以不同方式命名:区块Bk上的q个投票消息可称为区块证书,并且表示为BC(Bk)。区块Bk上的q个预提交消息可称为提交证书,表示为CC(Bk)。最后,视图v上的q个归责消息可称为视图改变证书,并且表示为VC(v)。
在步骤704,领导者节点计算机可从多个节点计算机接收至少一个投票消息。所述至少一个投票消息可指示对新区块的验证。例如,其它节点计算机可基于任何合适的处理(例如,验证工作量证明)来确定是否验证新区块。
在步骤706,在预定时间量之后(例如,预提交定时器到期),领导者节点计算机可接收多个预提交消息,所述多个预提交消息包括至少所述新区块和基于所述至少一个投票消息创建的区块证书。所述预定时间量可允许每个节点接收其它节点的投票或其它消息,以确定其它节点是否想要预提交并发送预提交消息。区块上法定数量值q数目个的投票消息可形成区块证书。
例如,当每个节点处的定时器(例如,预提交定时器)达到零时,网络分片中的每个节点计算机可分别确定每个接收到的投票消息(例如,源于接收其它节点计算机的投票广播)是否包括与先前发送的投票消息相同的视图编号和新区块。通过这样做,节点计算机可因此验证新区块不存在疑义度。此外,每个节点计算机可验证新区块是否具有从阈值数目的投票创建的区块证书。例如,可从区块上的q数目的投票创建区块证书(例如,利用已用节点计算机的秘密密钥份额签名的已签名散列摘要)。然后,节点计算机可广播包括新区块、区块证书和视图编号的预提交消息。网络分片的任何数目的节点计算机都可广播预提交消息。
在步骤708,领导者节点计算机可确定所述多个预提交消息中的接收到的预提交消息的数目是否大于与所述网络分片相关联的法定数量值q。例如,领导者节点计算机可接收由网络分片的任何合适数目的节点计算机广播的预提交消息。每个预提交消息可包括新区块、区块证书和视图编号。领导者节点计算机可验证至少法定数量值数目的预提交消息包括相同的新区块、相同的区块证书和相同的视图编号。
在步骤710,如果所述多个预提交消息中的接收到的预提交消息的数目大于与所述网络分片相关联的法定数量值,则领导者节点计算机可将所述新区块提交给区块链。在一些实施例中,在将新区块提交给区块链之后,领导者节点计算机可在单个广播消息中广播所述多个预提交消息。所述多个预提交消息可构成新区块的提交证书。
在一些实施例中,在将新区块提交给区块链之后,节点计算机可从节点计算机的存储器移除区块主体。区块标头可包括累加UTXO的累加器值。因此,节点计算机可在未来的交易中利用所述区块标头,并且可能不需要从区块主体确定值。然而,应理解,网络中不是验证器节点的其它节点计算机可存储具有所有区块标头和区块主体的完整区块链。
在一些实施例中,网络分片中的多个节点计算机可以是第一网络分片中的第一多个节点计算机,所述第一网络分片维持可以是第一区块链的区块链。此外,所述法定数量值可以是第一法定数量值。第二多个节点计算机可处于可维持第二区块链的第二网络分片中,所述第二区块链可与第二法定数量值相关联。网络分片中的节点计算机的法定数量值和数目可以是与本文所述概念一致的任何合适值。在一些实施例中,网络分片中的所述多个节点计算机可包括例如20到200个节点计算机,并且所述法定数量值在25到40的范围内。在一些情况下,20到200的网络分片大小可提供足够的交互处理能力,同时允许网络整体具有许多网络分片,以提高***的交互吞吐量。25到40之间的法定数量值范围可为***的网络分片提供足够量的安全性。使用经验实验发现上文所提到的网络分片大小范围和法定数量值范围是最优范围。在20到200个节点计算机范围内的分片大小会提供最优安全性和可扩展性。
在其它实施例中,节点计算机可在广播提议消息之前从客户端装置(例如,笔记本电脑、台式计算机、智能手机等)接收提交交互请求消息。提交交互请求消息可包括交互数据(例如,UTXO数据等)和由一个或多个分片创建的一个或多个包括证明。在一些实施例中,一个或多个包括证明中的至少一个包括证明可由第二网络分片创建。
然后,节点计算机可以如本文中所描述的任何合适方式验证所述一个或多个包括证明。如果所述一个或多个包括证明有效,则节点计算机可将至少所述交互数据包括在新区块中,如图8中进一步详细描述。
E.安全分片检测器
如本文所论述,安全分片缺乏活性。这意味着不会保证指派到安全网络分片的交互得到处理(例如,在分片内的变节节点保持静默的情况下)。为了确保最终会处理此类交互,实施例使用安全网络分片中的诚实节点来检测活性的缺乏。实施例通过用安全分片检测器扩增每个节点并且通过使它们与参考网络分片通信来实现这一点。
在历元期间,每个节点计算机可通过运行安全分片检测器来监测节点计算机的网络分片的状态,所述安全分片检测器的规范在伪码3中提供。安全分片检测器跟踪只能在安全分片中发生的事件。一旦节点计算机检测到此类事件,节点计算机就将节点计算机的网络分片的关断消息发送给参考网络分片。
一旦参考网络分片从网络分片Si接收到n-q+1(例如,关断阈值)个关断消息,参考网络分片就会更新节点到分片表和交互到分片表:Si的每个节点被指派到节点到分片表中的符号(例如,“⊥”),称作当前历元中在节点到分片表中的空值网络分片(例如,网络中不存在并且不处理交易的网络分片)。此外,参考网络分片将先前指派给Si的交互指派到运行的分片Sj中的一个分片。已更新表被广播到网络,并且在接收到已更新表后,Si的诚实节点停止参与当前历元的分片内SMR。此外,Si的节点请求并从其中的诚实节点接收Sj的最新状态。在接收到Si的最新状态后,Sj开始代表Si处理当前历元的交易。此过程的细节在伪码4中进一步详述。
例如,在一些实施例中,节点计算机可基于与第一网络分片相关联的不活动定时器生成关断消息。不活动定时器可以是由分片中的每个节点计算机在本地设置的定时器。节点计算机可将不活动定时器设置成预定时间量。例如,可将不活动定时器设置为消息递送时间的上界的两倍的值(例如,2Δ)。所述节点计算机可在执行节点计算机期望有响应的动作之后将不活动定时器设置到预定时间量。例如,动作可包括广播投票消息、广播预提交消息等。
例如,如果节点计算机在其内运行的网络分片是安全分片,则如本文所描述,网络分片在为区块链创建新区块方面可能不会有任何进展。在此情况下,节点计算机可生成关断消息,所述关断消息可包括关于网络分片缺乏进展的细节(例如,速率、时间等)。然后,节点计算机可将关断消息发送给第二网络分片中的第二多个节点计算机。在一些实施例中,第二网络分片可以是参考网络分片。参考网络分片可确定将第一网络分片关断并将第一多个节点计算机分布到多个额外分片。
例如,参考网络分片中的一个或多个节点计算机可从多个节点计算机接收一个或多个关断消息。如果所述一个或多个关断消息中的接收到的关断消息的数目大于与所述网络分片相关联的关断阈值(例如,n+g+1),则参考网络分片可将所述多个节点计算机中的每个节点计算机指派给当前历元中节点到分片表中的空值网络分片。例如,参考网络分片中的领导者节点计算机可进一步将包括节点到分片表的提议表更新消息广播到参考网络分片中的多个节点计算机。参考网络分片中的领导者节点计算机可与参考网络分片的其它节点计算机一起执行提交过程,以将参考网络分片提交给节点到分片表。如果参考网络分片提交给节点到分片表,则参考网络分片的节点计算机可将所述节点到分片表广播到网络。在接收到节点到分片表之后,关断网络分片中的多个节点计算机停止针对维持的区块链处理新区块。然后,参考网络分片可将来自关断网络分片的新交易重新指派给替代网络分片。
安全分片检测器确保以下特性:
引理1.安全分片检测器跟踪只能在安全分片中发生的事件。因此,超诚实分片中的诚实节点从不发送关断消息,并且因此,超诚实分片从不关闭。
引理2.安全分片最终会处理交易或最终关闭。
伪码3:安全分片检测器规范。
伪码4:在历元期间关闭网络分片的步骤。此过程可涉及参考网络分片更新其节点到分片表和交互到分片表,以及从关闭的分片到一个活动分片的状态传输。
F.交互验证
接下来,将描述如何验证交互(例如,交易)。每个交互可具有格式,并且可在单个分片上或跨网络分片执行。上文的论述涉及网络决定交易如何写入到网络分片上的区块链以及如何管理网络分片的能力。下文论述涉及证明客户端可在一个或多个网络分片将交易包括在区块中之前执行交易。
1.交互格式
各种实施例可利用UTXO模型,其中交互含有一组输入和一组输出。例如,考虑具有单个输入I和单个输出O的交易T,表示为:
T∶=<I,O>
输出可以是地址-值对O∶=(pk,v),指示应将货币的v量发送给地址pk。输入是元组,表示为:
I∶=(O′,sig,MEM<O′,S>)
其中O′:=(ctr,pk′,v′)是指包含在某一网络分片S的累加器中的UTXO(例如,可用金额),其中ctr作为其在累加器中的添加次序,并且sig是在pk'下有效的签名。此外,MEM<O′,S>是相对于S的最新UTXO累加器状态关于O′的成员资格证明。
2.单分片验证
如本文所描述,交易的散列可唯一地确定其被指派到哪个网络分片。作为单个网络分片交易验证的示例,考虑前一段中的交易T。如果交易T被指派给其中驻存O′的网络分片S(例如,基于交易T的散列而确定),则验证交易T可包括:1)通过查找交互到分片表来验证交易T被指派到网络分片S,2)验证v′=v以及签名sig在pk'下的有效性,以及3)相对于累加器验证MEM<O′,S>。如果交易T被验证,则网络分片S可通过将交易T包括在下一区块中并且因此从累加器/>移除O′并添加O(利用适当的计数器)到累加器/>来处理所述交易。
3.跨分片验证
当交易的两个输入和输出位于不同分片中时,可能需要进行跨分片验证。令交易T∶=<<I1,I2>,O3>并假设由I1和I2(例如,输入)引用的UTXOO1和O2(例如,输出)分别包含在分片S1和S2中。此外,交易T可被指派到分片S3。验证交易T可能需要客户端装置执行跨分片验证协议。
为了创建有效的跨分片交易,客户端装置可首先向输入分片请求包括证明(PoI)。PoI证明:由输入引用的输出被从维持其的网络分片的UTXO移除。具体地说,客户端装置将交易T(例如,交互数据)发送给S1和S2。网络分片S1和S2:1)首先验证I1和I2,2)将(T,1)和(T,2)包括在其下一区块中,以及3)分别从和/>移除O1和O2。如果Su是移除由Ii引用的输出的网络分片,则相应的包括证明(PoI)表示为:
其中MT(T,u),B是相对于含有(T,i)的区块B关于(T,i)的梅克尔证明,其中i是指处理交易T的哪个输入。连同区块的标头Bh和关于区块的提交证明(例如,区块提交证明)一起,可验证(T,i)由Su提交,并且因此Ou从分片状态中移除。区块提交证明可包括证明相关联区块曾包括在区块链中的信息。区块提交证明可以是示出区块B在网络分片Si的分类账中的证明。区块链中的每个区块可包括来自区块链中的父级(例如,前一)区块的已解散列。在一些实施例中,区块提交证明可至少包括来自父级区块的已解散列。每个新区块包括父级区块的散列,并且因此确保按时间顺序的区块次序。
取决于I1和I2是否有效(例如,它们在其各自的分片中是指有效UTXO),存在可如何处理交易T的三种可能情况,在下文描述每种情况。
I1和I2均有效。S1和S2处理交易T,因此客户端获得和/>两者。然后,客户端装置创建提交交易:
并将其发送给S3。在接收到Tcom后,S3可先验证O1.v1+O2.v2=O3.v3,然后验证PoI。的验证可包括以下步骤:1)从区块标头Bh推断Si,2)利用Si的身份验证以及3)相对于Bh验证关于(T,i)的梅克尔根。鉴于I1和I2均有效,两个PoI也有效。因此,S3将Tcom包括在下一区块中,并在/>中添加O3。
I1和I2中仅一个有效。在不丧失通用性的情况下,假设I1是有效的并且I2是无效的。在此情况下,客户端装置仅接收这违反了原子性,因为仅移除了O1。然而,实施例允许客户端装置通过向S3发送退款交易来退还O1的量,以确保一致性:
退到S3。在接收到Tref后,S3验证唯一的PoI,将Tref包括在下一区块中,并在中添加O′3,使得O′3.v′3=O1.v1。
I1和I2均无效。在此情况下,客户端装置不会收到任何PoI,因此,客户端装置无法创建任何有效的跨分片交易。
图8示出根据实施例的跨分片验证方法的流程图。将在以跨分片方式处理和验证交易的上下文中描述图8中所示的方法。具体地说,用户可利用客户端装置请求将交易包括在区块链的区块中。交易的输入可来自包括在两个不同分片的区块链中的两个不同输出。用户可尝试使用由第一分片和第二分片维持的两个输入来通过第三分片执行交易。
在步骤810之前,客户端装置800可获得用于交互的交互数据。例如,客户端装置800可从资源提供商计算机或其它合适的装置接收交互数据。交互数据可包括与客户端装置800尝试的交互有关的任何合适的数据。例如,交互数据可包括金额、资源提供商计算机标识符、日期、物品标识符等。
在步骤810,客户端装置800可提供第一证明请求,所述第一证明请求包括对来自维持第一区块链的第一网络分片801的第一包括证明的请求。第一包括证明可以是客户端装置800与未被使用的(或以其它方式可用的)金额(例如,第一金额)相关联的证明。例如,客户端装置800可与包括在第一区块链的区块中的第一金额相关联。第一证明请求还可包括与第一金额相关联的第一交互数据。第一金额可以是仍可供用户使用的未被使用的交易金额(例如,UTXO)。第一交互数据可以是来自前一交易(例如,第一交易)的交互数据。第一包括证明可包括关于第一区块链的区块中包括的第一交易的梅克尔证明、区块的标头以及关于区块的提交证明。
在步骤812,第一网络分片801中从客户端装置800接收第一包括证明中的请求的任何合适的节点计算机可确定所述请求是否可被满足。例如,第一网络分片801的节点计算机可通过评估当前金额集(例如,UTXO集)来验证第一金额是否包括在区块链中。在一些实施例中,所述金额可累加到累加器中,如本文所描述。节点计算机可评估第一金额是否包括在累加器中。
在一些实施例中,在向客户端装置800提供第一包括证明之前,第一网络分片801的节点计算机可从累加器移除第一金额。由此,包括证明可证明由输入引用的输出已从维持第一金额的网络分片的UTXO移除。
在步骤814,第一网络分片801的节点计算机向客户端装置800提供第一包括证明。
在步骤816到820,客户端装置800可向第二网络分片802请求第二包括证明。例如,客户端装置800可提供第二证明请求,所述第二证明请求包括对来自维持第二区块链的第二网络分片的第二包括证明的请求。第二包括证明可以是第二网络分片802维持的第二区块链中可用的第二金额的证明。步骤816到820与步骤810到814类似,此处不再重复其描述。此外,步骤816到820可在步骤810到814之前、期间或之后发生。在一些实施例中,客户端装置800可向一个或多个分片请求一个或多个包括证明。
在步骤822,在从第一网络分片801的第一节点计算机接收第一包括证明并从第二网络分片802的第二节点计算机接收第二包括证明之后,客户端装置800可生成包括交互数据、第一包括证明和第二包括证明的提交交互请求消息。
在步骤824,客户端装置800可将提交交互请求消息提供到维持第三区块链的第三网络分片803。
在步骤826,第三网络分片803的节点计算机可验证第一包括证明和第二包括证明。例如,节点计算机可通过首先确定第一包括证明源自哪个分片来验证第一包括证明。节点计算机可基于包括在第一包括证明中的区块标头来确定源发站(originator)分片。例如,区块标头可包括可用于确定第一包括证明源自第一网络分片的网络分片编号或第一分片公钥。
在确定第一包括证明的源发站分片之后,第三网络分片803的节点计算机可验证所述区块被包括在第一区块链中的提交证明。
在验证区块提交证明之后,第三网络分片803的节点计算机可验证与第一金额相关联的交易是否包括在第一包括证明中包括的区块标头的梅克尔根中。
如果第三网络分片803的节点计算机确定源自第一网络分片的第一包括证明与包括在区块中的第一交易相关联,并且所述区块被包括在第一区块链中,则节点计算机可确定第一包括证明是有效的。第三网络分片803的节点计算机也可以类似方式验证第二包括证明。第三分片803的节点计算机可验证任何合适数目的包括证明。
在步骤828,在验证第一包括证明和第二包括证明之后,第三分片803的节点计算机可确定用户是否具有分别与第一包括证明和第二包括证明相关联的第一金额和第二金额所指示的足够资金。例如,第一金额和第二金额可大于或等于当前交易金额(例如,第三金额)。在一些实施例中,第三网络分片803的节点计算机可在步骤826之前基于客户端装置800声称具有的宣称金额来执行步骤828。
在步骤830,在确定客户端装置800的用户可执行交易之后,第三网络分片803的节点计算机可将第三交易包括到要向第三网络分片803的多个节点计算机提议的下一区块中。多个节点计算机可如本文中所描述提交区块,并且将具有第三交易的区块包括到第三网络分片803的第三区块链中。
在一些实施例中,在步骤832,第三网络分片803的节点计算机可向客户端装置800提供确认响应,所述确认响应指示第三交易被包括在第三区块链中。例如,客户端装置可从第三网络分片103的节点计算机接收交互响应消息。交互响应消息可指示交互数据被包括在第三区块链中。
4.重放攻击
各种实施例提供了对重放攻击免疫的技术优点。如Sonnino等人[7]所示,OmniLedger[4]和RapidChain[5]的跨分片协议易受重放攻击。本文所描述的跨分片协议可对重放攻击具有弹性,如下文所描述。
考虑交易T∶=<<I1,I2>,O>并假设I1和I2均有效,使得客户端装置最终创建有效的提交交易Tcom。在接收到Tcom后,网络分片S3将其包括在区块中并创建O3。敌手可能会尝试多次向网络分片S3发送Tcom,使得每次通过验证时,在网络分片S3中不止一次创建输出O3。
为了防止这种情况,分片可跟踪其处理的PoI。然而,仅保持PoI的日志就可能需要节点维持不断增长的列表。为了补救此问题,实施例可利用额外累加器。即,网络分片S在该组处理的PoI上维持累加器并且每当客户端装置执行跨分片交易,并在S中创建输出时,客户端装置必须向此累加器提供关于PoI的有效非成员资格证明。
例如,已更新提交交易T′comm由下式给出:
其中是相对于累加器/>关于/>的非成员资格证明。此外,通过扩展区块标头以维持PoI累加器,实施例不需要修改状态传输协议以传输状态处理过的PoI。
5.复位内存池问题
无状态区块链的另一技术问题是复位内存池(mempool)问题。考虑在区块链的高度为k时(例如,Bk处于区块链的顶端)时向网络提交有效交易tx的用户。如果网络利用不包括tx的Bk+1扩展区块链,则tx相对于区块链的新状态变成无效交易。总体而言,每当向区块链添加新区块时,由于其成员资格证明是针对旧状态创建的,因此内存池中的所有交易均变得无效。这可能显著降低***的吞吐量。为了防止这种情况,根据各种实施例,矿工可将最后c个累加器连同最后c个区块中的已处理交易一起进行高速缓存,其中c可以是任意限定的常数。然后,如果交易对于任何高速缓存的累加器有效,并且不包括在高速缓存的已处理交易中,则矿工可认为所述交易有效。
G.分片重新配置
为了防范随着时间推移可能攻陷新节点的自适应敌手,实施例可跨分片来打乱节点。如果f网络分片的配置保持不变,敌手可能会专注于攻陷单个分片中的节点,并且最终可能接管所述分片。单个超变节分片足以破坏整个协议的完整性。为了解决此问题,在每个历元结束时,节点可生成分布式随机性,并且基于计算的随机值而指派到新的分片。一旦节点被指派到新的分片,所述节点将从曾在前一历元处于所述网络分片中的节点获得节点的新分片的最新状态。
VI.部分同步中的可配置法定数量
描述如何将可调整法定数量理念扩展到部分同步设置。在此设置中,可能不依赖于同步来检测疑义度,而是必须通过仅使用法定数量证书来确保无疑义度。
在部分同步设置中,通过将法定数量大小q设置为某一值以使得(i)(安全性)任何两组大小q在至少一个诚实节点中相交以及(ii)(活性)至少存在q个诚实节点来确保BFT共识协议的安全性和活性。第一特性帮助诚实节点确信无疑义度,而不需要使用消息延迟界限Δ。第二特性允许诚实节点独立于变节节点有所进展。
现在考虑一组m个节点,使得它们中的f个节点变节。可看到,确保安全性特性的最小q值是另外,如果诚实节点的数目大于或等于q(例如,m-f≥q),则活性也得以确保。因此,如果实施例对大小m的分片进行取样,使得每个分片的变节节点的数目存在已知上界f,则实施例可通过如上文设置q来确保每个分片的安全性。此外,具有q个或更多个诚实节点的分片能够取得进展。
然而,当实施例考虑跨分片交易或通常来说提交的外部可证明性时,部分同步设置就会出现问题。假设存在查询网络分片的外部观察者。要正确操作,他必须得到至少一个诚实节点的答复。在同步设置中,他知道自己在得到诚实节点的答复之前需要等待多少时间,即,Δ是已知的。然而,在部分同步设置中,他必须等到收到f+1个消息才可继续。现在,如果诚实节点的数目小于f+1,则变节节点可能会通过保持静默而停止进度。为了避免这种情况,实施例可确保每个分片具有至少f+1个诚实节点,即,每个分片可由诚实多数组成。
在诚实多数的要求下,最小法定数量大小可以是 总的来说,在部分同步设置中,除了可忽略不计的概率之外,实施例可确保所有分片都是诚实多数的。在此类设置中,只有具有超过75%诚实的那些分片能够取得进展。如前所述,那些能够取得进展的分片可被称为超诚实,而其余分片被称为安全。图9示出在大小N=1800并且F=25%变节的网络中各种实施例与OmniLedger如何旗鼓相当。
不同于同步设置中的法定数量大小,网络分片大小可进行优化。[4]的作者报告了在具有大小N=1800和1/4弹性的网络中的分片大小m=600。这使其得到230年的无故障时间和可并行处理交易的3个分片。图10示出根据实施例的在同一设置中的可调整法定数量。图10示出分片大小在部分同步中如何影响无故障时间。如可见,在网络分片大小为80的情况下,会产生约12个超诚实分片,所有这些分片都可取得进展。并行程度的增加是OmniLedger的4倍。
图11示出根据实施例的法定数量大小的曲线图。图11示出随法定数量大小而变的出现第一超变节委员会之前的时间1102、预期的安全委员会1104和预期的超诚实委员会1106。在此示例***中,随着法定数量大小增大,出现第一超变节委员会之前的时间(例如,出无故障时间)增大、预期的安全委员会增大以及预期的超诚实委员会减小。
VII.安全性分析
A.分片内共识证明
可在本节中针对循网络分片共识协议提供安全性和活性的证明。所述证明可与Sync HotStuff[25]的证明相似,但有几处修改,此处采用其直接/间接提交的术语。在下文中,在一些实施例中,如果诚实节点通过获得关于区块Bk的提交证书而提交所述区块,则所述区块被直接提交。否则,如果是直接提交扩展Bk的区块的结果,则称区块Bk被间接提交。
如果诚实节点在视图中广播关于区块Bk的预提交消息,则(i)每个诚实节点在所述视图中投票支持Bk,以及(ii)每个诚实节点在进入下一视图之前接收C(Bk)。
证明.假设诚实节点p在时间t在视图v中广播Bk的预提交消息。这意味着p已在t-2Δ接收到并投票支持Bk。此外,其预提交消息由每个诚实节点在t-Δ之前接收到。
因此,在t-Δ,每个诚实节点可能都投票支持Bk,除非(i)它们已投票支持另一区块B′k,或(ii)它们在t-Δ之前接收到并广播了q个归责消息。然而,如果上述任何一种情况发生,则p可能不会广播预提交,因为其将在t之前接收所述消息。
因此,在时间t-Δ,所有诚实节点都在视图v中并投票支持Bk。此外,所述节点直到Bk才进入新视图并且到那时接收还含有C(Bk)的预提交消息p。
如果诚实节点广播关于区块Bk的预提交消息,则不存在C(Bk′),其中B′k≠Bk。
证明.假设诚实节点p在视图v中广播关于Bk的预提交消息。示出在视图v之前、之中或之后不存在冲突证书。首先,如果在视图v之前存在冲突证书,则至少一个投票来自诚实节点。此投票本来会在视图v之前就到达p,而且本来会阻止p广播预提交。其次,根据Lemma0.1,所有诚实节点在视图v中投票支持Bk。因此,在视图v中无法形成冲突的高度k证书。最后,同样根据Lemma 0.1,每个诚实节点在进入视图v+1之前都会接收C(Bk),并且s在此之前不存在冲突的高度k证书。从那时起,每个诚实节点的最高认证区块至少是Bk,并且不再有诚实节点投票支持高度k区块。因此,在大于v的视图中无法存在C(B′k),其中Bk,≠Bk。
(安全性)。对于每个高度k,诚实节点总是提交相同的块Bk。
证明.假设以下矛盾:在高度k处提交两个不同的区块Bk和Bk′。假设Bk是由于在视图v中直接提交Bl而提交,而Bk,是由于在视图v′中直接提交Bl,而提交。这意味着Bl扩展了Bk,而Bl,扩展了Bk′。在不损失一般性的情况下,假设l≤l′。根据Lemma 0.1,在高度l不存在其它已证明区块。如果l=l′,则Bl,=Bl;如果l<l′,则Bl,扩展了Bl。在任一情况下,Bk=Bk,。
(活性).(i)如果当前领导者诚实,则不会发生视图改变;(ii)拜占庭领导者可在(2p+1)Δ时间提议p个区块以避免视图改变;以及(iii)如果k是某个诚实节点在视图v中提交区块的最高高度,则后续视图中的领导者可在高于k的高度处提议区块。
证明.对于(i),应注意,诚实领导者L能够在(2p+1)Δ时间提议p个区块。在进入其视图之后,L立即需要Δ时间收集状态;此后,它每2Δ时间都可提议一个区块:一个Δ用于其提议的区块到达所有节点,另一个Δ用于其它节点投票的到达。因此,诚实领导者有足够的时间,并且不存在疑义,所以它不会被任何其它诚实节点归责。另一方面,如果拜占庭领导者拖延超过上述规定时间,则会受到所有诚实节点归责。对于第(iii)部分,观察到所有诚实方由于Lemma 0.1而接收C(Bk)。因此,在后续视图的状态中,后续视图都至少在高度k报告已证明区块。如果领导者在3Δ内没有提议高于k的高度的区块,则所述领导者将被所有诚实节点归责。
B.安全分片检测器的证明
证明.令p为超诚实分片Si中的诚实节点。考虑第IVC.节中描述的投票不活动情况。在p投票支持区块Bk之后,可能已知所有诚实节点都在Δ内投票支持Bk,除非所述诚实节点在接收到Bk之前接收到对于L有疑义的区块或关于v的q个归责消息。如果发生后一情况,p将在2Δ内收到有疑义区块或关于v的归贯证书。在所有诚实节点都投票支持Bk的前一种情况下,p在2Δ内接收关于Bk的至少q个投票。因此,如果这些都不发生,则可能的情况是,Si为安全分片。
类似地,对于预提交不活动情况,在p在时间t广播区块Bk的预提交之后,所有诚实节点都广播Bk的预提交,直到t+Δ为止,或变节领导者将向某些节点发送有疑义的区块以防止它们广播它们可能接收到的预提交,直到t+Δ为止。因此,在t+2Δ之前,p接收L的有疑义区块或关于Bk的至少q个预提交消息。
对于归责不活动,假设p在时间t接收并广播疑义度证明。每个诚实节点在t+Δ之前接收疑义度证明,并且一旦其要归责就会广播归责消息。因此,p在t+2Δ之前至少可接收到q个归责。
对于视图改变不活动,假设p在t进入新视图。然后,每个诚实节点在最近的t+Δ之前进入新视图。如果领导者在3Δ内未向其中任何一个节点提议,则在最近的t+5Δ之前,p将累积至少q个归责消息。否则,p会在最近的t+5Δ之前从另一节点的重新提议接收到领导者的提议。
最后,最后一点是由于以下实情:超诚实分片中的变节节点的数目最多为m-q。因此,在超诚实分片中,在历元内可能最多存在m-q次视图改变。因此,发生多于m-q次视图改变的节点可能位于安全分片中。
证明.归因于Lemma 1,可看出,安全分片中的变节节点必须产生有效区块或进行视图改变,以避免诚实节点发送关断请求。由于可完成的视图改变数目是有限的,因此安全分片会建构链或关断。
本发明的实施例具有多个优势。例如,其中网络分片包括多个节点的多个分片可为每个分片处维持的区块链创建区块。由于实施例中存在许多分片,因此交互处理吞吐量可较高。在一些情况下,可针对***创建更多分片,因为相比于先前工作,可根据实施例创建更小的分片。如上文所描述,所有这一切都可完成,同时还具有高的无故障时间。
尽管以特定顺序示出或描述了上述流程图和过程流程中的步骤,但应理解,本发明的实施例可以包括具有呈不同顺序的步骤的方法。另外,可以省略或添加步骤,且它们仍可以在本发明的实施例中。
本申请中描述的任何软件部件或功能可实施为使用例如Java、C、C++、C#、Objective-C、Swift的任何合适的计算机语言或例如Perl或Python的脚本语言使用例如常规的或面向对象的技术由处理器执行的软件代码。软件代码可作为一系列指令或命令存储在计算机可读介质上以供存储和/或发送,合适的介质包括随机存取存储器(RAM)、只读存储器(ROM)、例如硬盘驱动器或软盘的磁性介质,或例如光盘(CD)或数字通用盘(DVD)的光学介质、快闪存储器等。计算机可读介质可以是此类存储或发送装置的任何组合。
此类程序还可以使用适应于经由包括互联网的符合多种协议的有线、光学和/或无线网络进行发送的载波信号来编码和发送。因此,根据本发明的实施例的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可与兼容装置一起封装或与其它装置分开提供(例如,经由互联网下载)。任何此类计算机可读介质可驻存在单个计算机产品(例如硬盘驱动器、CD或整个计算机***)上或其内部,并且可存在于***或网络内的不同计算机产品上或其内部。计算机***可以包括监视器、打印机,或用于向用户提供本文所提及的任何结果的其它合适的显示器。
以上描述是说明性的并且不是限制性的。在本领域技术人员阅读了本公开之后,本发明的许多变体对于他们会变得显而易见。因此,本发明的范围不应该参考上面的描述来确定,而是应该参考未决的权利要求及其完整范围或等同物来确定。
在不偏离本发明的范围的情况下,任何实施例的一个或多个特征可以与任何其它实施例的一个或多个特征组合。
如本文中所使用,除非明确指示有相反的意思,否则使用“一个”、“一种”或“所述”旨在意指“至少一个”。
VIII.参考文献
[1]J.Poon和T.Dryja,https://lightning.network/lightning-network-paper.pdf,2016.
[2]T.Groenfeldt,“2019年实时支付将在美国实现(Real-time payments willget real in the u.s.in 2019)”,https://www.forbes.com/sites/tomgroenfeldt/2019/03/05/real-time-payments-will-get-real-in-the-u-s-in-2019/#65552e787dfe,2019年3月,(访问日期:11/08/2019).
[3]L.Luu、V.Narayanan、C.Zheng、K.Baweja、S.Gilbert和P.Saxena,“开放区块链的安全分片协议(A secure sharding protocol for open blockchains)”,2016ACMSIGSAC计算机和通信安全会议记录,Ser.CCS'16.ACM,2016年,第17-30页.[在线].来源:http://doi.acm.org/10.1145/2976749.2978389
[4]E.Kokoris-Kogias、P.Jovanovic、L.Gasser、N.Gailly、E.Syta和B.Ford,“OmniLedger:经由分片的安全横向扩展分散式分类账(OmniLedger:A secure,scale-out,decentralized ledger via sharding)”,2018IEEE安全和隐私(S&P)会议,2018年,第19-34页.[在线].来源:doi.ieeecomputersociety.org/10.1109/SP.2018.000-5
[5]M.Zamani、M.Movahedi和M.Raykova,“RapidChain:扩展(RapidChain:Scalinging)”,2018ACM计算机和通信安全(CCS)会议,2018年.
[6]M.Pease、R.Shostak和L.Lamport,“在存在故障的情况下达成协定(Reachingagreement in the presence of faults)”,ACM期刊(JACM),第27卷,第2期,第228-234页,1980年.
[7]A.Sonnino、S.Bano、M.Al-Bassam和G.Danezis,“针对分片的分布式分类账中的跨分片共识的重放攻击和防御(Replay attacks and defenses against cross-shardconsensus in sharded distributed ledgers)”,CoRR,第abs/1901.11218卷,2019年.[在线].来源:http://arxiv.org/abs/1901.11218
[8]S.Nakamoto,来源:https://bitcoin.org/bitcoin.pdf.
[9]M.Fischer、N.Lynch和M.Paterson,“带有一个故障过程的分布式共识的不可能性(Impossibility of distributed consensus with one faulty process)”,ACM期刊(JACM),第32卷,第2期,第374-382页,1985年.
[10]S.Micali、S.Vadhan和M.Rabin,“可验证随机函数(Verifiable randomfunctions)”,第40届计算机科学基础年度会议记录,ser.FOCS'99.IEEE计算机学会,1999年,第120-页.[在线].来源:http://dl.acm.org/citation.cfm?id=795665.796482
[11]S.Micali,“ALGORAND:高效民主的分类账(ALGORAND:the efficient anddemocratic ledger)”,CoRR,第abs/1607.01341卷,2016年.[在线].来源:http://arxiv.org/abs/1607.01341
[12]B.Awerbuch和C.Scheideler,“迈向可扩展且稳健的DHT(Towards ascalable and robust DHT)”,第十八届ACM年度算法和架构中的并行性会议记录,ser.SPAA'06.ACM,2006年,第318-327页.[在线].来源:http://doi.acm.org/10.1145/1148109.1148163
[13]V.Buterin,“无状态客户端概念-分片-以太坊重新搜索(The statelessclient concept-sharding-ethereum re-search)”,https://ethresear.ch/t/the-stateless-client-concept/172,2017年10月,(访问日期:01/30/2020).
[14]J.Drake,“累加器、utxo区块链可扩展性和数据可用性-分片-以太坊研究(Accumulators,scalability of utxo blockchains,and data availability-sharding-ethereum research)”,https://ethresear.ch/t/accumulators-scalability-of-utxo-blockchains-and-data-availability/176,2017年10月,(访问日期:01/30/2020).
[15]D.Boneh、B.Bu¨nz和B.Fisch,“应用于iops和无状态区块链的累加器的分批处理技术(Batching techniques for accumulators with applications to iops andstateless blockchains)”.IACR Cryptology ePrint Archive,卷2018,第1188页,2018年.
[16]M.Andrychowicz和S.Dziembwski,无可信设置的基于PoW的分布式密码术(PoW-Based Distributed Cryptography with No Trusted Setup).施普林格,柏林海德堡,2015年,第379-399页.[在线].来源:https://doi.org/10.1007/978-3-662-48000-719
[17]C.Decker、J.Seidel和R.Wattenhofer,“比特币符合强大的一致性(Bitcoinmeets strong consistency)”,第17届分布式计算和联网国际会议记录,Ser.ICDCN'16.ACM,2016年,第13:1-13:10页.[在线].来源:http://doi.acm.org/10.1145/2833312.2833321
[18]R.Pass和E.Shi,“混合共识:无许可模型中的高效共识(Hybrid consensus:Efficient consensus in the permissionless model)”,Cryptology ePrint Archive,报告2016/917,2016年,http://eprint.iacr.org/2016/917.
[19]R.Karp、C.Schindelhauer、S.Shenker和B.Vocking,“随机化谣言传播(Randomized rumor spreading)”,第41届计算机科学基础年度会议记录,Ser.FOCS'00.IEEE计算机学会,2000年,第565-页。[在线].来源:http://dl.acm.org/citation.cfm?id=795666.796561
[20]Y.Gilad、R.Hemo、S.Micali、G.Vlachos和N.Zeldovich,“Algorand:扩展拜占庭加密货币协议(Algorand:Scaling byzantine agreements for cryptocurrencies),第26届操作***原理会议记录,ser.SOSP'17.ACM,2017年,第51-68页。[在线].来源:http://doi.acm.org/10.1145/3132747.3132757
[21]I.Abraham、D.Malkhi,K.Nayak、L.Ren和A.Spiegelman,“Solida:基于可重新配置的拜占庭共识的区块链协议(Solida:A blockchain protocol based onreconfigurable byzantine consensus)”,第21届分布式***原理国际会议记录,ser.OPODIS'17,2017年.
[22]E.K.Kogias、P.Jovanovic、N.Gailly、I.Khoffi、L.Gasser和B.Ford,“经由通过强大的一致性增强比特币安全和性能(Enhancing bitcoin security and performancewith strong consistency via),第25届{USENIX}安全会议({USENIX}安全16),2016年,第279-296页.
[23]R.Gennaro、S.Jarecki、H.Krawczyk和T.Rabin,“基于离散日志的密码***的安全分布式密钥生成(Secure distributed key generation for discrete-log basedcryptosystems)”,第17届密码技术理论和应用国际会议记录,Ser.EUROCRYPT'99.柏林,海德堡:Springer-Verlag,1999年,第295-310页.[在线].来源:http://dl.acm.org/citation.cfm?id=1756123.1756153.
[24]T.Hanke、M.Movahedi和D.Williams,“Dfinity技术概述系列、共识***(Dfinity technology overview series,consensus system)”,arXiv预印本arXiv:1805.04548,2018年.
[25]I.Abraham、D.Malkhi、K.Nayak、L.Ren和M.Yin,“Sync hotstuff:chine复制(Sync hotstuff:chine replication)”,Cryptology ePrint Archive,报告2019/270,2019年,https://eprint.iacr.org/2019/270.
Claims (20)
1.一种用于区块链分片的方法,所述方法包括:
由节点计算机向网络分片中的多个节点计算机广播包括区块链的新交易区块和前一区块的前一区块证书的提议消息,所述前一区块证书包括指示所述前一区块已被提交给所述区块链的数据,所述数据包含阈值签名,所述阈值签名是基于来自所述网络分片中的节点针对所述前一区块的经签名的投票消息的法定数量生成的;
由所述节点计算机从所述多个节点计算机接收至少一个投票消息,所述至少一个投票消息指示对所述新交易区块的验证;
在预定时间量之后,由所述节点计算机接收包括至少所述新交易区块和基于所述至少一个投票消息创建的区块证书的多个预提交消息;以及
如果所述多个预提交消息中的接收到的预提交消息的数目大于与所述网络分片相关联的法定数量值,则由所述节点计算机将所述新交易区块提交给所述区块链。
2.根据权利要求1所述的方法,其中所述提议消息还包括视图编号。
3.根据权利要求2所述的方法,其中所述多个节点计算机在广播所述提议消息之前验证所述前一区块证书。
4.根据权利要求1所述的方法,其中所述网络分片中的所述多个节点计算机是维持作为第一区块链的所述区块链的第一网络分片中的第一多个节点计算机,其中所述法定数量值是第一法定数量值,并且其中维持第二区块链的第二网络分片中的第二多个节点计算机与第二法定数量值相关联。
5.根据权利要求4所述的方法,还包括:
由所述节点计算机基于与所述第一网络分片相关联的不活动定时器来生成关断消息;以及
由所述节点计算机将所述关断消息发送给所述第二网络分片中的所述第二多个节点计算机,其中所述第二网络分片是参考网络分片,其中所述参考网络分片确定关断所述第一网络分片并将所述第一多个节点计算机分布到多个额外分片。
6.根据权利要求4所述的方法,其中在广播所述提议消息之前,所述方法还包括:
由所述节点计算机从客户端装置接收提交交互请求消息,所述提交交互请求消息包括交互数据和由一个或多个分片创建的一个或多个包括证明,其中所述一个或多个包括证明中的至少一个包括证明是由所述第二网络分片创建的;
由所述节点计算机验证所述一个或多个包括证明;以及
如果所述一个或多个包括证明有效,则由所述节点计算机至少将所述交互数据包括在所述新交易区块中。
7.根据权利要求1所述的方法,其中所述新交易区块包括区块标头和区块主体,其中所述区块标头是包括至少累加器值的元组。
8.根据权利要求7所述的方法,其中在将所述新交易区块提交给所述区块链之后,所述方法还包括:
由所述节点计算机从所述节点计算机的存储器移除所述区块主体。
9.根据权利要求1所述的方法,其中所述网络分片中的所述多个节点计算机包括20至200个节点计算机,并且其中所述法定数量值在25至40的范围内。
10.根据权利要求1所述的方法,还包括:
在接收所述多个预提交消息之后,由所述节点计算机验证所述多个预提交消息。
11.一种节点计算机,包括:
处理器;以及
耦合到所述处理器的计算机可读介质,所述计算机可读介质包括能由所述处理器执行以实施方法的代码,所述方法包括:
向网络分片中的多个节点计算机广播包括区块链的新交易区块和前一区块的前一区块证书的提议消息,所述前一区块证书包括指示所述前一区块已被提交给所述区块链的数据,所述数据包含阈值签名,所述阈值签名是基于来自所述网络分片中的节点针对所述前一区块的经签名的投票消息的法定数量生成的;
从所述多个节点计算机接收至少一个投票消息,所述至少一个投票消息指示对所述新交易区块的验证;
在预定时间量之后,接收包括至少所述新交易区块和基于所述至少一个投票消息创建的区块证书的多个预提交消息;以及
如果所述多个预提交消息中的接收到的预提交消息的数目大于与所述网络分片相关联的法定数量值,则将所述新交易区块提交给所述区块链。
12.根据权利要求11所述的节点计算机,其中所述提议消息还包括视图编号,其中所述多个预提交消息中的每个预提交消息包括所述视图编号,并且其中所述方法还包括:
在接收所述多个预提交消息之后,至少使用每个预提交消息中的所述视图编号来验证所述多个预提交消息。
13.根据权利要求11所述的节点计算机,其中在广播所述提议消息之前,所述方法还包括:
从客户端装置接收提交交互请求消息,所述提交交互请求消息包括交互数据和一个或多个包括证明;
由所述节点计算机验证所述一个或多个包括证明;以及
如果所述一个或多个包括证明有效,则由所述节点计算机至少将所述交互数据包括在所述新交易区块中。
14.根据权利要求11所述的节点计算机,其中所述网络分片是参考网络分片,而所述节点计算机是第一节点计算机并且是维持第一区块链的所述参考网络分片的当前领导者,其中第二网络分片中的第二多个节点计算机维持第二区块链,并且其中所述方法还包括:
从所述第二多个节点计算机接收一个或多个关断消息;
如果所述一个或多个关断消息中的接收到的关断消息的数目大于与所述第二网络分片相关联的关断阈值,则将所述第二多个节点计算机中的每个节点计算机指派给当前历元中节点到分片表中的空值网络分片;以及
将新交易从所述第二网络分片重新指派给第三分片。
15.根据权利要求14所述的节点计算机,其中网络包括多个分片,所述多个分片包括所述参考网络分片和所述第二网络分片,并且其中所述方法还包括:
向所述参考网络分片中的所述多个节点计算机广播包括所述节点到分片表的提议表更新消息;
执行提交过程以将所述参考网络分片提交给所述节点到分片表;以及
如果所述参考网络分片提交给所述节点到分片表,则将所述节点到分片表广播到所述网络,其中在接收到所述节点到分片表之后,所述第二多个节点计算机停止处理所述第二区块链的新交易区块。
16.根据权利要求11所述的节点计算机,其中所述方法还包括:
在广播所述提议消息之前,生成所述新交易区块,其中所述新交易区块包括区块标头和区块主体。
17.根据权利要求16所述的节点计算机,其中所述区块标头是包括至少累加器值、区块高度、历元编号、梅克尔树的根以及所述区块链中的前一区块的前一区块标头的摘要的元组,其中生成所述新交易区块包括:
在所述区块链的一个或多个最新金额上使用累加器来确定所述累加器值。
18.根据权利要求17所述的节点计算机,其中在将所述新交易区块提交给所述区块链之后,所述方法还包括:
从所述节点计算机的存储器移除所述区块主体。
19.根据权利要求11所述的节点计算机,其中所述网络分片中的所述多个节点计算机是维持作为第一区块链的所述区块链的第一网络分片中的第一多个节点计算机,其中所述法定数量值是第一法定数量值,并且其中维持第二区块链的第二网络分片中的第二多个节点计算机与第二法定数量值相关联,其中所述第一网络分片和所述第二网络分片包括相同数目的节点计算机,并且其中所述第一法定数量值等于所述第二法定数量值。
20.根据权利要求11所述的节点计算机,其中所述法定数量值是预定值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962898905P | 2019-09-11 | 2019-09-11 | |
US62/898,905 | 2019-09-11 | ||
PCT/US2020/050473 WO2021050929A1 (en) | 2019-09-11 | 2020-09-11 | Blockchain sharding with adjustable quorums |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114391241A CN114391241A (zh) | 2022-04-22 |
CN114391241B true CN114391241B (zh) | 2024-06-11 |
Family
ID=74866052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080064133.9A Active CN114391241B (zh) | 2019-09-11 | 2020-09-11 | 具有可调整法定数量的区块链分片 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11902456B2 (zh) |
EP (1) | EP4029218A4 (zh) |
CN (1) | CN114391241B (zh) |
WO (1) | WO2021050929A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102137784B1 (ko) * | 2018-12-24 | 2020-07-24 | 주식회사 지비시코리아 | 블록체인 기반 인수 합병 서비스 제공 시스템 및 이의 동작 방법 |
US11531982B2 (en) * | 2020-06-24 | 2022-12-20 | University Of Florida Research Foundation, Inc. | Optimal transactions sharding for scalable blockchain |
CN112636929B (zh) * | 2020-12-29 | 2023-01-17 | 北京百度网讯科技有限公司 | 群组业务实现方法、装置、设备和存储介质 |
EP4315734A1 (en) * | 2021-05-07 | 2024-02-07 | Dfinity Stiftung | Data authentication in distributed networks |
EP4187838A1 (en) * | 2021-11-26 | 2023-05-31 | Abb Schweiz Ag | Method for authenticating distributed votes for a distributed system |
WO2023177358A1 (en) * | 2022-03-18 | 2023-09-21 | National University Of Singapore | Distributed verifiable ledger database |
KR20240041141A (ko) * | 2022-09-22 | 2024-03-29 | 주식회사 블룸테크놀로지 | 블록체인 네트워크에서 어카운트 디렉토리 변경 시스템 및 방법 |
CN117221335B (zh) * | 2023-11-08 | 2024-03-19 | 西安电子科技大学 | 无线区块链网络分片方法及装置、电子设备、存储介质 |
CN117527266B (zh) * | 2024-01-05 | 2024-05-17 | 杭州趣链科技有限公司 | 异步网络共识方法、装置、电子设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
US9875510B1 (en) * | 2015-02-03 | 2018-01-23 | Lance Kasper | Consensus system for tracking peer-to-peer digital records |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6364132B2 (ja) * | 2015-03-31 | 2018-07-25 | ナスダック, インコーポレイテッドNasdaq, Inc. | ブロックチェーン取引記録のシステムおよび方法 |
US10067969B2 (en) * | 2015-05-29 | 2018-09-04 | Nuodb, Inc. | Table partitioning within distributed database systems |
US9998150B1 (en) * | 2015-06-16 | 2018-06-12 | Amazon Technologies, Inc. | Layered data redundancy coding techniques for layer-local data recovery |
US10394789B1 (en) * | 2015-12-07 | 2019-08-27 | Amazon Technologies, Inc. | Techniques and systems for scalable request handling in data processing systems |
US20170193464A1 (en) * | 2015-12-18 | 2017-07-06 | Justin SHER | Protocol utilizing bitcoin blockchain for maintaining independently proposed and approved set contents |
US10417217B2 (en) * | 2016-08-05 | 2019-09-17 | Chicago Mercantile Exchange Inc. | Systems and methods for blockchain rule synchronization |
US20180174143A1 (en) * | 2016-12-19 | 2018-06-21 | International Business Machines Corporation | Differential commit time in a blockchain |
US10356102B2 (en) * | 2017-02-24 | 2019-07-16 | Verizon Patent And Licensing Inc. | Permissions using blockchain |
US10255342B2 (en) * | 2017-04-12 | 2019-04-09 | Vijay K. Madisetti | Method and system for tuning blockchain scalability, decentralization, and security for fast and low-cost payment and transaction processing |
US11924322B2 (en) * | 2017-05-16 | 2024-03-05 | Arm Ltd. | Blockchain for securing and/or managing IoT network-type infrastructure |
CN110832825B (zh) * | 2017-05-22 | 2022-10-21 | 维萨国际服务协会 | 通过防篡改数据提高验证速度的网络的方法和节点 |
US10740733B2 (en) * | 2017-05-25 | 2020-08-11 | Oracle International Corporaton | Sharded permissioned distributed ledgers |
JP2020522796A (ja) * | 2017-06-01 | 2020-07-30 | シュヴェイ, インク. ディー/ビー/エー アクソーニSCHVEY, INC. d/b/a AXONI | 安全なアクセス制限を管理する分散型のプライベートにサブスペース化されたブロックチェーン・データ構造 |
WO2019008158A1 (en) * | 2017-07-06 | 2019-01-10 | Chromaway Ab | METHOD AND SYSTEM OF DISTRIBUTED COMPUTER SYSTEM |
US11238164B2 (en) * | 2017-07-10 | 2022-02-01 | Burstiq, Inc. | Secure adaptive data storage platform |
US10552556B2 (en) * | 2017-08-03 | 2020-02-04 | Liquineq AG | System and method for performance testing of scalable distributed network transactional databases |
KR20190067581A (ko) * | 2017-12-07 | 2019-06-17 | 한국전자통신연구원 | 블록체인 트랜잭션 분산 처리 장치 및 방법 |
US20190188697A1 (en) * | 2017-12-19 | 2019-06-20 | Tbcasoft, Inc. | Systems of multiple distributed ledgers using cross-ledger transfers for highly-scalable transaction throughput |
CN108288159A (zh) | 2018-03-07 | 2018-07-17 | 物数(上海)信息科技有限公司 | 基于多区块链的跨链交易方法、***、设备及存储介质 |
US11816094B2 (en) | 2018-05-10 | 2023-11-14 | Cornell University | Metastable byzantine agreement |
US11139956B2 (en) | 2018-05-24 | 2021-10-05 | Dapper Labs Inc. | Decentralized computation system architecture based on node specialization |
US11019123B2 (en) * | 2018-06-22 | 2021-05-25 | International Business Machines Corporation | Multi-bitrate component sharding |
EP3841486A4 (en) * | 2018-08-23 | 2022-06-15 | Providentia Worldwide, LLC | SYSTEMS AND METHODS OF INTERCONNECTIONS AND BLOCKCHAIN RELATIONSHIPS |
CN110115001B (zh) * | 2018-11-07 | 2022-07-15 | 创新先进技术有限公司 | 促进实用拜占庭容错区块链共识和节点同步 |
US20200183586A1 (en) * | 2018-12-07 | 2020-06-11 | YMAX Co., Ltd | Apparatus and method for maintaining data on block-based distributed data storage system |
WO2020197514A1 (en) * | 2019-03-27 | 2020-10-01 | Koc Universitesi | A distributed hash table based blockchain architecture for resource constrained environments |
FR3099017B1 (fr) * | 2019-07-16 | 2021-08-06 | Idemia Identity & Security France | Procédé de vérification d’une transaction dans une base de données de type chaîne de blocs |
US10860259B1 (en) * | 2019-07-17 | 2020-12-08 | Tyson York Winarski | Multi-tiered storage system for blockchain |
-
2020
- 2020-09-11 EP EP20863017.8A patent/EP4029218A4/en active Pending
- 2020-09-11 US US17/640,164 patent/US11902456B2/en active Active
- 2020-09-11 WO PCT/US2020/050473 patent/WO2021050929A1/en unknown
- 2020-09-11 CN CN202080064133.9A patent/CN114391241B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9875510B1 (en) * | 2015-02-03 | 2018-01-23 | Lance Kasper | Consensus system for tracking peer-to-peer digital records |
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021050929A1 (en) | 2021-03-18 |
US11902456B2 (en) | 2024-02-13 |
US20220271957A1 (en) | 2022-08-25 |
CN114391241A (zh) | 2022-04-22 |
EP4029218A4 (en) | 2022-09-21 |
EP4029218A1 (en) | 2022-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114391241B (zh) | 具有可调整法定数量的区块链分片 | |
Zamani et al. | Rapidchain: Scaling blockchain via full sharding | |
US11626993B2 (en) | Network for improved verification speed with tamper resistant data | |
CN111448781B (zh) | 一种计算机实现的用于通信共享的区块链数据的方法 | |
KR102237219B1 (ko) | 분산 시스템 내의 네트워크 노드들 간의 합의 달성 | |
Luu et al. | Scp: A computationally-scalable byzantine consensus protocol for blockchains | |
US11128522B2 (en) | Changing a master node in a blockchain system | |
KR101569818B1 (ko) | 개체 네트워크 변환 | |
US9122846B2 (en) | Document verification with distributed calendar infrastructure | |
TW202101939A (zh) | 用於區塊鏈系統中的主節點切換處理的方法及裝置 | |
CN111837115A (zh) | 共享的区块链数据存储 | |
CN113328997B (zh) | 联盟链跨链***及方法 | |
Chen et al. | Reducing participation costs via incremental verification for ledger systems | |
Basu et al. | Efficient verifiable secret sharing with share recovery in BFT protocols | |
US20200259663A1 (en) | One-Time Data Signature System and Method with Untrusted Server Assistance | |
Hao et al. | Outsourced data integrity verification based on blockchain in untrusted environment | |
Huang et al. | EVA: Efficient versatile auditing scheme for IoT-based datamarket in jointcloud | |
KR20220140775A (ko) | 분산형 데이터베이스 | |
Wang et al. | A fast and secured peer-to-peer energy trading using blockchain consensus | |
Ozdayi et al. | Instachain: Breaking the sharding limits via adjustable quorums | |
Saeed et al. | Performance evaluation of E-voting based on hyperledger fabric blockchain platform | |
Dold et al. | Byzantine set-union consensus using efficient set reconciliation | |
Xu et al. | Ecom: Epoch randomness-based consensus committee configuration for iot blockchains | |
Camaioni et al. | Oracular Byzantine Reliable Broadcast | |
Kokoris Kogias | Secure, confidential blockchains providing high throughput and low latency |
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 |