时间:2023-08-18|浏览:172
计算机密码学对区块链技术来说可谓是重中之重。我们在阅读各种区块链项目的白皮书或者区块链相关书籍中,也多少会提及XX算法,如哈希算法。那么什么是哈希算法呢?
哈希算法是一种只能加密,不能解密的密码学算法,可以将任意长度的信息转换成一段固定长度的字符串。
哈希是一种加密算法。哈希函数(Hash Function),也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值(Hash Value)、杂凑值或者消息摘要(Message Digest)。它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。
它的函数表达式为:h=H(m)。无论输入是什么数字格式、文件有多大,输出都是固定长度的比特串。以比特币使用的Sh256算法为例,无论输入是什么数据文件,输出就是256bit。
哈希算法可以将任意长度的信息转换成一段固定长度的字符串。这段字符串有以下几个特点:
1. 就算输入值只改变一点,输出的哈希值也会天差地别。 2. 只有完全一样的输入值才能得到完全一样的输出值。 3. 输入值与输出值之间没有规律,所以不能通过输出值算出输入值。要想找到指定的输出值,只能采用枚举法:不断更换输入值,寻找满足条件的输出值。
哈希算法保证了比特币挖矿不能逆向推导出结果。所以,矿工持续不断地进行运算,本质上是在暴力破解正确的输入值,谁最先找到谁就能获得比特币奖励。