区块广播:
ChainNode 链节点
区块链教程
新手入门
比特币地址和私钥是怎样生成的?

比特币地址和私钥是怎样生成的?

无主之地副船长船龄 6.6年来源
 45196  3
       比特币使用椭圆曲线算法生成公钥和私钥,选择的是secp256k1曲线。生成的公钥是33字节的大数,私钥是32字节的大数,钱包文件wallet.dat中直接保存了公钥和私钥。我们在接收和发送比特币时用到的比特币地址是公钥经过算法处理后得到的,具体过程是公钥先经过SHA-256算法处理得到32字节的哈希结果,再经过RIPEMED算法处理后得到20字节的摘要结果,再经过字符转换过程得到我们看到的地址。这个字符转换过程与私钥的字符转换过程完成相同,步骤是先把输入的内容(对于公钥就是20字节的摘要结果,对于私钥就是32字节的大数)增加版本号,经过连续两次SHA-256算法,取后一次哈希结果的前4字节作为校验码附在输入内容的后面,然后再经过Base58编码,得到字符串。


        这里需要提一下的是Base58编码为了让输出字符串易于辨别,所以编码时故意排除了4个字符:'0'、'I'、'l'、'O',如果你想生成一个带特殊词缀的地址那就不要带这4个符了,比如我的ID(walker)也就不能生成了。
  • 全部
  • 最佳
  • 怪咖 水手 船龄 3.1年 2016-03-24 11:53:35
    不太对哎。 误导人吗? SHA256结果是64字节,RIPEMED160结果是20字节
  • xzfkiller 副船长 船龄 3.1年 2016-03-21 23:18:21
    楼主写的不对,不要误导人了,唉
  • bitcoinReaver 副船长 船龄 4.3年 2015-03-17 17:53:55
    相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+"和"/"符号。

    附:http://zh.wikipedia.org/wiki/Base58
登录 账号发表你的看法,还没有账号?立即免费 注册
推荐教程
换一批