美文网首页
比特币源码研读(2)—— 钱包

比特币源码研读(2)—— 钱包

作者: laoxia1234 | 来源:发表于2018-04-23 15:37 被阅读0次

    导读:

            比特币钱包中没有存储任何比特币,而是存的取比特币的钥匙。比特币被记录在比特币网络的区块链中。 用户通过钱包中的密钥签名交易,从而来控制网络上的钱币。 在某种意义上,比特币钱包是密钥链。

            两种主要类型的钱包,区别在于它们包含的多个密钥是否相互关联:1、非确定性钱包 ;2、确定性钱包

    非确定性钱包:

            非确定性钱包(nondeterministic wallet)中每个密钥都是从随机数独立生成的。密钥彼此无关。这种钱包也被称为“Just a Bunch Of Keys(一堆密钥)”,简称JBOK钱包。

            这种钱包,每一次创建一个新的密钥对之后,需要重新备份私钥或者钱包文件,如果不备份,当前钱包丢失,那么会导致新添加的私钥丢失,如果新添加的私钥对应的地址中有币,那么这些币的控制权你也丢失了。

            这种钱包现在很少见到了,最近接触的几个门罗的山寨币,还是用的simplewallet 程序来创建钱包的,但是好像一个钱包只对应一个密钥对,该程序无法对钱包创建新的密钥对。

    确定性钱包:

            确定性钱包(deterministic wallet)中所有的密钥都是从一个主密钥派生出来,这个主密钥即为种子(seed)。该类型钱包中所有密钥都相互关联,如果有原始种子,则可以再次生成全部密钥。确定性钱包中使用了许多不同的密钥推导方法。最常用的推导方法是使用树状结构,称为分级确定性钱包或HD钱包。

            常见的很多钱包,创建备份之前要你先输入助记词,助记词就能还原种子,保存助记词就能保证钱包里面的币永不丢失。

            现在大部分钱包都是用的确定性钱包,新生成密钥对之后,并不需要再次备份,只需要有种子,就能自动推导所有子密钥,并获取币的所有权。

    回到上一章的问题,答案是:

    1、如果是非确定性钱包,那么地址C的币全部丢失,非确定性钱包无法推导新的密钥。

    2、如果是确定性钱包,那么地址C的币没有丢失,地址C的私钥,能够从种子推导出来。

    作者:区块链研习社比特币源码研读班,旋剑

    相关文章

      网友评论

          本文标题:比特币源码研读(2)—— 钱包

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