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

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

A Workload Proof Method and System Based on Heterogeneous Hash Function

【技术实现步骤摘要】
一种基于异构哈希函数的工作量证明方法及系统
本专利技术涉及通信系统中信息安全领域,特别是涉及一种基于异构哈希函数的工作量证明方法及系统。
技术介绍
当前在基于工作量证明的区块中,挖矿领域存在两个关键的问题,一、基于硬件的专用矿机挖矿。基于硬件的专用矿机的挖矿效率性价比远远超过现有的显卡矿机。例如蚂蚁D3矿机,单矿机1200W功耗对应的算力为15000MH/s,因此D3矿机的能耗算力比为12.5M。而根据已有资料显示GPU的算力最高的为AMD7990显卡,其功耗为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.一种基于异构哈希函数的工作量证明方法,其特征在于,包括:生成由n+1个异构哈希函数构成的异构哈希函数集合Hashn+1;根据已有的区块中的随机数R,生成一个新的随机数r;从所述异构哈希函数集合Hashn+1中临时删除上一个区块中使用的哈希函数Hi,得到由n个异构哈希函数构成的异构哈希函数集合Hashn;根据所述随机数r,从所述异构哈希函数集合Hashn中选择第r个哈希函数Hr;根据所述哈希函数Hr运行工作量证明机制,得到随机数R

【技术特征摘要】
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.一种基于异构哈希函数的工作量证...

【专利技术属性】
技术研发人员:伍前红
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

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

1