2022-01-05 14:21:16
哈希算法是币圈中经常会出现的一个专业术语,哈希音译自“Hash”,又名为“散列”,它的本质上是一种计算机程序,可接收任意长度的信心输入,然后通过哈希算法,创建小的数字“指纹”的方式。其实哈希算法离我们很近,包括比特币和以太坊在内,从密码存储到文件验证系统,到处都会使用加密哈希,而哈希算法也有许多种,那么,哈希算法有哪些?下面211Coin小编就给大家仔细盘点一下常用的哈希算法。
1、加法Hash;所谓的加法Hash就是把输入元素一个一个的加起来构成最后的结果,prime是素数。
2、位运算Hash;这类型Hash函数通过利用各种位运算(常见的是移位和异或)来充分的混合输入元素。
3、乘法Hash;这样的类型的哈希函数利用了乘法的不相关性。乘法哈希里最有名的就是adler32,reactJS的checksum校验就是使用的adler32的改良版。
4、除法Hash;和乘法一样用了不相关性,但性能不好。
5、查表Hash;查表Hash最有名的样例莫过于CRC系列算法。尽管CRC系列算法本身并非查表,可是,查表是它的一种最快的实现方式。以下是CRC32的实现:
查表Hash中有名的样例有:Universal Hashing和Zobrist Hashing。他们的表格都是随机生成的。
6、混合Hash;混合Hash算法利用了以上各种方式。各种常见的Hash算法,比方MD5、Tiger都属于这个范围。它们一般非常少在面向查找的Hash函数里面使用。
当考虑到整合哈希算法到区块链协议中的时候,比特币使用了比较旧的SHA256算法,但是以太坊使用了修改后的SHA3算法,作为工作量证明的算法。选择工作量证明区块链的哈希功能是很重要的部分,但是计算的效率称为哈希。
比特币SHA256算法通过特定的硬件ASIC,进行有效计算。在矿池中,很多都是在ASIC上写入的算法,但是这也会使得整个协议往中心化计算发展。也就是说,工作量证明激励了有效计算机器来聚集成矿池,同时也增加了哈希力。或者一种机器可以计算每个时间间隔的哈希数量。
以太坊,使用的是被称为KECCAK256的改进SHA3。而且,以太坊的工作量证明算法,Dagger-Hashimoto意味着意味着内存难以计算硬件。
比特币通过SHA256算法,会有很有趣的方式来获得哈希数据,因为它会在协议中运行算法的2次迭代。需要注意地是,这并不是生日攻击的对策,因为很明显如果hash(x) = hash(y),那么hash(hash(x)) = hash(hash(y))。但是,双重SHA256算法是被使用来减轻长度扩展攻击。
本质上来说,这类攻击包括,恶意欺诈的人知道哈希输入的长度,可以用来欺骗哈希来开始内部状态的某个部分,通过附加一个私密字符串到哈希值。SHA256,是SHA2算法大家庭中的一个,逃离这个陷阱,比特币通过计算哈希两次来减轻它。
以太坊2.0和BLAKE算法
SHA3并不是来自2006年NIST哈希比赛的唯一突破。尽管SHA3获得胜利,称为BLAKE的算法获得第二。对于以太坊2.0分片技术的部署,更有效的哈希几乎是个特性要求,研究团队非常重视。BLAKE2b哈希算法,这是BLAKE的更新版本,在和KECCAK256算法相比的时候,它由于效率很高正在被广泛使用,同时也保证了很高的安全性。
BLAKE2b的计算速率实际上是比KECCAK在现代CPU上要快3倍。
上述内容为大家解答了哈希算法有哪些?这个问题,哈希算法的概念可能一时半会让投资者难以理解,其实这很正常,区块链的知识比较广泛,并且会涉及到一些复杂的计算,而哈希算法就更难了,如果投资者很难理解通顺的话就不要急着投资,可以等待一段时间,多查看一些相似的案例,也可以寻找一些投资价值比较高的项目进行小范围的尝试,211Coin小编提醒大家,币圈中的专业术语还有很多,短时间内无法全部了解,想要投资数字货币的话要先做好功课。
565