CN110049029B - 共识节点确定方法、装置、计算机设备和存储介质 - Google Patents

共识节点确定方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110049029B
CN110049029B CN201910269398.1A CN201910269398A CN110049029B CN 110049029 B CN110049029 B CN 110049029B CN 201910269398 A CN201910269398 A CN 201910269398A CN 110049029 B CN110049029 B CN 110049029B
Authority
CN
China
Prior art keywords
nodes
candidate
node
consensus
candidate node
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
Application number
CN201910269398.1A
Other languages
English (en)
Other versions
CN110049029A (zh
Inventor
李升林
姜海涛
孙立林
傅志敬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juzix Technology Shenzhen Co ltd
Original Assignee
Juzix Technology Shenzhen Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Juzix Technology Shenzhen Co ltd filed Critical Juzix Technology Shenzhen Co ltd
Priority to CN201910269398.1A priority Critical patent/CN110049029B/zh
Publication of CN110049029A publication Critical patent/CN110049029A/zh
Application granted granted Critical
Publication of CN110049029B publication Critical patent/CN110049029B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供了一种共识节点确定方法、装置、计算机设备和存储介质,其中,该方法包括:获取区块链系统中多个目标节点中各目标节点的选定率;根据多个目标节点中各目标节点的选定率,从多个目标节点中选择出候选节点形成候选节点集;从候选节点集中随机选取多个节点作为共识节点。上述方案解决了现有的共识节点确定方法存在去中心化程度低的技术问题,达到了有效提升去中心化程度、提高系统安全性和可扩展性的技术效果。

Description

共识节点确定方法、装置、计算机设备和存储介质
技术领域
本申请涉及区块链技术领域,特别涉及一种共识节点确定方法、装置、计算机设备和存储介质。
背景技术
区块链的“不可能三角”理论提出了区块链的三个核心性能不能同时兼得:可扩展性、去中心化和安全性。去中心化的量化指标就是参与共识的节点数量,可扩展性的量化指标是共识性能,安全性的量化指标是作恶的经济成本。共识算法作为区块链的核心组件,同样存在这几个问题的权衡。
目前主流区块链都倾向于采用PoS(Proof of Stake,权益证明)共识算法,但是所有PoS系统都会存在共识节点数量和性能之间的权衡问题。DPoS(Delegated Proof ofStake,委任权益证明)共识算法偏向较少的共识节点,换取较高的性能,但去中心化程度较低。Algorand采用随机方式在全网选取共识节点,但是只能在强同步网络上运行,个人用户很难参与,严重影响去中心化特性。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种共识节点确定方法、装置、计算机设备和存储介质,以解决现有技术中选取共识节点存在去中心化程度低的问题。
本申请实施例提供了一种共识节点确定方法,包括:获取区块链系统中多个目标节点中各目标节点的选定率;根据多个目标节点中各目标节点的选定率,从多个目标节点中选择出候选节点形成候选节点集;从候选节点集中随机选取多个节点作为共识节点。
在一个实施例中,选定率包括以下至少之一:目标节点被区块链系统中的节点选定的比例、目标节点自身的份额占比。
在一个实施例中,根据多个目标节点中各目标节点的选定率,从多个目标节点中选择出候选节点形成候选节点集,包括:将多个目标节点中被区块链系统中的节点选定的比例大于预设比例阈值的节点,作为入选节点,形成入选节点集;将入选节点集中自身的份额占比满足预设条件的入选节点,作为候选节点,形成候选节点集。
在一个实施例中,预设条件包括以下之一:超出预定占比阈值、位于前预设位数。
在一个实施例中,从候选节点集中随机选取多个节点作为共识节点,包括:获取候选节点集中每个候选节点的权重,其中,每个候选节点的权重为每个候选节点获取的选票总票龄;获取区块链系统中多个区块的随机种子,其中,当前区块的随机种子是根据VRF算法和前一个区块的随机种子生成的;根据多个区块的随机种子和候选节点集中每个候选节点的排序序号,分别为候选节点集中的每个候选节点选取一个随机数;根据每个候选节点的权重和随机数确定候选节点集中每个候选节点被选中的票龄数;根据每个候选节点被选中的票龄数从候选节点集中确定多个共识节点。
在一个实施例中,获取候选节点集中每个候选节点的权重,包括按照以下公式确定候选节点集中的每个候选节点的权重:
Figure GDA0003103157460000021
其中,wi是候选节点集中第i个候选节点的权重,Ai,k为第i个候选节点获得的第k张选票的票龄,Mi为第i个候选节点获取的选票的总张数,N为候选节点集中的候选节点的个数。
在一个实施例中,当前区块的随机种子是根据VRF算法和前一个区块的随机种子按照以下公式生成的:
Figure GDA0003103157460000022
其中,ri和πi分别是当前区块的随机种子和证明数据,ri-1是当前区块的前一个区块的随机种子,ski为生成当前区块的私钥,VRF函数为VRF算法,n为区块链系统的区块高度。
在一个实施例中,根据多个区块的随机种子和候选节点集中每个候选节点的排序序号,分别为候选节点集中的每个候选节点选取一个随机数,包括按照以下公式为候选节点集中的每个候选节点选取一个随机数:
Figure GDA0003103157460000031
其中,i为候选节点集中的候选节点的排序序号,Ri是候选节点集中的第i个候选节点的随机数,rn是区块链系统中第n个区块的随机种子,rn-i是区块链系统中第n-i个区块的随机种子,其中,n为区块链系统的区块高度,N为候选节点集中的候选节点的个数。
在一个实施例中,根据每个候选节点的权重和随机数确定候选节点集中每个候选节点被选中的票龄数,包括:将满足以下不等式的最小Ji值确定为第i个候选节点被选中的票龄数:
Ri/2hashlen≥FX(Ji+1),i=1,2...N;
其中,Ri是候选节点集中第i个候选节点的随机数,hashlen是根据VRF算法生成的随机种子的位数,FX为累计分布函数,N为候选节点集中的候选节点的个数,其中,FX(x)=P(X≤x),其中,
Figure GDA0003103157460000032
表示候选节点集中第i个候选节点被选中的票龄数为k的概率,其中,
Figure GDA0003103157460000033
其中,t为参与共识的多个共识节点的个数,
Figure GDA0003103157460000034
为候选节点集中所有候选节点的权重的平均值,
Figure GDA0003103157460000035
为候选节点集中所有候选节点的总权重,其中,wi是候选节点集中第i个候选节点的权重。
在一个实施例中,根据每个候选节点被选中的票龄数从候选节点集中确定多个共识节点,包括:根据候选节点被选中的票龄数对候选节点集中的候选节点进行降序排序;对于被选中的票龄数相同的多个候选节点,根据候选节点的权重对多个候选节点进行降序排序;将排在前面预设个数的候选节点确定为参与共识的多个共识节点。
在一个实施例中,在根据每个候选节点被选中的票龄数从候选节点集中确定多个共识节点之后,还包括:多个共识节点轮流作为提议节点生成区块,其中,在生成最后一个区块时,分别在每个共识节点获得的选票中随机选取一张选票作为奖励选票,以获得多张奖励选票;针对多张奖励选票中的每一张奖励选票,对区块链系统中投出该奖励选票的节点进行奖励。
在一个实施例中,分别在每个共识节点获得的选票中随机选取一张奖励选票,包括:针对每个共识节点,将该共识节点获得的所有选票按投票时间进行排序;针对每个共识节点,根据该共识节点获得的所有选票中各选票的票龄和排序序号确定各选票的票龄区间;针对每个共识节点,根据该共识节点被选中的票龄数所处的票龄区间,将该票龄区间对应的选票确定为奖励选票。
在一个实施例中,针对每个共识节点,根据该共识节点获得的所有选票中各选票的票龄和排序序号确定各选票的票龄区间,包括:将第i个共识节点的第μ张选票的票龄区间划分为:
Figure GDA0003103157460000041
其中,μ为选票的排序序号,Ii,μ为第i个共识节点的第μ张选票的票龄区间,Ai,k为第i个候选节点获得的第k张选票的票龄,Mi为第i个候选节点获取的选票的总张数,t为参与共识的多个共识节点的个数。
本申请实施例还提供了一种共识节点确定装置,包括:获取模块,用于获取区块链系统中多个目标节点中各目标节点的选定率;选择模块,用于根据多个目标节点中各目标节点的选定率,从多个目标节点中选择出候选节点形成候选节点集;随机选取模块,用于从候选节点集中随机选取多个节点作为共识节点。
本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的共识节点确定方法的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的共识节点确定方法的步骤。
在本申请实施例中,提供了一种共识节点确定方法,根据多个目标节点中各目标节点的选定率,从多个目标节点中选择出候选节点形成候选节点集;然后从候选节点集中随机选取多个节点作为共识节点以参与共识。上述方法中,通过根据各目标节点的选定率来确定候选节点集,然后在候选节点集中随机选取多个共识节点,使得数量有限的共识节点参与共识,可以保证系统的共识性能,从而提高系统的可扩展性;同时,由于根据选定率从多个目标节点中确定候选节点集,一方面使得确定的候选节点集中的候选节点更具有代表性,另一方面可以维持较大的共识节点群的规模,有效避免了过于中心化的问题;另外,通过随机选取在候选节点集中确定多个共识节点,可以保证区块链系统的安全性。通过上述方案解决了现有的共识节点确定方法存在去中心化程度低的技术问题,达到了有效提升去中心化程度、提高系统安全性和可扩展性的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
图1示出了本申请一实施例中的共识节点确定方法的示意图;
图2示出了本申请一实施例中的共识节点确定方法的流程图;
图3示出了本申请一实施例中的共识节点确定方法的流程图;
图4示出了本申请一实施例中的共识节点确定装置的示意图;
图5示出了本申请一实施例中的计算机设备的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域的技术人员知道,本申请的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
本申请实施例提供了一种共识节点确定方法,该方法具体可以应用于区块链系统,其中,首先获取区块链系统中的多个目标节点中各目标节点的选定率,然后根据各目标节点的选定率从所述多个目标节点中选择候选节点形成候选节点集,然后从所述候选节点集中随机选取多个共识节点以参与共识,通过使得数量有限的共识节点参与共识可以保证系统的共识性能、提高系统的可扩展性,通过随机选取共识节点可以保证系统的安全性,通过从多个目标节点中确定候选节点集,可以维持较大的共识节点群的规模,有效避免过于中心化的问题,从而有效提高区块链系统的去中心化程度。
在一个具体的场景示例中,参阅图1所示。其中,区块链系统中的目标节点集包括多个目标节点,根据目标节点集中各目标节点的选定率从多个目标节点中选择候选节点,形成候选节点集,然后从候选节点集中随机选取多个共识节点,以参与下一轮的共识过程。
其中,目标节点是区块链系统中可以接受投票节点的投票的区块链节点。区块链系统中的节点可以通过质押一定的令牌(Token)或其他形式的资产成为准目标节点。根据质押的令牌数,对区块链系统中的准目标节点进行降序排序;对于质押令牌数相同的多个准目标节点,根据质押时间对该多个准目标节点进行二次排序;然后将排在前面的预设位数的准目标节点确定为所述多个目标节点,形成目标节点集。其中,预设位数可以根据实际需求来设置。通过控制目标节点集中的目标节点的个数可以控制共识节点群的规模,从而控制区块链系统的去中心化程度。其中,投票节点是区块链中的可以向目标节点投票的节点,区块链系统中的节点可以通过质押一定的令牌或其他形式的资产换取选票,成为投票节点。
图2示出了本申请一实施例中共识节点确定方法的流程图。如图2所示,本申请实施例提供的共识节点确定方法可以包括以下步骤:
步骤S201,获取区块链系统中多个目标节点中各目标节点的选定率。
其中,目标节点是区块链系统中可以接受投票的区块链节点。为了从多个目标节点中选取具有代表性的节点作为候选节点,需要获取多个目标节点中各目标节点的选定率。
在本申请一些实施例中,选定率可以包括以下至少之一:目标节点被区块链系统中的节点选定的比例、目标节点自身的份额占比。其中,目标节点被区块链系统中的节点选定的比例可以用目标节点从去区块链系统中的投票节点获得的选票数来表征。目标节点自身的份额占比可以指目标节点质押到合约账户中的令牌数或其他资产金额等。
步骤S202,根据多个目标节点中各目标节点的选定率,从多个目标节点中选择出候选节点形成候选节点集。
为了使形成的候选节点集中的候选节点更具代表性,可以根据多个目标节点中各目标节点的选定率来从多个目标节点中选择出候选节点形成候选节点集。
在本申请一些实施例中,步骤S202具体可以包括:将多个目标节点中被区块链系统中的节点选定的比例大于预设比例阈值的节点,作为入选节点,形成入选节点集;将入选节点集中自身的份额占比满足预设条件的入选节点,作为候选节点,形成候选节点集。
具体地,可以将多个目标节点中获得的选票数大于预设阈值的目标节点作为入选节点,形成入选节点集;然后将入选节点集中各入选节点质押的令牌数满足预设条件的入选节点作为候选节点,形成候选节点集。通过两层筛选,可以获取获得的选票数较多而且质押的令牌数满足一定条件的节点作为候选节点集,从而使得候选节点集中的候选节点更有代表性,还可以维持较大规模的共识节点群,有效提高区块链系统的去中心化程度。
进一步地,在本申请的一些实施例中,上述预设条件可以包括以下之一:超出预定占比阈值、位于前预设位数。其中,超出预定占比阈值可以指目标节点质押的令牌数或其他资产额高于预设阈值;位于前预设位数可以指对目标节点质押的令牌数或其他资产额进行降序排序时,位于前预设位数的目标节点。其中,预设条件的具体选取可以根据实际需求来确定。
步骤S203,从候选节点集中随机选取多个节点作为共识节点。
具体地,在形成候选节点集中,为了提高系统的安全性,可以从候选节点集中随机选取多个节点作为共识节点。其中,多个共识节点可以用于参与下一轮的共识过程,以生成多个区块。多个共识节点中的每一个节点轮流作为提议节点生成区块,生成的区块由多个共识节点中的其他节点进行验证,验证通过后将区块上链。
可以理解的是,上述方法可以用于确定参加下一轮共识的多个共识节点,可以在本轮共识生成最后一个区块时执行上述步骤,以确定下一轮的共识节点。其中,区块提议节点和验证节点都按照相同的规则在生产和验证每一轮的最后一个区块时,执行相同的选取逻辑(上述步骤S201-S203),最后达成共识,从而成功选取参与下一轮共识的多个共识节点。对于第一轮共识的共识节点可以通过创世区块直接设置,例如,可以由创世区块中的配置文件配置或直接写在代码中。
上述方法中,通过根据各目标节点的选定率来确定候选节点集,然后在候选节点集中随机选取多个共识节点,使得数量有限的共识节点参与共识,可以保证系统的共识性能,从而提高系统的可扩展性;同时,由于根据选定率从多个目标节点中确定候选节点集,一方面使得确定的候选节点集中的候选节点更具有代表性,另一方面可以维持较大的共识节点群的规模,有效避免了过于中心化的问题;另外,通过随机选取在候选节点集中确定多个共识节点,可以保证区块链系统的安全性。通过上述方案解决了现有的共识节点确定方法存在去中心化程度低的技术问题,达到了有效提升去中心化程度、提高系统安全性和可扩展性的技术效果。
进一步地,在本申请一些实施例中,如图3所示,从候选节点集中随机选取多个节点作为共识节点,可以包括以下步骤:
步骤S301,获取候选节点集中每个候选节点的权重,其中,每个候选节点的权重为每个候选节点获取的选票总票龄。
具体地,候选节点的权重可以是候选节点获取的所有选票的总票龄,在从候选节点集中随机选取共识节点时,可以考虑候选节点集中的候选节点的权重。
步骤S302,获取区块链系统中多个区块的随机种子,其中,当前区块的随机种子是根据VRF算法和前一个区块的随机种子生成的。
步骤S303,根据多个区块的随机种子和候选节点集中每个候选节点的排序序号,分别为候选节点集中的每个候选节点选取一个随机数。
具体地,为了从候选节点集中随机选取共识节点,可以为每个候选节点选取一个随机数,进行伯努利实验。其中,区块链系统中的每个区块都有一个随机种子,当前区块的随机种子是根据VRF算法和前一个区块的随机种子生成的。其中,候选节点的排序序号是指按照候选节点获得的选票数对候选节点进行降序排序并根据候选节点质押的令牌数或其他资产额进行二次排序后得到的序号。在获取多个区块的随机种子和候选节点集中每个候选节点的排序序号之后,可以根据随机种子和排序序号分别为每个候选节点选取一个随机数。
步骤S304,根据每个候选节点的权重和随机数确定候选节点集中每个候选节点被选中的票龄数。
步骤S305,根据每个候选节点被选中的票龄数从候选节点集中确定多个共识节点。
其中,候选节点的权重越高,被选中的概率就越高,由于候选节点的权重是候选节点获得的选票总票龄,所以可以通过计算候选节点被选中的票龄数来确定共识节点。根据每个候选节点的权重和随机数两者来候选节点集中每个候选节点被选中的票龄数,可以保证共识节点的代表性和随机性。
上述方法中,根据VRF算法按照候选节点的权重从候选节点集中选取多个节点作为共识节点,一方面可以保证共识节点选取的随机性,另一方面按照候选节点的权重进行随机选取,可以使得被选定的共识节点更具有代表性,可以有效保证区块链系统的安全性。
在本申请一些实施例中,获取候选节点集中每个候选节点的权重,可以包括按照以下公式确定候选节点集中的每个候选节点的权重:
Figure GDA0003103157460000091
其中,wi是候选节点集中第i个候选节点的权重,即第i个候选节点获取的选票总票龄,Ai,k为第i个候选节点获得的第k张选票的票龄,Mi为第i个候选节点获取的选票的总张数,N为候选节点集中的候选节点的个数。其中,Ai,k=Hi,k-Li,k,Hi,k为在当前时刻的区块高度,Li,k为第i个候选节点的第k张选票产生时的区块高度。
在本申请一些实施例中,当前区块的随机种子是根据VRF算法和前一个区块的随机种子按照以下公式生成的:
Figure GDA0003103157460000092
其中,ri和πi分别是当前区块的随机种子和证明数据,ri-1是当前区块的前一个区块的随机种子,ski为生成当前区块的私钥,VRF函数为VRF算法,n为区块链系统的区块高度。
具体地,每个共识节点在本地产生公私钥对(pki,ski),私钥ski本地保管用于生成随机种子,公钥pki公开用于验证生成的随机种子。其中,创世区块生成一个随机数作为初始伪随机种子r0。每个共识节点产生新区块时根据VRF函数和本地保存的私钥ski进行计算生成该区块的随机种子ri,该函数返回一个哈希值和一个证明数据πi,哈希值和证明数据πi都打包在新区块上。哈希值作为当前区块的随机种子ri,哈希值由私钥ski和前一个区块ri-1的随机种子根据确定,不可伪造。证明数据πi可以用于任何知晓生成该区块的共识节点的公钥的其他共识节点验证哈希值确实由该共识节点根据前一个区块的随机种子生成的,该哈希值的随机范围在[0,2hashlen-1],其中,hashlen就是VRF函数产生的哈希值的上限值的位数,一般为2048。
在本申请一些实施例中,根据随机种子和候选节点集中的每个候选节点的排序序号,分别为候选节点集中的每个候选节点选取一个随机数,可以包括按照以下公式为候选节点集中的每个候选节点选取一个随机数:
Figure GDA0003103157460000101
其中,i为候选节点集中的候选节点的排序序号,Ri是候选节点集中的第i个候选节点的随机数,rn是区块链系统中第n个区块的随机种子,rn-i是区块链系统中第n-i个区块的随机种子,其中,n为区块链系统的区块高度,N为候选节点集中的候选节点的个数。一般地,n为负责选取下一轮共识节点的区块的高度。给候选节点集中每个候选节点选择一个随机数进行伯努利试验,随机数的选取规则为:根据候选节点在候选节点集中的排序序号i,选择随机种子rn和rn-i,为降低被攻击的风险,进行伯努利试验的随机数Ri为两个随机种子rn和rn-i的异或。通过上述方式选择随机数,可以进一步提高区块链系统的安全性。
在本申请一些实施例中,根据每个候选节点的随机数确定候选节点集中每个候选节点被选中的票龄数,可以包括:将满足以下不等式的最小Ji值确定为第i个候选节点被选中的票龄数:
Ri/2hashlen≥FX(Ji+1),i=1,2...N;
其中,Ri是候选节点集中第i个候选节点的随机数,hashlen是根据VRF算法生成的随机种子的位数,FX为累计分布函数,N为候选节点集中的候选节点的个数,其中,FX(x)=P(X≤x),其中,
Figure GDA0003103157460000102
表示候选节点集中第i个候选节点被选中的票龄数为k的概率,其中,
Figure GDA0003103157460000103
其中,t为参与共识的多个共识节点的个数,
Figure GDA0003103157460000104
为候选节点集中所有候选节点的权重的平均值,
Figure GDA0003103157460000111
为候选节点集中所有候选节点的总权重,其中,wi是候选节点集中第i个候选节点的权重。
具体地,假设每位候选节点的权重记为wi(i=1,2…N,每个候选节点的选票总票龄),那么总的权重为
Figure GDA0003103157460000112
(所有候选节点的总票龄),那么第i个候选节点被选为共识节点的概率就与其权重占比相匹配wi/W。每一轮从候选节点池中的N个候选节点中选取t个共识节点,如果所有候选节点的平均票龄数为
Figure GDA0003103157460000113
则每一个票龄单位被选中的概率为
Figure GDA0003103157460000114
在候选节点池中随机选取共识节点实际就是做伯努利试验,因此每个候选节点的w个票龄中被选中k个的概率遵循二项分布
Figure GDA0003103157460000115
累积分布函数为FX(x)=P(X≤x)。每一轮的最后一个区块提议节点负责选取下一轮的共识节点:给候选节点池中每个候选节点选择一个随机数Ri进行伯努利试验。对每个候选节点根据二项分布累积函数计算不等式Ri/2hashlen≥FX(Ji+1),i=1,2...N,找到满足该不等式的最小Ji值,即说明该候选节点被选中Ji个票龄。
在本申请一些实施例中,根据每个候选节点被选中的票龄数从候选节点集中确定多个共识节点,可以包括:根据候选节点被选中的票龄数对候选节点集中的候选节点进行降序排序;对于被选中的票龄数相同的多个候选节点,根据候选节点的权重对多个候选节点进行降序排序;将排在前面预设个数的候选节点确定为参与共识的多个共识节点。
在确定候选节点池中每个候选节点被选中的票龄数之后,可以根据票龄数从候选节点池中选取共识节点。具体地,先根据候选节点被选中的票龄数对候选节点集中的候选节点进行降序排序;然后对于被选中的票龄数相同的多个候选节点,根据候选节点的权重对多个候选节点进行二次排序;将排在前面预设个数的候选节点确定为参与共识的多个共识节点。通过上述方式,可以根据被选中的票龄数方便地从候选节点池中选取共识节点。
为激励区块链系统中的投票节点参与投票,可以在每一轮共识中,在每个共识节点获取的选票中随机选取一张选票,被选中的选票会获取一定的激励。因此,在本申请一些实施例中,在根据每个候选节点被选中的票龄数从候选节点集中确定多个共识节点之后,还可以包括:多个共识节点轮流作为提议节点生成区块,其中,在生成最后一个区块时,分别在每个共识节点获得的选票中随机选取一张选票作为奖励选票,以获得多张奖励选票;针对多张奖励选票中的每一张奖励选票,对区块链系统中投出该奖励选票的节点进行奖励。通过上述方式,可以激励区块链系统中的投票节点参与投票,从而使得被选出来的共识节点更具有代表性。
在本申请一些实施例中,分别在每个共识节点获得的选票中随机选取一张奖励选票,可以包括:针对每个共识节点,将该共识节点获得的所有选票按投票时间进行排序;针对每个共识节点,根据该共识节点获得的所有选票中各选票的票龄和排序序号确定各选票的票龄区间;针对每个共识节点,根据该共识节点被选中的票龄数所处的票龄区间,将该票龄区间对应的选票确定为奖励选票。通过上述方式,可以根据各选票的票龄以及排序序号随机选取奖励选票,操作方便。
进一步地,在本申请一些实施例中,针对每个共识节点,根据该共识节点获得的所有选票中各选票的票龄和排序序号确定各选票的票龄区间,可以包括:将第i个共识节点的第μ张选票的票龄区间划分为:
Figure GDA0003103157460000121
其中,μ为选票的排序序号,Ii,μ为第i个共识节点的第μ张选票的票龄区间,Ai,k为第i个候选节点获得的第k张选票的票龄,Mi为第i个候选节点获取的选票的总张数,t为参与共识的多个共识节点的个数。例如,对于第j个共识节点,其被选中的票龄数为Jj,当确定Jj所处的票龄区间为Ij,ν时,则可以将第j个共识节点获得的第ν张选票确定为该共识节点对应的奖励选票。通过上述方式,可以根据票龄和排序序号划分票龄区间,然后根据票龄区间和每个共识节点被选中的票龄数确定每个节点对应的奖励选票,并对获得多个奖励选票进行奖励。
一般地,可以在本轮共识中生成最后一个区块时,确定本轮参加共识的共识节点对应的奖励选票,以及确定参与下轮共识的多个共识节点。
此外,为了激励参与共识的共识节点积极出块,可以通过奖励出块节点来实现。例如,共识节点中的出块节点每出一个区块可以获得一定的奖励,这个奖励规则是固定的,比如每个区块固定奖励5个令牌,这样在该区块被其他共识节点验证的时候,除了执行区块中打包的交易外,还会额外执行奖励规则,并将这些交易执行结果和奖励结果跟区块头中的根哈希值对比,如果一致则表示区块被验证通过,在验证通过后,奖励就给到出块节点的账户。
同样,为了提高区块链系统的安全性,可以对恶意节点进行惩罚。具体地,共识节点在共识过程中如果违反BFT(拜占庭容错)协议,如在自己的出块轮次中没有出块,在相同块高打包或确认不同的块造成分叉等,将会被触发,除被淘汰出候选节点集和目标节点集外,质押到合约账户中的令牌还需要被扣除。惩罚跟奖励的执行方法是一样的,不过惩罚是打包在下一轮共识的第一个区块中,所有共识节点对下一轮的第一个区块共识验证时进行惩罚。通过对共识节点进行奖励或惩罚,可以提高区块链系统的安全性和系统可靠性。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
具体地,本实施例中的共识节点确定方法可以称为PPoS(Probabilistic Proofof Stake,概率权益证明),基于DPOS和VRF算法在规模可控制的候选节点池中按照权重随机抽取出数量有限的共识节点。具体地,每轮共识过程中生成最后一个区块的共识节点从候选节点池中根据候选节点的权重重新随机选出t个节点作为下轮参与共识的共识节点,负责下一轮区块的打包,可以包括以下步骤:
步骤1,获取区块链系统中多个目标节点中各目标节点获得的选票数和质押金额;
步骤2,将多个目标节点中被区块链系统中的节点获得的选票数大于预设阈值的节点,作为入选节点,形成入选节点集;
步骤3,根据入选节点集中各入选节点的质押金额对入选节点进行降序排序,在质押金额相同的多个入选节点,根据各入选节点的质押时间进行二次排序,并排在前面的预设个数的入选节点确定为候选节点,形成候选节点集;
步骤4,按照以下公式确定候选节点集中的每个候选节点的权重:
Figure GDA0003103157460000131
其中,wi是候选节点集中第i个候选节点的权重,Ai,k为第i个候选节点获得的第k张选票的票龄,Mi为第i个候选节点获取的选票的总张数,N为候选节点集中的候选节点的个数;
步骤5,获取区块链系统中多个区块的随机种子,其中,创世区块随机生成一个随机数作为创世区块的随机种子r0,当前区块的随机种子是根据VRF算法和前一个区块的随机种子按照以下公式生成的:
Figure GDA0003103157460000141
其中,ri和πi分别是当前区块的随机种子和证明数据,ri-1是当前区块的前一个区块的随机种子,ski为生成当前区块的私钥,VRF函数为VRF算法,n为区块链系统的区块高度;
步骤6,按照以下公式为候选节点集中的每个候选节点选取一个随机数:
Figure GDA0003103157460000142
其中,i为候选节点集中的候选节点的排序序号,Ri是候选节点集中的第i个候选节点的随机数,rn是区块链系统中第n个区块的随机种子,rn-i是区块链系统中第n-i个区块的随机种子,其中,n为区块链系统的区块高度,N为候选节点集中的候选节点的个数;
步骤7,将满足以下不等式的最小Ji值确定为第i个候选节点被选中的票龄数:
Ri/2hashlen≥FX(Ji+1),i=1,2...N;
其中,Ri是候选节点集中第i个候选节点的随机数,hashlen是根据VRF算法生成的随机种子的位数,FX为累计分布函数,N为候选节点集中的候选节点的个数,其中,FX(x)=P(X≤x),其中,
Figure GDA0003103157460000143
表示候选节点集中第i个候选节点被选中的票龄数为k的概率,其中,
Figure GDA0003103157460000144
其中,t为参与共识的多个共识节点的个数,
Figure GDA0003103157460000145
为候选节点集中所有候选节点的权重的平均值,
Figure GDA0003103157460000146
为候选节点集中所有候选节点的总权重,其中,wi是候选节点集中第i个候选节点的权重;
步骤8,根据候选节点被选中的票龄数Ji对候选节点集中的候选节点进行降序排序;对于被选中的票龄数相同的多个候选节点,根据候选节点的权重对多个候选节点进行降序排序;将排在前面t个的候选节点确定为参与共识的多个共识节点;
步骤9,本轮共识中的其他共识节点负责对生成最后一个区块时所选取的用于参与下一轮共识节点的结果进行验证,可以包括以下步骤:使用生成最后一个区块的共识节点的公钥对该区块的随机种子rn和证明数据πn进行VRF验证;按照生成最后一个区块的共识节点相同的逻辑选出t个候选节点,对比验证参与下一轮共识的共识节点的选取结果是否正确。
上述实施例中的PPoS共识算法中的共识节点确定方法,基于DPOS和VRF算法在规模可控制的候选节点池中按照权重随机抽取出数量有限的共识节点。通过根据各目标节点的选票数和质押金额来确定候选节点集,然后在候选节点集中根据VRF算法和候选节点的权重随机选取多个共识节点,使得数量有限的共识节点参与共识,可以保证系统的共识性能,从而提高系统的可扩展性;同时,由于根据选票数和质押金额从多个目标节点中确定候选节点集,一方面使得确定的候选节点集中的候选节点更具有代表性,另一方面可以维持较大的共识节点群的规模,有效避免了过于中心化的问题;另外,通过VRF算法在候选节点集中随机选取多个共识节点,可以保证区块链系统的安全性。
基于同一发明构思,本申请实施例中还提供了一种共识节点确定装置,如下面的实施例所述。由于共识节点确定装置解决问题的原理与共识节点确定方法相似,因此共识节点确定装置的实施可以参见共识节点确定方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图4是本申请实施例的共识节点确定装置的一种结构框图,如图4所示,可以包括:获取模块401、选择模块402和随机选取模块403,下面对该结构进行说明。
获取模块401用于获取区块链系统中多个目标节点中各目标节点的选定率。
选择模块402用于根据多个目标节点中各目标节点的选定率,从多个目标节点中选择出候选节点形成候选节点集。
随机选取模块403用于从候选节点集中随机选取多个节点作为共识节点。
在本申请一些实施例中,选定率可以包括以下至少之一:目标节点被区块链系统中的节点选定的比例、目标节点自身的份额占比。
在本申请一些实施例中,选择模块402可以具体用于:将多个目标节点中被区块链系统中的节点选定的比例大于预设比例阈值的节点,作为入选节点,形成入选节点集;将入选节点集中自身的份额占比满足预设条件的入选节点,作为候选节点,形成候选节点集。
在本申请一些实施例中,预设条件可以包括以下之一:超出预定占比阈值、位于前预设位数。
在本申请一些实施例中,随机选取模块403可以具体用于:获取候选节点集中每个候选节点的权重,其中,每个候选节点的权重为每个候选节点获取的选票总票龄;获取区块链系统中多个区块的随机种子,其中,当前区块的随机种子是根据VRF算法和前一个区块的随机种子生成的;根据多个区块的随机种子和候选节点集中每个候选节点的排序序号,分别为候选节点集中的每个候选节点选取一个随机数;根据每个候选节点的权重和随机数确定候选节点集中每个候选节点被选中的票龄数;根据每个候选节点被选中的票龄数从候选节点集中确定多个共识节点。
在本申请一些实施例中,获取候选节点集中每个候选节点的权重,可以包括按照以下公式确定候选节点集中的每个候选节点的权重:
Figure GDA0003103157460000161
其中,wi是候选节点集中第i个候选节点的权重,Ai,k为第i个候选节点获得的第k张选票的票龄,Mi为第i个候选节点获取的选票的总张数,N为候选节点集中的候选节点的个数。
在本申请一些实施例中,当前区块的随机种子是根据VRF算法和前一个区块的随机种子可以按照以下公式生成的:
Figure GDA0003103157460000162
其中,ri和πi分别是当前区块的随机种子和证明数据,ri-1是当前区块的前一个区块的随机种子,ski为生成当前区块的私钥,VRF函数为VRF算法,n为区块链系统的区块高度。
在本申请一些实施例中,根据多个区块的随机种子和候选节点集中每个候选节点的排序序号,分别为候选节点集中的每个候选节点选取一个随机数,可以包括按照以下公式为候选节点集中的每个候选节点选取一个随机数:
Figure GDA0003103157460000171
其中,i为候选节点集中的候选节点的排序序号,Ri是候选节点集中的第i个候选节点的随机数,rn是区块链系统中第n个区块的随机种子,rn-i是区块链系统中第n-i个区块的随机种子,其中,n为区块链系统的区块高度,N为候选节点集中的候选节点的个数。
在本申请一些实施例中,根据每个候选节点的权重和随机数确定候选节点集中每个候选节点被选中的票龄数,可以包括:将满足以下不等式的最小Ji值确定为第i个候选节点被选中的票龄数:
Ri/2hashlen≥FX(Ji+1),i=1,2...N;
其中,Ri是候选节点集中第i个候选节点的随机数,hashlen是根据VRF算法生成的随机种子的位数,FX为累计分布函数,N为候选节点集中的候选节点的个数,其中,FX(x)=P(X≤x),其中,
Figure GDA0003103157460000172
表示候选节点集中第i个候选节点被选中的票龄数为k的概率,其中,
Figure GDA0003103157460000173
其中,t为参与共识的多个共识节点的个数,
Figure GDA0003103157460000174
为候选节点集中所有候选节点的权重的平均值,
Figure GDA0003103157460000175
为候选节点集中所有候选节点的总权重,其中,wi是候选节点集中第i个候选节点的权重。
在本申请一些实施例中,根据每个候选节点被选中的票龄数从候选节点集中确定多个共识节点,可以包括:根据候选节点被选中的票龄数对候选节点集中的候选节点进行降序排序;对于被选中的票龄数相同的多个候选节点,根据候选节点的权重对多个候选节点进行降序排序;将排在前面预设个数的候选节点确定为参与共识的多个共识节点。
在本申请一些实施例中,在根据每个候选节点被选中的票龄数从候选节点集中确定多个共识节点之后,还可以包括:多个共识节点轮流作为提议节点生成区块,其中,在生成最后一个区块时,分别在每个共识节点获得的选票中随机选取一张选票作为奖励选票,以获得多张奖励选票;针对多张奖励选票中的每一张奖励选票,对区块链系统中投出该奖励选票的节点进行奖励。
在本申请一些实施例中,分别在每个共识节点获得的选票中随机选取一张奖励选票,可以包括:针对每个共识节点,将该共识节点获得的所有选票按投票时间进行排序;针对每个共识节点,根据该共识节点获得的所有选票中各选票的票龄和排序序号确定各选票的票龄区间;针对每个共识节点,根据该共识节点被选中的票龄数所处的票龄区间,将该票龄区间对应的选票确定为奖励选票。
在本申请一些实施例中,针对每个共识节点,根据该共识节点获得的所有选票中各选票的票龄和排序序号确定各选票的票龄区间,可以包括:将第i个共识节点的第μ张选票的票龄区间划分为:
Figure GDA0003103157460000181
其中,μ为选票的排序序号,Ii,μ为第i个共识节点的第μ张选票的票龄区间,Ai,k为第i个候选节点获得的第k张选票的票龄,Mi为第i个候选节点获取的选票的总张数,t为参与共识的多个共识节点的个数。
从以上的描述中,可以看出,本申请实施例实现了如下技术效果:通过根据各目标节点的选定率来确定候选节点集,然后在候选节点集中随机选取多个共识节点,使得数量有限的共识节点参与共识,可以保证系统的共识性能,从而提高系统的可扩展性;同时,由于根据选定率从多个目标节点中确定候选节点集,一方面使得确定的候选节点集中的候选节点更具有代表性,另一方面可以维持较大的共识节点群的规模,有效避免了过于中心化的问题;另外,通过随机选取在候选节点集中确定多个共识节点,可以保证区块链系统的安全性。通过上述方案解决了现有的共识节点确定方法存在去中心化程度低的技术问题,达到了有效提升去中心化程度、提高系统安全性和可扩展性的技术效果。
本申请实施方式还提供了一种计算机设备,具体可以参阅图5所示的基于本申请实施例提供的共识节点确定方法的计算机设备组成结构示意图,所述计算机设备具体可以包括输入设备51、处理器52、存储器53。其中,所述存储器53用于存储处理器可执行指令。所述处理器52执行所述指令时实现上述任意实施例中所述的共识节点确定方法的步骤。
在本实施方式中,所述输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
在本实施方式中,该计算机设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本申请实施方式中还提供了一种基于共识节点确定方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现上述任意实施例中所述共识节点确定方法的步骤。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本申请的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

1.一种共识节点确定方法,其特征在于,包括:
获取区块链系统中多个目标节点中各目标节点的选定率,其中,所述目标节点是所述区块链系统中能接受投票的区块链节点;
根据所述多个目标节点中各目标节点的选定率,从所述多个目标节点中选择出候选节点形成候选节点集;
从所述候选节点集中随机选取多个节点作为共识节点。
2.根据权利要求1所述的方法,其特征在于,所述选定率包括以下至少之一:目标节点被区块链系统中的节点选定的比例、目标节点自身的份额占比。
3.根据权利要求2所述的方法,其特征在于,根据所述多个目标节点中各目标节点的选定率,从所述多个目标节点中选择出候选节点形成候选节点集,包括:
将所述多个目标节点中被区块链系统中的节点选定的比例大于预设比例阈值的节点,作为入选节点,形成入选节点集;
将所述入选节点集中自身的份额占比满足预设条件的入选节点,作为候选节点,形成候选节点集。
4.根据权利要求3所述的方法,其特征在于,所述预设条件包括以下之一:超出预定占比阈值、位于前预设位数。
5.根据权利要求1所述的方法,其特征在于,从所述候选节点集中随机选取多个节点作为共识节点,包括:
获取所述候选节点集中每个候选节点的权重,其中,每个候选节点的权重为每个候选节点获取的选票总票龄;
获取所述区块链系统中多个区块的随机种子,其中,当前区块的随机种子是根据VRF算法和前一个区块的随机种子生成的;
根据所述多个区块的随机种子和所述候选节点集中每个候选节点的排序序号,分别为所述候选节点集中的每个候选节点选取一个随机数;
根据每个候选节点的权重和随机数确定所述候选节点集中每个候选节点被选中的票龄数;
根据每个候选节点被选中的票龄数从所述候选节点集中确定所述多个共识节点。
6.根据权利要求5所述的方法,其特征在于,获取所述候选节点集中每个候选节点的权重,包括按照以下公式确定所述候选节点集中的每个候选节点的权重:
Figure FDA0003103157450000021
其中,wi是所述候选节点集中第i个候选节点的权重,Ai,k为第i个候选节点获得的第k张选票的票龄,Mi为第i个候选节点获取的选票的总张数,N为所述候选节点集中的候选节点的个数。
7.根据权利要求5所述的方法,其特征在于,当前区块的随机种子是根据VRF算法和前一个区块的随机种子按照以下公式生成的:
<rii>=VRFski(ri-1),i=1,2...,n;
其中,ri和πi分别是当前区块的随机种子和证明数据,ri-1是当前区块的前一个区块的随机种子,ski为生成所述当前区块的私钥,VRF函数为所述VRF算法,n为所述区块链系统的区块高度。
8.根据权利要求5所述的方法,其特征在于,根据所述多个区块的随机种子和所述候选节点集中每个候选节点的排序序号,分别为所述候选节点集中的每个候选节点选取一个随机数,包括按照以下公式为所述候选节点集中的每个候选节点选取一个随机数:
Figure FDA0003103157450000022
其中,i为所述候选节点集中的候选节点的排序序号,Ri是所述候选节点集中的第i个候选节点的随机数,rn是区块链系统中第n个区块的随机种子,rn-i是区块链系统中第n-i个区块的随机种子,其中,n为所述区块链系统的区块高度,N为所述候选节点集中的候选节点的个数。
9.根据权利要求5所述的方法,其特征在于,根据每个候选节点的权重和随机数确定所述候选节点集中每个候选节点被选中的票龄数,包括:
将满足以下不等式的最小Ji值确定为第i个候选节点被选中的票龄数:
Ri/2hashlen≥FX(Ji+1),i=1,2...N;
其中,Ri是所述候选节点集中第i个候选节点的随机数,hashlen是根据VRF算法生成的随机种子的位数,FX为累计分布函数,N为所述候选节点集中的候选节点的个数,其中,FX(x)=P(X≤x),其中,
Figure FDA0003103157450000031
表示所述候选节点集中第i个候选节点被选中的票龄数为k的概率,其中,
Figure FDA0003103157450000032
其中,t为参与共识的多个共识节点的个数,
Figure FDA0003103157450000033
为所述候选节点集中所有候选节点的权重的平均值,
Figure FDA0003103157450000034
为所述候选节点集中所有候选节点的总权重,其中,wi是所述候选节点集中第i个候选节点的权重。
10.根据权利要求5所述的方法,其特征在于,根据每个候选节点被选中的票龄数从所述候选节点集中确定所述多个共识节点,包括:
根据候选节点被选中的票龄数对所述候选节点集中的候选节点进行降序排序;
对于被选中的票龄数相同的多个候选节点,根据候选节点的权重对所述多个候选节点进行降序排序;
将排在前面预设个数的候选节点确定为参与共识的多个共识节点。
11.根据权利要求5所述的方法,其特征在于,在根据每个候选节点被选中的票龄数从所述候选节点集中确定所述多个共识节点之后,还包括:
所述多个共识节点轮流作为提议节点生成区块;
其中,在生成最后一个区块时,分别在每个共识节点获得的选票中随机选取一张选票作为奖励选票,以获得多张奖励选票;
针对所述多张奖励选票中的每一张奖励选票,对区块链系统中投出该奖励选票的节点进行奖励。
12.根据权利要求11所述的方法,其特征在于,分别在每个共识节点获得的选票中随机选取一张奖励选票,包括:
针对每个共识节点,将该共识节点获得的所有选票按投票时间进行排序;
针对每个共识节点,根据该共识节点获得的所有选票中各选票的票龄和排序序号确定各选票的票龄区间;
针对每个共识节点,根据该共识节点被选中的票龄数所处的票龄区间,将该票龄区间对应的选票确定为所述奖励选票。
13.根据权利要求12所述的方法,其特征在于,针对每个共识节点,根据该共识节点获得的所有选票中各选票的票龄和排序序号确定各选票的票龄区间,包括:
将第i个共识节点的第μ张选票的票龄区间划分为:
Figure FDA0003103157450000041
其中,μ为选票的排序序号,Ii,μ为第i个共识节点的第μ张选票的票龄区间,Ai,k为第i个候选节点获得的第k张选票的票龄,Mi为第i个候选节点获取的选票的总张数,t为参与共识的多个共识节点的个数。
14.一种共识节点确定装置,其特征在于,包括:
获取模块,用于获取区块链系统中多个目标节点中各目标节点的选定率,其中,所述目标节点是所述区块链系统中能接受投票的区块链节点;
选择模块,用于根据所述多个目标节点中各目标节点的选定率,从所述多个目标节点中选择出候选节点形成候选节点集;
随机选取模块,用于从所述候选节点集中随机选取多个节点作为共识节点。
15.一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至13中任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时实现权利要求1至13中任一项所述方法的步骤。
CN201910269398.1A 2019-04-04 2019-04-04 共识节点确定方法、装置、计算机设备和存储介质 Active CN110049029B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910269398.1A CN110049029B (zh) 2019-04-04 2019-04-04 共识节点确定方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910269398.1A CN110049029B (zh) 2019-04-04 2019-04-04 共识节点确定方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN110049029A CN110049029A (zh) 2019-07-23
CN110049029B true CN110049029B (zh) 2021-07-20

Family

ID=67276132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910269398.1A Active CN110049029B (zh) 2019-04-04 2019-04-04 共识节点确定方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN110049029B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427763B (zh) * 2019-07-24 2021-07-23 上海朝夕网络技术有限公司 一种基于预定义执行代码的分布式系统的共识方法
CN110599173B (zh) * 2019-09-20 2021-08-17 腾讯科技(深圳)有限公司 区块链的共识节点确定方法、装置、设备及存储介质
US20210099312A1 (en) * 2019-09-27 2021-04-01 Cypherium Blockchain Inc. Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system
CN110995701B (zh) * 2019-12-02 2022-11-29 远光软件股份有限公司 一种区块链共识方法、系统、电子设备、存储介质
CN111083221B (zh) * 2019-12-13 2023-08-04 北京菲林方德科技有限公司 一种交易验证方法及装置
CN113472561A (zh) * 2020-03-31 2021-10-01 华为技术有限公司 一种区块链数据处理方法及其设备
CN111523890B (zh) * 2020-04-23 2024-06-07 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、存储介质及设备
CN111556149B (zh) * 2020-04-27 2022-10-21 中国银行股份有限公司 一种基于Raft共识算法的节点选择方法及装置
CN112087518B (zh) * 2020-09-10 2022-10-21 中国工商银行股份有限公司 用于区块链的共识方法、装置、计算机系统和介质
CN112101940A (zh) * 2020-09-16 2020-12-18 上海万向区块链股份公司 用区块链实施的随机可验证样本选取系统
CN112187765B (zh) * 2020-09-23 2023-04-07 深圳前海微众银行股份有限公司 一种区块链中选择目标节点的方法及装置
CN112491845B (zh) * 2020-11-18 2023-04-25 北京数码视讯科技股份有限公司 普通节点准入方法、装置、电子设备及可读存储介质
CN112257095B (zh) * 2020-11-23 2022-03-22 中电万维信息技术有限责任公司 一种联盟链共识节点的选择方法
CN112738196B (zh) * 2020-12-25 2021-11-30 卓尔智联(武汉)研究院有限公司 区块链代表节点选取方法、装置、计算机设备和存储介质
CN113922953B (zh) * 2021-09-30 2023-07-21 联想(北京)有限公司 一种数据处理方法及装置
CN113919951A (zh) * 2021-10-13 2022-01-11 甘肃同兴智能科技发展有限责任公司 一种联盟链的数据存储方法
CN114154994A (zh) * 2021-10-29 2022-03-08 海南火链科技有限公司 一种基于区块链的超级节点确定方法及装置、存储介质
CN115374216B (zh) * 2022-08-10 2024-04-02 深圳市沃享科技有限公司 共识方案的构建方法、装置、终端设备及计算机介质
CN116800770A (zh) * 2022-09-02 2023-09-22 西南交通大学 一种基于区块链的云边分布式系统节点操作更新方法
CN116980281A (zh) * 2022-11-30 2023-10-31 腾讯科技(深圳)有限公司 节点选取方法、装置、第一节点、存储介质及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395403A (zh) * 2017-07-07 2017-11-24 北京区块链云科技有限公司 一种适用于大规模电子商务的基于信用的区块链共识方法
CN107450981A (zh) * 2017-05-31 2017-12-08 阿里巴巴集团控股有限公司 一种区块链共识方法及设备
CN107493173A (zh) * 2017-08-30 2017-12-19 北京知金链网络技术有限公司 区块链随机数共识推举方法
CN107590738A (zh) * 2017-08-24 2018-01-16 阿里巴巴集团控股有限公司 选择共识节点的处理方法、装置及服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108122165B (zh) * 2017-12-15 2020-10-30 北京中电普华信息技术有限公司 一种区块链共识方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107450981A (zh) * 2017-05-31 2017-12-08 阿里巴巴集团控股有限公司 一种区块链共识方法及设备
CN107395403A (zh) * 2017-07-07 2017-11-24 北京区块链云科技有限公司 一种适用于大规模电子商务的基于信用的区块链共识方法
CN107590738A (zh) * 2017-08-24 2018-01-16 阿里巴巴集团控股有限公司 选择共识节点的处理方法、装置及服务器
CN107493173A (zh) * 2017-08-30 2017-12-19 北京知金链网络技术有限公司 区块链随机数共识推举方法

Also Published As

Publication number Publication date
CN110049029A (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
CN110049029B (zh) 共识节点确定方法、装置、计算机设备和存储介质
CN109544334B (zh) 一种网络可扩展性区块链实现方法
Stanley et al. Anomalous fluctuations in the dynamics of complex systems: from DNA and physiology to econophysics
CN108377206B (zh) 用于配置共识算法的方法、装置及计算机可读存储介质
CN110535836A (zh) 一种基于角色分类的信任区块链共识方法
CN107220130B (zh) 一种在区块链的节点处实现的信息共识方法、装置及系统
US20210004777A1 (en) Blockchain system to which proof-of-transaction consensus algorithm is applied, and method therefor
CN109493062B (zh) 一种基于信誉权益证明的区块链共识方法
Groll et al. On the dependency of soccer scores–a sparse bivariate Poisson model for the UEFA European football championship 2016
Stone et al. Decision-theoretic bidding based on learned density models in simultaneous, interacting auctions
Bugday et al. Creating consensus group using online learning based reputation in blockchain networks
CN111432014A (zh) 一种区块链共识算法中主节点选取的方法和装置
CN114048515B (zh) 一种基于联邦学习和区块链的医疗大数据共享方法
CN110084596A (zh) 一种处理区块链混合共识的方法和装置
CN114741721A (zh) 针对文件区块链的基于贡献值证明的共识装置及共识方法
Tedeschi et al. On optimizing transaction fees in bitcoin using ai: Investigation on miners inclusion pattern
WO2020199179A1 (zh) 共识节点确定方法、装置、计算机设备和存储介质
Guo et al. Fast: Adopting federated unlearning to eliminating malicious terminals at server side
Aggarwal et al. A Structural Analysis of Bitcoin Cash's Emergency Difficulty Adjustment Algorithm
JP6293620B2 (ja) 投票処理システム、投票処理方法、投票券発券装置および情報処理装置
Gartheeban et al. A data-driven method for in-game decision making in mlb: when to pull a starting pitcher
CN117897738A (zh) 人工智能辅助的实况体育数据质量保证
CN109388747A (zh) 一种获得网络中用户的置信度的方法和装置
CN112150129A (zh) 用于区块链出块矿工的投票方法、装置、存储介质及设备
George et al. An Analysis of p+ ɛ Attacks on Various Models of Schelling Game Based Systems

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40010242

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant