一种工作量证明运算芯片核心计算部件的优化方法和电路技术

技术编号:19390830 阅读:38 留言:0更新日期:2018-11-10 02:45
本发明专利技术涉及区块链、工作量证明、加密数字币挖矿和集成电路技术领域,特别是涉及以太币等加密数字币挖矿的一种工作量证明运算芯片核心计算部件的优化方法和电路。所述方法中的核心计算部件的每个基本部件包含一个哈希碰撞单元和多个DAG结点数据生成单元。所述核心计算部件由多个上述基本部件组成,所述基本部件中的哈希碰撞单元和DAG结点数据生成单元均采用并行计算、分时复用以及流水线等结构设计。所述基本部件通过并行计算结构提升了算法实现的效率,通过分时复用和流水线结构提高数据吞吐率。

A workload proof method and circuit for optimizing core components of arithmetic chip

The invention relates to the technical fields of block chain, workload proof, encrypted digital currency mining and integrated circuit, in particular to the optimization method and circuit of a workload proof operation chip core computing component for encrypted digital currency mining such as Ethernet currency. Each basic component of the core computing component in the method includes a hash collision unit and multiple DAG node data generation units. The core computing unit is composed of several basic components. The hash collision unit and DAG node data generation unit in the basic components are designed with parallel computing, time-sharing multiplexing and pipeline structure. The basic components improve the efficiency of algorithm implementation through parallel computing structure, and improve data throughput through time-sharing multiplexing and pipeline structure.

【技术实现步骤摘要】
一种工作量证明运算芯片核心计算部件的优化方法和电路
本专利技术涉及区块链、工作量证明、加密数字币挖矿和集成电路
,特别是涉及以太币等挖矿的一种工作量证明运算芯片核心计算部件的优化方法和电路。
技术介绍
工作量证明(ProofofWork,简称POW),是比特币、以太币等主流加密数字币采用的一种共识机制,基本特征是需要进行大量的哈希运算,在特定难度值条件下找到符合条件的哈希值。FNV哈希运算能快速hash大量数据并保持较小的冲突率,它的高度分散使它适用于hash一些非常相近的字符串,比如URL,hostname,文件名,text,IP地址等。与比特币所采用的SHA3-256(一种哈希运算)挖矿工作量证明算法不同,以太币等一类加密数字币使用的挖矿工作量证明算法叫ETHASH。在ETHASH算法的传统实现方法中,DAG结点数据被一次性运算生成后预先存储于外部存储器中,便于后续哈希运算时可以随时读取参与运算,这需要依赖于外部存储器。一种不依赖于外部存储器的ETHASH算法优化实现方法,包括如下3个关键步骤:关键步骤1,预先生成内部CACHE数据;关键步骤2,根据预先生成的内部CACHE数据,实时生成DAG结点数据;关键步骤3,通过实时生成的DAG结点数据进行哈希运算,根据运算结果做工作量证明,该方法所对应的优化电路包括1.一个或多个内部CACHE数据生成单元,2.一个或多个内部存储单元,3.一个内部存储访问控制单元,4.一个或多个DAG结点数据生成单元,5.一个或多个哈希运算单元。本专利技术是关于以上优化方法关键步骤2和关键步骤3,以及所对应的优化电路单元4和单元5(在本专利技术中名称统一按哈希碰撞单元命名)所构成的核心计算部件,所提出的优化实现方法和实现电路。
技术实现思路
本专利技术实施例所要解决的技术问题是,提供一种工作量证明运算芯片核心计算部件的优化方法,适用于以太币等一类加密数字货币的工作量证明运算。本专利技术所述方法主要流程如下:对一个header_hash(区块头的哈希值,256位长的随机数)值和多个nonce(工作量验证值,64位长的随机数)值做FNV哈希运算和拼接操作得出多个MIX(1024位长的随机数,由任意两个相邻的DAG结点数据组合而成)值,将这些MIX值存储在片内存储模块中,根据MIX值计算得出更新这些MIX值所需要的DAG结点索引,通过该索引,并行调用多个DAG结点数据生成单元生成所需的DAG结点数据,每个DAG结点数据生成单元可以并行计算多个数据,将这些数据提供给哈希碰撞单元更新MIX的值,生成最终的MIX值后,对其做数据压缩、拼接、FNV哈希运算等操作后,生成最终计算结果,根据该计算结果做工作量证明。通过多DAG结点数据并行计算,采用分时复用以及流水线结构提高数据吞吐率,提升了ETHASH算法的运算效率。本专利技术实施例所要解决的技术问题是,还提出一种工作量证明运算芯片核心计算部件的优化电路,适用于以太币等一类加密数字货币的工作量证明运算。其特征在于:核心计算部件的每个基本部件包含哈希碰撞单元和DAG结点数据生成单元;所述哈希碰撞单元和DAG结点数据生成单元均采用分时复用结构设计;所述哈希碰撞单元和DAG结点数据生成单元均采用流水线结构设计以提高数据吞吐率;所述哈希碰撞单元通过任务接口将计算任务分发给DAG结点数据生成单元,所述DAG结点数据生成单元含多个DAG子计算模块,从存储模块中读取所需的计算数据,可对多个数据并行处理,并将计算所得结果反馈给哈希碰撞单元;与现有技术相比,本专利技术包括以下优点:1.通过并行计算结构提升了算法实现的效率;2.通过流水线结构提高了数据吞吐率;3.通过分时复用结构提高了数据吞吐率,并且降低了芯片面积和成本;4.通过上述优点提高了系统的性价比。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例。图1是本专利技术所涉及的基本部件;图2是本专利技术所涉及的哈希碰撞运算流程;图3是本专利技术所涉及的DAG结点数据生成流程;图4是本专利技术所涉及电路的结构示意图。具体实施例为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一详细介绍本专利技术实施例提供的一种工作量证明运算芯片核心计算部件的优化方法。参照图1,提供了一种工作量证明运算芯片核心计算部件的优化方法,包括以下步骤:1.通过碰撞初始化端口从上位机获得header_hash值和nonce。将这两个值拼接后做哈希运算,获得一个值(S101至S102);2.用步骤1中得到的值通过拼接操作得到一个MIX数据,用该数据及其相关数据初始化哈希碰撞单元(参照图2)中本次运算所需要的存储空间;3.检测存储模块中的MIX数据是否完成了64次运算,如果是,将存储模块中的MIX数据传递给MIX压缩模块(步骤5);如果未完成64次运算,则通过该MIX数据运算得到DAG结点的索引,提交给任务接口(S103至S114);a)通过任务接口获取DAG结点索引,根据该DAG结点索引通过访存接口获取一个CACHE结点数据(S104);b)将步骤a中获得的CACHE结点数据做SHA3哈希运算后,填充至一个空闲计算单元的临时DAG结点数据模块(S105至S109);c)判断计算单元是否完成了256个运算周期,若已完成,将该CACHE结点数据提交给哈希运算模块(步骤e);若未完成,则根据当前计算单元内的临时DAG结点数据通过异或、FNV哈希运算、取模运算等获得一个CACHE结点索引,根据该DAG结点索引从访存端口读取数据(S109至S112);d)将访存接口返回的数据与计算单元内的临时DAG结点数据做FNV哈希运算,更新计算单元内的临时DAG结点数据;e)哈希运算模块对DAG结点数据做SHA3哈希运算,得到一个DAG结点数据,将该DAG结点数据传送到任务端口(S113至S114);4.单元收到任务接口返回的DAG结点数据,并用它来更新存储模块中的MIX数据,然后重复步骤3(S103);5.MIX压缩模块会通过FNV哈希运算将MIX压缩为CMIX(256位长的随机数,由MIX经多次FNV哈希运算所得),与步骤1中获得的值做拼接操作,提交给哈希运算模块(S115至S116);6.对步骤5中的数据做压缩、哈希运算等操作,并将符合要求的数据提交给上位机(S116至S117)。实施例二详细介绍本专利技术实施例提供的一种工作量证明运算芯片核心计算部件的优化电路。参照图4,具体包括:一个哈希碰撞单元(S400):由SHA3哈希运算模块(S401),存储模块模块(S402),DAG结点索引生成模块(S403)和FNV哈希运算模块(S404)构成;多个DAG结点数据生成单元(S5001至S500N):由DAG结点数据加载模块(S501),SHA3哈希运算模块(S408),多个并行计算模块(S5041至S504N),每个本文档来自技高网
...

【技术保护点】
1.一种工作量证明运算芯片核心计算部件的优化方法,其特征在于:关键步骤1,对上位机传来的数据经哈希运算获得DAG结点索引并存储;关键步骤2,对DAG结点索引经哈希运算生成DAG结点数据;关键步骤3,对DAG结点数据进行哈希运算,根据运算结果做工作量证明。

【技术特征摘要】
1.一种工作量证明运算芯片核心计算部件的优化方法,其特征在于:关键步骤1,对上位机传来的数据经哈希运算获得DAG结点索引并存储;关键步骤2,对DAG结点索引经哈希运算生成DAG结点数据;关键步骤3,对DAG结点数据进行哈希运算,根据运算结果做工作量证明。2.如权利要求1所述关键步骤1,其特征在于,一个或多个DAG结点索引同时生成。3.如权利要求2所述,其特征在于,同时生成的DAG结点索引数量优选为64个,但不限于此数量。4.如权利要求1所述关键步骤2,其特征在于,一个或多个DAG结点的结点数据同时生成。5.如权利要求4所述,其特征在于,同时生成DAG结点数据的结点数量优选为256个,但不限于此数量。6.如权利要求1所述关键步骤3,其特征在于,用于工作量证明的一个或多个哈希运算结果同时生成。7.如权利要求6所述,其特征在于,用于工作量证明的哈希运算结果数量数优选为256个,但不限于此数量。8.如权利要求1所述方法,本方法用于以太币挖矿工作量证明,但不限于以太币挖矿工作量证明。9.一种工作量证明运算芯片核心计算部件的优化电路,其特征在于:1)核心计算部件的每个基本部件包含一个哈希碰撞单元和多个DAG结点数据生成单元;2)所述核心计算部件由多个上述基本部件组成;3)所述基本部件中的一个哈希碰撞单元与多个DAG结点数据生成单元相连;4)所述基本部件中的一个哈希碰撞单元包含一个或多个SHA3哈希运算模块、一个或多个存储模块、一个或多个FNV哈希运算模块、一个或多个DAG结点索引生成模块;5)所述一个哈希碰撞单元中的SHA3哈希运算模块与存储模块相连,FNV哈希运算模块与存储模块相连,DAG结点索引生成模块与存储模块相连;6)所述基本部件中的每个DAG结点数据生成单元包含一个或多个DAG结点数据加载模块、一个或多个SHA3哈希运算模块、一个或多个DAG结点数...

【专利技术属性】
技术研发人员:汪福全刘明蔡凯
申请(专利权)人:中科声龙科技发展北京有限公司
类型:发明
国别省市:北京,11

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

1