在区块链里,哈希几乎无处不在:交易 ID 是哈希,区块之间靠哈希串起来,比特币挖矿就是在不停地算哈希。它到底是什么、为什么这么重要,这篇用尽量少的术语讲清楚。

$BTC 的挖矿本质上就是反复计算 SHA-256 哈希,寻找满足难度要求的结果。目前 83,037.2(24h +0.3%)。

— 哈希是什么 —

哈希函数可以把任意长度的数据,变成一串固定长度的输出,这串输出叫哈希值,也叫摘要。比如 SHA-256 的输出固定是 256 位,用十六进制写出来就是 64 个字符。

可以把哈希值理解成数据的“指纹”:同样的数据,算出来的指纹永远一样;数据哪怕只改一个字符,指纹就会变得完全不同。

— 好的哈希函数什么样 —

第一,单向:从哈希值几乎不可能反推出原始数据。第二,抗碰撞:几乎不可能找到两份不同的数据,算出同一个哈希值。第三,结果不可预测:不真正算一遍,就没法知道输出是什么。

要注意哈希不是加密。加密的数据可以用密钥还原,哈希是单向的,从哈希值还原不出原来的内容。

— 区块链在哪里用哈希 —

比特币用 SHA-256 计算区块哈希和交易 ID,而且连算两次;生成常见的 P2PKH、P2WPKH 地址时,会对公钥先做 SHA-256、再做 RIPEMD-160(Taproot 地址则直接用公钥)。以太坊用的是 Keccak-256,地址就取自公钥 Keccak-256 哈希的后 20 个字节。

每个区块头里都记着上一个区块的哈希。改动任何一个历史区块,它的哈希就会变,后面所有区块都对不上,这是区块链难以篡改的关键之一。比特币挖矿则是不停地尝试不同的输入,直到算出一个满足难度要求的哈希。

— 对普通用户有什么用 —

查一笔转账,用交易哈希去区块浏览器搜,比看截图可靠得多。下载钱包软件后,对照官方公布的 SHA-256 校验值,可以确认安装包没有被篡改。

— 最后说两句 —

记住一句话:哈希是数据的指纹,能公开、能比对,但不能反推。交易哈希可以随便给人看,私钥和助记词则永远不能。投入按自己的承受能力来,给自己留足退路。

你以前有没有理解错过这一点?

怎么操作自己决定,这里只是分享。