区块链与比特币里的密码学
SHA-256
一种密码学哈希函数:输出固定长度的“指纹”,单向不可逆,实际中几乎不可能撞车。比特币的工作量证明和很多地址生成步骤都用它(常常是连做两次 SHA-256)。
secp256k1 上的 ECDSA
比特币签名用的是 secp256k1 这条椭圆曲线。私钥是一个超大的整数,公钥是曲线上的点 私钥 · G。签名能证明你知道私钥,却不会把私钥泄露出去。
默克尔树
一个区块里的交易被两两哈希成一棵二叉树,树根(默克尔根)就代表了整批交易。轻钱包只要一小段证明,就能确认某笔交易确实在块里——不用把整片森林扛回家。
地址
地址是对公钥做哈希、再加上版本号和校验码之后的编码(Base58Check、Bech32 等)。私钥丢了,币就没了;只公开地址,不会泄露私钥。
本站浏览器里生成的是 ECDSA P-256(Web Crypto),不是比特币用的 secp256k1。思路一样,曲线不同——千万别混着用。