哈希函数(Hash Function)是把任意长度的输入(一段文字、一个文件、一整本小说)映射成固定长度输出的数学函数,输出称为哈希值或摘要。区块链里最常听到两个名字:SHA-256(输出 256 位,比特币用它做区块哈希与工作量证明)和 Keccak-256(以太坊用它计算地址与交易哈希,注意它并非 NIST 标准的 SHA3-256,两者填充方式不同,结果不一样)。
真正要记住的是哈希的三个性质: - 单向性(Preimage Resistance):从输入算输出很容易,从输出反推输入在计算上不可能。 - 抗碰撞性(Collision Resistance):找不到两个不同输入产生同一个输出。
256 位输出的取值空间约为 2²⁵⁶,暴力碰撞远远超出任何算力。 - 雪崩效应(Avalanche Effect):输入改动一个字符,输出约有一半比特翻转,看起来毫无关联。
正因为这三点,哈希才能充当数据的「指纹」。

想亲手体验雪崩效应,可以用命令行计算同一句话改一个字母后的 SHA-256:echo -n "hello" | shasum -a 256,只改一个字母,输出会完全不同。











