BitShares Forum

Main => 中文 (Chinese) => Topic started by: abit on January 23, 2015, 02:22:33 pm

Title: 【注意】关于钱包私钥导出的注意事项
Post by: abit on January 23, 2015, 02:22:33 pm
可能很多人习惯了用导出私钥的方式来备份钱包,像下面这样,在控制台执行命令(将下面test.abit替换成自己的账号):
Code: [Select]
>> wallet_dump_private_key test.abit
"5HtWgbu1vcPe7trStHaVKoRjjPaMaGPzxJgavLHLw1tvPwuCPCx"

但是请注意,这种方法可能会导致账号异常,因为备份出来的私钥可能不完整。

要想查看自己的备份是否存在问题,首先请按下面的命令检查一下要备份的账号(将参数abit或test.abit替换成你的账号)
Code: [Select]
>> wallet_get_account abit
{
...
  "owner_key": "BTS7NLcZJzqq3mvKfcqoN52ainajDckyMp5SYRgzicfbHD6u587ib",
  "active_key_history": [[
      "2014-07-27T10:02:50",
      "BTS7NLcZJzqq3mvKfcqoN52ainajDckyMp5SYRgzicfbHD6u587ib"
    ]
  ],
...
}
Code: [Select]
>> wallet_get_account test.abit
{
...
  "owner_key": "BTS5R1G2iBqAoKAKZCRfJgZA7us7N7xkvSaMwStnY1hkK52s42A56",
  "active_key_history": [[
      "2015-01-07T13:40:53",
      "BTS5j2xL7jKjFprETK1suWfxGEux8gQcuheyaL9nytW9AHtzRDuUz"
    ]
  ],
...
}
可以看到,上面两个账号中,abit的owner_key和active_key是相同的,而test.abit的两个key不同。
原因是创建账号的钱包版本不一样。老版本钱包使用的两个key是相同的,但是从某个版本开始,创建账号时会使用两个不同的key。
(具体这两个key的用途,记得有人发帖说过,我回头找到了再补充)

如果账号的两个key是一样的,以账号名为参数备份私钥的方式就没问题。
如果账号的owner_key和active_key不同,则需要针对两个key分别进行备份,如下:
Code: [Select]
>> wallet_dump_private_key BTS5j2xL7jKjFprETK1suWfxGEux8gQcuheyaL9nytW9AHtzRDuUz
"5HtWgbu1vcPe7trStHaVKoRjjPaMaGPzxJgavLHLw1tvPwuCPCx"
Code: [Select]
>> wallet_dump_private_key BTS5R1G2iBqAoKAKZCRfJgZA7us7N7xkvSaMwStnY1hkK52s42A56
"5JYu4swx6bhpMxJBNU1hCAxPE21eFWt24VphkexexdmVZKutfzg"
可以看到,用active_key导出的私钥,和账号名导出的私钥是相同的。而owner_key导出的私钥不同。实际上owner_key更重要。
将这两个私钥都保存下来就可以了。

导入私钥恢复账号时,需要将两个私钥都导入一遍。

写在最后:
1.下一个版本的钱包,将不再支持用账号名作为参数来导出私钥,只能用key作为参数
2.官方更推荐用导出json的方式来备份钱包
Title: Re: 【注意】关于钱包私钥导出的注意事项
Post by: sudo on January 23, 2015, 03:49:09 pm
只备份了一个的话 是不是会悲剧?
Title: Re: 【注意】关于钱包私钥导出的注意事项
Post by: kokojie on January 23, 2015, 04:59:23 pm
只备份了一个的话 是不是会悲剧?

备份铁律:
* 备份一个等于没有备份
* 所有备份都在同一个地方等于没有备份。
Title: Re: 【注意】关于钱包私钥导出的注意事项
Post by: Snail on January 23, 2015, 06:02:22 pm
这个问题只存在于子账户吧
Title: Re: 【注意】关于钱包私钥导出的注意事项
Post by: abit on January 24, 2015, 12:15:03 am
这个问题只存在于子账户吧
主账户也有同样情况。子账户也有没问题的。
和创建账户的钱包版本有关系。
Title: Re: 【注意】关于钱包私钥导出的注意事项
Post by: sudo on January 24, 2015, 04:51:28 am
owner_key和active_key 用途啥的有啥区别?
Title: Re: 【注意】关于钱包私钥导出的注意事项
Post by: abit on January 24, 2015, 05:53:24 am
http://wiki.bitshares.org/index.php/BitShares_X_Glossary#Account

个人理解,大部分操作是使用active_key来做的;有了owner_key可以修改active_key。

具体使用范围,目前估计只能去看代码,不过代码也可能写错的。