美文网首页程序员
[eos32]keosd-钱包导入格式

[eos32]keosd-钱包导入格式

作者: FriendOfTime | 来源:发表于2020-05-15 13:03 被阅读0次

https://developers.eos.io/manuals/eos/v2.0/keosd/wallet-specification

基本看完了cleos和keosd相关内容,个人觉得keosd的钱包导入格式(Wallet Import Format WIF)有些内容值得一说。

1、 概述

钱包导入格式是对ECDSA私钥编码的标准。

EOS使用和BTC的WIF相同的版本,校验和编码规范,并且和现有的库兼容。

以下是一个WIF 私钥的例子:

5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAbuatmU

这种编码方式的好处:

      1)易于拷贝和粘贴私钥(确保整个密钥都被拷贝)

      2)文本方式的密钥,或者用户可编辑的文件格式

      3)缩短密钥的长度

坏处:

      1)不便手写(即使一个大小写错误也会导致重要问题)

      2)二进制或计算机存储器,其中代码处理密钥和数据已被检查

限制:

      1)将WIF密钥使用“私钥”来标记是更好的主意

      2)如果可以记录或重新键入密钥,则使用BIP39助记码标准是更好的选择

2、从私钥到WIF

    1) 一个假的私钥如下,全是0,32字节长度,16进制显示如下:

0000000000000000000000000000000000000000000000000000000000000000

意味着最多只有40+亿个私钥???

    2)在最前面加上0x80,表示版本,一个字节,这字节代码BTC主网。EOS使用相同的版本字节。

800000000000000000000000000000000000000000000000000000000000000000

    3)对上一步生成的结果执行sha-256

ce145d282834c009c24410812a60588c1085b63d65a7effc2e0a5e3a2e21b236

    4)对上一步生成的结果再次执行sha-256

0565fba7ebf8143516e0222d7950c28589a34c3ee144c3876ceb01bfb0e9bb70

    5)取前4个字节,作为checksum

0565fba7

    6)将上一步拿到的内容放到第2步的后面

8000000000000000000000000000000000000000000000000000000000000000000565fba7

    7)对上一步的结果做base58编码

5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAbuatmU

  以上就是一个用户可见的私钥的生成过程。

本质来说,就是对原始密钥“加盐”,生成一个base58的编码。

之所以用base58,是因为剔除了一些容易搞混的字符,如0和o,1和l等。防止用户手动输错。

3、从WIF到私钥

    1)从WIF私钥开始

5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAbuatmU

    2)做base58解码

8000000000000000000000000000000000000000000000000000000000000000000565fba7

    3)将以上结果切割成带版本的密钥和校验码

800000000000000000000000000000000000000000000000000000000000000000

0565fba7

    4)对带版本的密钥做sha-256

ce145d282834c009c24410812a60588c1085b63d65a7effc2e0a5e3a2e21b236

    5)对以上结果再做sha-256

0565fba7ebf8143516e0222d7950c28589a34c3ee144c3876ceb01bfb0e9bb70

    6)取前4个字节

0565fba7

    7)将第6步和第3不拿到的校验码判断是否一致

    8)切割带版本的密钥为版本和密钥

80

0000000000000000000000000000000000000000000000000000000000000000

    9)如果版本是80,则没有问题

相关文章

网友评论

    本文标题:[eos32]keosd-钱包导入格式

    本文链接:https://www.haomeiwen.com/subject/ihkcohtx.html