首页 / 专利库 / 资料储存系统 / 工作量证明 / 一种工作量证明运算芯片核心计算部件的优化方法和电路

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

阅读:599发布:2020-05-13

专利汇可以提供一种工作量证明运算芯片核心计算部件的优化方法和电路专利检索,专利查询,专利分析的服务。并且本 发明 涉及 区 块 链 、 工作量证明 、加密数字币 挖矿 和集成 电路 技术领域,特别是涉及以太币等加密数字币挖矿的一种工作量证明运算芯片核心计算部件的优化方法和电路。所述方法中的核心计算部件的每个基本部件包含一个哈希碰撞单元和多个DAG结点数据生成单元。所述核心计算部件由多个上述基本部件组成,所述基本部件中的哈希碰撞单元和DAG结点数据生成单元均采用并行计算、分时复用以及流 水 线等结构设计。所述基本部件通过并行计算结构提升了 算法 实现的效率,通过分时复用和流水线结构提高数据吞吐率。,下面是一种工作量证明运算芯片核心计算部件的优化方法和电路专利的具体信息内容。

1.一种工作量证明运算芯片核心计算部件的优化电路,其特征在于:
1)核心计算部件的每个基本部件包含一个哈希碰撞单元和多个DAG结点数据生成单元;
2)所述核心计算部件由多个上述基本部件组成;
3)所述基本部件中的一个哈希碰撞单元与多个DAG结点数据生成单元相连;
4)所述基本部件中的一个哈希碰撞单元包含一个或多个SHA3哈希运算模、一个或多个存储模块、一个或多个FNV哈希运算模块、一个或多个DAG结点索引生成模块;
5)所述一个哈希碰撞单元中的SHA3哈希运算模块与存储模块相连,FNV哈希运算模块与存储模块相连,DAG结点索引生成模块与存储模块相连;
6)所述基本部件中的每个DAG结点数据生成单元包含一个或多个DAG结点数据加载模块、一个或多个SHA3哈希运算模块、一个或多个DAG结点数据计算模块、一个或多个CACHE结点索引生成模块;
7)所述每个DAG结点数据生成单元中的DAG结点数据加载模块与SHA3哈希运算模块相连,SHA3哈希运算模块与DAG结点数据计算模块相连,DAG结点数据计算模块与CAHCE结点索引生成模块相连;
8)所述基本部件中的哈希碰撞单元和DAG结点数据生成单元均采用分时复用结构设计;
9)所述基本部件中的哈希碰撞单元和DAG结点数据生成单元均采用流线结构设计以提高数据吞吐率。
2.如权利要求1所述的优化电路,其特征在于,并行计算的DAG结点数据生成单元数量不少于128个。
3.如权利要求1所述的优化电路,其特征在于,并行计算的DAG结点数据生成单元数量采用1024个。
4.如权利要求1所述的优化电路,其特征在于,多个DAG结点数据生成单元对一个哈希碰撞单元分时复用。
5.如权利要求4所述的优化电路,其特征在于,对一个哈希碰撞单元分时复用的DAG结点数据生成单元数量不少于2个。
6.如权利要求1所述的优化电路,其特征在于,对一个哈希碰撞单元分时复用的DAG结点数据生成单元数量采用64个。
7.如权利要求1所述的优化电路,其特征在于,多个DAG子计算模块对一个DAG结点数据生成单元分时复用。
8.如权利要求7所述的优化电路,其特征在于,对一个DAG结点数据生成单元分时复用的DAG子计算模块数量不少于2个。
9.如权利要求1所述的优化电路,其特征在于,DAG结点数据生成单元的流水线级数不少于8级。
10.如权利要求1所述的优化电路,其特征在于,碰撞单元中的内部存储模块包括:静态随机存取存储器SRAM。
11.如权利要求1所述的优化电路,其特征在于,所述电路用于以太币挖矿工作量证明。
12.一种工作量证明运算芯片核心计算部件的优化方法,基于权利要求1-11任一项所述的优化电路,其特征在于:
A、通过碰撞初始化端口从上位机获得数据值,将所述数据值拼接后做哈希运算获得一哈希运算值;
B、将所述哈希运算值通过拼接操作得到一个MIX数据,用所述MIX数据及其相关数据初始化哈希碰撞单元中本次运算所需要的存储空间;
C、检测存储模块中的MIX数据是否完成了指定次数的次运算;若是,将存储模块中的MIX数据传递给MIX压缩模块;
D、若否,通过所述MIX数据运算得到DAG结点索引,提交给任务接口:并进一步包括:对DAG结点索引经哈希运算生成DAG结点数据;对DAG结点数据进行哈希运算;并将哈希运算后的DAG结点数据传回并更新存储模块中的MIX数据;并返回执行步骤C;
E、MIX压缩模块通过FNV哈希运算将MIX压缩为CMIX,与步骤A所述哈希运算值做拼接操作获取拼接数据,并将所述拼接数据提交给哈希运算模块;
F、对所述拼接数据做压缩、以及通过哈希运算操作以获取运算结果,并将符合要求的运算结果提交给上位机。
13.如权利要求12所述的优化方法,其特征在于,步骤D的所述DAG结点索引为一个或多个;且所述DAG结点索引同时生成。
14.如权利要求13所述的优化方法,其特征在于,当所述DAG结点为多个时,同时生成的所述DAG结点数据的数量为64个。
15.如权利要求12所述的优化方法,其特征在于,步骤D的所述DAG结点数据同时生成。
16.如权利要求15所述的优化方法,其特征在于,同时生成的所述DAG结点数据的结点数量为256个。
17.如权利要求12所述的优化方法,其特征在于,步骤D中所述运算结果同时生成。
18.如权利要求17所述的优化方法,其特征在于,所述运算结果的数量为256个。
19.如权利要求12所述的优化方法,其特征在于,所述优化方法用于以太币挖矿工作量证明。

说明书全文

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

技术领域

[0001] 本发明涉及链、工作量证明、加密数字币挖矿和集成电路技术领域,特别是涉及以太币等挖矿的一种工作量证明运算芯片核心计算部件的优化方法和电路。

背景技术

[0002] 工作量证明(Proof of Work,简称POW),是比特币、以太币等主流加密数字币采用的一种共识机制,基本特征是需要进行大量的哈希运算,在特定难度值条件下找到符合条件的哈希值。
[0003] FNV哈希运算能快速hash大量数据并保持较小的冲突率,它的高度分散使它适用于hash一些非常相近的字符串,比如URL,hostname,文件名,text,IP地址等。
[0004] 与比特币所采用的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(在本发明中名称统一按哈希碰撞单元命名)所构成的核心计算部件,所提出的优化实现方法和实现电路。

发明内容

[0005] 本发明实施例所要解决的技术问题是,提供一种工作量证明运算芯片核心计算部件的优化方法,适用于以太币等一类加密数字货币的工作量证明运算。
[0006] 本发明所述方法主要流程如下:对一个header_hash(区块头的哈希值,256位长的随机数)值和多个nonce(工作量验证值,64位长的随机数)值做FNV哈希运算和拼接操作得出多个MIX(1024位长的随机数,由任意两个相邻的DAG结点数据组合而成)值,将这些MIX值存储在片内存储模块中,根据MIX值计算得出更新这些MIX值所需要的DAG结点索引,通过该索引,并行调用多个DAG结点数据生成单元生成所需的DAG结点数据,每个DAG结点数据生成单元可以并行计算多个数据,将这些数据提供给哈希碰撞单元更新MIX的值,生成最终的MIX值后,对其做数据压缩、拼接、FNV哈希运算等操作后,生成最终计算结果,根据该计算结果做工作量证明。通过多DAG结点数据并行计算,采用分时复用以及流线结构提高数据吞吐率,提升了ETHASH算法的运算效率。
[0007] 本发明实施例所要解决的技术问题是,还提出一种工作量证明运算芯片核心计算部件的优化电路,适用于以太币等一类加密数字货币的工作量证明运算。其特征在于:
[0008] 核心计算部件的每个基本部件包含哈希碰撞单元和DAG结点数据生成单元;
[0009] 所述哈希碰撞单元和DAG结点数据生成单元均采用分时复用结构设计;
[0010] 所述哈希碰撞单元和DAG结点数据生成单元均采用流水线结构设计以提高数据吞吐率;
[0011] 所述哈希碰撞单元通过任务接口将计算任务分发给DAG结点数据生成单元,所述DAG结点数据生成单元含多个DAG子计算模块,从存储模块中读取所需的计算数据,可对多个数据并行处理,并将计算所得结果反馈给哈希碰撞单元;
[0012] 与现有技术相比,本发明包括以下优点:
[0013] 1.通过并行计算结构提升了算法实现的效率;
[0014] 2.通过流水线结构提高了数据吞吐率;
[0015] 3.通过分时复用结构提高了数据吞吐率,并且降低了芯片面积和成本;
[0016] 4.通过上述优点提高了系统的性价比。附图说明
[0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例。
[0018] 图1是本发明所涉及的基本部件;
[0019] 图2是本发明所涉及的哈希碰撞运算流程;
[0020] 图3是本发明所涉及的DAG结点数据生成流程;
[0021] 图4是本发明所涉及电路的结构示意图。具体实施例
[0022] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0023] 实施例一
[0024] 详细介绍本发明实施例提供的一种工作量证明运算芯片核心计算部件的优化方法。
[0025] 参照图1,提供了一种工作量证明运算芯片核心计算部件的优化方法,包括以下步骤:
[0026] 1.通过碰撞初始化端口从上位机获得header_hash值和nonce。将这两个值拼接后做哈希运算,获得一个值(S101至S102);
[0027] 2.用步骤1中得到的值通过拼接操作得到一个MIX数据,用该数据及其相关数据初始化哈希碰撞单元(参照图2)中本次运算所需要的存储空间;
[0028] 3.检测存储模块中的MIX数据是否完成了64次运算,如果是,将存储模块中的MIX数据传递给MIX 压缩模块(步骤5);如果未完成64次运算,则通过该MIX数据运算得到DAG结点的索引,提交给任务接口(S103至S114);
[0029] a)通过任务接口获取DAG结点索引,根据该DAG结点索引通过访存接口获取一个CACHE结点数据(S104);
[0030] b)将步骤a中获得的CACHE结点数据做SHA3哈希运算后,填充至一个空闲计算单元的临时DAG 结点数据模块(S105至S109);
[0031] c)判断计算单元是否完成了256个运算周期,若已完成,将该CACHE结点数据提交给哈希运算模块(步骤e);若未完成,则根据当前计算单元内的临时DAG结点数据通过异或、FNV哈希运算、取模运算等获得一个CACHE结点索引,根据该DAG结点索引从访存端口读取数据(S109至 S112);
[0032] d)将访存接口返回的数据与计算单元内的临时DAG结点数据做FNV哈希运算,更新计算单元内的临时DAG结点数据;
[0033] e)哈希运算模块对DAG结点数据做SHA3哈希运算,得到一个DAG结点数据,将该DAG结点数据传送到任务端口(S113至S114);
[0034] 4.单元收到任务接口返回的DAG结点数据,并用它来更新存储模块中的MIX数据,然后重复步骤3 (S103);
[0035] 5.MIX压缩模块会通过FNV哈希运算将MIX压缩为CMIX(256位长的随机数,由MIX经多次FNV哈希运算所得),与步骤1中获得的值做拼接操作,提交给哈希运算模块(S115至S116);
[0036] 6.对步骤5中的数据做压缩、哈希运算等操作,并将符合要求的数据提交给上位机(S116至S117)。
[0037] 实施例二
[0038] 详细介绍本发明实施例提供的一种工作量证明运算芯片核心计算部件的优化电路。
[0039] 参照图4,具体包括:
[0040] 一个哈希碰撞单元(S400):由SHA3哈希运算模块(S401),存储模块 (S402),DAG结点索引生成模块(S403)和FNV哈希运算模块(S404)构成;
[0041] 多个DAG结点数据生成单元(S5001至S500N):由DAG结点数据加载模块(S501),SHA3哈希运算模块(S408),多个并行计算模块(S5041至S504N),每个计算单元包含一个临时DAG结点数据模块(S5031 至S503N)以及CACHE结点索引生成单元(S505)构成。
[0042] 所述一个哈希碰撞单元(S400)和多个DAG结点数据生成单元(S5001至S500N)相连;
[0043] 所述一个哈希碰撞单元(S400)中的SHA3哈希运算模块(S401)与存储模块 (S402)相连;
[0044] 所述一个哈希碰撞单元(S400)中的DAG结点索引生成模块(S403)与存储模块 (S402)相连;
[0045] 所述一个哈希碰撞单元(S400)中的FNV哈希运算模块(S404)与存储模块 (S402)相连;
[0046] 所述多个DAG结点数据生成单元(S5001至S500N)中的DAG结点数据加载模块(S501)与SHA3哈希运算模块(S502)相连;
[0047] 所述多个DAG结点数据生成单元(S5001至S500N)中的SHA3哈希运算模块(S502)与并行计算模块 (S5041至S504N)相连;
[0048] 所述多个DAG结点数据生成单元(S5001至S500N)中的并行计算模块(S5041至S504N)与CACHE结点索引生成模块(S505)相连。
[0049] 本实施例中以一个哈希碰撞单元(S400)和多个DAG结点数据生成单元(S5001至S500N)为例介绍,参照图1和图4,在进行ETHASH算法实现时,对一个header_hash值和多个nonce值做FNV哈希运算和拼接操作得出多个MIX值,将这些MIX值存储在片内存储模块中,根据MIX值计算得出更新这些MIX值所需要的DAG结点索引,通过DAG结点索引,并行调用多个DAG结点数据生成单元生成所需的DAG结点数据,每个DAG结点数据生成单元可以并行计算多个DAG结点数据,将DAG结点数据提供给哈希碰撞单元更新MIX 的值,生成最终的MIX值后,对其做数据压缩、拼接、FNV哈希运算等操作后,生成最终计算结果,根据该计算结果做工作量证明。
[0050] 基于本发明上述电路的实施例中,其电路实现方式包括:专用集成电路芯片ASIC、现场可编程阵列 FPGA,但实现方式不限于这些类型。
[0051] 上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。
[0052] 以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈