关于区块链中的哈希算法


文章目录



什么是哈希算法

区块链中每个区块都有一个唯一的哈希标识,被称为区块哈希,区块通过记录上一个区块的哈希来指向上一个区块.
这里说说的哈希算法,又称散列算法,它是一个单向函数,可以把任意长度的输入数据转化为固定长度的输出.

我们对下面的字符串求哈希值:
采用SHA-256算法:

yijiebuyi.com

f4353d56fc3482fe1acd7456b7431acc9dbaa252a82dc1293161ab4fd26368e5

yijiebuyi.com

bea4b45352c6101f2c2a7d47ec024b3d7c50a72e38e611b5b3c0d9d33b904983

上面俩个字符串唯一区别是小数点(.) 第一个是半角输入法句号.第二个是全角输入法句号.
任何数据的任何改动,都会导致哈希算法结果别动

比特币的区块链使用SHA-256(安全哈希算法)哈希算法,
2001年,SHA-256 Hashing算法由美国国家安全局(NSA)开发.
是一种把任何长度的数据提炼出固定长度数字“指纹”的方法.


哈希算法可以被破解吗

因为哈希算法是将任意内容进行加密算法得到固定长度的散列值;
也就可以理解为从一个无限的集合去对应一个有限的集合;
那理论上一定存在相同的散列值;

哈希碰撞的本质是把无限的集合映射到有限的集合时必然会产生碰撞;
我们需要计算的是碰撞的概率;
碰撞的概率和输出的集合大小相关,输出位数越多,输出集合就越大,碰撞率就越低.

SHA-256的理论碰撞概率是:
尝试2的130次方的随机输入,有99.8%的概率碰撞;
2的130次方是一个非常大非常大的数字,大约是1361万亿亿亿亿;
以现有的计算机的计算能力,是不可能在短期内破解的.

出自:关于区块链中的哈希算法

回到顶部