本节我们来讨论下hash,如果你熟悉hash,可以跳过此节。

hash是对于某个特定数据获得其hash值得过程。对于某个数据其hash值实唯一的。hash函数以随意长度数据作为输入,输出特定长度的hash值。对于hash来说,需要具备以下特性:

  • 从hash值中无法恢复出原始数据。然而,hash并不是加密;
  • 对于某个特定数据,hash值是唯一的;
  • 输入数据即使改变一个字节,其hash值也会大不相同

Hash函数被广泛的用于数据一致性检查。例如,软件开发者提供软件包的同时,也会附带一个校验码。下载软件包后,可以使用hash函数计算出该软件包的hash值,并与软件开发者提供的校验码进行对比验证。

在blockchain中,hash用于保证block一致性。block的hash计算依赖于上一block的hash值。若想修改blockchain中的一个block,就需要把其后所有block全部重新计算一遍,这将消耗大量的算力(目前看是天文数字),这是得修改block变得非常非常困难,几乎不可实现。

results matching ""

    No results matching ""