CN114362962B - 区块链工作量证明生成方法 - Google Patents
区块链工作量证明生成方法 Download PDFInfo
- Publication number
- CN114362962B CN114362962B CN202210016426.0A CN202210016426A CN114362962B CN 114362962 B CN114362962 B CN 114362962B CN 202210016426 A CN202210016426 A CN 202210016426A CN 114362962 B CN114362962 B CN 114362962B
- Authority
- CN
- China
- Prior art keywords
- workload
- blockchain
- algorithm
- value
- hash
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012795 verification Methods 0.000 claims abstract description 27
- 238000004364 calculation method Methods 0.000 claims abstract description 17
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 abstract description 7
- 230000005284 excitation Effects 0.000 abstract description 6
- 239000002699 waste material Substances 0.000 abstract description 6
- 238000009440 infrastructure construction Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本公开提供了一种区块链工作量证明生成方法,包括:获取一个密钥对,所述密钥对包括公钥和私钥;用所述私钥对最新区块的附加数据进行签名得到签名值;将所述公钥和所述签名值连接,得到第一数据段;通过哈希算法对所述第一数据段进行哈希计算,得到哈希值;基于所述哈希值小于预设值,将所述哈希值作为工作量证明。该方法,采用非对称密码算法的签名和验签计算来完成工作量证明,能够充分利用非对称密码算法的硬件资源,优化工作量证明算法,促进工作量证明生成方法的多样性,同时通过区块链的激励机制促进非对称密码算法的硬件基础设施建设,避免社会资源浪费。
Description
技术领域
本公开涉及工作量证明技术领域,尤其涉及一种区块链工作量证明生成方法。
背景技术
区块链工作量证明简称PoW,英文全称为Proof of Work。区块链工作量证明要求用户进行一些耗时的复杂运算,并且答案能被服务快速验算,以耗用的时间、设备与能源作为担保成本,来确保服务与资源是被真正的需求所使用。
现有PoW共识算法的核心是哈希算法。在区块链激励机制的刺激之下,区块链参与者设计出了性能强、效率高的哈希算力芯片,由哈希算力芯片组成专用计算设备,重复进行哈希算法以获得区块链奖励。专用哈希计算设备占用了巨大的社会资源,只是为了完成区块链共识而已,除此以外没有解决其他问题,所以在社会上存在PoW浪费资源、浪费能源这些方面的争议。
发明内容
本公开实施例提供了一种区块链工作量证明生成方法,采用非对称密码算法的签名和验签计算来完成工作量证明,能够充分利用非对称密码算法的硬件资源,优化工作量证明算法,促进工作量证明生成方法的多样性,同时通过区块链的激励机制促进非对称密码算法的硬件基础设施建设,避免社会资源浪费。
本公开实施例提供了一种区块链工作量证明生成方法,包括:
获取一个密钥对,所述密钥对包括公钥和私钥;
用所述私钥对最新区块的附加数据进行签名得到签名值;
将所述公钥和所述签名值连接,得到第一数据段;
通过哈希算法对所述第一数据段进行哈希计算,得到哈希值;
基于所述哈希值小于预设值,将所述哈希值作为工作量证明。
在一些实施例中,所述附加数据包括:最新区块的版本号、前置区块的哈希值、区块交易Merkle树根、区块创建时间戳和工作量证明算法难度。
在一些实施例中,用所述私钥对所述附加数据进行签名包括:
将所述附加数据按照设定顺序依次连接,得到第二数据段;
生成一个随机数;
用所述私钥和所述随机数对所述附加数据进行签名。
在一些实施例中,基于所述哈希值小于预设值,将所述哈希值作为工作量证明前还包括根据所述工作量证明算法难度生成所述预设值;
其中,所述工作量证明算法难度越大,所述预设值越小。
在一些实施例中,所述设定顺序为:最新区块的版本号、前置区块的哈希值、区块交易Merkle树根、区块创建时间戳、工作量证明算法难度。
在一些实施例中,所述哈希算法为以下任一种:SM3、SHA256、SHA3。
在一些实施例中,所述密钥对基于SM2算法生成。
在一些实施例中,将所述哈希值作为工作量证明之后还包括:
将所述公钥和与所述工作量证明对应的签名值发送给区块链验证者,以使区块链验证者对区块链工作量进行验证;
若验证通过,则获取所述最新区块的资产。
在一些实施例中,区块链验证者对区块链工作量进行验证包括:
用所述公钥和所述签名值初步验证所述附加数据,若初步验证通过,则将所述公钥和所述签名值连接,得到第三数据段,通过哈希算法对所述第三数据段进行哈希计算,得到验证哈希值,基于所述验证哈希值小于预设值验证通过。
在一些实施例中,获取所述最新区块的资产包括:
基于所述最新区块构造一个交易,所述交易采用接收者公钥作为交易的目的地址,以通过与所述接收者公钥对应的接收者私钥使用所述最新区块的资产。
本公开实施例的上述技术方案至少具有如下有益效果:
本公开实施例提供的区块链工作量证明生成方法,采用非对称密码算法的签名和验签计算来完成工作量证明,能够充分利用非对称密码算法的硬件资源,优化工作量证明算法,促进工作量证明生成方法的多样性,同时通过区块链的激励机制促进非对称密码算法的硬件基础设施建设,避免社会资源浪费。
附图说明
图1是根据本公开一实施例提供的一种区块链工作量证明生成方法的流程图。
图2是根据本公开一实施例提供的区块链工作量验证方法流程图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本公开进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
本公开,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
在本公开的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
此外,下面所描述的本公开不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本公开实施例用非对称密码算法的签名算法代替哈希算法,作为PoW共识的核心算法,能够充分利用非对称密码算法的硬件资源,优化工作量证明算法,促进工作量证明生成方法的多样性,同时通过区块链的激励机制促进非对称密码算法的硬件基础设施建设。
图1是根据本公开一实施例提供的一种区块链工作量证明生成方法的流程图。如图1所示,本公开实施例提供了一种区块链工作量证明生成方法,包括如下步骤:
S101:获取一个密钥对,密钥对包括公钥和私钥,本实施例中的密钥对为非对称密码算法密钥对,可选基于SM2算法生成。
S102:用私钥对最新区块的附加数据进行签名得到签名值。在进行签名计算时,先将附加数据按照设定顺序依次连接,得到第二数据段,再基于预先定义的非对称密码算法用私钥对第二数据段进行签名。附加数据可选包括:最新区块的版本号、前置区块的哈希值、区块交易Merkle树根、区块创建时间戳和工作量证明算法难度。使用者可根据实际情况设置附加数据的排列顺序,设定顺序可选为:最新区块的版本号、前置区块的哈希值、区块交易Merkle树根、区块创建时间戳、工作量证明算法难度。在进行签名计算时,非对称密码算法要求选用一个随机数,同一个私钥进行多次签名时选择的不能重复,否则就有泄露私钥的风险。本实施例通过真随机数发生器来产生随机数,以确保随机数的随机性能够达到要求并且随机数不会重复。
S103:将公钥和签名值连接,得到第一数据段。在一些实施例中,第一数据段还包括最新区块的附加数据,使用者可根据实际情况设置第一数据段中各个数据域的排列顺序,排序可选为:附加数据、公钥、签名值。
S104:通过哈希算法对第一数据段进行哈希计算,得到哈希值。使用者可根据实际情况选择哈希算法,哈希算法可选为以下任一种:SM3、SHA256、SHA3。
S105:判断哈希值是否小于预设值,若是,则进入步骤S106,若否,则返回步骤S102。
S106:将哈希值作为工作量证明。
本公开实施例提供的区块链工作量证明生成方法,采用非对称密码算法的签名和验签计算来完成工作量证明,能够充分利用非对称密码算法的硬件资源,优化工作量证明算法,促进工作量证明生成方法的多样性,同时能够通过区块链的激励机制促进非对称密码算法的硬件基础设施建设,避免社会资源浪费。
在一些实施例中,将工作量证明、公钥和与工作量证明对应的签名值发送给区块链验证者,以使区块链验证者对区块链工作量进行验证;若验证通过,则获取最新区块的资产。获取最新区块的资产包括:基于最新区块构造一个交易,交易采用接收者公钥作为交易的目的地址,以通过与接收者公钥对应的接收者私钥使用最新区块的资产。本实施例采用非对称密码算法的签名算法代替哈希算法,作为工作量证明共识的核心算法。区块链具有强大的激励作用,区块链的参与者为了获取更高的收益,会花费巨大的精力和财力去设计和优化非对称密码算法的专用芯片,这样就可以更高效的建成非对称密码算法的硬件基础设施,促进社会进步,区块链技术也可以更好的为社会服务。
图2是根据本公开一实施例提供的区块链工作量验证方法流程图。如图2所示,区块链验证者对区块链工作量进行验证包括如下步骤:
S201:用公钥和签名值初步验证附加数据,若验证通过,则进入S202,若验证失败,则进入S207。
S202:将公钥和签名值连接,得到第三数据段。
S203:通过哈希算法对第三数据段进行哈希计算,得到验证哈希值。
S204:判断验证哈希值和哈希值是否相同,若是,则进入S205,若否,则进入S207。
S205:判断哈希值是否小于预设值。
S206:验证通过。
S207:验证失败。
本公开实施例通过上述步骤对区块链工作量进行验证,如验证通过,则认为达成了区块链工作量共识,将哈希值以数字的形式存储在最新区块中,如验证失败则认为没有达成工作量共识。本公开实施例通过非对称密码算法的签名和验签配合共识机制能够提供去中心化的区块链网络交互,提高了工作量证明的灵活性和安全性。
在一个实施例中,最新区块的区块头如下表所示:
先将最新区块的区块头中除了非对称密码算法签名相关的几个数据域以外的其它数据,即Version、PreviousHash、MerkleRoot、Timestamp、Difficulty依次连接,组成待签名的第三数据段Message1。即Message1={Version,PreviousHash,MerkleRoot,Timestamp,Difficulty}。本发明不限制组成Message1的各个数据域的顺序。
再选择一个非对称密码算法的密钥对,用私钥计算Message1的签名,得到签名值(R_Sign,S_Sign)。用私钥进行签名的计算过程在非对称密码算法标准当中已经定义好的,为本领域技术人员所公知。在进行签名计算时,非对称密码算法要求选用一个随机数,同一个私钥进行多次签名时选择的随机数不能重复,否则就有泄露私钥的风险。该随机数的长度也是256bits,由一个真随机数发生器来产生该随机数,以确保随机数的随机性能够达到要求并且随机数不会重复。
将公钥(X_A,Y_A)、签名值(R_Sign,S_Sign)依次连接,组成长度为1024bits的第一数据段Message2,即Message2={X_A,Y_A,R_Sign,S_Sign}。本发明不限制组成Message2的各个数据域的顺序。计算Message2的哈希值,得到哈希值HashValue1。本发明不限制具体采用哪种哈希算法,只要是安全性得到保证的哈希算法都可以采用,比如SM3、SHA256、SHA3等。如果哈希值HashValue1小于Target,则认为达成了共识。否则重复进行签名计算、哈希计算、并比较HashValue1和Target的大小,直到达成共识为止。
区块链验证者将区块头当中除了非对称密码算法签名相关的几个数据域以外的其它数据,即Version、PreviousHash、MerkleRoot、Timestamp、Difficulty依次连接,组成待验证的消息Message1。即Message1={Version,PreviousHash,MerkleRoot,Timestamp,Difficulty}。用区块头当中的公钥(X_A,Y_A)、签名值(R_Sign,S_Sign)对Message1进行公钥验签。
再将公钥(X_A,Y_A)、签名值(R_Sign,S_Sign)依次连接,组成长度为1024bits的第一数据段Message2,即Message2={X_A,Y_A,R_Sign,S_Sign}。计算Message2的哈希值,验证过程的哈希算法和PoW计算过程的哈希算法保持一致,得到HashValue1。如果HashValue1小于Target,则哈希算法验证通过。
如公钥验签和哈希算法验证均通过,则认为达成了PoW共识,否则认为没有达成PoW共识。
在区块链当中,首先完成PoW共识的参与者会给自己发一个奖励,具体方法是构造一个交易,该交易的接收者(即受益者)就是参与者自己。该交易当中采用接收者公钥或者由接收者公钥生成的地址作为交易的目的地址。只有拥有目的地址对应的私钥的人,才有能力花费该奖励,即拥有私钥才能够拥有区块链上的资产。给完成PoW共识的参与者发放奖励的交易当中的公钥(或者由接收者公钥生成的地址),和区块头当中完成PoW共识的公钥,这二者可以相同也可以不同。本发明对此不做限制。
应当理解的是,本公开的上述具体实施方式仅仅用于示例性说明或解释本公开的原理,而不构成对本公开的限制。因此,在不偏离本公开的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。此外,本公开所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (6)
1.一种区块链工作量证明生成方法,其特征在于,包括:
获取一个密钥对,所述密钥对包括公钥和私钥;
用所述私钥对最新区块的附加数据进行签名得到签名值;
将所述公钥和所述签名值连接,得到第一数据段;
通过哈希算法对所述第一数据段进行哈希计算,得到哈希值;
基于所述哈希值小于预设值,将所述哈希值作为工作量证明;
所述附加数据包括:最新区块的版本号、前置区块的哈希值、区块交易Merkle树根、区块创建时间戳和工作量证明算法难度;
用所述私钥对所述附加数据进行签名包括:
将所述附加数据按照设定顺序依次连接,得到第二数据段;
生成一个随机数;
用所述私钥和所述随机数对所述第二数据段进行签名;
所述设定顺序为:最新区块的版本号、前置区块的哈希值、区块交易Merkle树根、区块创建时间戳、工作量证明算法难度;
将所述哈希值作为工作量证明之后还包括:
将所述公钥和与所述工作量证明对应的签名值发送给区块链验证者,以使区块链验证者对区块链工作量进行验证;
若验证通过,则获取所述最新区块的资产。
2.根据权利要求1所述的区块链工作量证明生成方法,其特征在于,基于所述哈希值小于预设值,将所述哈希值作为工作量证明前还包括根据所述工作量证明算法难度生成所述预设值;
其中,所述工作量证明算法难度越大,所述预设值越小。
3.根据权利要求1所述的区块链工作量证明生成方法,其特征在于,所述哈希算法为以下任一种:SM3、SHA256、SHA3。
4.根据权利要求1所述的区块链工作量证明生成方法,其特征在于,所述密钥对基于SM2算法生成。
5.根据权利要求1所述的区块链工作量证明生成方法,其特征在于,区块链验证者对区块链工作量进行验证包括:
用所述公钥和所述签名值初步验证所述附加数据,若初步验证通过,则将所述公钥和所述签名值连接,得到第三数据段,通过哈希算法对所述第三数据段进行哈希计算,得到验证哈希值,基于所述验证哈希值小于预设值验证通过。
6.根据权利要求1所述的区块链工作量证明生成方法,其特征在于,获取所述最新区块的资产包括:
基于所述最新区块构造一个交易,所述交易采用接收者公钥作为交易的目的地址,以获取所述最新区块的资产。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210016426.0A CN114362962B (zh) | 2022-01-07 | 2022-01-07 | 区块链工作量证明生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210016426.0A CN114362962B (zh) | 2022-01-07 | 2022-01-07 | 区块链工作量证明生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114362962A CN114362962A (zh) | 2022-04-15 |
CN114362962B true CN114362962B (zh) | 2024-04-02 |
Family
ID=81106360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210016426.0A Active CN114362962B (zh) | 2022-01-07 | 2022-01-07 | 区块链工作量证明生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114362962B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115348114B (zh) * | 2022-10-19 | 2023-02-28 | 浙江浩普智能科技有限公司 | 一种智慧电厂数据安全传输方法、系统、电子设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109831509A (zh) * | 2019-02-18 | 2019-05-31 | 深圳市优学链科技有限公司 | 一种用于实现相同权重随机出块的共识算法 |
CN113139016A (zh) * | 2021-04-02 | 2021-07-20 | 广东工业大学 | 一种具有抗量子特性的区块链工作量证明方法和系统 |
-
2022
- 2022-01-07 CN CN202210016426.0A patent/CN114362962B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109831509A (zh) * | 2019-02-18 | 2019-05-31 | 深圳市优学链科技有限公司 | 一种用于实现相同权重随机出块的共识算法 |
CN113139016A (zh) * | 2021-04-02 | 2021-07-20 | 广东工业大学 | 一种具有抗量子特性的区块链工作量证明方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114362962A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Traceable monero: Anonymous cryptocurrency with enhanced accountability | |
US11995648B2 (en) | Computer-implemented system and method for enabling zero-knowledge proof | |
Campanelli et al. | Zero-knowledge contingent payments revisited: Attacks and payments for services | |
US10862959B2 (en) | Consensus system and method for adding data to a blockchain | |
CN109523683B (zh) | 一种基于区块链技术的不记名电子投票方法 | |
US11438144B2 (en) | Computer-implemented systems and methods for performing computational tasks across a group operating in a trust-less or dealer-free manner | |
CN109889497B (zh) | 一种去信任的数据完整性验证方法 | |
JP2023106528A (ja) | プルーフ検証に基づいてオフ・チェーン・データを認証するシステム及び方法 | |
CN102983971B (zh) | 网络环境中进行用户身份认证的无证书签名方法 | |
CN110225023B (zh) | 一种可追踪的匿名认证方法和系统 | |
JP2020500458A (ja) | 情報保護用のシステム及び方法 | |
CN109861829B (zh) | 支持动态更新的云数据公正审计系统及其审计方法 | |
JP2011254155A (ja) | 認証装置、認証方法、プログラム、及び署名生成装置 | |
CN113360943A (zh) | 一种区块链隐私数据的保护方法及装置 | |
CN113841149A (zh) | 用于在工作量证明区块链网络上进行挖掘的系统和方法 | |
CN114362962B (zh) | 区块链工作量证明生成方法 | |
CN114615281B (zh) | 基于小规模委员会的区块链出块方法及PoS协议确认方法 | |
CN112436938A (zh) | 数字签名的生成方法、装置和服务器 | |
CN103414731A (zh) | 一种并行密钥隔离的基于身份的聚合签名方法 | |
CN112800482B (zh) | 基于身份的在线/离线安全云存储审计方法 | |
CN113904854A (zh) | 一种基于商密算法的区块链数据加密方法及装置 | |
CN104780047A (zh) | 前向安全的无证书可验证加密签名方法 | |
CN113112268A (zh) | 匿名多重签名方法、计算机设备和存储介质 | |
Huang et al. | Certificateless public verification for the outsourced data integrity in cloud storage | |
WO2019174404A1 (zh) | 一种群组数字签名、验证方法及其设备和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |