用于基于随机数证明来选择分布式共识节点的方法和装置与流程

文档序号:37363804发布日期:2024-03-22 10:17阅读:9来源:国知局
用于基于随机数证明来选择分布式共识节点的方法和装置与流程

本发明涉及一种用于基于随机数证明(proof of nonce)来选择分布式共识节点的方法和装置。


背景技术:

1、区块链技术是一种包括各种技术(诸如p2p网络、安全和加密、分布式计算平台等)的融合技术。区块链技术可以被定义为用于确保完整性和可靠性以便以分布式方式来维护单个总账(ledger)的技术,所述分布式方式使得交易中的参与者(下文中,称为‘节点’)在没有作为可信第三方的中央机构的情况下验证交易是否是真实的、以区块为单位记录交易细节、并在它们之间共享同步信息。在现有的中心化系统中,第三方中央机构专门管理中央总账以防止总账条目被伪造,从而通过间接和被动的方式来保证可靠性。在区块链中,不是将总账的管理委托给第三方中央机构,而是通过使用共识算法(consensus algorithm)允许节点参与到交易的确认中来以分布式方式管理总账。共识算法是用于配置区块链以便在不可靠节点之间维护区块链的最重要的技术中的一个。共识算法可以提供区块链的重要特性,诸如用于为所有节点提供生成区块(下文中,称为“挖掘”)的同等机会的公平性和去中心化、用于保护共识节点免受攻击并防止篡改总帐的可能性的安全性等等。


技术实现思路

1、本发明的一个目的是提供一种分布式共识节点选择方法,在该方法中以不可预测的方式来选择参与分布式共识的节点(分布式共识节点),以使得所选择的节点代表所有节点。

2、本发明的另一个目的是提供一种分布式共识节点选择方法,通过该分布式共识节点选择方法可以控制执行分布式共识的实体的数量。

3、本发明的另一个目的是提供一种分布式共识节点选择方法,在该方法中节点所拥有的资源(诸如计算能力等)不会影响对参与分布式共识的许可的获取。

4、本发明的又一个目的是提供一种用于验证被选择用来参与分布式共识的节点是否有资格参与分布式共识的分布式共识节点选择方法。

5、此外,本发明要实现的目的不限于上面提到的目的,并且本领域技术人员从以下描述中将清楚地理解尚未提到的其他目的。

6、根据本发明的实施例的一种在用于生成区块链的装置中选择共识节点的方法可以包括:从节点的随机数链中读取随机数;对读取的所述随机数和先前的高度信息执行操作;以及将所述操作的结果与参考值进行比较以便选择所述节点作为共识节点。

7、在一个实施例中,所述随机数链可以是散列链。

8、在一个实施例中,所述方法还可以包括生成所述随机数链。

9、在一个实施例中,生成所述随机数链可以包括使用被所述节点保持私有的主密钥来生成所述随机数链。

10、在一个实施例中,使用主密钥生成所述随机数链可以包括:使用主密钥生成基数(base);通过多次重复地对所述基数进行散列来生成散列链;以及设置开始使用所述散列链的起始高度。

11、在一个实施例中,可以确定所述随机数链的长度以便对应于周期性地生成区块的时间段。

12、在一个实施例中,执行所述操作可以包括对读取的所述随机数和先前的高度信息进行散列。

13、在一个实施例中,所述先前的高度信息可以包括先前的区块的区块头(header)的散列值。

14、在一个实施例中,所述方法还可以包括:当比较的结果是所述操作的结果被确定成小于参考值时,向其他节点公开所述随机数链的最终随机数值、开始使用所述随机数链的起始高度、以及所述节点的地址。

15、在一个实施例中,所述方法还可以包括:在精英池(elite pool)中注册所述其他节点的随机数链信息,并且该随机数链信息可以包括对应节点的地址、对应随机数链的最终随机数值、以及开始使用所述对应随机数链的起始高度。

16、在一个实施例中,所述节点的地址可以包括:通过其来识别所述节点的值、或公共密钥。

17、在一个实施例中,为了防止包括所述节点的所有节点在先前的区块被生成以前预测每一个节点是否被选择作为用于所述先前的区块之后的区块的共识节点,可以使用与所述先前的区块相关的信息来选择所述共识节点。

18、在一个实施例中,从所述随机数链读取的随机数可以被用作散列函数的随机数,以使得对于每个高度,向包括所述节点的所有节点提供仅一次用于计算的机会,节点是通过该计算而被选择作为所述共识节点。

19、在一个实施例中,当能够参与分布式共识的节点的数量是n时,当分布式共识所需的节点的最小数量是x时,以及当所选节点的数量等于或小于最小数量的累积概率是k时,可以通过变量n、x和k来控制所述分布式共识节点的数量。

20、在一个实施例中,作为累积概率的k可以具有二项式分布特性。

21、在一个实施例中,所述节点被选择作为共识节点的概率可以是px,k,其是通过基于变量n、x和k来进行伯努利试验而获取的概率值。

22、在一个实施例中,该方法还可以包括:当在所述节点的精英池中注册的节点的数量被改变时,改变所述参考值。

23、在一个实施例中,可以通过用概率值px,k乘以所述操作的结果来计算所述参考值。

24、在一个实施例中,对于每个高度,确定所述节点是否被选择作为共识节点的机会可以被限制为一次。

25、在一个实施例中,确定所述节点是否被选择作为共识节点的机会可以被限制为等于或大于一次、以及等于或小于m次。

26、根据本发明的实施例的一种在用于生成区块链的装置中验证共识节点的方法可以包括:从被选择作为共识节点的第一节点接收随机数值、新区块的高度、以及所述第一节点的地址;从第二节点的精英池中检索与所述第一节点的地址相对应的最终随机数值和起始高度;从所述新区块的高度减去所述起始高度;以与减法的结果一样多的次数对来自所述新区块的随机数值进行散列;以及将散列的结果与从所述第一节点接收的随机数值进行比较,以便验证所述第一节点是否有资格充当共识节点。

27、在一个实施例中,当散列的结果等于最终随机数值时,所述第一节点的区块生成许可可以被验证。

28、在一个实施例中,当散列的结果不等于最终随机数值时,可以在所述第一节点生成区块或使用所述区块链时将所述第一节点降级。

29、根据本发明的实施例的一种在用于生成区块链的装置中更新随机数链的方法可以包括:将随机数链的基数散列值记录在总账中,以便使得能够在将来检查在选择共识节点的过程中是否存在问题;使用节点的主密钥来计算新的基数散列值;使用所述新的基数散列值来生成新的随机数链;以及向其他节点公开所述新的随机数链的最终随机数值和起始高度。

30、在一个实施例中,当所述随机数链的所有值被耗尽时,可以生成新的随机数链。

31、在一个实施例中,当所述节点成功完成区块生成时,可以强制生成所述新的随机数链。

32、根据本发明的实施例的一种在用于生成区块链的装置中验证节点的活跃性的方法可以包括:对分布式共识节点的数量进行计数;以及确定所计数的数量是否小于确定的值。在这里,可以使用随机数链来选择分布式共识节点中的每一个。

33、在一个实施例中,所述确定的值可以与节点被选择作为用来生成区块的候选者的概率的分布的均值相关。

34、在一个实施例中,可以根据在精英池中注册的节点的数量、分布式共识所需的节点的最小数量、以及所选节点的数量等于或小于所述最小数量的累积概率来设置所述均值。

35、在一个实施例中,所述累积概率可以是来自伯努利试验的成功概率。

36、根据本发明的实施例的一种生成区块链的分布式计算系统可以包括:至少一个第一节点,其用于基于散列链来生成随机数链,并且向其他节点公开所述随机数链的起始高度、随机数值、以及包括节点的地址的随机数链信息;以及至少一个第二节点,其用于使用所述随机数链信息、从所述至少一个第一节点接收的随机数值和高度来验证所述至少一个第一节点是否有资格充当共识节点。

37、在一个实施例中,当所述至少一个第一节点成功完成区块生成时,可以更新所述随机数链。

38、在一个实施例中,所述至少一个第二节点可以包括精英池,在其中注册有随机数链信息。

39、在一个实施例中,所述至少一个第一节点可以从所述精英池中退出,从而离开共识的主体。

40、在一个实施例中,为了在所述精英池中注册所述至少一个第一节点,可以使用区块链的交易记录。

41、根据本发明的实施例的一种用于生成区块链的装置可以包括:至少一个处理器;以及存储器,其用于储存由所述至少一个处理器执行的至少一个指令。所述至少一个指令可以由所述至少一个处理器来执行,以使得从节点的随机数链中读取随机数,使得对读取的所述随机数和先前的高度信息执行操作,以及使得将所述操作的结果与参考值进行比较以便将所述节点选择作为共识节点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1