System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于真随机数的区块链生成方法技术_技高网

一种基于真随机数的区块链生成方法技术

技术编号:41236074 阅读:4 留言:0更新日期:2024-05-09 23:50
本发明专利技术公开了一种基于真随机数发生装置的区块链生成方法。所述方法包括:真随机数的硬件生成、真随机数的检验、真随机数和数字签名联合哈希值、节点数据同步和二次哈希值、哈希值比对选定节点、新选节点记录并广播新区块。本发明专利技术通过每个网络节点用物理上的低功耗器件产生真随机数,并通过共识算法作真随机性证明生成新区块,可替代基于高能耗计算机工作量证明的区块链生成方法,大幅降低公有区块链的建设成本和能源消耗,促进区块链技术的普及。

【技术实现步骤摘要】

本专利技术涉及区块链技术,具体涉及一种新的区块链生成方法,本专利技术利用节点的真随机数发生装置产生真随机数,通过节点之间对真随机数的共识算法选择节点生成区块链新区块。


技术介绍

1、区块链技术近十几年发展迅速,并且具有广泛的应用。狭义区块链是按照时间顺序,将数据区块以顺序相连的方式组合成的链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义区块链技术是利用块链式数据结构验证与存储数据,利用分布式节点共识算法生成和更新数据,利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约,编程和操作数据的全新的分布式基础架构与计算范式。

2、由于没有任何一个节点可以单独记录账本数据,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。也由记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。因此,区块链技术对数据的安全性具有重要意义。

3、区块链在金融、物流、公共服务、数字版权等领域具有巨大应用前景。以金融为例,其在国际汇兑、信用证、股权登记和证券交易所等金融领域有着潜在的巨大应用价值。将区块链技术应用在金融行业中,能够省去第三方中介环节,实现点对点的直接对接,从而在大大降低成本的同时,快速完成交易支付。

4、现有区块链技术一般采用“工作量证明”作为新区块生成的基础。“工作量证明”(pow)是最先使用也是最广泛使用的区块链生成方法,其基本过程为每个网络节点对上一个区块的数据添加一个一次性的伪随机数(nonce),并通过sha-256算法计算出一个256位的哈希值。当某个节点计算出的哈希值满足一个给定的目标,则该节点自动获得了生成新区块的权利,获得相应的记账奖励。

5、由于“工作量证明”给定的目标通常是一个出现概率极小的结果,因此需要消耗大量计算资源才能得到。例如btc的“工作量证明”需要计算出一个小于前80位都是0的256位数的哈希值(截止到2022年),这就需要节点不断输入伪随机的nonce试错,平均要试错2的80次方次,才能得到符合目标的哈希值。因此“工作量证明”也被称为“挖矿”。

6、虽然“工作量证明”能限制区块链的生成速度,防止新区块过快的“女巫攻击”,但是如此多的计算次数也导致大量的电力被浪费在计算试错上。

7、因此区块链需要一个真正公平,同时节约能耗的全新生成机制,用于进行数据的存储和保护。


技术实现思路

1、目的

2、为了保持区块链生成的公平性同时节约大量能耗,本专利技术公开了一种基于真随机数发生装置的区块链生成方法。该方法包括真随机数的硬件生成、真随机数的软件检验、真随机数和数字签名的联合哈希值、节点数据同步、二次哈希值生成、哈希值比对极值选定节点、新选节点记录并广播新区块等步骤。

3、具体而言,本专利技术提供了一种基于真随机数的区块链生成方法,其特征在于,所述方法包括:

4、步骤(1)、设定区块链中相邻区块之间的间隔时间t,基于所述间隔时间t进行区块生成倒计时;

5、步骤(2)、每个网络节点中设置真随机数发生装置,通过每个网络节点的真随机数发生装置各自生成一组预定大小的真随机数用作随机性证明,或者从各自生成的真随机数中选取一组第二预定大小的随机数用作随机性证明;

6、步骤(3)、每个网络节点m对自己生成的真随机数生成相应的校验值,用本地私钥对其进行加密,并生成数字签名;

7、步骤(4)、每个网络节点m把经过自己私钥加密后的校验值和数字签名同步到其它网络节点;

8、步骤(5)、每个网络节点将同步获得的全部校验值相加,得到sh(n)=∑mh(m,n),并且每个网络节点对所获得的校验值之和sh(n)再次进行校验值计算,得到整体校验值hz(n),其中,m为网络节点编号,n为生成该校验值的区块编号;

9、步骤(6)、每个网络节点将自身校验值与整体校验值按照预定运算关系进行运算,确定运算结果,所有网络节点基于所有网络节点运算结果之间的关系,按预定规则选取网络节点作为记账节点,当所述倒计时结束时,所述记账节点将自身接收和存储的数据打包生成新区块。

10、需要说明的是,整体校验值除了采用校验值之和外,还可以采用其他运算方式的结果,只要按照该运算方式,整体校验值的计算结果与计算顺序无关即可。

11、另一方面,本专利技术提供一种数据存储方法,其特征在于,所述方法包括:

12、步骤(1)每个网络节点生成或者接收待记录数据,对所述待记录数据进行暂存,并且将所述待记录数据广播至其他网络节点,每个网络节点基于其自身生成的数据以及所接收到的数据生成数据列表;

13、步骤(2)、设定区块链中相邻区块之间的间隔时间t,基于所述间隔时间t进行区块生成倒计时;

14、步骤(3)、每个网络节点中设置真随机数发生装置,通过每个网络节点的真随机数发生装置各自生成一组预定大小的真随机数用作随机性证明,或者从各自生成的真随机数中选取一组第二预定大小的随机数用作随机性证明;

15、步骤(4)、每个网络节点m对自己生成的真随机数生成相应的校验值,用本地私钥对其进行加密,并生成数字签名;

16、步骤(5)、每个网络节点m把经过自己私钥加密后的校验值和数字签名同步到其它网络节点;

17、步骤(5)、每个网络节点将同步获得的全部校验值相加,得到sh(n)=∑mh(m,n),并且每个网络节点对所获得的校验值之和sh(n)再次进行校验值计算,得到整体校验值hz(n),其中,m为网络节点编号,n为生成该校验值的区块编号;

18、步骤(6)、每个网络节点将自身校验值与整体校验值按照预定运算关系进行运算,确定运算结果,所有网络节点基于所有网络节点运算结果之间的关系,按预定规则选取网络节点作为记账节点,当所述倒计时结束时,所述记账节点将自身存储的数据列表中的数据打包生成新区块。

19、在一种优选实现方式中,所述区块链生成方法或所述存储方法还包括:

20、步骤(7)、所述记账节点将新区块的数据发送到其它网络节点,由其它网络节点确认,超过预定数目的节点验证通过后形成新区块共识。

21、在一种优选实现方式中,所述区块链生成方法或所述存储方法还包括,将新区块生成的时间坐标t(n+1)做为本轮新区块完成的时间点,下一轮区块生成的倒计时从该时间点开始。

22、在一种优选实现方式中,所述区块链生成方法或所述存储方法中的所述步骤(2)包括从各自生成的真随机数中选取一个或多个字节的随机数r作为挑选编号,挑选出随机数r(m,n),用做随机性证明。

23、在一种优选实现方式中,所述区块链生成方法或所述存储方法中的所述步骤(4)包括每个网络节点m把经过自己私钥加密后的校验值和数字签名以网络广播的形式发送到其它网络节点,其它网络节点通过相应节点的公钥k(m)解密其校验值和数字签名,将h(m,n)放入数据列表本文档来自技高网...

【技术保护点】

1.一种基于真随机数的区块链生成方法,其特征在于,所述方法包括:

2.根据权利要求1所述的区块链生成方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的区块链生成方法,其特征在于,所述方法还包括,将新区块生成的时间坐标t(n+1)做为本轮新区块完成的时间点,下一轮区块生成的倒计时从该时间点开始。

4.根据权利要求1所述的区块链生成方法,其特征在于,所述步骤(2)包括从各自生成的真随机数中选取一个或多个字节的随机数r作为挑选编号,挑选出随机数R(m,n),用做随机性证明。

5.根据权利要求1所述的区块链生成方法,其特征在于,所述步骤(4)包括每个网络节点m把经过自己私钥加密后的校验值和数字签名以网络广播的形式发送到其它网络节点,其它网络节点通过相应节点的公钥K(m)解密其校验值和数字签名,将H(m,n)放入数据列表。

6.根据权利要求1所述的区块链生成方法,其特征在于,所述步骤(6)中记账节点的选取过程包括:每个网络节点计算自身校验值与整体校验值HZ(n)之差,将所有网络节点中与整体校验值差值中排在预定位置的网络节点作为记账节点,优选地,所述排在预定位置包括:差值排在第一位或者最后一位。

7.根据权利要求1所述的区块链生成方法,其特征在于,所述步骤(6)中记账节点的选取过程包括:将每个网络节点的校验值H(m,n)先广播到其它网络节点,然后将当前区块中该网络节点的校验值H(m,n)与上一个区块的整体校验值HZ(n-1)、以及该网络节点的数字签名相加,进行校验运算,获得新的校验值H’(m,n);将所述新的校验值H’(m,n)广播到各网络节点,每个网络节点将各自收到的每个其它网络节点的H’(m,n)与上一个区块的整体校验值Hz(n-1)分别相减,确定各个网络节点中|H(n-1)-H’(m,n)|的值排在预定位置的网络节点,获得新区块的生成权,作为记账节点。

8.根据权利要求1所述的区块链生成方法,其特征在于,每个网络节点向其他网络节点同步其自身的数据,并每隔第二预定时间向其它节点确认数据同步状态,如果数据同步完成,则进入下一步。

9.根据权利要求1所述的区块链生成方法,其特征在于,所述校验采用哈希校验,所述校验值为哈希值,所述步骤(6)中预定运算规则包括相减、相加或者相乘。

10.一种数据存储方法,其特征在于,所述方法包括:

...

【技术特征摘要】

1.一种基于真随机数的区块链生成方法,其特征在于,所述方法包括:

2.根据权利要求1所述的区块链生成方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的区块链生成方法,其特征在于,所述方法还包括,将新区块生成的时间坐标t(n+1)做为本轮新区块完成的时间点,下一轮区块生成的倒计时从该时间点开始。

4.根据权利要求1所述的区块链生成方法,其特征在于,所述步骤(2)包括从各自生成的真随机数中选取一个或多个字节的随机数r作为挑选编号,挑选出随机数r(m,n),用做随机性证明。

5.根据权利要求1所述的区块链生成方法,其特征在于,所述步骤(4)包括每个网络节点m把经过自己私钥加密后的校验值和数字签名以网络广播的形式发送到其它网络节点,其它网络节点通过相应节点的公钥k(m)解密其校验值和数字签名,将h(m,n)放入数据列表。

6.根据权利要求1所述的区块链生成方法,其特征在于,所述步骤(6)中记账节点的选取过程包括:每个网络节点计算自身校验值与整体校验值hz(n)之差,将所有网络节点中与整体校验值差值中排在预定位置的网络节点作为记账节点,优选地,所述排在预定位置...

【专利技术属性】
技术研发人员:张文卓
申请(专利权)人:杭州舜时科技有限公司
类型:发明
国别省市:

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

1