BTC-E美元实时行情Bitstamp美元实时行情BTC-E莱特币实时行情比特币中国实时行情

ZeroNet私钥需要像比特币钱包那样定期备份吗

作者:网文 来源:转载 日期:2016-5-10 22:20:52 人气: 标签:比特币 【打印】

ZeroNet私钥需要像比特币钱包那样定期备份吗?ZeroNet私钥体系初探

前几日跟论坛里几位网友讨论过这个问题,他们都说要定期备份。可是我长期混迹于ZeroNet,并没有看到作者强调这一点,加上自己的一点直觉,我认为有蹊跷。后来一查证,果不其然,ZeroNet用了比较新的比特币技术,而大多数网友可能跟我一样,对比特币技术的认识还停留在n年前,是时候更新一下相关姿势了。

  • 首先要科普一个比较新的比特币技术的概念,叫 Hierarchical Deterministic Protocol ( 简写成HD Protocol) ,有些人翻译成“分层确定性协议”,在Bitcoin Improvement Proposals (简称BIP,比特币改进提议)里列为32号,所以也称为BIP32 。用了HD协议的比特币钱包称为HD钱包。相关技术细节有兴趣请google,我在这里只说一个结论——BIP32里,由一个主私钥可以生成很多对子私钥和子公钥,并且所有子私钥都可以用这个主私钥无限次重新生成。BIP32消除了之前比特币钱包需要定期备份的不便。
  • 而ZeroNet恰恰用了刚才说的BIP32 。clone操作的这段代码里调用了getNewSiteData这个函数,而getNewSiteData这个函数的代码里site_privatekey是由主私钥master_seed通过bip32生成的。如果你的网站私钥丢失但是主私钥还在,可以通过测试代码以网站content.json里的address_index为参数重新生成网站私钥,只不过作者没有在主代码里实现,想要重新恢复有点折腾,我估计以后作者会实现自动恢复的功能。但是请注意,这里说的是clone操作下的网站私钥情况。
  • 通过命令行siteCreate的操作却不是调用bip32,而是完全随机的产生网站私钥privatekey = CryptBitcoin.newPrivatekey()
  • 帐号信息可由由主私钥重新生成的佐证,通过ZeroHello主页的搜索功能搜master_seed发现,作者在这里权威解答

    To be more specific you only need to backup the value of the master_seed from the file and all other identity information can be recovered from it

  • clone操作产生的新网站新私钥可以由主私钥重新生成的佐证,官方文档内容:

    address_index
    The site's address BIP32 sub-key index of your BIP32 seed. Auto-added when you clone a site. It allows to recover the site privatekey from your BIP32 seed.
    Example: 30926910

结论:

通过浏览器界面的clone操作产生的新网站新私钥,其实是子私钥,可以由主私钥重新生成,并不需要定期备份users.json文件。如果你是用命令行siteCreate的操作来创建网站,命令行会提示你保存新网站的私钥,此时你一定要在别处保存好该私钥,并不像clone那样有通过主私钥重新生成的可能,丢失了就丢失了。


本文发出后,根据网友反馈,补充说明一下:本文探究的是“是否需要定期备份”,而不是“是否需要备份”,备份users.json文件的必要性是毋庸置疑的,因为那里包含了本文探讨的核心——主私钥master_seed


PS: 作为一个非专业人士,第一次分析ZeroNet源码,若有错误请指正:)也希望借此抛砖引玉,让更多人来深入研究ZeroNet

返回顶部】【关闭窗口
【读完这篇文章后,可否发表您的感受?】
0
0
0
0
0
0
0
0
本文网址:
安全联盟站长平台 360网站安全平台