面向区块链的动态哈希计算方法、装置、节点及存储介质制造方法及图纸

技术编号:18898731 阅读:41 留言:0更新日期:2018-09-08 13:38
本发明专利技术公开了一种面向区块链的动态哈希计算方法、装置、节点及计算机可读存储介质,所述方法包括如下步骤:获取待进行哈希的对象以及待生成的区块的高度;将所述高度转为字节,并对所述字节进行哈希运算,得到a位的第一字节数组;根据预设的运行次数m,对所述第一字节数组的前m位进行取n模计算,得到m位的第二字节数组;其中,n为预设的哈希算法的种类数;根据第二字节数组中的每位数字对应的哈希算法以及数字的顺序,调用相应的哈希算法对待进行哈希的对象进行哈希计算,以根据计算结果判断是否能够生成该区块。本发明专利技术实现了根据区块的高度动态生成哈希算法,从而保证运算过程的安全。

Dynamic Hash computing method, device, node and storage medium for block chaining

The invention discloses a block chain oriented dynamic hashing calculation method, device, node and computer readable storage medium. The method comprises the following steps: acquiring the object to be hashed and the height of the block to be generated; converting the height into bytes, and hashing the bytes to obtain a-bit The first byte array; according to the preset number of runs m, the first m-bit of the first byte array is calculated by n-modulus to get the second m-bit array; where n is the number of preset hash algorithms; according to the hash algorithm corresponding to each digit in the second byte array and the order of the digits, the corresponding hash algorithm is called In order to judge whether the block can be generated or not, the hash algorithm calculates the hashed object. The invention realizes dynamic generation of hash algorithm according to the height of the block, thereby ensuring the safety of the operation process.

【技术实现步骤摘要】
面向区块链的动态哈希计算方法、装置、节点及存储介质
本专利技术涉及区块链领域,尤其涉及一种面向区块链的动态哈希计算方法、装置、节点及存储介质。
技术介绍
以比特币为代表的数字货币的出现预示着区块链技术正式走进人们的视野。区块链技术本质上就是一种去中心化的分布式系统。正是由于这一特点,共识机制成为区块链技术中非常关键的一项技术,也即如何在高度分散的去中心化系统中保证分布式节点高效地针对点对点交易与协作的有效性达成共识。目前,广泛采用的共识机制有基于工作量证明(POW)、基于权益证明(POS)等。POW共识机制是最早期的一种共识机制,即利用节点的算力来获取记账权。POW算法主要通过枚举式哈希计算,依靠机器计算出一个符合规则的随机数,进而实现数据的记录、发出、存储。POW共识机制的算法简单,容易实现,只依靠算力即可达成共识,同时具有比较高的安全性。POS共识机制,是在POW共识机制的基础上发展起来的一种升级共识机制。POS共识机制根据每个分布式节点在生成新的区块时节点自身所占有的权益比例来保证记账权分配,记账权获得的难度与节点持有的权益成反比,这样不需要消耗外部的算力和资源。POW共识机制的最大缺点是资源消耗大,浪费能源,另外,算力的不平衡造成共识的周期较长,同时,单纯的依靠机器算力的方式也容易导致51%的风险。而POS共识机制本质上仍然是依靠算力来提高权益比例,进而获取记账权,而且还容易造成高权益的节点不参与记账的情况,缺乏监管性。由于POW共识机制的算法仅仅依靠枚举式哈希计算,一方面,枚举过程不能动态适应区块的高度,造成运算时时间的加长,从而能源消耗大。另一方面,POW共识机制的哈希计算采用固定的哈稀函数,一定程度上不能适应区块的高度的动态变化,同时也存在一定的安全问题。
技术实现思路
针对上述问题,本专利技术的目的在于提供一种面向区块链的动态哈希计算方法、装置、节点及存储介质,实现了根据区块的高度动态生成哈希算法,从而保证运算过程的安全。本专利技术实施例提供了一种面向区块链的动态哈希计算方法,包括如下步骤:获取待进行哈希的对象以及待生成的区块的高度;将所述高度转为字节,并对所述字节进行哈希运算,得到a位的第一字节数组;根据预设的运行次数m,对所述第一字节数组的前m位进行取n模计算,得到m位的第二字节数组;其中,n为预设的哈希算法的种类数;根据第二字节数组中的每位数字对应的哈希算法以及数字的顺序,调用相应的哈希算法对待进行哈希的对象进行哈希计算,以根据计算结果判断是否能够生成该区块。优选地,所述n为11。优选地,定义A~K分别于11中哈希函数一一对应;并定义0~10分别对应A~K;则所述根据第二字节数组中的每位数字对应的哈希算法以及数字的顺序,调用相应的哈希算法对待进行哈希的对象进行哈希计算,以根据计算结果判断是否能够生成该区块,具体为:根据所述第二字节数组中的每位数字对应生成包括m个字母的字母数组;获取与字母数组中的每个字母相应的m个哈希函数;根据m个哈希函数构成m重的复合哈希函数对待进行哈希的对象进行哈希计算,以根据计算结果判断是否能够生成该区块。优选地,所述待进行哈希的对象为待生成的区块的区块头,且该对象包含一个随运算次数变化的nonce值。优选地,所述将所述高度转为字节,并对所述字节进行哈希运算,得到a位的第一字节数组,具体为:将所述高度中包含的各个数字转换为二进制,再根据转换后的二进制生成字节;采用SHA256对所述字节进行哈希计算,得到对应的哈希值;将所述哈希值转换为10进制的具有32位的第一字节数组。本专利技术实施例提供了一种面向区块链的动态哈希计算装置,包括:获取单元,用于获取待进行哈希的对象以及待生成的区块的高度;第一字节数组计算单元,用于将所述高度转为字节,并对所述字节进行哈希运算,得到a位的第一字节数组;第二字节数组计算单元,用于根据预设的运行次数m,对所述第一字节数组的前m位进行取n模计算,得到m位的第二字节数组;其中,n为预设的哈希算法的种类数;哈希计算单元,用于根据第二字节数组中的每位数字对应的哈希算法以及数字的顺序,调用相应的哈希算法对待进行哈希的对象进行哈希计算,以根据计算结果判断是否能够生成该区块。优选地,所述n为11。优选地,定义A~K分别于11中哈希函数一一对应;并定义0~10分别对应A~K;则所述哈希计算单元具体包括:字母数组生成模块,用于根据所述第二字节数组中的每位数字对应生成包括m个字母的字母数组;哈希函数获取模块,用于获取与字母数组中的每个字母相应的m个哈希函数;哈希计算模块,用于根据m个哈希函数构成m重的复合哈希函数对待进行哈希的对象进行哈希计算,以根据计算结果判断是否能够生成该区块。本专利技术实施例还提供了一种面向区块链的动态哈希计算节点,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述的面向区块链的动态哈希计算方法。本专利技术实施例还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的面向区块链的动态哈希计算方法。本专利技术实施例提供的面向区块链的动态哈希计算方法、装置、节点及计算机可读存储介质,能根据当前区块的高度提供动态的,随机的,多样化的哈希函数使用方法,一方面,实现枚举过程动态适应区块的高度,缩短运算时时间,从而节约能源;另一方面,由于哈希过程是适应区块的高度动态变化的,可以进一步提高运算的安全问题,尽可能避免51%攻击的问题。附图说明为了更清楚地说明本专利技术的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是比特币的一个区块的结构示意图。图2是本专利技术第一实施例提供的面向区块链的动态哈希计算方法的一种流程示意图。图3是本专利技术第一实施例提供的面向区块链的动态哈希计算方法的另一种流程示意图。图4是本专利技术第二实施例提供的面向区块链的动态哈希计算装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。对本专利技术进行进一步详细说明之前,对本专利技术实施例中涉及的名词和术语进行说明。代币,本专利技术实施例中指加密互联网货币,是以密码学为基础的分布式数字货币,包括比特币、以太币、莱特币以及其他类似的衍生币种。区块(Block)是一个存储单元,各个区块之间通过随机散列(也称哈希算法)实现链接(chain),后一个区块的区块头(区块的头部)包含前一个区块的哈希值,从而实现区块与区块相继接续,形成区块链。如图1所示,比特币的区块由区块头及该区块所包含的交易列表组成。区块头的大小为80字节,由4字节的版本号、32字节的上一个区块的散列值、32字节的MerkleRootHash(通过MerkleTree算法对区块包含的交易列表处理生成本文档来自技高网
...

【技术保护点】
1.一种面向区块链的动态哈希计算方法,其特征在于,包括如下步骤:获取待进行哈希的对象以及待生成的区块的高度;将所述高度转为字节,并对所述字节进行哈希运算,得到a位的第一字节数组;根据预设的运行次数m,对所述第一字节数组的前m位进行取n模计算,得到m位的第二字节数组;其中,n为预设的哈希算法的种类数;根据第二字节数组中的每位数字对应的哈希算法以及数字的顺序,调用相应的哈希算法对待进行哈希的对象进行哈希计算,以根据计算结果判断是否能够生成该区块。

【技术特征摘要】
1.一种面向区块链的动态哈希计算方法,其特征在于,包括如下步骤:获取待进行哈希的对象以及待生成的区块的高度;将所述高度转为字节,并对所述字节进行哈希运算,得到a位的第一字节数组;根据预设的运行次数m,对所述第一字节数组的前m位进行取n模计算,得到m位的第二字节数组;其中,n为预设的哈希算法的种类数;根据第二字节数组中的每位数字对应的哈希算法以及数字的顺序,调用相应的哈希算法对待进行哈希的对象进行哈希计算,以根据计算结果判断是否能够生成该区块。2.根据权利要求1所述的面向区块链的动态哈希计算方法,其特征在于,所述n为11。3.根据权利要求2所述的面向区块链的动态哈希计算方法,其特征在于,定义A~K分别于11中哈希函数一一对应;并定义0~10分别对应A~K;则所述根据第二字节数组中的每位数字对应的哈希算法以及数字的顺序,调用相应的哈希算法对待进行哈希的对象进行哈希计算,以根据计算结果判断是否能够生成该区块,具体为:根据所述第二字节数组中的每位数字对应生成包括m个字母的字母数组;获取与字母数组中的每个字母相应的m个哈希函数;根据m个哈希函数构成m重的复合哈希函数对待进行哈希的对象进行哈希计算,以根据计算结果判断是否能够生成该区块。4.根据权利要求1所述的面向区块链的动态哈希计算方法,其特征在于,所述待进行哈希的对象为待生成的区块的区块头,且该对象包含一个随运算次数变化的nonce值。5.根据权利要求1所述的面向区块链的动态哈希计算方法,其特征在于,所述将所述高度转为字节,并对所述字节进行哈希运算,得到a位的第一字节数组,具体为:将所述高度中包含的各个数字转换为二进制,再根据转换后的二进制生成字节;采用SHA256对所述字节进行哈希计算,得到对应的哈希值;将所述哈希值转换为10进制的具有3...

【专利技术属性】
技术研发人员:魏松杰莫冰刘才陈樟荣杨锋戴闽华
申请(专利权)人:深圳沃链科技有限公司
类型:发明
国别省市:广东,44

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

1