我刚入圈那会儿一直没弄明白这个。
在区块链里,哈希几乎无处不在:交易 ID 是哈希,区块之间靠哈希串起来,比特币挖矿就是在不停地算哈希。它到底是什么、为什么这么重要,这篇用尽量少的术语讲清楚。
对应币种:$BTC 现价 83,050(24h +0.89%)。
▍哈希是什么
哈希函数可以把任意长度的数据,变成一串固定长度的输出,这串输出叫哈希值,也叫摘要。比如 SHA-256 的输出固定是 256 位,用十六进制写出来就是 64 个字符。
可以把哈希值理解成数据的“指纹”:同样的数据,算出来的指纹永远一样;数据哪怕只改一个字符,指纹就会变得完全不同。
▍好的哈希函数什么样
第一,单向:从哈希值几乎不可能反推出原始数据。第二,抗碰撞:几乎不可能找到两份不同的数据,算出同一个哈希值。第三,结果不可预测:不真正算一遍,就没法知道输出是什么。
要注意哈希不是加密。加密的数据可以用密钥还原,哈希是单向的,从哈希值还原不出原来的内容。
▍区块链在哪里用哈希
比特币用 SHA-256 计算区块哈希和交易 ID,而且连算两次;生成常见的 P2PKH、P2WPKH 地址时,会对公钥先做 SHA-256、再做 RIPEMD-160(Taproot 地址则直接用公钥)。以太坊用的是 Keccak-256,地址就取自公钥 Keccak-256 哈希的后 20 个字节。
每个区块头里都记着上一个区块的哈希。改动任何一个历史区块,它的哈希就会变,后面所有区块都对不上,这是区块链难以篡改的关键之一。比特币挖矿则是不停地尝试不同的输入,直到算出一个满足难度要求的哈希。
▍对普通用户有什么用
查一笔转账,用交易哈希去区块浏览器搜,比看截图可靠得多。下载钱包软件后,对照官方公布的 SHA-256 校验值,可以确认安装包没有被篡改。
▍小结
记住一句话:哈希是数据的指纹,能公开、能比对,但不能反推。交易哈希可以随便给人看,私钥和助记词则永远不能。遇到宣称稳定高回报的说法,先打个问号。
身边有刚入圈的,不妨转给他看看。
小心风险,自己拿主意。