rpcdump.cpp::importprivkey和dumpprivkey
私钥可以以许多不同的格式表示,所有这些都对应于相同的256bit的数字。其中十六进制和原始的二进制格式用在软件的内部,很少展示给用户看。WIF格式用于钱包之间密钥的输入和输出,也用于代表私钥的二维码(条形码)。
WIF就是在长度64的16进制串对应的字节串前加上前缀0x80,再用Base58Check编码。WIF-compressed就是在64位16进制串对应的字节串前加上前缀0x80,并加上后缀0x01,再用Base58Check编码。私钥是非压缩的,也不能被压缩。WIF-compressed实际上只是表示“用于生成压缩格式公钥的私钥”,而“非压缩格式私钥”用来表明“用于生成非压缩格式公钥的私钥”。
1 | void CBitcoinSecret::SetKey(const CKey& vchSecret) |
dumpprivkey命令会导出WIF格式的私钥,这个私钥必须已经存在于钱包中,可以用getnewaddress命令生成新的私钥;importprivkey则将WIF格式的私钥导入到钱包中。