哈希
把任意数据压成固定长度指纹的算法。

它在背后做了什么
哈希听起来很技术,但它是理解"区块链为什么改不了"的钥匙。你可以把它想成一台绞肉机:放进去一整本书,出来的是一小段固定长度的字符串。这段字符串有几个神奇的性质——同一本书每次绞出来都一样;但只要书里改了一个标点,绞出来的结果就完全不同;而且你拿着绞出来的字符串,没法还原出原书。正是这些性质,让哈希成了校验"数据有没有被动过"的利器。
在区块链里,每个区块都包含上一个区块的哈希。这样一环扣一环,谁要是偷改了早先某个区块的内容,那个区块的哈希就会变,导致后面所有区块的"指纹"对不上,立刻露馅。这就是"链"的由来,也是它号称不可篡改的技术根基。对新手而言,懂了这一点,很多"为什么区块链安全"的疑问就通了。
新手会在哪看到它
日常用币时你不需要自己算哈希,但会经常看到它的产物:你转一笔账,系统会给你一串交易哈希,拿它去区块浏览器就能查这笔交易;钱包地址、区块编号本质上也都和哈希有关;比特币挖矿,矿工拼的就是谁先算出符合条件的哈希。一些软件下载页也会附"校验哈希",让你核对下载的文件有没有被篡改。关于哈希在以太坊里的角色,可参考 ethereum.org 的区块文档。
一个你随时能自己验证的小例子:很多正规软件的下载页,会在下载按钮旁附一串"SHA-256 校验值"。你把下载好的安装包用系统自带的命令算一次哈希,再和官网给的那串逐位对比——完全一致,说明文件没在传输途中损坏、也没被人掉包动过手脚;只要差一个字符,就说明这份文件已经不是官方那一份,别装。这正是哈希两个性质在日常里的体现:同样的文件每次算出来都一样,而文件哪怕被改了一个字节,哈希也会面目全非。区块链把同样的招数用到了账本上,只是规模更大、环环相扣而已。
最常被弄混的地方
误区一:以为哈希是一种加密、能解密回去。不对,哈希是单向的,没有"解密"这回事,它和可逆的加密是两码事。误区二:以为不同数据可能算出同一个哈希就不安全。理论上的碰撞概率极低,主流哈希算法(如比特币用的 SHA-256)至今足够可靠。误区三:把交易哈希当成私密信息。它是公开的查询编号,给别人看没问题——真正不能外泄的是私钥和助记词。