数字货币钱包地址生成到底怎么搞?从密钥派生到地址编码一次讲清
数字货币钱包地址不是随便编的数字货币钱包地址生成到底怎么搞?从密钥派生到地址编码一次讲清,背后是一整套从随机数到哈希编码的技术链路。我做了几年链上开发,把生成过程拆开讲。
钱包地址的源头是私钥,一般取256位安全随机数。开源钱包常用BIP-39标准,把熵值映射成12到24个助记词。随机源依赖操作系统的CSPRNG,比如Linux的/dev/urandom。私钥一泄露数字货币钱包地址生成,链上资产直接归零。
拿到私钥后,用椭圆曲线乘法(secp256k1)算出公钥。公钥是320位数据,再经SHA-256和RIPEMD-160两次哈希压成20字节。这20字节就是公钥哈希,以太坊体系下流程类似,只是曲线参数和编码方式略有不同。
地址编码各家标准不同。比特币把20字节哈希加4字节校验做Base58Check,得到以1或3开头的地址;以太坊取哈希后20字节拼0x前缀。地址本身不含任何链上信息,查余额得去读链。
实际开发中,多数团队用BIP-32层级确定性派生,一个种子词就能扩展出成百个地址。多签、热钱包、冷钱包的隔离靠HD派生路径实现。生成地址本身很快,真正费时间的是密钥管理。你平时生成钱包,密钥是存硬件设备里还是写在配置文件里?

