比特币的交易把比特币赋予到特定的公共密钥。比特币地址是一个公共密钥的散列编码。为了能接收比特币,你需要对你接收到的公共密钥进行私有密钥匹配。这有点像和账户关联的某种超长密码。你的比特币钱包含许多私钥,他们的作用是使你收到的交易请求生效。如果你在没有备份的情况下删除了你的钱包,你就失去了你对这些比特币的授权信息,同时也将永远失去与这些密钥相关联的比特币。 密钥池内初始有100个密钥。密钥池的大小可以用"--keypool"参量来查询。事实上,当你需要一个地址时(不论什么原因,比如发送,创造、生成新址等等),密钥不是新生成的,而是从密钥池里取走的。系统会生成一个全新的密钥地址把密钥池填满至100。所以当一个密钥池的备份第一次生成时,它包含你所有旧的密钥加上100个未使用的密钥。发送了一个交易请求后,它包含99个未使用的密钥。这样100次新密钥生成过后,你将会开始使用不在你的备份文件内的密钥。由于备份文件并不包含授权这些比特币的私有密钥,还原备份将会导致比特币的丢失。 创造一个新的地址会在你的钱包中添加一对新的公共和私有密钥。 每一对密钥都几乎是随机数,所以在生成前都不可预知。如果你备份了你的钱包,然后创造超过100个新地址,每对密钥都会和最新的地址相关联,并且不在原本的钱包中,因为每对密钥只有在创造后才能知道。如果你从你的备份文件中进行了恢复,你将会失去从这些新地址收到的比特币。 因为在用户界面中显示的地址并不是你钱包中所有的地址,所以形势就变得更加混乱。每个比特币的生成都是新的公共密钥生成的过程,而且,更重要的是,各个交易还会发送回新的密钥给自己。当发送比特币给别人时,你为自己生成一个新的密钥,并同时发送比特币到新的公共密钥和实际收件人的公共密钥。这是一个匿名功能,它使跟踪比特币交易变得更加困难。 所以如果你备份了, 做了100宗以上的交易就会产生一个新的密钥, 但是如果从备份处恢复, 你就会遗失部分比特币。比特币不会删掉任何密钥——它会创造一个新的密钥(不在你原先的备份中)然后用它传送比特币。 |