专用集成电路芯片及方法、区块链系统及区块生成方法技术方案

技术编号:31094267 阅读:20 留言:0更新日期:2021-12-01 13:02
本申请提供了一种专用集成电路芯片及方法、区块链系统及区块生成方法;其中,专用集成电路芯片包括:压缩计算单元;压缩计算单元包括:第一并行处理子单元,用于并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组第一元素进行第一、第二轮重新赋值;中间变量中的第一元素按照第一规则划分为四组;第二并行处理子单元,用于接收第一并行处理子单元输出的重新赋值后的中间变量,并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组第一元素进行第三、第四轮重新赋值;其中,中间变量中的第一元素按照第二规则划分为四组。划分为四组。划分为四组。

【技术实现步骤摘要】
专用集成电路芯片及方法、区块链系统及区块生成方法


[0001]本文涉及区块链领域,尤其涉及一种专用集成电路芯片及方法、区块链系统及区块生成方法。

技术介绍

[0002]区块链作为一个共享数据库,存储于其中的数据或信息,具有“不可伪造”、“全程留痕”、“可以追溯”、“公开透明”、“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景。Equihash是区块链中一种面向内存的工作证明;一般过程是先构造输入条件,即区块头和各项参数,然后将输入条件转化成“广义生日问题的一般形式”的问题,解析该问题并对获得的解进行难度判断,同时满足算法条件和难度条件则判定求解成功,工作证明完成,产生新的区块;否则调整参数重新运算。
[0003]Equihash需要利用Blake2产生两百万个原始数据,根据该原始数据获得上述问题的解;Blake2包括Blake2B和Blake2S;其中Blake2B一次可以产生1个400比特的数据,分为2个200比特的数据;Blake2S一次可以产生1个200比特的数据,分为2个100比特的数据,Equihash大约需要进行一百万次Blake2来获得原始数据以求解,从而完成工作证明,在区块链中产生新的区块。

技术实现思路

[0004]以下是对本申请详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
[0005]本申请提供了一种专用集成电路芯片及方法、区块链系统及区块生成方法,可以提高处理速度。
[0006]本申请实施例提供了一种实现Blake2的专用集成电路芯片,包括:压缩计算单元;所述压缩计算单元包括:第一并行处理子单元,用于并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组第一元素进行第一、第二轮重新赋值;其中,中间变量中的十六个第一元素按照第一规则划分为四组;第二并行处理子单元,用于接收所述第一并行处理子单元输出的重新赋值后的中间变量,并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组第一元素进行第三、第四轮重新赋值;其中,中间变量中的十六个第一元素按照第二规则划分为四组。
[0007]可选地,所述第一并行处理子单元包括依次连接的:第一函数模块和第二函数模块;所述第一函数模块包括四个并行进行第一组合计算的第一处理模块,每个第一处理模块各自用于对一组第一元素和输入的一个第二元素进行第一组合计算,并根据第一组
合计算的结果对该组第一元素进行重新赋值;所述第二函数模块包括四个并行进行第二组合计算的第二处理模块,每个第二处理模块各自用于对一组第一元素和输入的一个第二元素进行第二组合计算,并根据第二组合计算的结果对该组第一元素进行重新赋值;其中,第一、第二函数模块所针对的四组第一元素是根据第一规则对中间变量划分得到的;所述第一、第二函数模块输入的第二元素互不相同。
[0008]可选地,所述第二并行处理子单元包括:连接到所述第一并行处理子单元的映射模块、所述第一函数模块、所述第二函数模块、逆映射模块;所述映射模块用于根据预设的映射关系,分别将不同第一元素的值赋值给该第一元素映射到的第一元素;所述逆映射模块用于根据所述预设的映射关系,分别将不同第一元素的值赋值给映射到该第一元素的第一元素;其中,第一、第二函数模块输入的第二元素互不相同,且不同于第一并行处理子单元中第一、第二函数模块输入的第二元素。
[0009]可选地,所述映射模块根据预设的映射关系,分别将不同第一元素的值赋值给该第一元素映射到的第一元素包括:所述映射模块将索引值为0、1、2、3、5、6、7、4、10、11、8、9、15、12、13、14的第一元素的值,分别赋值给索引值为0至15的第一元素;所述逆映射模块根据预设的映射关系,分别将不同第一元素的值赋值给映射到该第一元素的第一元素包括:所述逆映射模块将索引值为0至15的第一元素的值,分别赋值给索引值为0、1、2、3、5、6、7、4、10、11、8、9、15、12、13、14的第一元素。
[0010]本申请实施例还提供了一种实现Blake2的方法,应用在上述的实现Blake2的专用集成电路芯片上,所述方法包括:进行预定轮数的压缩计算,每轮压缩计算分别包括如下步骤:所述第一并行处理子单元并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组第一元素进行第一、第二轮重新赋值;其中,中间变量中的十六个第一元素按照第一规则划分为四组;所述第二并行处理子单元并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组第一元素进行第三、第四轮重新赋值;其中,中间变量中的十六个第一元素按照第二规则划分为四组。
[0011]可选地,所述第一并行处理子单元包括依次连接的:第一函数模块和第二函数模块;所述并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组第一元素进行第一、第二轮重新赋值包括:将输入参数输入所述第一函数模块,所述输入参数包括中间变量及输入块数据中的四个第二元素;第一函数模块并行的执行四个第一子过程,每个第一子过程各自对一组第一元素和作为输入参数的一个第二元素进行第一组合计算,并根据第一组合计算的结果对该组第一元素进行第一轮重新赋值;将输入参数输入第二函数模块,所述输入参数包括进行第一轮重新赋值后的中间
变量,以及输入块数据中的四个第二元素;第二函数模块并行的执行四个第二子过程,每个第二子过程各自对一组经过第一轮重新赋值后的第一元素和作为输入参数的一个第二元素进行第二组合计算,并根据第二组合计算的结果对该组第一元素进行第二轮重新赋值;其中,所述第一、第二子过程各自对应的第一元素的组,是根据第一规则对中间变量的十六个第一元素划分得到的;所述第一、第二函数的输入参数中的第二元素不同。
[0012]可选地,所述第二并行处理子单元包括:连接到所述第一并行处理子单元的映射模块、所述第一函数模块、所述第二函数模块、逆映射模块;所述并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组第一元素进行第三、第四轮重新赋值包括:所述映射模块根据预设的映射关系,在进行第二轮重新赋值后的中间变量中,分别将不同第一元素的值赋值给该第一元素映射到的第一元素;将输入参数输入所述第一函数模块,所述输入参数包括所述映射模块赋值后的中间变量,以及输入块数据中的四个第二元素;第一函数模块并行的执行四个第一子过程,每个第一子过程各自对一组经过第二轮重新赋值后的第一元素和作为输入参数的一个第二元素进行第一组合计算,并根据第一组合计算的结果对该组第一元素进行第三轮重新赋值;将输入参数输入所述第二函数模块,所述输入参数包括进行第三轮重新赋值后的中间变量,以及输入块数据中的四个第二元素;第二函数模块并行的执行四个第二子过程,每个第二子本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现Blake2的专用集成电路芯片,包括:压缩计算单元;其特征在于,所述压缩计算单元包括:第一并行处理子单元,用于并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组第一元素进行第一、第二轮重新赋值;其中,中间变量中的十六个第一元素按照第一规则划分为四组;第二并行处理子单元,用于接收所述第一并行处理子单元输出的重新赋值后的中间变量,并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组第一元素进行第三、第四轮重新赋值;其中,中间变量中的十六个第一元素按照第二规则划分为四组。2.如权利要求1所述的专用集成电路芯片,其特征在于,所述第一并行处理子单元包括依次连接的:第一函数模块和第二函数模块;所述第一函数模块包括四个并行进行第一组合计算的第一处理模块,每个第一处理模块各自用于对一组第一元素和输入的一个第二元素进行第一组合计算,并根据第一组合计算的结果对该组第一元素进行重新赋值;所述第二函数模块包括四个并行进行第二组合计算的第二处理模块,每个第二处理模块各自用于对一组第一元素和输入的一个第二元素进行第二组合计算,并根据第二组合计算的结果对该组第一元素进行重新赋值;其中,第一、第二函数模块所针对的四组第一元素是根据第一规则对中间变量划分得到的;所述第一、第二函数模块输入的第二元素互不相同。3.如权利要求2所述的专用集成电路芯片,其特征在于,所述第二并行处理子单元包括:连接到所述第一并行处理子单元的映射模块、所述第一函数模块、所述第二函数模块、逆映射模块;所述映射模块用于根据预设的映射关系,分别将不同第一元素的值赋值给该第一元素映射到的第一元素;所述逆映射模块用于根据所述预设的映射关系,分别将不同第一元素的值赋值给映射到该第一元素的第一元素;其中,第一、第二函数模块输入的第二元素互不相同,且不同于第一并行处理子单元中第一、第二函数模块输入的第二元素。4.如权利要求3所述的专用集成电路芯片,其特征在于,所述映射模块根据预设的映射关系,分别将不同第一元素的值赋值给该第一元素映射到的第一元素包括:所述映射模块将索引值为0、1、2、3、5、6、7、4、10、11、8、9、15、12、13、14的第一元素的值,分别赋值给索引值为0至15的第一元素;所述逆映射模块根据预设的映射关系,分别将不同第一元素的值赋值给映射到该第一元素的第一元素包括:所述逆映射模块将索引值为0至15的第一元素的值,分别赋值给索引值为0、1、2、3、5、6、7、4、10、11、8、9、15、12、13、14的第一元素。5.一种实现Blake2的方法,其特征在于,所述方法应用在如权利要求1

4中任一项所述的实现Blake2的专用集成电路芯片上,所述方法包括:进行预定轮数的压缩计算,每轮压缩计算分别包括如下步骤:
所述第一并行处理子单元并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组第一元素进行第一、第二轮重新赋值;其中,中间变量中的十六个第一元素按照第一规则划分为四组;所述第二并行处理子单元并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组第一元素进行第三、第四轮重新赋值;其中,中间变量中的十六个第一元素按照第二规则划分为四组。6.如权利要求5所述的实现Blake2的方法,其特征在于,所述第一并行处理子单元包括依次连接的:第一函数模块和第二函数模块;所述并行的对中间变量所包含的四组第一元素和相应的输入块数据进行组合计算,并根据组合计算的结果分别对所述四组...

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

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

1