专栏名称: 申龙斌的程序人生
分享可繁殖的知识与技能:GTD时间管理、读书心得、个人成长、财富自由之路
目录
相关文章推荐
程序员小灰  ·  利用AI编程,小灰做了一个五子棋游戏 ·  2 天前  
码农翻身  ·  我承认,我低估小红书了 ! ·  4 天前  
OSC开源社区  ·  Rust重写万物之——彻底重写SQLite ·  4 天前  
OSC开源社区  ·  阿里最受欢迎Java开源项目——Nacos开 ... ·  1 周前  
51好读  ›  专栏  ›  申龙斌的程序人生

HD钱包【区块链生存训练】

申龙斌的程序人生  · 公众号  · 程序员  · 2017-06-13 09:37

正文

早期的Bitcoin Core钱包一次性生成100个私钥,如果交易比较频繁,私钥可能会用光,然后再产生一批私钥,所以需要定期备份wallet.dat文件,否则会损失部分比特币。


在BIP032规范(https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)中引入了HD钱包的概念,不是HardDisk的缩写,而是指分层确定性(Hierarchical Deterministic)钱包。


所谓确定性,就是只需一个主私钥(根私钥),就可以生成所有其它私钥,这样备份起来更方便。当然如果这个主私钥泄漏,则所有子私钥也就泄漏了,所有的币也就都交给别人了。


所谓分层,就是一个大公司可以为每个子部门分别生成不同的私钥,子部门还可以再管理子子部门的私钥,每个部门可以看到所有子部门里的币,也可以花这里面的币。也可以只给会计人员某个层级的公钥,让他可以看见这个部门及子部门的收支记录,但不能花里面的钱,财务管理更方便了。

摘自《精通比特币》


Bitcoin Core里的HD钱包


新版本的Bitcoin Core钱包也支持HD钱包,如果右下角的HD图标没有打叉,则说明你正在使用HD钱包。



用《比特币的私钥》文章中介绍的办法导出私钥时,可以看到有一行标记着extended private masterkey,这就是主私钥。实际上扩展型主私钥还包含着链码(chain code),用于恢复所有子私钥,更多细节可以看参考文献。


其后的每个私钥的末尾有 hdkeypath=m/0'/0'/1' 这样的标记,这就是它的分层路径,表示m节点(主节点)下的0节点的0节点的1节点。


理论上说,这种HD钱包备份一次就可以了,以后总能恢复所有的私钥。但为了保险起见,养成定期备份的习惯总是好的,毕竟辛辛苦苦买的几个币别折腾没了。


Multibit HD


这是一款轻钱包,看名字就知道它也是一款HD钱包。它用12到16个单词来生成主私钥,然后再生成所有子私钥。


为了万无一失,建好钱包后,转入少量BTC,备份,再把软件卸载了重装,用密令恢复钱包,看看BTC是否还在,然后再转入更多的BTC,虽然麻烦一点,但绝对值得。最近群里的一位朋友,用12个单词的密令恢复钱包,钱包恢复了,可惜钱没了,正在寻求帮助呢。


小结:

  • HD钱包不是指硬钱包,而是分层确定性钱包

  • 只备份主私钥就可以生成所有的子私钥

  • 可以分层控制


参考资料:

  • http://www.8btc.com/hd-wallets

  • http://www.8btc.com/how-to-use-hd-wallets

  • https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki

  • https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki


我的饭团已经运行了21天,包月价格已从6.99元涨到9.99元,学习要趁早。


↓点击阅读原文,也可直达饭团。