知识库详情
知识库

以“词条释义”的形式对比特币区块链技术中经常涉及的术语及基本概念进行专业化的阐释和解读。

钱包导入格式(WIF)
返回上级
BSV区块链编辑 2022-04-14 18:24 82

钱包导入格式,英文为Wallet Import Format(WIF),有些地方也称为钱包导出格式(Wallet Export Format)。它是一种对私密的ECDSA密钥进行编码的方法,使ECDSA密钥变得更加易于复制。

从私钥到WIF

下面举例示范从私钥转换到WIF的步骤:

步骤1:获取私钥

 0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D

步骤2:如果是主网地址,则在该私钥前面添加一个 0x80 字节;如果是测试网地址,则在该私钥前添加一个0xef字节。如果私钥对应于压缩的公钥,还需要在末尾添加0x01字节,这样就得到了扩展密钥

 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D

步骤3:对扩展密钥执行SHA-256哈希转换

 8147786C4D15106333BF278D71DADAF1079EF2D2440A4DDE37D747DED5403592

步骤4:对SHA-256哈希的结果再执行一次SHA-256哈希转换

 507A5B8DFED0FC6FE8801743720CEDEC06AA5C6FCA72B07C49964492FB98A714

步骤5:获取第二次SHA-256哈希转换结果的前4个字节,这是校验和(checksum)

 507A5B8D

步骤6:将在第五点当中得到4个校验和字节加到第二步当中得到的扩展密钥的末端

 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D507A5B8D

步骤7:使用Base58Check编码将结果从字节字符串转换为base58字符串。以下即为是钱包导入格式

 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ

 

从WIF到私钥

下面举例示范从WIF转换到私钥的步骤:

步骤1:取钱包导入格式字符串

 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ

步骤2:使用Base58Check编码将其转换为字节字符串

 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D507A5B8D

步骤3:从字节字符串中删除最后4个字节,这是校验和(checksum)

 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D

步骤4:删除第一个字节(应该是0x80)。如果私钥对应于压缩的公钥,还要删除最后一个字节(应该是0x01)。如果它对应于压缩的公钥,则WIF字符串将以K或L开头,而不是以5(或c,而不是测试网上的9)开头。以下内容即为私钥:

 0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D

 

检查WIF校验

步骤1:采用钱包导入格式字符串

 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ

步骤2:使用Base58Check编码将其转换为字节字符串

 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D507A5B8D

步骤3:从字节字符串中删除最后4个字节,也就是校验和字节

 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D

步骤4:对剩下的字符串执行SHA-256哈希转换

 8147786C4D15106333BF278D71DADAF1079EF2D2440A4DDE37D747DED5403592

步骤5:对上一步的结果再执行一次SHA-256哈希转换

 507A5B8DFED0FC6FE8801743720CEDEC06AA5C6FCA72B07C49964492FB98A714

步骤6:提取上一步SHA-256哈希转换结果的前4个字节,这就是校验和

 507A5B8D

步骤7:核验它与第2步里得出的字符串的最后4个字节是否相同

 507A5B8D

步骤8:如果他们相同,并且第2步里得出的字符串以0x80(测试网为0xef)开头,则校验和的验证通过,无错误返回。

应用
应用层协议
在比特币上进行开发
比特币地址
元网协议
区块链浏览器
确定性钱包
比特币地址技术
Base58Check编码
私钥
助记词
钱包导入格式(WIF)
纸钱包
脑钱包