区块链账户地址相关问题
本文最后更新于:2023年6月19日 晚上
私钥、公钥和地址是如何生成的?
以太坊地址生成的流程也是:私钥 -> 公钥 -> 地址。因此地址的生成需要三步:
- 生成一个随机的私钥(32 字节)-64 位的 16 进制字符
- 通过私钥生成公钥(64 字节)
- 通过公钥得到地址(20 字节)
第一步:私钥 (private key)
伪随机数产生的 256bit 私钥示例(256bit 16 进制 32 字节)18e14a7b6a307f426a94f8114701e7c8e774e7f9a47e2c2035db29a206321725
第二步:公钥 (public key)
- 采用椭圆曲线数字签名算法 ECDSA-secp256k1 将私钥(32 字节)映射成公钥(65 字节)(前缀 04+X 公钥+Y 公钥):
0450863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b23522cd470243453a299fa9e77237716103abc11a1df38855ed6f2ee187e9c582ba6
- 拿公钥(非压缩公钥)来 hash,计算公钥的Keccak-256哈希值(32bytes):
fc12ad814631ba689f7abe67**1016f75c54c607f082ae6b0881fac0abeda21781**
- 取上一步结果取后 20bytes 即以太坊地址:
1016f75c54c607f082ae6b0881fac0abeda21781
第三步:地址 (address)
0x1016f75c54c607f082ae6b0881fac0abeda21781
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!