CN110149213A - 一种基于异构哈希函数的工作量证明方法及系统 - Google Patents

一种基于异构哈希函数的工作量证明方法及系统 Download PDF

Info

Publication number
CN110149213A
CN110149213A CN201910486039.1A CN201910486039A CN110149213A CN 110149213 A CN110149213 A CN 110149213A CN 201910486039 A CN201910486039 A CN 201910486039A CN 110149213 A CN110149213 A CN 110149213A
Authority
CN
China
Prior art keywords
hash function
isomery
hash
random number
proof
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.)
Granted
Application number
CN201910486039.1A
Other languages
English (en)
Other versions
CN110149213B (zh
Inventor
伍前红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201910486039.1A priority Critical patent/CN110149213B/zh
Publication of CN110149213A publication Critical patent/CN110149213A/zh
Application granted granted Critical
Publication of CN110149213B publication Critical patent/CN110149213B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开一种基于异构哈希函数的工作量证明方法及系统。方法包括:生成由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1;根据已有的区块中的随机数R,生成一个新的随机数r;从异构哈希函数集合中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn;根据随机数r,从异构哈希函数集合Hashn中选择第r个哈希函数Hr;根据哈希函数Hr运行工作量证明机制,得到随机数R′;判断随机数R′是否满足预设的计算困难要求;若是,则工作量证明成功;若否,则工作量证明失败。本发明能够在一定程度上缓解专用矿机挖矿和自私挖矿问题,提高区块链系统的分布式特性。

Description

一种基于异构哈希函数的工作量证明方法及系统
技术领域
本发明涉及通信系统中信息安全领域,特别是涉及一种基于异构哈希函数的工作量证明方法及系统。
背景技术
当前在基于工作量证明的区块中,挖矿领域存在两个关键的问题,一、基于硬件的专用矿机挖矿。基于硬件的专用矿机的挖矿效率性价比远远超过现有的显卡矿机。例如蚂蚁D3矿机,单矿机1200W功耗对应的算力为15000MH/s,因此D3矿机的能耗算力比为12.5M。而根据已有资料显示GPU的算力最高的为AMD 7990显卡,其功耗为500W,算力仅为21MH/s,因此能耗算力比为0.042M。因此D3矿机的能耗算力比为AMD7990显卡能耗算力比的297.62倍。因此,一旦对基于工作量证明机制的区块链系统研究出一个专用矿机,则普通用户根本无法参与该区块链系统的挖矿活动。此外,矿机的出现,更容易导致挖矿联盟,使得基于工作量证明机制的区块链系统日益中心化而逐渐失去分布式特征。该现象与去中心化的区块链系统发展方向是背道而驰。二、自私挖矿。当前基于工作量证明的区块链系统容易遭受自私挖矿攻击。自私挖矿是指矿工有选择性地延迟新区块的公布,即保留自己生成的新区块而进一步计算下一个区块,从而进一步增大自己的收益。该过程导致拥有一定比例算力的矿工所获得的挖矿收益却大于算力比例。理想情况下,工作量证明机制要求旷工的收益与算力比例相近,而自私挖矿却导致收益大于算力比例。当旷工的算力占整体算力的1/4时,自私挖矿的收益明显大于其算力比例。当旷工的算力越高,自私挖矿的收益约明显。特别地,当旷工算力超过51%时,近乎能获得100%的收益。而此过程是与工作量证明机制严重相违背的。
然而,经过长期的实践证明,目前最安全最稳定的共识算法仍然是工作量证明机制,而该机制目前面临专用矿机挖矿和自私挖矿行为。
发明内容
本发明的目的是提供一种基于异构哈希函数的工作量证明方法及系统,能够在一定程度上缓解专用矿机挖矿和自私挖矿问题,提高区块链系统的分布式特征。
为实现上述目的,本发明提供了如下方案:
一种基于异构哈希函数的工作量证明方法,包括:
生成由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1
根据已有的区块中的随机数R,生成一个新的随机数r;
从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn
根据所述随机数r,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr
根据所述哈希函数Hr运行工作量证明机制,得到随机数R*
判断所述随机数R*是否满足预设的计算困难要求;
若是,则工作量证明成功;
若否,则工作量证明失败。
可选的,所述生成n+1个异构哈希函数Hashn+1,具体包括:
通过发行方或背书方选择n+1个异构哈希函数,将所述n+1个异构哈希函数输入到区块中,得到由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1,所述异构哈希函数集合Hashn+1={H0,...,Hn}。
可选的,所述根据已有的区块中的随机数R,生成一个新的随机数r,具体包括:
根据已有的区块中的随机数R,得到所述随机数R的模n;
根据所述随机数R和所述随机数R的模n采用随机数生成函数FRandom,得到一个小于n的随机数r,记为r←FRandom(R)modn。
可选的,所述从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn,具体包括:
采用删除函数Delete从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn,记为:{H0,...,Hn}/Hi=Delete(Hashn+1,i)。
可选的,所述根据所述随机数r,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr,具体包括:
根据所述随机数r采用异构哈希函数选择函数Select,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr,记为:Hr←Select{r,{H0,...,Hn}/Hi}。
一种基于异构哈希函数的工作量证明系统,包括:
初始化模块,用于生成由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1
随机数生成模块,用于根据已有的区块中的随机数R,生成一个新的随机数r;
哈希函数删除模块,用于从异构哈希函数集合中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn
哈希函数选择模块,用于根据所述随机数r,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr
工作量证明模块,用于根据所述哈希函数Hr运行工作量证明机制,得到随机数R*
判断模块,用于判断所述随机数R*是否满足预设的计算困难要求;
工作量证明成功输出模块,用于当满足预设的计算困难要求时,输出工作量证明成功;
工作量证明失败输出模块,用于当不满足预设的计算困难要求时,输出工作量证明失败。
可选的,所述初始化模块,具体包括:
初始化单元,用于通过发行方或背书方选择n+1个异构哈希函数,将所述n+1个异构哈希函数输入到区块中,得到由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1,所述异构哈希函数集合Hashn+1={H0,...,Hn}。
可选的,所述随机数生成模块,具体包括:
随机数的模生成单元,用于根据已有的区块中的随机数R,得到所述随机数R的模n;
随机数生成单元,用于根据所述随机数R和所述随机数R的模n采用随机数生成函数FRandom,得到一个小于n的随机数r,记为r←FRandom(R)modn。
可选的,所述哈希函数删除模块,具体包括:
哈希函数删除单元,用于采用删除函数Delete从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn,记为:{H0,...,Hn}/Hi=Delete(Hashn+1,i)。
可选的,所述哈希函数选择模块,具体包括:
哈希函数随机选择单元,用于根据所述随机数r采用异构哈希函数选择函数Select,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr,记为:Hr←Select{r,{H0,...,Hn}/Hi}。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
现有的区块链系统仅使用一个哈希函数以完成工作量证明机制,容易导致专用矿机挖矿、自私挖矿等问题。本发明使用n+1个异构哈希函数完成工作量证明机制。使用随机调度的方式,从n+1个异构哈希函数集合中,调用一个哈希函数以完成工作量证明。通过本发明的方法能够减低专用矿机的利用率或利用效率,增大基于软件的通用性矿机的利用率,缓解专用矿机挖矿和自私挖矿问题,提高区块链系统的分布式特征。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于异构哈希函数的工作量证明方法流程图;
图2为本发明基于异构哈希函数的工作量证明系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于异构哈希函数的工作量证明方法及系统,能够在一定程度上缓解专用矿机挖矿和自私挖矿问题,提高区块链系统的分布式特征。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在介绍本发明之前,首先了解需要用到的密码学基础工具,包括异构哈希函数、随机数发生器和哈希函数密码学工具。
定义1:异构哈希函数
异构哈希函数是指内部结构,或计算原理不相同的哈希函数。
内部结构互不相同的哈希函数,其计算方式不一样,因此其所需要的计算资源或存储资源不同。如SHA256哈希函数以计算为主而不需要存储大量的数据,该哈希函数适用于asic矿机;而门罗币CryptoNight哈希函数适用于CPU挖矿而能够抵抗蚂蚁矿机。因此,系统初始化时,需要选择n+1个计算原理互不相同的哈希函数。异构哈希函数集合Hashn+1={H0,...,Hn},是指n+1个内部结构互不相同的哈希函数构成的集合。
定义2:随机数发生器
随机数生成函数FRandom:用于生成伪随机数。输入一段字符串x∈{0,1}m,输出一段字符串y∈{0,1}n,记为y←FRandom(x)。要求:输出字符串y与随机数分布不可分区,即{y}≈{Random};如果m>n,则该随机数生成函数为伪随机数发生器;如果m≤n,则该随机数生成函数等价于哈希函数。
定义3:删除函数
删除函数Delete:输入一个有限集合{H0,...,Hn}和整数i,要求0≤i≤n,输出另外一个有限集合{H0,...,Hi-1,Hi+1,...,Hn},记为{H0,...,Hn}/Hi←Delete({H0,...,Hn},i)。
定义4:选择函数
选择函数Select:输入一个有限集合{H0,...,Hn}和随机数r,且r≤n-1,输出集合中的元素Hr,记为Hr←Select({H0,...,Hn},r)。
定义5:工作量证明机制
工作量证明函数PoW:输入哈希函数Hr、账户地址IDi和随机数Rand,输出另一个随机数Rand',记为Random'←PoW(Hr,IDi,random)。如果随机数Rand'满足系统要求,即前k个元素均为0,则工作量证明输出成功,否则工作量证明失败。
实施例1:
图1为本发明基于异构哈希函数的工作量证明方法流程图。如图1所示,一种基于异构哈希函数的工作量证明方法,包括:
步骤101:生成由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1,具体包括:
通过发行方或背书方选择n+1个异构哈希函数,将所述n+1个异构哈希函数输入到区块中,得到由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1,所述异构哈希函数集合Hashn+1={H0,...,Hn}。
步骤102:根据已有的区块中的随机数R,生成一个新的随机数r,具体包括:
根据已有的区块中的随机数R,得到所述随机数R的模n;
根据所述随机数R和所述随机数R的模n采用随机数生成函数FRandom,得到一个小于n的随机数r,记为r←FRandom(R)modn。
步骤103:从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn,具体包括:
采用删除函数Delete从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn,记为:{H0,...,Hn}/Hi=Delete(Hashn+1,i)。
步骤104:根据所述随机数r,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr,具体包括:
根据所述随机数r采用异构哈希函数选择函数Select,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr,记为:Hr←Select{r,{H0,...,Hn}/Hi}。
步骤105:根据所述哈希函数Hr运行工作量证明机制,得到随机数R*,具体的,在运行工作量证明函数PoW,输入包括哈希函数Hr、账户地址Account和随机数Rand,输出包括另一个随机数R*即Rand',记为Random'←PoW(Hr,Account,random)。
步骤106:判断所述随机数R*是否满足预设的计算困难要求;
步骤107:若是,则工作量证明成功;
步骤108:若否,则工作量证明失败。
实施例2:
图2为本发明基于异构哈希函数的工作量证明系统结构图。如图2所示,一种基于异构哈希函数的工作量证明系统,包括:
初始化模块201,用于生成由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1
随机数生成模块202,用于根据已有的区块中的随机数R,生成一个新的随机数r;
哈希函数删除模块203,用于从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn
哈希函数选择模块204,用于根据所述随机数r,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr
工作量证明模块205,用于根据所述哈希函数Hr运行工作量证明机制,得到随机数R*
判断模块206,用于判断所述随机数R*是否满足预设的计算困难要求;
工作量证明成功输出模块207,用于当满足预设的计算困难要求时,输出工作量证明成功;
工作量证明失败输出模块208,用于当不满足预设的计算困难要求时,输出工作量证明失败。
所述初始化模块201,具体包括:
初始化单元,用于通过发行方或背书方选择n+1个异构哈希函数,将所述n+1个异构哈希函数输入到区块中,得到由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1,所述异构哈希函数集合Hashn+1={H0,...,Hn}。
所述随机数生成模块202,具体包括:
随机数的模生成单元,用于根据已有的区块中的随机数R,得到所述随机数R的模n;
随机数生成单元,用于根据所述随机数R和所述随机数R的模n采用随机数生成函数FRandom,得到一个小于n的随机数r,记为r←FRandom(R)modn。
所述哈希函数删除模块203,具体包括:
哈希函数删除单元,用于采用删除函数Delete从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn,记为:{H0,...,Hn}/Hi=Delete(Hashn+1,i)。
所述哈希函数选择模块204,具体包括:
哈希函数随机选择单元,用于根据所述随机数r采用异构哈希函数选择函数Select,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr,记为:Hr←Select{r,{H0,...,Hn}/Hi}。
实施例3:
根据本发明个基于异构哈希函数的工作量证明系统100,由以上列出的密码学基础工具可给出本发明的系统构造。定义Ω=(初始化,随机数生成,哈希函数删除,哈希函数随机选择,工作量证明)为基本构造,并将系统总结为5个算法模块,包括:初始化模块110、随机数生成模块120、哈希函数删除模块130、哈希函数选择模块140、工作量证明模块150。
其中,初始化模块110用于系统生成n+1个异构哈希函数Hashn+1={H0,...,Hn}。随机数生成模块120用于根据已有的区块中的随机数R,生成一个新的随机数r←Rmodn。哈希函数删除模块130用于删除上一个共识区块使用的哈希函数Hi。哈希函数选择模块140用于根据随机数r从剩余的n个异构哈希函数集合Hashn=Hashn+1/Hi中随机选择哈希函数Hr。工作量证明模块150用于根据哈希函数Hr运行工作量证明机制。
实体机构包括矿工。实体机构的角色能够由一个或多个实体合作充任。
需要注意的是,初始化模块由系统启动时系统的背书方或所有参与人员共同商量n+1个异构哈希函数。随机数生成模块所有矿工均可独立完成,哈希函数删除模块所有矿工均可独立完成,哈希函数选择模块所有矿工均可独立完成,工作量证明模块所有矿工均可参与,但是仅有少数矿工能够成功。
初始化模块用于系统生成n+1个异构哈希函数Hashn+1={H0,...,Hn},具体来说:
区块链的发行方,或背书方,或全网参与方共同选择n+1个异构哈希函数Hashn+1={H0,...,Hn},输出包括n+1个异构哈希函数集合,如:Hashn+1={H0,...,Hn}。
随机数生成模块用于根据已有的区块中的随机数R,生成一个新的随机数r←Rmodn,具体来说:
运行随机数生成函数FRandom,输入包括已有的区块中的随机数R,输出包括一个新随机数r,如:r←FRandom(R)modn。
哈希函数删除模块用于删除上一个共识区块使用的哈希函数Hi,具体来说:
运行删除函数Delete,输入包括上一个共识区块使用的哈希函数Hi和n+1个异构哈希函数集Hashn+1,输出包括n个异构哈希函数集Hashn,如:{H0,...,Hn}/Hi=Delete(Hashn+1,i)。
哈希函数选择模块用于根据随机数r从剩余的n个异构哈希函数集合Hashn=Hashn+1/Hi中随机选择哈希函数Hr,具体来说:
运行异构哈希函数选择函数Select,输入包括新随机数r和n个异构哈希函数集Hashn,输出包括哈希函数Hr,如:Hr←Select{r,{H0,...,Hn}/Hi}。
工作量证明模块用于根据哈希函数Hr运行工作量证明机制,具体来说:
运行工作量证明函数PoW,输入包括哈希函数Hr、账户地址Account和随机数Rand,输出包括另一个随机数Rand',如:Random'←PoW(Hr,Account,random)
需要说明的是,本发明实施例的高效的安全虚拟预支付系统及装置的具体实现方式与本发明实施例的高效的安全虚拟预支付系统的具体实现方式类似,具体请参见高效的安全虚拟预支付系统部分的描述,为了减少冗余,此处不做赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种基于异构哈希函数的工作量证明方法,其特征在于,包括:
生成由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1
根据已有的区块中的随机数R,生成一个新的随机数r;
从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn
根据所述随机数r,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr
根据所述哈希函数Hr运行工作量证明机制,得到随机数R*
判断所述随机数R*是否满足预设的计算困难要求;
若是,则工作量证明成功;
若否,则工作量证明失败。
2.根据权利要求1所述的基于异构哈希函数的工作量证明方法,其特征在于,所述生成n+1个异构哈希函数Hashn+1,具体包括:
通过发行方或背书方选择n+1个异构哈希函数,将所述n+1个异构哈希函数输入到区块中,得到由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1,所述异构哈希函数集合Hashn+1={H0,...,Hn}。
3.根据权利要求1所述的基于异构哈希函数的工作量证明方法,其特征在于,所述根据已有的区块中的随机数R,生成一个新的随机数r,具体包括:
根据所述随机数R和所述随机数R的模n采用随机数生成函数FRandom,得到一个小于n的随机数r,记为r←FRandom(R)modn。
4.根据权利要求1所述的基于异构哈希函数的工作量证明方法,其特征在于,所述从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn,具体包括:
采用删除函数Delete从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn,记为:{H0,...,Hn}/Hi=Delete(Hashn+1,i)。
5.根据权利要求1所述的基于异构哈希函数的工作量证明方法,其特征在于,所述根据所述随机数r,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr,具体包括:
根据所述随机数r采用异构哈希函数选择函数Select,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr,记为:Hr←Select{r,{H0,...,Hn}/Hi}。
6.一种基于异构哈希函数的工作量证明系统,其特征在于,包括:
初始化模块,用于生成由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1
随机数生成模块,用于根据已有的区块中的随机数R,生成一个新的随机数r;
哈希函数删除模块,用于从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn
哈希函数选择模块,用于根据所述随机数r,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr
工作量证明模块,用于根据所述哈希函数Hr运行工作量证明机制,得到随机数R*
判断模块,用于判断所述随机数R*是否满足预设的计算困难要求;
工作量证明成功输出模块,用于当满足预设的计算困难要求时,输出工作量证明成功;
工作量证明失败输出模块,用于当不满足预设的计算困难要求时,输出工作量证明失败。
7.根据权利要求6所述的基于异构哈希函数的工作量证明系统,其特征在于,所述初始化模块,具体包括:
初始化单元,用于通过发行方或背书方选择n+1个异构哈希函数,将所述n+1个异构哈希函数输入到区块中,得到由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1,所述异构哈希函数集合Hashn+1={H0,...,Hn}。
8.根据权利要求6所述的基于异构哈希函数的工作量证明系统,其特征在于,所述随机数生成模块,具体包括:
随机数生成单元,用于根据所述随机数R和所述随机数R的模n采用随机数生成函数FRandom,得到一个小于n的随机数r,记为r←FRandom(R)modn。
9.根据权利要求6所述的基于异构哈希函数的工作量证明系统,其特征在于,所述哈希函数删除模块,具体包括:
哈希函数删除单元,用于采用删除函数Delete从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn,记为:{H0,...,Hn}/Hi=Delete(Hashn+1,i)。
10.根据权利要求6所述的基于异构哈希函数的工作量证明系统,其特征在于,所述哈希函数选择模块,具体包括:
哈希函数随机选择单元,用于根据所述随机数r采用异构哈希函数选择函数Select,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr,记为:Hr←Select{r,{H0,...,Hn}/Hi}。
CN201910486039.1A 2019-06-05 2019-06-05 一种基于异构哈希函数的工作量证明方法及系统 Active CN110149213B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910486039.1A CN110149213B (zh) 2019-06-05 2019-06-05 一种基于异构哈希函数的工作量证明方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910486039.1A CN110149213B (zh) 2019-06-05 2019-06-05 一种基于异构哈希函数的工作量证明方法及系统

Publications (2)

Publication Number Publication Date
CN110149213A true CN110149213A (zh) 2019-08-20
CN110149213B CN110149213B (zh) 2020-11-17

Family

ID=67590367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910486039.1A Active CN110149213B (zh) 2019-06-05 2019-06-05 一种基于异构哈希函数的工作量证明方法及系统

Country Status (1)

Country Link
CN (1) CN110149213B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111049656A (zh) * 2019-12-09 2020-04-21 中山大学 一种基于ecdlp的工作量证明方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107579814A (zh) * 2017-08-03 2018-01-12 北京比特大陆科技有限公司 工作量证明的计算方法的装置、计算芯片、挖矿机
CN107729471A (zh) * 2017-10-13 2018-02-23 上海策赢网络科技有限公司 一种区块链及其生成方法与设备
CN108322304A (zh) * 2018-02-28 2018-07-24 北京比特大陆科技有限公司 工作量证明的计算方法和装置、电子设备、程序和介质
CN108389044A (zh) * 2018-02-28 2018-08-10 北京比特大陆科技有限公司 工作量证明的计算方法和系统、电子设备、程序和介质
US20180336552A1 (en) * 2017-05-17 2018-11-22 Nec Europe Ltd. Method and system for providing a robust blockchain with an integrated proof of storage
CN109409887A (zh) * 2018-10-23 2019-03-01 深圳区块大陆科技有限公司 实现区块链共识机制的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180336552A1 (en) * 2017-05-17 2018-11-22 Nec Europe Ltd. Method and system for providing a robust blockchain with an integrated proof of storage
CN107579814A (zh) * 2017-08-03 2018-01-12 北京比特大陆科技有限公司 工作量证明的计算方法的装置、计算芯片、挖矿机
CN107729471A (zh) * 2017-10-13 2018-02-23 上海策赢网络科技有限公司 一种区块链及其生成方法与设备
CN108322304A (zh) * 2018-02-28 2018-07-24 北京比特大陆科技有限公司 工作量证明的计算方法和装置、电子设备、程序和介质
CN108389044A (zh) * 2018-02-28 2018-08-10 北京比特大陆科技有限公司 工作量证明的计算方法和系统、电子设备、程序和介质
CN109409887A (zh) * 2018-10-23 2019-03-01 深圳区块大陆科技有限公司 实现区块链共识机制的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111049656A (zh) * 2019-12-09 2020-04-21 中山大学 一种基于ecdlp的工作量证明方法

Also Published As

Publication number Publication date
CN110149213B (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
CN109377360B (zh) 基于加权门限签名算法的区块链资产交易转账方法
CN107078903B (zh) 区块链的挖矿方法、装置和节点设备
CN104915249A (zh) 矿池中挖虚拟数字币的方法和装置
CN103427997B (zh) 一种生成数字签名的方法及装置
CN109039639A (zh) 基于分层确定性密码学技术的投标方法
CN102412971B (zh) 基于sm2密钥交换协议的密钥协商方法及装置
CN100542091C (zh) 一种基于身份的密钥生成方法及系统
CN107395349A (zh) 一种基于自认证公钥体制的区块链网络密钥分发方法
CN104023044A (zh) 一种具有隐私保护的云存储数据轻量级公共审计的方法
CN103259662A (zh) 一种新的基于整数分解问题的代理签名及验证方法
CN103501352A (zh) 一种允许群组用户身份撤销的云存储数据安全审计方法
CN103117860B (zh) 无证书盲环签名方法
CN109450640A (zh) 基于sm2的两方签名方法及系统
CN111147246A (zh) 一种基于sm2的多方协同签名方法及系统
CN109272316A (zh) 一种基于区块链网络下的区块实现方法及系统
CN105227317A (zh) 一种支持认证器隐私的云数据完整性检测方法和系统
CN104917608A (zh) 一种密钥抗功耗攻击的方法
CN110149213A (zh) 一种基于异构哈希函数的工作量证明方法及系统
CN109977166A (zh) 一种区块链共识机制
Dawahdeh et al. Modified ElGamal elliptic curve cryptosystem using hexadecimal representation
CN111010285A (zh) 一种适用于轻量级客户端的sm2两方协同签名方法及介质
CN107332665A (zh) 一种格上基于身份的部分盲签名方法
CN103067374A (zh) 一种基于身份的数据安全审计方法
CN103414731A (zh) 一种并行密钥隔离的基于身份的聚合签名方法
CN110365493B (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