在浏览区块链浏览器时,我们可以发现每个区块都伴随着一个特殊的数值——区块哈希值。那么,这个神秘的哈希值究竟是什么呢?
什么是哈希值?拿人来做比喻,判断两人是否为同一人,单纯依据名字显然是不够准确的,因为重名的概率非常高。最佳的方式是给每人分配一个独一无二的身份号码,比如身份证号,它包含了地域、出生日期等信息,有效地解决了人的身份重复问题。但是,如何给物品也分配这样的编号呢?地域分类不合适,按照时间分类成本过高且范围过大,按照类型分类则会导致类别过多难以管理。
幸运的是,数学给出了答案:哈希算法。哈希算法可以将任意长度的数据转化为固定长度的哈希值,例如:05e9898fc9c5de721851ee21aa763c1e599f9668b7b70fe1a590fd67764f382e,并具有以下特性:
1. 相同文件的哈希值相同。
2. 不同文件的哈希值相同的概率接近于零。
3. 相似文件的哈希值不相似。
4. 哈希值具有固定长度。
5. 无法从哈希值推导出原始数据。
6. 计算速度极快。
对excel熟悉的读者应该知道,具备前两个特性的唯一编码在很多场景下非常有用,如查重、配对、统计等。而哈希值具备的所有特性使得它成为一种极其强大的验证工具,在数字签名、区块链等领域得到了广泛应用,也是比特币等加密货币得以诞生的关键技术之一。