CN117978395A - 一种基于真随机数的区块链生成方法 - Google Patents
一种基于真随机数的区块链生成方法 Download PDFInfo
- Publication number
- CN117978395A CN117978395A CN202211304490.5A CN202211304490A CN117978395A CN 117978395 A CN117978395 A CN 117978395A CN 202211304490 A CN202211304490 A CN 202211304490A CN 117978395 A CN117978395 A CN 117978395A
- Authority
- CN
- China
- Prior art keywords
- network node
- nodes
- data
- check value
- network
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000012795 verification Methods 0.000 claims abstract description 17
- 238000013500 data storage Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 abstract description 10
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000005265 energy consumption Methods 0.000 abstract description 3
- 238000010276 construction Methods 0.000 abstract 1
- 238000003860 storage Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 238000001583 randomness test Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001481828 Glyptocephalus cynoglossus Species 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于真随机数发生装置的区块链生成方法。所述方法包括:真随机数的硬件生成、真随机数的检验、真随机数和数字签名联合哈希值、节点数据同步和二次哈希值、哈希值比对选定节点、新选节点记录并广播新区块。本发明通过每个网络节点用物理上的低功耗器件产生真随机数,并通过共识算法作真随机性证明生成新区块,可替代基于高能耗计算机工作量证明的区块链生成方法,大幅降低公有区块链的建设成本和能源消耗,促进区块链技术的普及。
Description
技术领域
本发明涉及区块链技术,具体涉及一种新的区块链生成方法,本发明利用节点的真随机数发生装置产生真随机数,通过节点之间对真随机数的共识算法选择节点生成区块链新区块。
背景技术
区块链技术近十几年发展迅速,并且具有广泛的应用。狭义区块链是按照时间顺序,将数据区块以顺序相连的方式组合成的链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义区块链技术是利用块链式数据结构验证与存储数据,利用分布式节点共识算法生成和更新数据,利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约,编程和操作数据的全新的分布式基础架构与计算范式。
由于没有任何一个节点可以单独记录账本数据,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。也由记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。因此,区块链技术对数据的安全性具有重要意义。
区块链在金融、物流、公共服务、数字版权等领域具有巨大应用前景。以金融为例,其在国际汇兑、信用证、股权登记和证券交易所等金融领域有着潜在的巨大应用价值。将区块链技术应用在金融行业中,能够省去第三方中介环节,实现点对点的直接对接,从而在大大降低成本的同时,快速完成交易支付。
现有区块链技术一般采用“工作量证明”作为新区块生成的基础。“工作量证明”(PoW)是最先使用也是最广泛使用的区块链生成方法,其基本过程为每个网络节点对上一个区块的数据添加一个一次性的伪随机数(nonce),并通过SHA-256算法计算出一个256位的哈希值。当某个节点计算出的哈希值满足一个给定的目标,则该节点自动获得了生成新区块的权利,获得相应的记账奖励。
由于“工作量证明”给定的目标通常是一个出现概率极小的结果,因此需要消耗大量计算资源才能得到。例如BTC的“工作量证明”需要计算出一个小于前80位都是0的256位数的哈希值(截止到2022年),这就需要节点不断输入伪随机的nonce试错,平均要试错2的80次方次,才能得到符合目标的哈希值。因此“工作量证明”也被称为“挖矿”。
虽然“工作量证明”能限制区块链的生成速度,防止新区块过快的“女巫攻击”,但是如此多的计算次数也导致大量的电力被浪费在计算试错上。
因此区块链需要一个真正公平,同时节约能耗的全新生成机制,用于进行数据的存储和保护。
发明内容
目的
为了保持区块链生成的公平性同时节约大量能耗,本发明公开了一种基于真随机数发生装置的区块链生成方法。该方法包括真随机数的硬件生成、真随机数的软件检验、真随机数和数字签名的联合哈希值、节点数据同步、二次哈希值生成、哈希值比对极值选定节点、新选节点记录并广播新区块等步骤。
具体而言,本发明提供了一种基于真随机数的区块链生成方法,其特征在于,所述方法包括:
步骤(1)、设定区块链中相邻区块之间的间隔时间T,基于所述间隔时间T进行区块生成倒计时;
步骤(2)、每个网络节点中设置真随机数发生装置,通过每个网络节点的真随机数发生装置各自生成一组预定大小的真随机数用作随机性证明,或者从各自生成的真随机数中选取一组第二预定大小的随机数用作随机性证明;
步骤(3)、每个网络节点m对自己生成的真随机数生成相应的校验值,用本地私钥对其进行加密,并生成数字签名;
步骤(4)、每个网络节点m把经过自己私钥加密后的校验值和数字签名同步到其它网络节点;
步骤(5)、每个网络节点将同步获得的全部校验值相加,得到SH(n)=∑mH(m,n),并且每个网络节点对所获得的校验值之和SH(n)再次进行校验值计算,得到整体校验值Hz(n),其中,m为网络节点编号,n为生成该校验值的区块编号;
步骤(6)、每个网络节点将自身校验值与整体校验值按照预定运算关系进行运算,确定运算结果,所有网络节点基于所有网络节点运算结果之间的关系,按预定规则选取网络节点作为记账节点,当所述倒计时结束时,所述记账节点将自身接收和存储的数据打包生成新区块。
需要说明的是,整体校验值除了采用校验值之和外,还可以采用其他运算方式的结果,只要按照该运算方式,整体校验值的计算结果与计算顺序无关即可。
另一方面,本发明提供一种数据存储方法,其特征在于,所述方法包括:
步骤(1)每个网络节点生成或者接收待记录数据,对所述待记录数据进行暂存,并且将所述待记录数据广播至其他网络节点,每个网络节点基于其自身生成的数据以及所接收到的数据生成数据列表;
步骤(2)、设定区块链中相邻区块之间的间隔时间T,基于所述间隔时间T进行区块生成倒计时;
步骤(3)、每个网络节点中设置真随机数发生装置,通过每个网络节点的真随机数发生装置各自生成一组预定大小的真随机数用作随机性证明,或者从各自生成的真随机数中选取一组第二预定大小的随机数用作随机性证明;
步骤(4)、每个网络节点m对自己生成的真随机数生成相应的校验值,用本地私钥对其进行加密,并生成数字签名;
步骤(5)、每个网络节点m把经过自己私钥加密后的校验值和数字签名同步到其它网络节点;
步骤(5)、每个网络节点将同步获得的全部校验值相加,得到SH(n)=∑mH(m,n),并且每个网络节点对所获得的校验值之和SH(n)再次进行校验值计算,得到整体校验值Hz(n),其中,m为网络节点编号,n为生成该校验值的区块编号;
步骤(6)、每个网络节点将自身校验值与整体校验值按照预定运算关系进行运算,确定运算结果,所有网络节点基于所有网络节点运算结果之间的关系,按预定规则选取网络节点作为记账节点,当所述倒计时结束时,所述记账节点将自身存储的数据列表中的数据打包生成新区块。
在一种优选实现方式中,所述区块链生成方法或所述存储方法还包括:
步骤(7)、所述记账节点将新区块的数据发送到其它网络节点,由其它网络节点确认,超过预定数目的节点验证通过后形成新区块共识。
在一种优选实现方式中,所述区块链生成方法或所述存储方法还包括,将新区块生成的时间坐标t(n+1)做为本轮新区块完成的时间点,下一轮区块生成的倒计时从该时间点开始。
在一种优选实现方式中,所述区块链生成方法或所述存储方法中的所述步骤(2)包括从各自生成的真随机数中选取一个或多个字节的随机数r作为挑选编号,挑选出随机数R(m,n),用做随机性证明。
在一种优选实现方式中,所述区块链生成方法或所述存储方法中的所述步骤(4)包括每个网络节点m把经过自己私钥加密后的校验值和数字签名以网络广播的形式发送到其它网络节点,其它网络节点通过相应节点的公钥K(m)解密其校验值和数字签名,将H(m,n)放入数据列表。
在一种优选实现方式中,所述区块链生成方法或所述存储方法中的所述步骤(6)中记账节点的选取过程包括:每个网络节点计算自身校验值与整体校验值HZ(n)之差,将所有网络节点中与整体校验值差值中排在预定位置的网络节点作为记账节点,优选地,所述排在预定位置包括:差值排在第一位或者最后一位。
在一种优选实现方式中,所述区块链生成方法或所述存储方法中的所述步骤(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)|的值排在预定位置的网络节点,获得新区块的生成权,作为记账节点。
在一种优选实现方式中,所述区块链生成方法或所述存储方法中,每个网络节点向其他网络节点同步其自身的数据,并每隔第二预定时间向其它节点确认数据同步状态,如果数据同步完成,则进入下一步。如果数据同步未完成,则继续等待,优选地,该步骤设置一个等待时间期限,如果达到该等待时间期限数据同步仍未完成,则选取每个网络节点都全部获取的那些网络节点的哈希值和数字签名,进入数据列表,淘汰掉没有被每个网络节点全部获取的那些节点数据。
在一种优选实现方式中,所述区块链生成方法或所述存储方法中,所述校验采用哈希校验,所述校验值为哈希值,所述步骤(6)中预定运算规则包括相减、相加或者相乘。
在一种优选实现方式中,本发明还提供本发明提供了一种区块链系统,所述区块链系统包括多个网络节点m,每个网络节点m包括计时装置、真随机数发生装置、数据存储装置、数据通信装置以及运算装置,各个网络节点之间通过各自的数据通信装置彼此通信连接,形成所述区块链系统,
所述计时装置用于基于预设的相邻区块之间的间隔时间T进行区块生成倒计时;
每个所述真随机数发生装置响应于倒计时开始指令,各自生成一组预定大小的真随机数用作随机性证明,或者从各自生成的真随机数中选取一组第二预定大小的随机数用作随机性证明:
每个所述运算装置用于基于相应网络节点的真随机数生成校验值连同该网络节点的数字签名同步到其他网络节点;
所述数据存储装置用于存储自身生成的数据和校验信息以及来自其他网络节点的数据和校验信息;
每个网络节点的运算装置还用于基于同步获得的全部网络节点的校验值按照第一预定运算规则计算整体校验值,该第一预定运算规则的运算结果与各个校验值的运算次序无关,并且将自身校验值与整体校验值按照第二预定运算关系进行运算,确定运算结果,其中,所有网络节点的运算结果中,满足预定规则的网络节点用作记账节点,所述记账节点在所述倒计时结束基于自身接收和存储的数据打包生成新区块。
在一种优选实现方式中,每个网络节点的运算装置还用于将同步获得的全部网络节点的校验值相加,得到校验值之和SH(n)=∑mH(m,n),并且每个网络节点对所获得的校验值之和SH(n)再次进行校验值计算,得到整体校验值Hz(n),其中,m为网络节点编号,n为生成该校验值的区块编号。
发明原理及技术效果
真随机数由物理系统产生,也称硬件随机数。由于真随机数来自于物理世界的真随机性,与计算无关,因此可以抵抗任何算法的预测和破解,这也使得真随机数在信息安全领域应用广泛。
真随机数硬件按照随机性产生原理,可分为经典随机数发生器(TRNG)和量子随机数发生器(QRNG)两类。其中经典随机数采用宏观尺度物理量的噪声,如电路中的热噪声、电子元器件的电流噪声、晶振的频率抖动噪声、外界电磁波噪声等。由于经典随机数发生器的噪声来源对周围环境敏感,且做成芯片化器件的体积和功耗较大,因此主要做成PCI板卡用在环境较稳定的场景下,如服务器,台式计算机等。
量子随机数发生器大多采用量子噪声作为随机数开源,如光子路径选择散粒噪声、光子到达时间散粒噪声等。由于量子随机数发生器多采用弱光系统,做成芯片化器件的尺寸和功耗较小,并且光子的散粒噪声对外界温度和电磁环境都不敏感,因此适合放在移动终端上,如智能手机和平板电脑、车载电脑、笔记本电脑等。如SKT-IDQ设计,三星代工的量子随机数芯片,已经大量安装在三星Galaxy Quantum系列手机上。
本发明通过在每个网络节点设置真随机数芯片化器件,为固定和移动计算机终端实时提供真随机数。终端生成固定长度真随机数后,首先通过已安装的区块链软件做基于真随机数国际标准的随机性检验,只有通过后,区块链软件才进一步在该随机数中选取特定长度的随机数组做校验运算,比如哈希运算,得到不可篡改的校验值H(m,n)。该校验值经过非对称密钥私钥加密,连同数字签名一起发送到各个网络节点。其中m为网络节点编号,从1开始;n为生成该校验值的区块编号,按照时间顺序排列,后面校验值均以哈希值为例进行描述。
在网络节点较少,每个网络节点都能获得其它节点的哈希值,即数据完全同步的情况下,本发明采用全部节点哈希值按照节点编号排列,在每个网络节点都对其做二次哈希运算的方法,得到一个整体哈希值H(0,n),并与来自每个网络节点的哈希值H(m,n)相减,得到|H(0,n)-H(m,n)|最小值的网络节点胜出,获得这一轮区块的生成权。该节点所记录的交易数据则进入这一轮新生成的区块中。
在网络节点较多,一些节点没有全部获得其它节点的哈希值,即数据非完全同步的情况下,本发明采用每个网络节点的哈希值H(m,n)先广播到其它节点,然后H(m,n)与上一个区块的哈希值H(n-1)、以及该节点的数字签名相加,再做哈希运算的方法,获得新的哈希值H’(m,n)。紧接着H’(m,n)也广播到各节点,每个网络节点都把收到其它节点的H’(m,n)与H(n-1)相减,得到|H(n-1)-H’(m,n)|最小值的网络节点在超过51%网络节点的确认情况下胜出,获得这一轮区块的生成权。
技术效果
采用本发明的区块链生成方法,基于真随机数进行校验值的生产,既可以得到不可篡改的校验值H(m,n),又能实现新区块的快速、规律生成,保证数据安全的同时,减少了运算量和电力消耗,大幅度提高区块链技术的应用便捷性,具有巨大的应用价值。
附图说明
下面所提供的附图主要是为了方便对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为完全数据同步状态下,采用随机性证明生成区块链的过程。
图2为非完全数据同步状态下,采用随机性证明生成区块链的过程。
图3为在区块链生成过程中,各节点采用真随机数加密区块数据进行安全通信的过程。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
本发明的具体实施方式主要是为了方便对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
本发明在完全数据同步下生成区块链的具体实施方式为:
步骤1:新区块生成倒计时准备
本发明以“随机性证明”作为区块生成的基础。采用随机性证明需要首先设定区块之间的间隔时间T,即区块链生成周期,通常设定在10分钟到30分钟之间。如果不设置间隔时间,就无法控制区块链的生成速度,从而无法防范“女巫攻击”。另T=t(n)-t(n-1),t(n)为第n个区块的生成绝对时间坐标,由全球计算机的时间系统统一。例如第n+1个区块以上一个区块生成的时间坐标t(n)做为起点,开始倒计时。对于首个区块的生成,则其时间即为系统启动时间。
在新区块生成倒计时准备后,新节点即可以加入网络。加入方式为非对称密码学方式,例如通过量子随机数芯片生成真随机的初始向量G和私钥k,通过椭圆曲线密码学(ECC)计算出公钥K。新节点将公钥K向其它网络节点广播,并将自己的入网时间、节点编号、IP地址等信息使用私钥k加密,也向各节点广播。其它节点通过公钥K解密出新入网节点的信息,完成新节点的身份验证。
这样,每个网络节点将记录所有其他网络节点的公钥,每个网络节点具有自己的私钥,各网络节点之间对自己生成(这里的生成指的是该节点处理或接收到的非来自其他网络节点的待记录数据)通过私钥进行加密,然后广播,其他节点通过公钥进行解密记录。
步骤2:网络节点硬件真随机数生成
每个网络节点安装有硬件上的真随机数的发生装置,通过硬件上的真随机数的发生装置,如经典随机数源(TRNG),量子随机数芯片(QRNG)生成一组32MB=256Mb的真随机数。以移动设备1Mb的量子随机数芯片为例,随机数生成时间约为4.3分钟。而250kb的量子随机数芯片需要约17分钟。因此区块链生成周期T要大于每个网络节点的真随机数生成时间。
步骤3:网络节点软件真随机数检验
在每个网络节点m,对本地生成的256Mb的真随机数做随机性检验,防止节点使用伪随机数作弊。检验可采用国际标准,如NIST的16种随机数测试方法。只有全部通过测试方法,才将所生成的随机数认定为真随机数,并将随机数分为256组,每组1Mb。区块链软件紧接着从硬件上的真随机数的发生装置获取一个字节的随机数r作为该网络节点的挑选编号,从所生成的256Mb随机数中,挑选出随机数R(m,n),做随机性证明使用。例如r=128时,挑选第129组1Mb的随机数做R(m,n)。
步骤4:网络节点真随机数和数字签名哈希算法
网络节点m对自己的真随机数R(m,n)使用预设的校验算法进行校验值生成,比如使用SHA-256算法计算出一个256b的哈希值H(m,n),用本地私钥k(m)对其加密。同时节点使用k(m)制作数字签名C(m),内容可以为R(m,n)的生成时间信息。各个网络节点之间可采用非对称加密方法,即每个网络节点m的公钥K(m)发送到其它节点,公钥K(m)用于解密k(m)相应网络节点所加密的内容。同时网络节点之间也可以采用量子密钥分发(QKD)的方案做对称密钥加解密,即节点m的私钥k(m)通过量子密钥分发网络可达到其它每个网络节点。节点m使用私钥k(m)将哈希值H(m,n)和数字签名C(m)加密,并发送给其它网络节点。其它网络节点使用QKD网络接收到的k(m)直接解密出H(m,n)和C(m)。
步骤5:网络节点哈希值数据同步
网络节点m把经过自己私钥k(m)加密后的哈希值H(m,n)和数字签名C(m)以网络广播的形式发送到其它网络节点,其它网络节点通过网络节点m的公钥K(m)解密哈希值和数字签名,将H(m,n)放入数据列表。各网络节点需要完成数据同步,即每个网络节点都获取通过本轮所有完成步骤2到步骤4的网络节点的哈希值和数字签名。每个网络节点每隔一段时间(如30s)向其它节点确认数据同步状态。如果数据同步完成,则进入下一步。如果数据同步未完成,则继续等待。该步骤可设置一个等待时间期限,例如距离倒计时终点T/10,如果到这个时间期限数据同步仍未完成,则选取每个网络节点都全部获取的那些网络节点的哈希值和数字签名,进入数据列表,淘汰掉没有被每个网络节点全部获取的那些节点数据。
步骤6:集体二次哈希算法
在数据完全同步的情况下,每个网络节点拥有参与本轮区块链生成的所有网络节点的哈希值和数字签名。此时每个网络节点将全部网络节点的哈希值相加,得到哈希值之和SH(n)=∑mH(m,n),这样做加法的好处是满足交换律,即无论每个网络节点的数据列表如何排列,都会得到相同的SH(n)。此时每个网络节点对SH(n)再进行一轮SHA-256算法,得到一个整体的哈希值Hz(n)。节点之间相互确认都得到了相同的整体Hz(n)。
步骤7:哈希值比对选取新区块生成节点
该步骤为记账节点确定环节。每个网络节点都计算Hz(n)与自己及其它网络节点哈希值的差,即|Hz(n)-H(m,n)|,然后,将所有哈希值的差作比较,哈希值最小差对应的网络节点即选为本轮的记账节点,或者对所有哈希值的差进行排序,设定排在预定位置的网络节点为记账节点。由于每个网络节点的哈希值与数字签名都经过自己的私钥加密,因此不可抵赖。当某个网络节点的区块链软件得到自己的哈希值与整体哈希值Hz(n)的差最小,便成为“获胜”节点,自动获得本次记账权,将自己存储的交易数据打包进下一个区块,正式生成新区块。
步骤8:确认新区块生成网络节点
获取生成新区块的网络节点将区块数据发送到其它网络节点,由其它节点确认,超过51%节点验证通过后变形成新区块共识。此时新区块数据包含的新区块生成的时间坐标t(n+1)即为本轮新区块完成的时间点,下一轮区块生成的倒计时也从该时间点开始。一般情况下,生成新区块的真实时间坐标t(n)略早于本轮倒计时周期T的完成,以真实时间坐标为准。在网络不通畅的特殊情况下,可能出现倒计时周期T已走完,但节点共识仍未完成。此时新区块的时间坐标以t(n+1)=t(n)+T为准,下一轮区块生成的倒计时启动,网络节点对新区块的共识可以在时间上与下一轮个节点获取真随机数的时间重合一部分,即在下一轮步骤2完成之前形成本轮新区块共识。
优选地,在数据的通信上,由于节点配备了真随机数生成装置,可以将真随机数作为对称密钥,使用非对称密钥传递,对区块数据做加密通信,从而使区块链网络的数据传输更安全。具体方法为:
(1)以网络节点a、b为例,当网络节点a生成随机数并对随机数完成校验后,在进行随机性证明的同时,从做检验的随机数中选取固定长度的随机数作为对称密钥。每个网络节点对其它各个节点使用不同的随机数作为对称密钥。如网络节点a生成的与网络节点b对应的对称密钥记为kab。
(2)网络节点a使用来自网络节点b的公钥Kb加密kab,并发送给网络节点b。
(3)网络节点b使用自己的私钥kb解密出kab。
(4)网络节点b使用网络节点a的对称密钥kab加密自己准备写入新区块的记录数据,并发送给网络节点a。
(5)网络节点a使用对称密钥kab解密来自网络节点b的记录数据,准备写入新区块。
(6)在随机性证明中胜出的网络节点获得新区块的记录权,则将全部通过对称密钥解密的来自其它网络节点的记录数据写入新区块。
本发明各个实施例的方法可以通过一个区块链系统实现,其包括多个网络节点m,每个网络节点m包括计时装置、真随机数发生装置、数据存储装置、数据通信装置以及运算装置,各个网络节点之间通过各自的数据通信装置彼此通信连接。
实施例2
考虑到在实施例1的步骤(5)中,对于网络节点较多,无法实现完全同步的情况下,本实施例提供了另一种可选方案。
针对网络节点较多的非完全数据同步情况,本实施例中生成区块链的具体实施方式与实施例1中网络节点较少的完全数据同步下的步骤1到步骤4情况相同,从步骤5开始,采用下述实施方式:
步骤5:网络节点哈希值广播
对于每个网络节点m,首先把经过自己私钥k(m)加密后的哈希值H(m,n)和数字签名C(m)以网络广播的形式发送到其它网络节点,其它节点通过网络节点m的公钥K(m)解密哈希值和数字签名,将哈希值H(m,n)放入数据列表。由于网络节点数量比较大,网络节点m不能等到其它节点都返回确认数据,因此数据广播之后便自动进入下一步。
步骤6:网络节点与上一区块哈希值的二次哈希算法
网络节点m将自己的256b大小的哈希值H(m,n)与上一个区块的打包的256b大小的整体哈希值Hz(n-1)顺序排列,得到一个512b大小的数组SH(m,n)。再对此数组进行一次SHA-256运算,得到一个新的256b哈希值H’(m,n)。该哈希值经过该网络节点m自身私钥k(m)加密后,与该网络节点m的数字签名C(m)一同广播发送到其它网络节点。其它网络节点均可用上一个区块的整体哈希值Hz(n-1)来验证原哈希值H(m,n)与整合后的新H’(m,n)的一致性,即通过上述同样的方式,在每个网络节点均对所有网络节点执行下述步骤:将对应网络节点的256b大小的原哈希值H(m,n)与上一个区块的打包的256b大小的整体哈希值Hz(n-1)顺序排列,得到一个512b大小的数组SH(m,n)。再对此数组进行一次SHA-256运算,得到一个新的256b的整合哈希值H’(m,n),。
步骤7:阈值判断和新区块生成验证
当一个网络节点m满足以下条件:(1)获取了整个区块链网络中超过50%以上为了节点的原哈希值H(m,n)和整合H’(m,n);(2)经过计算该网络节点m自己的|H’(m,n)-H(m,n)|在所有节点中最小,或者按照数据大小的顺序,排在特定位置。则该节点自动行使本次记账权,即将自己存储的交易数据打包生成新区块。然后将新区块和该网络节点m自己的数字签名发送给其它网络节点。在网络不畅的情况下,如果在本轮区块生成倒计时T结束时没有节点满足条件(1),则全部网络节点本轮随机数和哈希值数据无效,各节点重新回到步骤1开始,本轮区块的时间坐标相应增加T。
步骤8:共识选取生成新区块网络节点
如果步骤7中有多个节点满足了条件(1)和条件(2),都生成了新区块并发送到多个网络节点,则必然会存在某个网络节点,同时接收到多个节点将自己定义为记账节点的消息,则各网络节点需要进一步共识选取:满足条件的多个区块在各节点经过一次PK,满足|H’(m,n)-H(m,n)|最小的节点胜出,它记录的新区块成为共识的新区块。各节点都对该区块做一次确认广播,超过50%节点数量确认后,形成新区块共识。该步骤可在下一轮个节点获取真随机数的时间内完成,即在下一轮步骤2完成之前形成本轮新区块共识。
实施例3
本实施例提供了一种基于区块链的数据分布式存储和加密通信方法。由于新区块生成只需要较小功耗的芯片提供硬件随机数,不需要消耗大量电力进行工作量证明。本实施例的区块链记录的数据可以用于进行各种数据信息的存储。比如,对于各类固定资产信息、各类知识产权信息、户籍和学籍信息都可以做到有效的分布式记录,使区块链更好地服务于社会。
本实施例的方法包括:
步骤(1)每个网络节点生成或获取待记录数据,对所述待记录数据进行暂存,并且将所述待记录数据广播至其他网络节点,每个网络节点基于其自身的待记录数据以及通过广播接收到的数据生成数据列表;
步骤(2)、设定区块链中相邻区块之间的间隔时间T,基于所述间隔时间T进行区块生成倒计时;
步骤(3)、每个网络节点中设置真随机数发生装置,通过每个网络节点的真随机数发生装置各自生成一组预定大小的真随机数用作随机性证明,或者从各自生成的真随机数中选取一组第二预定大小的随机数用作随机性证明;
步骤(4)、每个网络节点m对自己生成的真随机数生成相应的校验值,用本地私钥对其进行加密,并生成数字签名;
步骤(5)、每个网络节点m把经过自己私钥加密后的校验值和数字签名同步到其它网络节点;
步骤(5)、每个网络节点将同步获得的全部哈希值相加,得到SH(n)=∑mH(m,n),并且每个网络节点对所获得的校验值之和SH(n)再次进行校验值计算,得到整体校验值Hz(n),其中,m为网络节点编号,n为生成该校验值的区块编号;
步骤(6)、每个网络节点将自身校验值与整体校验值按照预定运算关系进行运算,确定运算结果,所有网络节点基于所有网络节点运算结果之间的关系,按预定规则选取网络节点作为记账节点,当所述倒计时结束时,所述记账节点将自身存储的数据列表中的数据打包生成新区块,优选地,所述方法还包括实施例1和实施例2中对区块链生成方法进行附加限定的特征和步骤。
也就是说,在数据的存储上,每个网络节点在生成真随机数的过程中,各网络节点的记录的数据也发送给其它网络节点做同步存储。通过随机性证明胜出的节点自动获得记录新区块的权限,将自己存储的数据生成新区块。为防止一些节点篡改数据,区块可引入一个和私钥绑定的“信用值”数据,新加入的节点初始值为0。每一轮通过随机性证明胜出的节点,在生成区块中的数据经过其它节点验证无误后,获得一定的信用值增加作为奖励。信用值与各个网络节点绑定。
当区块篡改数据,被其它节点验证时发现,则在该区块中记录篡改数据的节点信用值减分,并惩罚相应时间不能参加区块链生成。如果本轮篡改数据的节点恰好为胜出节点,则该轮区块链生成作废,区块链回到上一个区块重新开始生成,此时该节点的信用值减为负数,永久被排除在区块链节点之外。
在数据的通信上,由于节点配备了真随机数生成装置,可以将真随机数作为对称密钥,使用非对称密钥传递,对区块数据做加密通信,从而使区块链网络的数据传输更安全。具体方法为:
(1)网络节点a完成随机性检验后,在进行随机性证明的同时,从做检验的随机数中选取固定长度的随机数作为对称密钥。对其它每个节点使用不同的随机数作为对称密钥。如与网络节点b的对称密钥记为kab。
(2)网络节点a使用来自网络节点b的公钥Kb加密kab,并发送给网络节点b。
(3)网络节点b使用自己的私钥kb解密出kab。
(4)网络节点b使用kab加密自己准备写入新区块的记录数据,并发送给网络节点a。
(5)网络节点a使用kab解密来自网络节点b的记录数据,准备写入新区块。
(6)在随机性证明中胜出的网络节点获得新区块的记录权,则将全部通过对称密钥解密的来自其它网络节点的记录数据写入新区块。
虽然上面结合本发明的优选实施例对本发明的原理进行了详细的描述,本领域技术人员应该理解,上述实施例仅仅是对本发明的示意性实现方式的解释,并非对本发明包含范围的限定。实施例中的细节并不构成对本发明范围的限制,在不背离本发明的精神和范围的情况下,任何基于本发明技术方案的等效变换、简单替换等显而易见的改变,均落在本发明保护范围之内。
Claims (10)
1.一种基于真随机数的区块链生成方法,其特征在于,所述方法包括:
步骤(1)、设定区块链中相邻区块之间的间隔时间T,基于所述间隔时间T进行区块生成倒计时;
步骤(2)、每个网络节点中设置真随机数发生装置,通过每个网络节点的真随机数发生装置各自生成一组第一预定大小的真随机数用作随机性证明,或者从各自生成的真随机数中选取一组第二预定大小的随机数用作随机性证明;
步骤(3)、每个网络节点m对自己生成的真随机数生成相应的校验值,用本地私钥对其进行加密,并生成数字签名;
步骤(4)、每个网络节点m把经过自己私钥加密后的校验值和数字签名同步到其它网络节点;
步骤(5)、每个网络节点将同步获得的全部校验值相加,得到校验值之和SH(n)=∑mH(m,n),并且每个网络节点对所获得的校验值之和SH(n)再次进行校验值计算,得到整体校验值Hz(n)或者获取上一区块的整体校验值,其中,m为网络节点编号,n为生成该校验值的区块编号;
步骤(6)、每个网络节点将自身校验值与整体校验值按照预定运算关系进行运算,确定运算结果,所有网络节点基于所有网络节点运算结果之间的关系,按预定规则选取网络节点作为记账节点,当所述倒计时结束时,所述记账节点将自身接收和存储的数据打包生成新区块。
2.根据权利要求1所述的区块链生成方法,其特征在于,所述方法还包括:
步骤(7)、所述记账节点将新区块的数据发送到其它网络节点,由其它网络节点确认,超过预定数目的节点验证通过后形成新区块共识。
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)、设定区块链中相邻区块之间的间隔时间T,基于所述间隔时间T进行区块生成倒计时;
步骤(3)、每个网络节点中设置真随机数发生装置,通过每个网络节点的真随机数发生装置各自生成一组预定大小的真随机数用作随机性证明,或者从各自生成的真随机数中选取一组第二预定大小的随机数用作随机性证明;
步骤(4)、每个网络节点m对自己生成的真随机数生成相应的校验值,用本地私钥对其进行加密,并生成数字签名;
步骤(5)、每个网络节点m把经过自己私钥加密后的校验值和数字签名同步到其它网络节点;
步骤(5)、每个网络节点将同步获得的全部校验值相加,得到SH(n)=∑mH(m,n),并且每个网络节点对所获得的校验值之和SH(n)再次进行校验值计算,得到整体校验值Hz(n),其中,m为网络节点编号,n为生成该校验值的区块编号;
步骤(6)、每个网络节点将自身校验值与整体校验值按照预定运算关系进行运算,确定运算结果,所有网络节点基于所有网络节点运算结果之间的关系,按预定规则选取网络节点作为记账节点,当所述倒计时结束时,所述记账节点将自身存储的数据列表中的数据打包生成新区块,优选地,所述方法还包括权利要求2-9中任意一项所述的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211304490.5A CN117978395A (zh) | 2022-10-24 | 2022-10-24 | 一种基于真随机数的区块链生成方法 |
PCT/CN2022/138999 WO2024087347A1 (zh) | 2022-10-24 | 2022-12-14 | 一种区块链生成方法、系统及相应数据存储方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211304490.5A CN117978395A (zh) | 2022-10-24 | 2022-10-24 | 一种基于真随机数的区块链生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117978395A true CN117978395A (zh) | 2024-05-03 |
Family
ID=90859987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211304490.5A Pending CN117978395A (zh) | 2022-10-24 | 2022-10-24 | 一种基于真随机数的区块链生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117978395A (zh) |
-
2022
- 2022-10-24 CN CN202211304490.5A patent/CN117978395A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230171098A1 (en) | Computer-implemented system and method for time release encryption over a blockchain network | |
Aitzhan et al. | Security and privacy in decentralized energy trading through multi-signatures, blockchain and anonymous messaging streams | |
Bera et al. | Designing blockchain-based access control protocol in IoT-enabled smart-grid system | |
Cai et al. | Enabling reliable keyword search in encrypted decentralized storage with fairness | |
CN111445333B (zh) | 区块生成方法、装置、计算机设备以及存储介质 | |
EP3449450B1 (en) | Implementing logic gate functionality using a blockchain | |
CN108512652B (zh) | 基于时间证明的去中心化共识方法、系统及区块链系统 | |
Ma et al. | Redactable blockchain in decentralized setting | |
US11689372B2 (en) | Secure, energy-efficient public blockchain | |
CN109740384A (zh) | 基于区块链的数据存证方法和装置 | |
CN118041602A (zh) | 使用调解器计算机系统确保计算机程序正确执行的系统和方法 | |
CN112541757A (zh) | 使区块链系统的第一实体能向其它实体证明的方法 | |
TW201141173A (en) | Verifiable, leak-resistant encryption and decryption | |
CN110855667B (zh) | 一种区块链加密方法、装置及系统 | |
Abouyoussef et al. | Blockchain-based privacy-preserving networking strategy for dynamic wireless charging of EVs | |
CN110910139A (zh) | 基于区块链的可信硬件与高性能去中心化匿名加密的算法 | |
Qi et al. | Scalable decentralized privacy-preserving usage-based insurance for vehicles | |
CN110096894A (zh) | 一种基于区块链的数据匿名共享系统及方法 | |
CN111314066B (zh) | 基于区块链的数据转移方法、终端及计算机可读存储介质 | |
Islam | A privacy-preserving transparent central bank digital currency system based on consortium blockchain and unspent transaction outputs | |
Asayag et al. | Helix: A scalable and fair consensus algorithm resistant to ordering manipulation | |
JP2002529778A (ja) | 共有無作為性の分散暗号化への組み込み | |
Bezuidenhout et al. | Permissionless blockchain systems as pseudo-random number generators for decentralized consensus | |
Chen et al. | Sustainable secure communication in consumer-centric electric vehicle charging in industry 5.0 environments | |
Zhang et al. | Cross-Chain Interoperability and Collaboration for Keyword-Based Embedded Smart Contracts in the Internet of Things |
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 |