初识比特币——比特币地址

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xxgujh/article/details/73060846

比特币地址是比特币网络的身份标示,用于接收bitcoins转账。它是由1或3开头的26到35位的数字和字母组成,生产不需要任何代价,一个用户可以拥有多个地址。很多钱包工具可以方便的生成和管理比特币地址。下面我会简单介绍下比特币地址的生成原理。

  1. 随机生产一个符合ECDSA规范的私钥;

    18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725
  2. 根据ECDSA,生成公钥;

    0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6
  3. 对公钥执行SHA-256hash算法;

    600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408
  4. 对3的结果执行RIPEMD-160hash算法;

    010966776006953D5567439E5E39F86A0D273BEE
  5. 在4的结果前面增加版本号(0x00是主网络 - Main Network);

    00010966776006953D5567439E5E39F86A0D273BEE
  6. 对5的结果执行SHA-256hash算法

    445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094
  7. 对6的结果再次执行SHA-256hash算法

    D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30
  8. 取7的前4个字节,这是地址的校验和(checksum)

    D61967F6
  9. 将8的结果追加到5的结果后面,形成25字节的比特币地址

    00010966776006953D5567439E5E39F86A0D273BEED61967F6
  10. 对9的结果执行 Base58Check 编码算法,得到常用格式的比特币地址

    16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

从上述步骤中明显可以看出,比特币地址和公钥并不是一个概念,只不过为了简单起见把比特币地址说成了公钥而已。
比特币地址不推荐重复使用,正常情况下,应该一个交易一个地址,这样能更好的保护比特币私钥和利用的比特币网络的准匿名性。

参考资料
1. bitcoin wiki – address
2. bitcoin wiki – technical background of version 1 bitcoin address

猜你喜欢

转载自blog.csdn.net/xxgujh/article/details/73060846