System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于基于随机数证明来选择分布式共识节点的方法和装置制造方法及图纸_技高网

用于基于随机数证明来选择分布式共识节点的方法和装置制造方法及图纸

技术编号:40702980 阅读:22 留言:0更新日期:2024-03-22 11:01
本发明专利技术公开了用于基于随机数证明来选择分布式共识节点的方法和装置。本文公开了一种在用于生成区块链的装置中选择共识节点的方法。该方法可以包括从节点的随机数链读取随机数,对读取的所述随机数和先前的高度信息执行操作,以及将所述操作的结果与参考值进行比较以便选择所述节点作为共识节点。

【技术实现步骤摘要】

本专利技术涉及一种用于基于随机数证明(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、根据本专利技术的实施例的一种在用于生成区块链的装置中验证节点的活跃性的方法可以包括:对分布式共识节点的数量进行计数;以及确定所计数的数量是否小于确定的值。在这里,可以使用随机数链来选本文档来自技高网...

【技术保护点】

1.一种在用于生成区块链的装置中选择共识节点的方法,包括:

2.根据权利要求1所述的方法,其中,所述随机数链是散列链。

3.根据权利要求1所述的方法,还包括:

4.根据权利要求3所述的方法,其中,生成所述随机数链包括:

5.根据权利要求4所述的方法,其中,使用所述主密钥来生成所述随机数链包括:

6.根据权利要求1所述的方法,其中,所述随机数链包括最终随机数,所述最终随机数与起始高度一起向其他节点公开,以及所述最终随机数用于通过所述其他节点中的至少一个来验证所述节点是否有资格充当所述共识节点。

7.根据权利要求1所述的方法,其中,执行所述操作包括:

8.根据权利要求1所述的方法,其中,所述先前的高度信息包括先前的区块的区块头的散列值。

9.根据权利要求6所述的方法,还包括:

10.根据权利要求9所述的方法,还包括:

11.根据权利要求9所述的方法,其中,所述节点的地址包括下列至少一者:通过其来识别所述节点的值、以及公共密钥。

12.根据权利要求1所述的方法,其中,为了防止包括所述节点的所有节点在先前的区块被生成以前预测每个节点是否被选择作为用于所述先前的区块之后的区块的共识节点,使用与所述先前的区块相关的信息来选择所述共识节点。

13.根据权利要求1所述的方法,其中,将从所述随机数链读取的随机数用作散列函数的随机数,以使得对于每个高度,向包括所述节点的所有节点提供仅一次用于计算的机会,节点是通过所述计算而被选择作为共识节点的。

14.根据权利要求1所述的方法,其中,当能够参与分布式共识的节点的数量是n时,当所述分布式共识所需的节点的最小数量是x时,以及当所选择的节点的数量等于或小于所述最小数量的累积概率是k时,由变量n、x和k来控制分布式共识节点的数量。

15.根据权利要求14所述的方法,其中,作为所述累积概率的k具有二项式分布特性。

16.根据权利要求14所述的方法,其中,所述节点被选择作为所述共识节点的概率是Px,k,其是通过基于所述变量n、x和k进行伯努利试验而获取的概率值。

17.根据权利要求6所述的方法,其中,所述节点通过所述其他节点中的至少一个基于将散列值与所述最终随机数进行比较的结果被验证为所述共识节点,以及

18.一种用于生成区块链的装置,包括:

...

【技术特征摘要】

1.一种在用于生成区块链的装置中选择共识节点的方法,包括:

2.根据权利要求1所述的方法,其中,所述随机数链是散列链。

3.根据权利要求1所述的方法,还包括:

4.根据权利要求3所述的方法,其中,生成所述随机数链包括:

5.根据权利要求4所述的方法,其中,使用所述主密钥来生成所述随机数链包括:

6.根据权利要求1所述的方法,其中,所述随机数链包括最终随机数,所述最终随机数与起始高度一起向其他节点公开,以及所述最终随机数用于通过所述其他节点中的至少一个来验证所述节点是否有资格充当所述共识节点。

7.根据权利要求1所述的方法,其中,执行所述操作包括:

8.根据权利要求1所述的方法,其中,所述先前的高度信息包括先前的区块的区块头的散列值。

9.根据权利要求6所述的方法,还包括:

10.根据权利要求9所述的方法,还包括:

11.根据权利要求9所述的方法,其中,所述节点的地址包括下列至少一者:通过其来识别所述节点的值、以及公共密钥。

12.根据权利要求1所述的方法,其中,为了防止包括所述节点的所有节点在先前的区块...

【专利技术属性】
技术研发人员:吴真泰朴俊泳金己暎
申请(专利权)人:韩国电子通信研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1