CN114650289A - 用于区块链共识的方法及装置 - Google Patents
用于区块链共识的方法及装置 Download PDFInfo
- Publication number
- CN114650289A CN114650289A CN202011399560.0A CN202011399560A CN114650289A CN 114650289 A CN114650289 A CN 114650289A CN 202011399560 A CN202011399560 A CN 202011399560A CN 114650289 A CN114650289 A CN 114650289A
- Authority
- CN
- China
- Prior art keywords
- consensus
- nodes
- node
- block
- determined
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
-
- 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
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种用于区块链共识的方法及装置。该方法包括:在区块链网络中的记账节点处,根据共识节点数量在所述区块链网络中确定针对待共识的区块的共识节点,其中,共识节点数量是根据区块链网络中的节点总数、容错率以及攻击节点比例确定的;以及记账节点和所确定的共识节点对区块进行共识处理。通过本公开的技术方案,参与共识的共识节点是从区块链网络中随机确定的部分节点,从而在共识过程中仅该部分共识节点进行共识计算,减少了区块链网络的工作量,降低区块链网络的负载压力。
Description
技术领域
本公开涉及区块链技术领域,具体地,涉及一种用于区块链共识的方法及装置。
背景技术
分布式账本(Distributed ledger,DL)是一种在分布式记账系统(Distributedledger systems,DLSs)的成员(也称为“节点”)之间共享、复制和同步的数据库。分布式账本记录分布式记账系统的成员之间的交易,比如资产或数据的交换。DLS是一种去中心化的分布式记账系统。在DLS中,每个节点复制并保存分类帐,该分类账在每个节点处独立地进行更新,并且不需要中心节点来进行维护。
DLS也可以称为共识网络、区块链网络和/或区块链系统。区块链的示例可以包括公有区块链、私有区块链和联盟区块链。
区块链网络依赖于共识机制来在区块链网络中的所有节点之间实现数据一致性。例如,如果区块链系统中的某个节点需要进行交易处理,则会针对该交易所对应的提议在区块链系统中进行共识处理,以在区块链系统的所有节点之间达成一致。在共识过程中,区块链网络中的每个节点都需要进行共识并进行相应地计算处理,导致区块链网络的负载较大。并且,区块链网络中的所有节点都参与共识时,参与共识的节点的数量多,相应地共识确认所需的节点数量也多,从而导致共识确认效率低。
发明内容
鉴于上述,本公开提供了一种用于区块链共识的方法及装置。在本公开的技术方案中,参与共识的共识节点是从区块链网络中随机确定的部分节点,从而在共识过程中仅该部分共识节点进行共识计算,减少了区块链网络的工作量,降低区块链网络的负载压力。
根据本公开的一个方面,提供了一种用于区块链共识的方法,包括:在区块链网络中的记账节点处,根据共识节点数量在所述区块链网络中确定针对待共识的区块的共识节点,其中,所述共识节点数量是根据所述区块链网络中的节点总数、容错率以及攻击节点比例确定的;以及所述记账节点和所确定的共识节点对所述区块进行共识处理。
可选地,在上述方面的一个示例中,所述记账节点和所确定的共识节点对所述区块进行共识处理包括:所述记账节点将所述区块广播给所述区块链网络中的各个节点;所述记账节点和所确定的共识节点对所述区块进行共识确认;以及在共识达成后,所述区块链网络中的各个节点将所述区块记录在各自的区块链上。
可选地,在上述方面的一个示例中,还包括:在所述记账节点处,当所述共识节点中存在投票失败的共识节点时,对所述投票失败的共识节点进行赔付。
可选地,在上述方面的一个示例中,在所述记账节点处,当所述共识节点中存在投票失败的共识节点时,对所述投票失败的共识节点进行赔付包括:在所述记账节点处,当所述共识节点中存在投票失败的共识节点时,根据投票差异率确定赔付比例;以及根据所述赔付比例对所述投票失败的共识节点进行赔付。
可选地,在上述方面的一个示例中,所述投票差异率根据所述共识节点中投票成功和投票失败的节点数量确定。
可选地,在上述方面的一个示例中,所述区块链网络还包括监管节点,所述方法还包括:在所述监管节点处,触发所述区块链网络中的所有节点或除所述监管节点以外的其他所有节点针对共识结果进行投票验证。
可选地,在上述方面的一个示例中,在所述监管节点处,触发所述区块链网络中的全部节点针对共识结果进行投票验证包括:在所述监管节点处,当利用本地存储的交易数据对所述共识结果验证失败时,触发所述区块链网络中的所有节点或除所述监管节点以外的其他所有节点针对共识结果进行投票验证。
可选地,在上述方面的一个示例中,在所述监管节点包括多个时,所述区块是交易数据经过分片处理后的分片数据得到的,该交易数据对应的分片数据分布存储于多个监管节点。
可选地,在上述方面的一个示例中,所述记账节点和所确定的共识节点对所述区块进行共识处理包括:在所述记账节点处,将所述区块广播给所确定的各个共识节点;所述记账节点和所确定的共识节点对所述区块进行共识确认;以及在共识达成后,所述记账节点和各个共识节点将所述区块记录在各自的区块链上。
可选地,在上述方面的一个示例中,所述区块是经过分片处理得到的分片数据被打包得到的分片区块,所述共识节点数量是根据所述区块链网络中的节点总数、容错率、攻击节点比例以及分片数量确定的。
可选地,在上述方面的一个示例中,在节点总数、容错率以及攻击节点比例固定的情况下,所述共识节点数量随着分片数量的增加而减少。
可选地,在上述方面的一个示例中,所述区块链网络经过网络分片被划分为多个分片网络;所述记账节点与所确定的共识节点对所述区块进行共识处理包括:针对一个分片网络,该分片网络中的记账节点和所确定的共识节点对待共识的分片区块进行共识处理。
根据本公开的另一方面,还提供一种用于区块链共识的方法,包括:根据共识节点数量在区块链网络中确定针对待共识的区块的共识节点,其中,所述共识节点数量是根据所述区块链网络中的节点总数、容错率以及攻击节点比例确定的;以及与所确定的共识节点对所述区块进行共识处理。
可选地,在上述方面的一个示例中,与所确定的共识节点对所述区块进行共识处理包括:将所述区块广播给所述区块链网络中的各个节点;与所确定的共识节点对所述区块进行共识确认;以及在共识达成后,将所述区块记录在各自的区块链上。
可选地,在上述方面的一个示例中,还包括:当所述共识节点中存在投票失败的共识节点时,对所述投票失败的共识节点进行赔付。
可选地,在上述方面的一个示例中,与所确定的共识节点对所述区块进行共识处理包括:将所述区块广播给所确定的各个共识节点;与所确定的共识节点对所述区块进行共识确认;以及在共识达成后,将所述区块记录在各自的区块链上。
可选地,在上述方面的一个示例中,所述区块是经过分片处理得到的分片数据被打包得到的分片区块,所述共识节点数量是根据所述区块链网络中的节点总数、容错率、攻击节点比例以及分片数量确定的,所述区块链网络经过网络分片被划分为多个分片网络;根据共识节点数量在区块链网络中确定针对待共识的区块的共识节点包括:根据所述共识节点数量从所属的分片网络中随机确定针对待共识的分片区块的共识节点。
根据本公开的另一方面,还提供一种用于区块链共识的装置,包括:节点确定单元,被配置为根据共识节点数量在区块链网络中确定针对待共识的区块的共识节点,其中,所述共识节点数量是根据所述区块链网络中的节点总数、容错率以及攻击节点比例确定的;以及共识单元,被配置为与所确定的共识节点对所述区块进行共识处理。
根据本公开的另一方面,还提供一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的用于区块链共识的方法。
根据本公开的另一方面,还提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的用于区块链共识的方法。
附图说明
通过参照下面的附图,可以实现对于本公开内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
图1示出了根据本公开的实施例的示例环境的示意图。
图2A示出了根据本公开的实施例的区块链网络的一个示例的架构示意图。
图2B示出了根据本公开的实施例的区块链网络的另一个示例的架构示意图。
图3示出了根据本公开的实施例的用于区块链共识的方法的一个示例的示意图。
图4示出了根据本公开的实施例的共识过程的一个示例的示意图。
图5示出了根据本公开的实施例的共识过程中的预准备消息、准备消息以及确认消息的格式的一个示例的示意图。
图6示出了根据本公开的实施例的用于区块链共识的方法的另一个示例的示意图。
图7示出了根据本公开的实施例的用于区块链共识的方法的另一个示例的示意图。
图8示出了根据本公开的实施例的用于区块链共识的方法的一个示例的流程图。
图9示出了根据本公开的实施例的用于区块链共识的装置的一个示例的方框图。
图10示出了根据本公开的实施例的实现用于区块链共识的方法的电子设备的方框图。
具体实施方式
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
区块链是一种按照时间顺序来将数据区块顺序相连组合而成的链式数据结构,并且以密码学方式保证数据区块不可篡改和不可伪造。区块链包括一个或多个区块。区块链中的每个区块通过包括该区块链中紧接其之前的前一个区块的加密散列而链接到该前一个区块。每个区块还包括时间戳、该区块的加密哈希以及一个或多个交易(transaction)。对已经被区块链网络的节点验证的交易进行哈希处理并形成Merkle树。在Merkle树中,对叶节点处的数据进行哈希处理,并且针对Merkle树的每个分支,在该分支的根处级联该分支的所有哈希值。针对Merkle树执行上述处理,直到整个Merkle树的根节点。Merkle树的根节点存储代表该Merkle树中的所有数据的哈希值。当一个哈希值声称是Merkle树中存储的交易时,可以通过判断该哈希值是否与Merkle树的结构一致来进行快速验证。
区块链是用于存储交易的数据结构。区块链网络是用于管理、更新和维护一个或多个区块链结构的计算节点网络。如上所述,区块链网络可以包括公有区块链网络、私有区块链网络或联盟区块链网络。
在公有区块链网络中,共识过程由共识网络的节点控制。例如,在公有区块链网络中可以存在成千上万个实体协作处理,每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是参与实体的公有网络。在一些示例中,大多数实体(节点)必须按序对每个区块进行签名,并且将签名后的区块添加到区块链网络的区块链中。公有区块链网络的示例可以包括特定对等支付网络。
公有区块链网络支持公有交易。公有交易在公有区块链网络内的所有节点之间共享,并且存储在全局区块链中。全局区块链是指跨所有节点复制的区块链。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实现共识协议。共识协议的示例包括但不限于:工作量证明(POW,proof-of-work),权益证明(POS,proof-of-stake)和权威证明(POA,proof-of-authority)。在本公开中,采用POW作为非限制性示例。
私有区块链网络被提供来用于特定实体。私有区块链网络中的各个节点的读写权限被严格控制。因此,私有区块链网络通常也称为许可网络,其对允许谁参与网络以及的网络参与水平(例如,仅在某些交易情形下)进行限制。在私有区块链网络中,可以使用各种类型的访问控制机制(例如,现有参与方对添加新实体进行投票,监管机构控制许可等)。
联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识过程由授权节点控制。例如,由若干个(例如,10个)实体(例如,金融机构,保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作该联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是参与实体的私有网络。在一些示例中,每个参与实体(节点)必须按序对每个区块进行签名,并将该区块添加到区块链。在一些示例中,可以由参与实体(节点)的子集(例如,至少7个实体)来对每个区块进行签名,并将该区块添加到区块链。
图1示出了根据本公开的实施例的示例环境100的示意图。如图1所示,示例环境100允许实体参与区块链网络102。区块链网络102例如可以是公有链、私有链或联盟链的区块链网络。示例环境100可以包括计算设备104、106、108、110、112和网络114。在一实施例中,网络114可以包括局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、因特网或其组合,并连接至网站、用户设备(例如计算设备)和后端系统。在一实施例中,计算设备104、106、108、110、112可以通过有线和/或无线通信方式访问网络114。
在某些情况下,计算设备106、108可以是云计算系统的节点(未显示),或者每个计算设备106、108可以是单独的云计算系统,包括由网络互连并作为分布式处理系统工作的多台计算机。
在一实施例中,计算设备104~108可以运行任何适当的计算系统,使其能够作为区块链网络102中的节点。例如,计算设备104~108可以包括但不限于服务器、台式计算机、笔记本电脑、平板电脑计算设备和智能手机。在一实施例中,计算设备104~108可以归属于相关实体并用于实现相应的服务,例如,该服务可以用于对某一实体或多个实体之间的交易进行管理。
在一实施例中,计算设备104~108分别存储有区块链网络102对应的区块链账本。计算设备104可以是(或包含)用于提供浏览器功能的网络服务器,该网络服务器可基于网络114提供与区块链网络102相关的可视化信息。在一些情况下,计算设备104可以不参与区块验证,而是监控区块链网络102以确定其他节点(譬如可以包括计算设备106-108)何时达成共识,并据此生成相应的区块链可视化用户界面。
在一实施例中,计算设备110和112可以是与区块链网络102相连的客户端设备。例如,计算设备110可以是医疗机构平台处的终端设备,以及计算设备112可以是广告监管平台处的终端设备。计算设备110和112可以包括但不限于服务器、台式计算机、笔记本电脑、平板电脑计算设备和智能手机。
在一实施例中,计算设备104可以接收客户端设备(例如计算设备110或计算设备112)针对区块链可视化用户界面发起的请求。在一些情况下,区块链网络102的节点也可以作为客户端设备,比如计算设备108的用户可以使用运行在计算设备108上的浏览器向计算设备104发送上述请求。
响应于上述请求,计算设备104可以基于存储的区块链账本生成区块链可视化用户界面(如网页),并将生成的区块链可视化用户界面发送给请求的客户端设备。如果区块链网络102是私有类型或联盟类型的区块链网络,对区块链可视化用户界面的请求可以包括用户授权信息,在生成区块链可视化用户界面并发送给请求的客户端设备之前,可以由计算设备104对该用户授权信息进行验证,并在验证通过后返回相应的区块链可视化用户界面。
区块链可视化用户界面可以显示在客户端设备上(例如可显示在图1所示的用户界面116中)。当区块链账本发生更新时,用户界面116的显示内容也可以随之发生更新。此外,用户与用户界面116的交互可能导致对其他用户界面的请求,例如显示区块列表、区块详情、交易列表、交易详情、账户列表、账户详情、合约列表、合约详情或者用户对区块链网络实施搜索而产生的搜索结果页面等。
图2A示出了根据本公开的实施例的区块链网络的一个示例200的架构示意图。
如图2A所示,客户端210与区块链网络214通信连接。在一个示例中,客户端210与区块链网络214中的一个节点通信连接。客户端210可以生成或获取到待存储的交易数据,并将交易数据发送给通信连接的节点,该节点接收到交易数据后,可以将交易数据广播至区块链网络214中的其他节点。此外,该节点还可以对交易数据进行检查以确定交易数据符合要求,比如,交易是否有效、格式是否正确等。在交易数据符合要求后,该节点可以将交易数据存储至交易存储池中。
区块链网络214包括多个区块链节点,该多个区块链节点中包括记账节点220。记账节点220可以是根据PoW(proof-of-work,工作量证明)、PoS(proof-of-stake,权益证明)、PoA(proof-of-authority,权威证明)等共识机制从该多个区块链节点中确定的。
记账节点220可以将待存储的交易数据打包成区块,并与区块链网络214中的其他共识节点对区块进行共识,在共识成功时,可以将区块记录在区块链216上,以完成对交易数据的存储。
在一个示例中,区块链网络214还可以包括监管节点230,监管节点230可以对区块链网络214中的每次交易的共识结果进行监督和验证,以进一步地保证共识结果正确且未被篡改。监管节点230可以是参与共识的共识节点,也可以是不参与共识的非共识节点。
图2B示出了根据本公开的实施例的区块链网络的另一个示例250的架构示意图。
如图2B所示,客户端210可以是区块链网络214中的区块链节点,还可以是一个区块链节点的组成部分。在该示例中,客户端210可以将待存储的交易数据打包上链至区块链216进行存储。具体地,客户端210可以将交易数据广播至区块链网络214中的其他区块链节点,然后,客户端210可以作为共识节点参与共识,在共识成功时,客户端210可以将包括交易数据的区块上链至区块链216上存储。
图3示出了根据本公开的实施例的用于区块链共识的方法的一个示例300的示意图。
图3示出的方法可以应用于包括多个区块链节点的区块链网络,图3中的记账节点和共识节点都属于同一区块链网络。需要说明的是,图3中示出的参与区块链共识的3个节点仅作为示例,参与区块链共识的共识节点可以是任意数量个。
如图3所示,在310,在区块链网络中的记账节点处,可以根据共识节点数量在区块链网络中确定共识节点。
在本公开中,所确定的共识节点是区块链网络中的部分节点。所确定的共识节点对应一次交易的区块,即,记账节点针对每个交易的区块可以确定一次共识节点,所确定出的共识节点用于对该交易的区块进行共识处理。不同的交易所对应的共识节点可以不同,例如,不同交易所确定出的共识节点数量可以不同,又例如,针对不同交易,所确定出的共识节点可以全部或者部分不同。
记账节点确定共识节点的触发条件可以是该记账节点从区块链网络中的节点中被选出。当区块链网络中的各个节点中选出一个节点作为记账节点时,该记账节点可以发起共识,从而可以先确定针对待共识区块的共识节点。此外,记账节点确定共识节点的触发条件还可以是记账节点接收到交易请求。当记账节点接收到通信连接的客户端的交易请求时,记账节点也可以发起针对交易请求的共识,从而可以先确定待共识的区块的共识节点。
在本公开中,共识节点数量可以是根据区块链网络中的节点总数、容错率以及攻击节点比例确定的。容错率和攻击节点比例可以是指定的。在一个示例中,容错率和攻击节点比例可以是根据经验值指定的。比如,容错率为万分之一,攻击节点比例为三分之一。当容错率为万分之一且攻击节点比例为三分之一时,表示针对区块链网络中三分之一的节点的攻击,发生差错的概率不超过万分之一。
记账节点可以根据区块链网络中的节点总数、容错率以及攻击节点比例确定共识节点数量,然后,从区块链网络中随机选出共识节点数量的节点作为共识节点。
共识节点数量与节点总数、容错率和攻击节点比例是对应的,节点总数、容错率和攻击节点比例中的至少一个参数不同,则对应确定出的共识节点数量可以不同。共识节点数量与节点总数、容错率和攻击节点比例之间的对应关系可以根据实验数据、经验等方式确定。
在攻击节点比例和容错率确定的情况下,节点总数不同,对应的共识节点数量也可以不同。以下表1为例,
表1
从上表1可知,在保持容错率为万分之一以及攻击节点比例为三分之一的情况下,当区块链网络的节点总数为500时,对应的共识节点数量是102,即,需要102个共识节点才能使得拥有攻击节点比例33.7%的节点攻击成功的概率达到万分之一。当区块链网络的节点总数为1000时,对应的共识节点数量是110;当区块链网络的节点总数为5000时,对应的共识节点数量是122;当区块链网络的节点总数为20000时,对应的共识节点数量是124;当区块链网络的节点总数为100000时,对应的共识节点数量是126;当区块链网络的节点总数为300000时,对应的共识节点数量是126;当区块链网络的节点总数为2000000时,对应的共识节点数量是126。
又例如,攻击节点比例为45%,容错率为万分之一,不同的节点总数对应确定出的共识节点数量可以不同。以下表2为例,
表2
攻击节点比例 | 容错率 | 节点总数 | 共识节点数量 |
45% | 1/10000 | 20000 | 1306 |
45% | 1/10000 | 60000 | 1364 |
45% | 1/10000 | 200000 | 1386 |
45% | 1/10000 | 600000 | 1394 |
从上表2可知,在保持容错率为万分之一以及攻击节点比例为45%的情况下,当区块链网络的节点总数为20000时,对应的共识节点数量是1306;当区块链网络的节点总数为60000时,对应的共识节点数量是1364;当区块链网络的节点总数为200000时,对应的共识节点数量是1386;当区块链网络的节点总数为600000时,对应的共识节点数量是1394。在区块链网络中的节点总数超过60万时,对应的共识节点数量在1394的基础上变化较小。
从上述表1和表2可知,共识节点数量可以随着攻击节点比例的增加而增加。比如,在节点总数在20000的情况下,攻击节点比例45%对应的共识节点数量是1306,远远大于攻击节点比例33.47%对应的共识节点数量124。
在一个示例中,共识节点数量还可以根据区块链网络中的节点总数、容错率、攻击节点比例以及共识确认比例确定。
共识确认比例是用于确定共识是否通过的比例。在共识过程中的共识确认阶段,各个共识节点可以对共识的区块进行验证,当验证通过的节点的比例大于共识确认比例时,可以确定当前共识通过。在共识通过时,可以将通过共识的区块上链至区块链。
共识确认比例可以是指定的,比如,共识确认比例可以设置为大于50%的比例。当共识确认比例为50%时,则需要通过验证的节点的比例达到50%才可以确认共识通过。
共识确认比例是基于共识节点的比例。例如,当参与共识的共识节点有10000个,共识确认比例为50%,则表示需要超过5000个共识节点验证通过才可以确认共识通过。
基于节点总数、容错率、攻击节点比例以及共识确认比例所确定出的共识节点数量可以表示:从具有节点总数个的区块链节点中随机选出共识节点数量的共识节点,其中,该数量个共识节点中的超过共识确认比例的共识节点可以落入攻击节点比例对应的攻击节点的范围内,且这些攻击节点攻击成功的概率不超过万分之一。
对于共识节点数量与节点总数、容错率以及攻击节点比例之间的对应关系,以及共识节点数量与节点总数、容错率、攻击节点比例以及共识确认比例之间的对应关系,可以利用各个参数的数据对相应的对应关系进行验证。
在一个示例中,可以将节点总数和共识节点数量确定为固定的已知值,将容错率和攻击节点比例作为变量,计算不同的容错率对应的不同的攻击节点比例。然后,根据计算出的攻击节点比例、对应的容错率以及已知的节点总数和共识节点数量来验证基于共识节点数量与节点总数、容错率以及攻击节点比例之间的对应关系是否正确。
在另一个示例中,可以将节点总数、共识节点数量以及共识确认比例作为固定的已知值,将容错率和攻击节点比例作为变量,计算不同的容错率对应的不同的攻击节点比例。然后,根据计算出的攻击节点比例、对应的容错率以及已知的节点总数、共识节点数量和共识确认比例来验证基于共识节点数量与节点总数、容错率、攻击节点比例以及共识确认比例之间的对应关系是否正确。
例如,可以将节点总数设置为10000,共识节点数量为120,共识确认比例为50%,容错率可以分别设置为0.0001、0.001、0.01等,然后分别计算各个容错率对应的攻击节点数量。所得到的计算结果如下表3所示。
表3
如上表3所示,在有120个共识节点的情况下,共识确认比例50%对应的节点数量为60,表示在共识确认阶段需要至少60个共识节点确认验证通过,才能确定共识成功。根据各个容错率对应的攻击节点数量可以得到相应的攻击节点比例,比如,攻击节点数量为3324对应的攻击节点比例为33.24%。这样,可以验证对应关系中节点总数为10000、攻击节点比例为33.24%以及容错率为0.0001所对应的共识节点数量是否是120,如果是,则表示对应关系正确,如果不是,则表示对应关系有误,需要调整该对应关系中的参数的数值。
在另一个示例中,还可以将节点总数N、共识节点数量M、共识确认比例D和攻击节点比例L确定为已知值,则由节点总数N和攻击节点比例L可以得到攻击节点总数N0为:N0=N×L。由共识节点数量M和共识确认比例D可以得到发起攻击且攻击成功的攻击节点的最少数量r为:r=M×D,则针对该N0个节点的容错率可以根据以下方式计算得到。首先计算拥有k个节点攻击成功的概率是:
其中,Pk表示k个攻击节点中有超过r个共识节点的概率。k是大于等于r且小于等于N0的整数,N0表示N个节点中发起攻击的节点数量。
然后,根据各个小于等于N0的k所对应的概率值,利用下述公式得到拥有N0个节点攻击成功的概率为:
其中,P表示N0个节点攻击成功的概率。
例如,节点总数N为500,攻击节点比例L为33.7%,则攻击节点总数N0为168。共识节点数量为102,共识确认比例D为50%,则最少数量r为51,则相应地在102个共识节点中发起攻击的攻击节点的数量可以是51、52、53、…、102,将这52种情况中的概率相加所得到的总概率P即为容错率,该容错率可以表示攻击节点总数的攻击节点中有k个攻击节点是共识节点中攻击节点攻击成功的概率,比如,容错率P表示168个攻击节点中有大于或等于51个攻击节点属于共识节点且攻击成功的概率。在指定的安全要求中要求容错率不高于万分之一的情况下,当所计算出的容错率P不超过万分之一时,表示用于计算容错率的共识节点数量可以达到指定的安全要求。
通过根据设置已知的共识节点所得到的攻击节点比例来对已存在的对应关系进行验证,以确保对应关系正确,从而确保在减少共识节点的情况下达到指定的安全要求。
在本公开的一个示例中,记账节点可以直接获取到共识节点数量,再从区块链网络中随机确定出该数量的共识节点。
在一个示例中,用于确定共识节点的各个参数不变,比如,节点总数、容错率以及攻击节点比例等都不变,则共识节点数量也保持不变。基于此,记账节点可以所确定的共识节点数量不变,记账节点根据相同的数量值来从区块链网络中随机选取共识节点。
例如,攻击节点比例为45%,容错率为万分之一,节点总数为20000,则对应的共识节点数量是1306。若该三个参数保持不变,则每次共识的共识节点数量都是1306,则对于记账节点来说,可以直接确定共识节点数量是1306,并从区块链网络中随机选取1306个节点作为共识节点。
在另一个示例中,可以预先设置有节点总数、容错率以及攻击节点比例等参数与共识节点数量之间的多个对应关系,各个对应关系中的节点总数、容错率以及攻击节点比例等参数的取值不同,从而使得各个对应关系中的共识节点数量可以不同。
在该示例中,当记账节点需要执行确定共识节点的操作时,记账节点可以根据节点总数、容错率以及攻击节点比例等参数从预设的对应关系来确定共识节点数量,然后再根据所确定的共识节点数量从区块链网络中随机选取共识节点。
例如,预设的对应关系包括上表1和2,记账节点可以获知节点总数是60000,容错率是1/10000,攻击节点比例是45%,然后根据节点总数、容错率以及攻击节点比例进行查表操作,可以确定共识节点数量是1364。
在该示例中,预设的节点总数、容错率以及攻击节点比例等参数与共识节点数量之间的对应关系可以根据经验、实验数据、计算数据等方式得到的。
在本公开的另一个示例中,记账节点可以先根据节点总数、容错率以及攻击节点比例来计算出共识节点数量,然后从区块链网络中随机确定出该共识节点数量个的共识节点。
在一个示例中,可以获取大量的节点总数、容错率以及攻击节点比例与共识节点数量的对应关系,每个对应关系包括的节点总数、容错率、攻击节点比例和共识节点数量都是已知数据,然后将所获取的对应关系作为训练数据来训练机器模型,该机器模型可以根据输入的节点总数、容错率以及攻击节点比例来输出共识节点数量。
在该示例中,记账节点可以使用训练好的机器模型来确定共识节点数量,从而进一步地确定出共识节点。具体地,记账节点将用于确定共识节点数量的节点总数、容错率和攻击节点比例输入至机器模型,机器模型输出对应的数量值,该数量值可以作为共识节点数量。
在另一个示例中,可以对所获取的大量的节点总数、容错率以及攻击节点比例与共识节点数量的对应关系中的同类数据进行拟合处理,比如,对所有的节点总数的数据进行拟合处理,以生成针对节点总数、容错率、攻击节点比例以及共识节点数量的图形,图形可以包括二维曲线图形等。然后,可以从拟合出的图形上确定出记账节点所获取的节点总数、容错率和攻击节点比例所对应的点,该点所表示的值可以作为所确定出的共识节点数量。
然后,在320,记账节点和所确定的共识节点可以对区块进行共识处理。
在一个示例中,在记账节点和共识节点中有至少Quorum个(例如,2f+1,其中f表示故障网络节点的数目)节点针对区块的验证通过,即有至少Quorum个节点确认共识,则可以确定针对该区块达成共识。在另一个示例中,可以指定确认共识的节点数量。在记账节点和共识节点中有至少该指定数量的节点确认共识,则可以确定针对该区块达成共识。在该示例中,指定的数量可以大于Quorum个,例如,指定的数量可以是参与共识的节点的一半,比如,参与共识的节点有100个,则可以指定的数量是50。当参与共识的节点中有至少50个节点确认共识时,可以确定达成共识。
在达成共识后,可以将共识的区块上链,以记录在区块链上。这样可以确保区块中的交易信息不会被篡改或删除。在未达成共识时,可以判定区块中的交易信息被篡改,该区块不会被记录在区块链上。
图4示出了根据本公开的实施例的共识过程的一个示例400的示意图。在图4的示例中,记账节点(即,主节点)是R0,在该示例的下文中称为主节点。所确定出的参与共识的共识节点(即,备份节点)可以包括R1、R2和R3,在该示例的下文中称为备份节点。需要说明的是,图4示出的包括4个网络节点R0,R1,R2和R3的共识过程仅用于说明目的,共识过程也可以包括任何合适数量的网络节点。
主节点R0与区块链网络中的所有参与共识的共识节点来进行共识处理,例如,主节点R0与备份节点R1、R2以及R3进行共识处理。
在本公开中,共识过程可以采用PoW(工作量证明算法)、PoS(权益证明算法)和PBFT(实用拜占庭容错算法)等实现。下面以PBFT共识过程为例来进行说明。
如图4所示,PBFT共识处理的过程包括:预准备阶段(Pre-prepare)410、准备阶段(Prepare)420以及确认阶段(Commit)430。
具体地,在410,主节点R0对要记录到区块链中的交易数据打包为消息m,然后生成预准备消息Pre-prepare,并且在给定的时间间隔内,将预准备消息Pre-prepare发送(例如,广播)给备份节点R1、R2和R3。预准备消息Pre-prepare表明主节点R0正在启动共识过程。
在本公开的实施例中,如图5所示,预准备消息Pre-prepare的格式可以为:<<PRE-PREPARE,epoch,seq,D(m),signature-p>,m,j>。这里,“PRE-PREPARE”表示预准备消息的协议标识,“epoch”表示R0作为主节点的时代,“seq”表示所需共识的提议的提议编号,“D(m)”表示请求消息集合的摘要,“signature-p”表示R0的签名,“m”表示请求消息的具体内容(即,区块中的各条认证信息的具体内容),以及“j”表示R0的节点标识。这里,D(m)通过对区块中的各条认证信息集合进行哈希计算而得到。
在准备阶段420,对于每个备份节点(R1、R2或R3),在接收到预准备消息Pre-prepare并检测预准备消息Pre-prepare合法后,可以将预准备消息Pre-prepare存储在本地日志中,并生成用于响应预准备消息Pre-prepare的准备消息Prepare,再将所生成的准备消息Prepare广播至其他节点。准备消息Prepare指示备份节点已从主节点接收到预准备消息Pre-prepare,并且正在响应预准备消息Pre-prepare发送应答。
相应地,每个备份节点也会接收到其他备份节点发送的准备消息Prepare。以备份节点R1为例,备份节点R1接收到主节点R0发送的预准备消息Pre-prepare之后,会将生成的准备消息Prepare广播至主节点R0、备份节点R2和R3。相应地,备份节点R1也会接收到主节点R0、备份节点R2和R3发送的准备消息Prepare。
在本公开中,备份节点广播的准备消息Prepare可以用于表示该备份节点在准备阶段420所做出的共识承诺。
在本公开中,如图5所示,准备消息Prepare的格式可以是:<PREPARE,epoch,seq,D(m),i,signature-i>。这里,“PREPARE”表示准备消息Prepare的协议标识,“i”表示发送准备消息Prepare的节点的节点标识,“signature-i”表示发送准备消息Prepare的节点的签名。准备消息Prepare中的“epoch”、“seq”以及“D(m)”的含义与上述预准备消息Pre-prepare中的“epoch”、“seq”以及“D(m)”的含义相同。
在确认阶段430,当网络节点从其他网络节点接收到足够数量的准备消息Prepare时,该网络节点确定已经达成共识。例如,如果主节点R0或备份节点R1、R2或R3接收到Quorum个(例如,2f+1,其中f表示故障网络节点的数目)准备消息Prepare,则确定在网络节点之间达成共识。然后,主节点R0或备份节点R1、R2或R3会向其他节点广播确认消息Commit。
在本公开中,如图5所示,确认消息Commit的格式可以是:<COMMIT,epoch,seq,D(m),p,signature-p>。其中,“COMMIT”表示确认消息Commit的协议标识,“p”表示发送确认消息Commit的节点的节点标识,“signature-p”表示发送确认消息Commit的节点的签名。确认消息Commit中的“epoch”、“seq”以及“D(m)”的含义与上述预准备消息Pre-prepare中的“epoch”、“seq”以及“D(m)”的含义相同。
在本公开中,节点发送确认消息Commit并将确认消息Commit存储至本地日志中,以表示该节点在确认阶段430所做出的共识承诺。
图6示出了根据本公开的实施例的用于区块链共识的方法的另一个示例600的示意图。
如图6所示,在610,区块链网络中的记账节点确定针对待共识的区块的共识节点。此时,区块链网络中包括有记账节点、所确定出的共识节点以及非共识节点。在该示例中,610的操作可以参照上述图3描述的310的操作。
然后,在620,记账节点可以将区块广播给区块链网络中的各个节点,接收区块的各个节点包括共识节点和非共识节点。例如,区块链网络包括节点R0、R1、R2、R3、R4、R5、R6、R7,其中,R0是记账节点,R1、R2和R3是所确定出的共识节点,R4、R5、R6和R7是非共识节点,则R0可以将区块广播给R1、R2、R3、R4、R5、R6以及R7。
接着,在630,记账节点和所确定的各个共识节点可以对区块进行共识确认处理。共识确认的过程可以包括上述图4示出的共识过程中的准备阶段和确认阶段。
在该示例中,在准备阶段,各个备份节点在监测预准备消息合法后,可以生成用于响应预准备消息的准备消息,再将所生成的准备消息广播至区块链网络中的其他节点,该其他节点包括其他共识节点、记账节点以及非共识节点。
对于非共识节点来说,每个非共识节点可以接收到各个共识节点发送的准备消息,每个准备消息可以表示发送该准备消息的共识节点做出的共识承诺。当非共识节点从共识节点处接收到足够数量的准备消息时,该非共识节点可以确定已经达成共识。此外,每个非共识节点还可以接收到记账节点以及各个共识节点在确认阶段发送的确认消息,确认消息可以表征发送该消息的节点在确认阶段所做出的共识承诺。当非共识节点接收到足够数量的确认消息时,该非共识节点可以确定共识达成且共识过程结束。在该示例中,区块链网络中的非共识节点通过接收确认消息,可以确保与区块链网络中的共识节点顺序执行相同的区块,从而确保分布式系统的一致性。
在记账节点和共识节点达成共识后,在640,区块链网络中的各个节点将区块记录在各自的区块链上。例如,对于记账节点和共识节点来说,当接收到Quorum个(例如,2f+1,其中f表示故障网络节点的数目)确认消息时,可以确定在网络节点之间达成共识。此时,记账节点以及各个共识节点可以将区块记录在各自的区块链上。对于非共识节点来说,当接收到Quorum+1个确认消息时,可以确定达成共识,各个非共识节点可以将区块记录在区块链上。
通过上述示例,在区块链网络中仅选取部分节点作为共识节点来执行共识操作,减少了共识过程中的计算量。此外,共识节点数量是根据节点总数、容错率以及攻击节点比例来确定的,从而保证了区块链网络中共识的安全性以及容错要求。
在本公开的一个示例中,在记账节点和共识节点达成共识后,可以确定所确定的共识节点中是否存在投票失败的共识节点。这里所述的投票失败的共识节点可以是指与达成的共识不一致的共识节点,相应地,投票成功的共识节点可以是指与达成的共识一致的共识节点。
在一个示例中,可以根据接收到的确认消息来判断是否存在投票失败的共识节点,对于记账节点来说,当所确定的共识节点有N个时,若接收到N个确认消息,则可以确定共识是全票通过。若接收到M个确认消息,且M大于达成共识所需的最低数量,则可以确定达成共识,且存在投票识别的共识节点。
在存在投票失败的共识节点时,在记账节点处,可以对投票失败的共识节点进行赔付。用于赔付的费用可以来源于预设的保险基金,保险基金中费用可以用于对投票失败的共识节点进行赔付。保险基金可以根据容错率来设置,保险基金与容错率的对应关联性可以根据经验来确定,以确保保险基金中有足够的费用来进行赔付。
在一个示例中,记账节点可以根据投票差异率来确定赔付比例。其中,投票差异率可以根据共识节点中投票成功和投票失败的节点数量来确定,例如,投票差异率可以按照以下公式得到:
在该示例中,可以在投票结果出现争议时记账节点根据投票差异率来确定赔付比例,投票结果出现争议包括存在投票失败的共识节点的情况。
在一个示例中,当投票差异率超过指定的差异率阈值时,可以将赔付比例降低到较小的比例,该较小的比例可以设置为接近0%。在该示例中,当投票差异率小于或等于该差异率阈值时,可以使用上述公式计算出赔付比例,当投票差异率大于差异率阈值时,则可以将赔付比例设定为该较小的比例。例如,差异率阈值可以设置为50%,当投票差异率为1%时,赔付比例可以是99%;当投票差异率超过50%时,赔付比例可以是接近于0的比例。
在另一个示例中,可以预设投票差异率与赔付比例的对应关系,该对应关系的可以根据经验值得到。在根据投票成功与投票失败的节点数量确定出投票差异率后,根据预设的对应关系确定出投票差异率对应的赔付比例。例如,对应关系表中包括多个投票差异率与赔付比例之间的对应关系,在得到投票差异率后,根据该投票差异率在对应关系表中进行查表操作,以得到投票差异率对应的赔付比例。
在确定出赔付比例后,记账节点可以根据赔付比例对投票失败的共识节点进行赔付。具体地,记账节点可以根据赔付比例和保险基金计算出针对每个投票失败的共识节点的赔付费用,然后根据赔付费用对各个投票失败的共识节点进行赔付。
在上述示例中,通过设置赔付机制,在共识过程中出现争议的情况下可以对存在争议的双方节点按照投票差异进行赔付,提高了本公开提供的共识机制的可信度,从而提高采用该共识机制的区块链系统的可信度。
在本公开的一个示例中,本公开的区块链网络还可以包括监管节点,区块链网络中的监管节点的数量可以是一个或多个。当区块链网络中包括有监管节点时,区块链网络的网络架构可以如图2A或2B所示。
监管节点可以对区块链网络中的共识结果进行监管,以确保记账节点与共识节点进行共识处理所得到的共识结果正确。监管节点的监管方式可以是对共识结果进行验证,在一个示例中,监管节点可以触发区块链网络中的所有节点针对共识结果进行投票验证。具体地,监管节点在需要进行验证时可以向区块链网络中的所有节点广播验证请求消息,区块链网络中的各个节点在接收到验证请求消息后可以准备参与投票验证。
在另一个示例中,监管节点可以触发区块链网络中除监管节点以外的其他所有节点针对共识结果进行投票验证。
在投票验证的一个示例中,记账节点可以再次发起针对区块的共识处理,此次参与共识处理的节点包括区块链网络中的所有共识节点,在此次共识处理的共识结果与验证的共识结果一致时,可以确定投票验证通过。
在投票验证的另一个示例中,各个节点在接收到验证请求消息后,可以根据本地交易池中存储的交易信息对共识结果进行验证,然后根据验证结果进行投票,投票结果包括验证通过和验证失败。各个节点再将投票结果广播给区块链网络中的其他节点,相应地,各个节点可以接收到其他各个节点的投票结果。当投票结果中验证通过的投票结果的数量超过指定数量时,则可以确定针对共识结果的验证通过。
在一个示例中,监管节点可以在满足指定验证条件时触发区块链网络中的所有节点针对共识结果进行投票验证。指定验证条件可以包括监管节点利用本地存储的交易数据对区块验证失败。监管节点的本地交易池中存储有待上链的交易数据,基于此,监管节点可以利用本地存储的交易数据对共识结果进行验证,若验证通过,则不满足指定验证条件。若验证失败,则满足指定验证条件,此时监管节点可以触发区块链网络中的所有节点针对共识结果进行投票验证。
当区块链网络中的监管节点只有一个时,该监管节点本地存储有各个交易数据的完整数据,这样,监管节点可以基于本地存储的完整交易数据对共识节点的共识结果进行验证。
当区块链网络中的监管节点有多个时,待上链的交易数据先经过分片处理得到多个分片数据,各个分片数据被打包成不同的区块,基于此,区块中包括的数据是分片数据。此外,交易数据对应的分片数据分布存储于多个监管节点,各个监管节点可以包括有至少一个分片数据。例如,区块链网络中包括有两个监管节点:第一监管节点和第二监管节点,一个交易数据经过分片处理得到两个分片数据,一个分片数据存储于第一监管节点中,另一个分片数据存储于第二监管节点中。当监管节点需要对共识结果进行验证时,监管节点可以将本地存储的分片数据与其他监管节点存储的其他分片数据恢复成为一个完整的交易数据,然后利用完整的交易数据对共识节点的共识结果进行验证。
在一个示例中,监管节点可以将完整的交易数据按照指定的数据分片技术对完整的交易数据进行分片处理,得到多个分片交易数据。其中,该指定的数据分片方式也是得到分片区块中的分片数据所应用的数据分片方式。然后,对各个分片交易数据进行哈希计算,得到与各个分片交易数据对应的多个哈希值。将所得到的多个哈希值与共识节点的共识区块中的哈希值进行比较,若所得到的多个哈希值中存在一个哈希值与共识区块中的哈希值相同,则验证通过。若共识区块中的哈希值与所得到的各个哈希值都不同,则验证失败。
在上述示例中,通过在区块链网络中设置监管节点,可以对共识结果进行验证,以进一步地确保共识结果的正确性,从而提高区块链网络的安全性。
图7示出了根据本公开的实施例的用于区块链共识的方法的另一个示例700的流程图。
如图7所示,在710,区块链网络中的记账节点确定针对待共识的区块的共识节点。此时,区块链网络中包括有记账节点、所确定出的共识节点以及非共识节点。710的操作可以参考上述图3描述的310的操作。
然后,在720,记账节点可以将区块广播给所确定出的各个共识节点,此时仅参与共识的共识节点接收到区块,区块链网络中的非共识节点不会接收到区块。
接着,在730,记账节点和所确定的各个共识节点可以对区块进行共识确认处理。730的操作可以参考上述图6描述的630的操作。
在共识达成后,在740,记账节点和所确定的各个共识节点可以将区块记录在各自的区块链上。对于非共识节点来说,不会将共识的区块记录在各自的区块链上。
通过上述示例,针对每次共识处理,仅参与共识的共识节点才会将共识的区块上链记录在各自的区块链上,而非共识节点不会将共识的区块上链。这样,减少了区块链网络中的冗余。
在本公开的一个示例中,待上链的交易数据可以经过分片处理得到多个分片数据,每个分片数据可以被打包成一个分片区块。例如,一个交易数据经过分片处理划分为3个分片数据,每个分片数据被打包成一个分片区块,从而可以得到3个分片区块。
共识节点可以根据区块链网络中的节点总数、容错率、攻击节点比例以及分片数量在区块链网络中随机确定的。在一个示例中,在节点总数、容错率以及攻击节点比例固定的情况下,所确定的共识节点数量随着分片数量的增加而减少。例如,节点总数是200,容错率是万分之一,攻击节点比例是三分之一,当分片数量是2时,可以确定68个共识节点,当分片数量是5时,可以确定50个共识节点。
共识节点数量与节点总数、容错率、攻击节点比例以及分片数量是对应的,节点总数、容错率、攻击节点比例以及分片数量中的至少一个参数不同,则对应确定出的共识节点数量可以不同。共识节点数量与节点总数、容错率、攻击节点比例以及分片数量之间的对应关系可以根据实验数据、经验等方式确定。
在攻击节点比例和容错率确定的情况下,节点总数不同,对应的共识节点数量也可以不同。以下表4和表5为例,表4示出的是分片数量为2时共识节点数量随节点总数的变化情况,图5示出的是分片数量为5时共识节点数量随节点总数的变化情况。
表4
从上表4可知,在保持容错率为1/10000、攻击节点比例为三分之一以及分片数量为2不变的情况下,共识节点数量可以随着节点总数的增加而增加。当共识节点数量达到一个值(比如,表4中的104)时,共识节点数量不会再随着节点总数的增加而增加。
又例如,攻击节点比例为三分之一,容错率为1/10000,分片数量为5,不同的节点总数对应确定出的共识节点数量可以不同。如下表5所示。
表5
攻击节点比例 | 容错率 | 节点总数 | 分片数量 | 共识节点数量 |
33.5% | 1/10000 | 200 | 5 | 50 |
33.6% | 1/10000 | 500 | 5 | 60 |
34.5% | 1/10000 | 1000 | 5 | 70 |
33.94% | 1/10000 | 5000 | 5 | 70 |
33.83% | 1/10000 | 20000 | 5 | 70 |
33.81% | 1/10000 | 50000 | 5 | 70 |
从上表5可知,在保持容错率为1/10000、攻击节点比例为三分之一以及分片数量为5不变的情况下,共识节点数量可以随着节点总数的增加而增加,随着节点总数的增加共识节点数量增加的较缓慢。当共识节点数量达到一个值(比如,表4中的70)时,共识节点数量可以不再增加。
结合上表4和表5,在攻击节点比例、容错率以及节点总数固定的情况下,共识节点数量随着分片数量的增加而减少。
在本公开的一个示例中,区块链网络可以被划分为多个分片网络,每个分片网络可以对分片区块进行共识处理。在一个示例中,区块链网络可以根据指定数量来划分分片网络,例如,指定数量是3,则可以将区块链网络划分为3个分片网络。在另一个示例中,区块链网络可以根据待共识的分片区块的数量来划分分片网络,在该示例中,划分依据的分片区块对应属于同一个交易数据。例如,一个交易数据经过分片处理得到2个分片数据,每个分片数据被打包成一个分片区块,相应地,可以将子网络划分为2个分片网络。
针对一个交易数据的多个分片数据,各个分片数据可以被分发至对应的分片网络,接收到分片数据的分片网络中的记账节点可以将该分片数据打包成分片区块,然后与分片网络中的共识节点对分片区块进行共识处理。在该示例中,分片区块与分片数据一一对应,分片网络是由分片数据被打包处理得到的。
针对一个分片网络,该分片网络中的记账节点可以根据区块链网络中的节点总数、容错率、攻击节点比例以及分片数量确定参与共识的共识节点数量,然后根据所确定的数量从分片网络中随机选取对应数量的共识节点。
记账节点在接收到分片区块后,可以与所确定的共识节点对所接收到的分片区块进行共识处理。分片网络的共识处理过程可以参见上述示例中的共识处理过程的描述。
以一个分片网络为例,分片网络中的每个节点的本地交易池中存储有完整的交易数据,这些完整的交易数据可以对待共识的分片区块进行验证。分片网络中的各个共识节点在接收到记账节点发送的分片区块后,可以利用本地的完整交易数据对所接收到的分片区块进行验证。在验证分片区块合法后,各个共识节点可以向分片网络中的其他共识节点广播准备消息,相应地,每个共识节点也可以接收到其他共识节点广播的准备消息。各个共识节点在接收到足够数量的准备消息后,可以向其他共识节点广播确认消息,以完成针对分片区块的共识承诺。
图8示出了根据本公开的实施例的用于区块链共识的方法的一个示例800的流程图。图8示出的方法可以应用于区块链网络中的记账节点。
如图8所示,在810,根据共识节点数量在区块链网络中确定针对待共识的区块的共识节点。其中,共识节点数量是根据区块链网络中的节点总数、容错率以及攻击节点比例确定的。
然后,在820,与所确定的共识节点对区块进行共识处理。
在一个示例中,可以将区块广播给区块链网络中的各个节点,然后与所确定的共识节点对区块进行共识确认;以及在共识达成后,将区块记录在各自的区块链上。
在一个示例中,当共识节点中存在投票失败的共识节点时,还可以对投票失败的共识节点进行赔付。
在一个示例中,还可以将区块广播给所确定的各个共识节点,与所确定的共识节点对区块进行共识确认;以及在共识达成后,将区块记录在各自的区块链上。
在一个示例中,区块是经过分片处理得到的分片数据被打包得到的分片区块,共识节点数量是根据区块链网络中的节点总数、容错率、攻击节点比例以及分片数量确定的,区块链网络经过网络分片被划分为多个分片网络。根据共识节点数量在区块链网络中确定针对待共识的区块的共识节点包括:根据共识节点数量从所属的分片网络中随机确定针对待共识的分片区块的共识节点。
图9示出了根据本公开的实施例的用于区块链共识的装置的一个示例900(以下称为区块链共识装置900)的方框图。该区块链共识装置900可以应用于区块链网络中的记账节点。区块链共识装置900可以包括节点确定单元910和共识单元920。
节点确定单元910可以被配置为根据共识节点数量在区块链网络中确定针对待共识的区块的共识节点,其中,共识节点数量是根据区块链网络中的节点总数、容错率以及攻击节点比例确定的。
共识单元920可以被配置为与所确定的共识节点对所述区块进行共识处理。
以上参照图1到图9,对根据本公开实施例的用于区块链共识的方法及装置的实施例进行了描述。
本公开的用于区块链共识的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。在本公开中,用于区块链共识的装置例如可以利用电子设备实现。
图10示出了根据本公开的实施例的实现用于区块链共识的方法的电子设备1000的方框图。
如图10所示,电子设备1000可以包括至少一个处理器1010、存储器(例如,非易失性存储器)1020、内存1030和通信接口1040,并且至少一个处理器1010、存储器1020、内存1030和通信接口1040经由总线1050连接在一起。至少一个处理器1010执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1010:根据共识节点数量在区块链网络中确定针对待共识的区块的共识节点,其中,共识节点数量是根据区块链网络中的节点总数、容错率以及攻击节点比例确定的;以及与所确定的共识节点对区块进行共识处理。
应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1010进行本公开的各个实施例中以上结合图1-9描述的各种操作和功能。
根据一个实施例,提供了一种例如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本公开的各个实施例中以上结合图1-9描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
本说明书各部分操作所需的计算机程序代码可以用任意一种或多种程序语言编写,包括面向对象编程语言,如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB、NET以及Python等,常规程序化编程语言如C语言、Visual Basic 2003、Perl、COBOL 2002、PHP以及ABAP,动态编程语言如Python、Ruby和Groovy,或者其他编程语言等。该程序编码可以在用户计算机上运行,或者作为独立的软件包在用户计算机上运行,或者部分在用户计算机上运行另一部分在远程计算机运行,或者全部在远程计算机或服务器上运行。在后一种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或者在云计算环境中,或者作为服务使用,比如软件即服务(SaaS)。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本公开的实施例的可选实施方式,但是,本公开的实施例并不限于上述实施方式中的具体细节,在本公开的实施例的技术构思范围内,可以对本公开的实施例的技术方案进行多种简单变型,这些简单变型均属于本公开的实施例的保护范围。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (20)
1.一种用于区块链共识的方法,包括:
在区块链网络中的记账节点处,根据共识节点数量在所述区块链网络中确定针对待共识的区块的共识节点,其中,所述共识节点数量是根据所述区块链网络中的节点总数、容错率以及攻击节点比例确定的;以及
所述记账节点和所确定的共识节点对所述区块进行共识处理。
2.如权利要求1所述的方法,其中,所述记账节点和所确定的共识节点对所述区块进行共识处理包括:
所述记账节点将所述区块广播给所述区块链网络中的各个节点;
所述记账节点和所确定的共识节点对所述区块进行共识确认;以及
在共识达成后,所述区块链网络中的各个节点将所述区块记录在各自的区块链上。
3.如权利要求1所述的方法,还包括:
在所述记账节点处,当所述共识节点中存在投票失败的共识节点时,对所述投票失败的共识节点进行赔付。
4.如权利要求3所述的方法,其中,在所述记账节点处,当所述共识节点中存在投票失败的共识节点时,对所述投票失败的共识节点进行赔付包括:
在所述记账节点处,当所述共识节点中存在投票失败的共识节点时,根据投票差异率确定赔付比例;以及
根据所述赔付比例对所述投票失败的共识节点进行赔付。
5.如权利要求4所述的方法,其中,所述投票差异率根据所述共识节点中投票成功和投票失败的节点数量确定。
6.如权利要求1所述的方法,其中,所述区块链网络还包括监管节点,所述方法还包括:
在所述监管节点处,触发所述区块链网络中的所有节点或除所述监管节点以外的其他所有节点针对共识结果进行投票验证。
7.如权利要求6所述的方法,其中,在所述监管节点处,触发所述区块链网络中的全部节点针对共识结果进行投票验证包括:
在所述监管节点处,当利用本地存储的交易数据对所述共识结果验证失败时,触发所述区块链网络中的所有节点或除所述监管节点以外的其他所有节点针对共识结果进行投票验证。
8.如权利要求7所述的方法,其中,在所述监管节点包括多个时,所述区块是交易数据经过分片处理后的分片数据得到的,该交易数据对应的分片数据分布存储于多个监管节点。
9.如权利要求1所述的方法,其中,所述记账节点和所确定的共识节点对所述区块进行共识处理包括:
在所述记账节点处,将所述区块广播给所确定的各个共识节点;
所述记账节点和所确定的共识节点对所述区块进行共识确认;以及
在共识达成后,所述记账节点和各个共识节点将所述区块记录在各自的区块链上。
10.如权利要求1所述的方法,其中,所述区块是经过分片处理得到的分片数据被打包得到的分片区块,所述共识节点数量是根据所述区块链网络中的节点总数、容错率、攻击节点比例以及分片数量确定的。
11.如权利要求10所述的方法,其中,在节点总数、容错率以及攻击节点比例固定的情况下,所述共识节点数量随着分片数量的增加而减少。
12.如权利要求10所述的方法,其中,所述区块链网络经过网络分片被划分为多个分片网络;
所述记账节点与所确定的共识节点对所述区块进行共识处理包括:
针对一个分片网络,该分片网络中的记账节点和所确定的共识节点对待共识的分片区块进行共识处理。
13.一种用于区块链共识的方法,包括:
根据共识节点数量在区块链网络中确定针对待共识的区块的共识节点,其中,所述共识节点数量是根据所述区块链网络中的节点总数、容错率以及攻击节点比例确定的;以及
与所确定的共识节点对所述区块进行共识处理。
14.如权利要求13所述的方法,其中,与所确定的共识节点对所述区块进行共识处理包括:
将所述区块广播给所述区块链网络中的各个节点;
与所确定的共识节点对所述区块进行共识确认;以及
在共识达成后,将所述区块记录在各自的区块链上。
15.如权利要求13所述的方法,其中,还包括:
当所述共识节点中存在投票失败的共识节点时,对所述投票失败的共识节点进行赔付。
16.如权利要求13所述的方法,其中,与所确定的共识节点对所述区块进行共识处理包括:
将所述区块广播给所确定的各个共识节点;
与所确定的共识节点对所述区块进行共识确认;以及
在共识达成后,将所述区块记录在各自的区块链上。
17.如权利要求13所述的方法,其中,所述区块是经过分片处理得到的分片数据被打包得到的分片区块,所述共识节点数量是根据所述区块链网络中的节点总数、容错率、攻击节点比例以及分片数量确定的,所述区块链网络经过网络分片被划分为多个分片网络;
根据共识节点数量在区块链网络中确定针对待共识的区块的共识节点包括:
根据所述共识节点数量从所属的分片网络中随机确定针对待共识的分片区块的共识节点。
18.一种用于区块链共识的装置,包括:
节点确定单元,被配置为根据共识节点数量在区块链网络中确定针对待共识的区块的共识节点,其中,所述共识节点数量是根据所述区块链网络中的节点总数、容错率以及攻击节点比例确定的;以及
共识单元,被配置为与所确定的共识节点对所述区块进行共识处理。
19.一种电子设备,包括:
至少一个处理器,以及
与所述至少一个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求13到17中任一所述的方法。
20.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求13到17中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011399560.0A CN114650289B (zh) | 2020-12-02 | 2020-12-02 | 用于区块链共识的方法及装置 |
PCT/CN2021/133428 WO2022116900A1 (zh) | 2020-12-02 | 2021-11-26 | 用于区块链共识的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011399560.0A CN114650289B (zh) | 2020-12-02 | 2020-12-02 | 用于区块链共识的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114650289A true CN114650289A (zh) | 2022-06-21 |
CN114650289B CN114650289B (zh) | 2023-04-14 |
Family
ID=81852935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011399560.0A Active CN114650289B (zh) | 2020-12-02 | 2020-12-02 | 用于区块链共识的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114650289B (zh) |
WO (1) | WO2022116900A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116506444B (zh) * | 2023-06-28 | 2023-10-17 | 北京科技大学 | 一种基于深度强化学习与信誉机制的区块链稳定分片方法 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423962A (zh) * | 2017-07-11 | 2017-12-01 | 成都励睿德企业管理有限公司 | 基于奖惩的数据区块链授权参与共识的拜占庭容错方法及其奖惩方法 |
CN107450981A (zh) * | 2017-05-31 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及设备 |
WO2018175540A1 (en) * | 2017-03-24 | 2018-09-27 | Alibaba Group Holding Limited | Method and apparatus for consensus verification |
CN109309723A (zh) * | 2018-08-18 | 2019-02-05 | 上海分布信息科技有限公司 | 一种共识节点变更方法及其实现系统 |
CN109859047A (zh) * | 2019-01-31 | 2019-06-07 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法和区块链更新系统 |
CN109961287A (zh) * | 2019-02-12 | 2019-07-02 | 众安信息技术服务有限公司 | 一种区块链的监管方法及监管系统 |
CN109964242A (zh) * | 2018-05-25 | 2019-07-02 | 北京大学深圳研究生院 | 一种基于信任关系的区块链共识方法 |
CN109977166A (zh) * | 2019-02-18 | 2019-07-05 | 陕西优米数据技术有限公司 | 一种区块链共识机制 |
US20190332702A1 (en) * | 2018-04-30 | 2019-10-31 | Hewlett Packard Enterprise Development Lp | System and method of decentralized management of multi-owner nodes using blockchain |
US20200059369A1 (en) * | 2017-05-16 | 2020-02-20 | Peking University Shenzhen Graduate School | Determining consensus by parallel proof of voting in consortium blockchain |
CN110851537A (zh) * | 2019-11-28 | 2020-02-28 | 蒋勇 | 一种基于区块链分片技术的共识方法 |
CN110896389A (zh) * | 2018-09-12 | 2020-03-20 | 普天信息技术有限公司 | 一种区块链的共识方法及装置 |
CN110943838A (zh) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | 区块链网络中确定区块的共识的方法、设备和存储介质 |
WO2020113545A1 (zh) * | 2018-12-07 | 2020-06-11 | 北京大学深圳研究生院 | 基于联盟链投票共识算法产生及管理多模标识网络的方法 |
CN111291110A (zh) * | 2018-12-06 | 2020-06-16 | 中国电信股份有限公司 | 基于区块链网络的共识方法和系统 |
WO2020138606A1 (ko) * | 2018-12-28 | 2020-07-02 | 연세대학교 산학협력단 | 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법 |
WO2020143183A1 (zh) * | 2019-01-11 | 2020-07-16 | 平安科技(深圳)有限公司 | 基于股份授权证明机制的区块链共识方法及相关设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102060435B1 (ko) * | 2019-05-16 | 2019-12-30 | 주식회사 모파스 | 네트워크 평판 증명을 합의 알고리즘으로 사용하는 블록체인 스마트 계약 방법 및 장치 |
CN111447274B (zh) * | 2020-03-26 | 2023-06-02 | 北京京东振世信息技术有限公司 | 节点选取方法及装置 |
-
2020
- 2020-12-02 CN CN202011399560.0A patent/CN114650289B/zh active Active
-
2021
- 2021-11-26 WO PCT/CN2021/133428 patent/WO2022116900A1/zh active Application Filing
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018175540A1 (en) * | 2017-03-24 | 2018-09-27 | Alibaba Group Holding Limited | Method and apparatus for consensus verification |
US20200059369A1 (en) * | 2017-05-16 | 2020-02-20 | Peking University Shenzhen Graduate School | Determining consensus by parallel proof of voting in consortium blockchain |
CN107450981A (zh) * | 2017-05-31 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及设备 |
CN107423962A (zh) * | 2017-07-11 | 2017-12-01 | 成都励睿德企业管理有限公司 | 基于奖惩的数据区块链授权参与共识的拜占庭容错方法及其奖惩方法 |
US20190332702A1 (en) * | 2018-04-30 | 2019-10-31 | Hewlett Packard Enterprise Development Lp | System and method of decentralized management of multi-owner nodes using blockchain |
CN109964242A (zh) * | 2018-05-25 | 2019-07-02 | 北京大学深圳研究生院 | 一种基于信任关系的区块链共识方法 |
CN109309723A (zh) * | 2018-08-18 | 2019-02-05 | 上海分布信息科技有限公司 | 一种共识节点变更方法及其实现系统 |
CN110896389A (zh) * | 2018-09-12 | 2020-03-20 | 普天信息技术有限公司 | 一种区块链的共识方法及装置 |
CN110943838A (zh) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | 区块链网络中确定区块的共识的方法、设备和存储介质 |
CN111291110A (zh) * | 2018-12-06 | 2020-06-16 | 中国电信股份有限公司 | 基于区块链网络的共识方法和系统 |
WO2020113545A1 (zh) * | 2018-12-07 | 2020-06-11 | 北京大学深圳研究生院 | 基于联盟链投票共识算法产生及管理多模标识网络的方法 |
WO2020138606A1 (ko) * | 2018-12-28 | 2020-07-02 | 연세대학교 산학협력단 | 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법 |
WO2020143183A1 (zh) * | 2019-01-11 | 2020-07-16 | 平安科技(深圳)有限公司 | 基于股份授权证明机制的区块链共识方法及相关设备 |
CN109859047A (zh) * | 2019-01-31 | 2019-06-07 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法和区块链更新系统 |
CN109961287A (zh) * | 2019-02-12 | 2019-07-02 | 众安信息技术服务有限公司 | 一种区块链的监管方法及监管系统 |
CN109977166A (zh) * | 2019-02-18 | 2019-07-05 | 陕西优米数据技术有限公司 | 一种区块链共识机制 |
CN110851537A (zh) * | 2019-11-28 | 2020-02-28 | 蒋勇 | 一种基于区块链分片技术的共识方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022116900A1 (zh) | 2022-06-09 |
CN114650289B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11930100B2 (en) | Fund conversion between blockchains | |
US11637709B2 (en) | Split-key wallet access between blockchains | |
US11669811B2 (en) | Blockchain-based digital token utilization | |
CN111062716B (zh) | 生成区块链签名数据的方法及装置、区块链交易发起系统 | |
CN111242617B (zh) | 用于执行交易正确性验证的方法及装置 | |
US11212081B2 (en) | Method for signing a new block in a decentralized blockchain consensus network | |
US11128522B2 (en) | Changing a master node in a blockchain system | |
US11570002B2 (en) | Reduced-step blockchain verification of media file | |
EP3896898A1 (en) | Methods and systems for blockchain-implemented event-lock encryption | |
US20190295049A1 (en) | System and method for secure transaction verification in a distributed ledger system | |
CN110458560B (zh) | 用于进行交易验证的方法及装置 | |
CN108846673B (zh) | 一种区块数据的处理方法、装置、设备和存储介质 | |
CN110582775A (zh) | 利用utxo基础协议基于区块链管理文件的方法及利用其的文件管理服务器 | |
CN111080292B (zh) | 用于获取区块链交易签名数据的方法及装置 | |
US20190268153A1 (en) | Event execution using a blockchain approach | |
CN111010284B (zh) | 一种待共识区块的处理方法、相关装置及区块链系统 | |
CN112801778A (zh) | 联盟式不良资产区块链 | |
CN111461622A (zh) | 基于区块链的仓库信用评级、结果获取、验证方法及装置 | |
CN110941840B (zh) | 一种数据处理方法、系统及终端 | |
CN111160997A (zh) | 基于区块链的广告监管方法、装置及广告投放系统 | |
CN111583041A (zh) | 基于区块链的债券发行数据存储、核验处理方法及装置 | |
CN114650289B (zh) | 用于区块链共识的方法及装置 | |
CN110852887B (zh) | 获取去中心化应用集群中的交易处理状态的方法及装置 | |
CN111865595A (zh) | 一种区块链的共识方法及装置 | |
CN111353893A (zh) | 基于区块链的交易数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |