钱包知识篇:数字钱包文件wallet.dat损坏怎么解决
数字钱包文件wallet.dat损坏怎么解决?当钱包文件wallet.dat出现损坏情况的时候,不要着急,如今各大数字货币交易网站比如BHCX都有这样的修复功能,需要使用正确的方法来修复,否则只会对其造成更大的损害,给我们带来更多的损失。
最近几年以来,伴随着比特币的诞生,数字货币行业获得了飞速的发展,越来越多的人开始关注到这个不曾了解的行业,也有不少人够买过一些数字货币进行尝试。可能中本聪提出比特币的时候是万万没想到的吧。很多人刚了解数字货币的时候是感到陌生的,还有太多的专有名词从来没有见过,我们比特币行情的宗旨就是帮助那些还不太了解数字货币的朋友,有什么还不了解的问题可以尽管提出来,小编为大家一一解答。
过去半年里小太的日常:
“比太钱包的wallet.dat放哪里啦?”
“比太没有wallet.dat”
“不可能,所有的比特币钱包都有wallet.dat,没wallet.dat的怎么能叫钱包?”
这个比特币老玩家们经常挂在嘴边的“wallet.dat”到底是何方神圣呢?
我们知道,从早期的比特币客户端(bitcoin-qt)开始,中本聪就设计了一个叫“wallet.dat”的文件,用来存放比特币私钥及相关交易。直到今天,官方的qt/core以及大部分第三方客户端都采用了类似的方案。
比特币玩家们通过努力学习,掌握了非常多的wallet.dat使用“技巧”,比如说,如何备份wallet.dat,钱包损坏如何恢复,甚至有人送比特币也是直接给一个wallet.dat(存储在光盘或U盘上)。对于大部分比特币用户来说,比特币就是wallet.dat,wallet.dat就是比特币。
当然,这其实并不十分准确,wallet.dat只是一种不太合理的文件存储方式(序列化或数据库),比特币就是比特币,它与wallet.dat一点关系都没有。
比特币的产权无论是过去、现在还是未来,都只由一个东西来确定,那就是私钥。谁掌握私钥,谁就控制着该地址上的比特币,弄丢私钥,比特币就没了。 重要的是私钥,那交易呢?难道交易不重要吗?比特币的区块链总账上记录的不都是交易吗?
交易的确也很重要,历史交易记录决定了某地址上的比特币余额,决定了您能花费多少钱。但重要的是区块链(Blockchain)上的交易,而不是您钱包文件wallet.dat里的交易。任何人都可以在自己的wal火币网卖出挂单会收取手续费let.dat中编造出一个假的交易,尝试着去花费,只是其它比特币节点并不会接受这笔交易而已。
也就是说,wallet.dat中存放的那些交易,仅仅是软件本身为了方便查询而采取的一种数据结构而已,毕竟,总不能每次查询相关地址的历史交易,就去检索整个区块链吧?
为了达到这个目的,将那些与钱包地址相关的比特币交易存放在wallet.dat中,就成了过去最常用的一种解决方案,跟这个文件打交道也就成了比特币用户们的“日常”。
那问题又来了,为什么要把交易和私钥存放在一起?
估计的答案是,中本聪最初就是这么设计的,后来大家也就继续这么做了。
这种设计的坏处很多:(这也是小太为什么会放弃bitcoinj而重新开发了bitherj的原因之一)
1、每同步到一个新区块,都要更新wallet.dat,也就是说,要对存放私钥的文件进行写操作,这既存在性能问题,也增加了写坏私钥数据的潜在风险;
2、对于普通用户,备份wallet.dat的难度远大于直接备份私钥,风险当然也更高,备份文件的有效性也很难验证;
3、区块同步时会一直更新wallet.dat文件,杀进程可能会导致wallet.dat与内存中的wallet对象不一致,有时可能需要修复,某些情况下甚至需要重置整个区块链数据;
4、钱包的扩展性严格受制于wallet.dat,比如说,像交易所或电子商务解决方案提供商,就无法采用bitcoin-core的解决方案。经常听他们说,“我们需要的地址太多,qt满足不了,只能基于qt改”。其实仔细一想,几百万甚至几千万条地址记录,对于数据库技术来说,都不能算是大数据量,怎么反倒成了困扰比特币行业的问题呢?
5、无法实现冷热分离的模型,私钥和交易存放在一起,交易需要与区块链进行同步,这也就意味着私钥是“热”的,想“冷”?改程序吧;
把交易和私钥放一起的坏处这么多,那我们又该怎么办呢?
很简单,交易是交易,私钥是私钥,这两者原本就不是一回事,千万别放一起。
对于用户来说,最重要的永远是私钥,有了私钥,任何时候都可以想办法从比特币区块链上获取到相关的交易,比如采用SPV轻钱包模式与区块链进行同步,或者从可资信赖的第三方区块查询服务(blockchain.info、blockmeta.info等)API上获取交易数据,这些方式都可以,只要获取的数据与比特币区块链一致就没有问题。 钱包本身可以提供任何一种私钥存储方式,只要足够安全可靠,文本、二维码、blockchain.info的json格式文件等,都是好方法。
这样,用户就无需学习wallet.dat,也不用再去备份这个文件。用户只需要明白一件事,私钥很重要,私钥决定产权,要备份、要保护的也是私钥。
因为乔布斯和他的iPhone,我们在使用智能手机时终于不用学习“文件”这个恼人的概念。没想到比特币又让大家重新纠结起wallet.dat,这到底是退步呢?还是退步呢?忘了wallet.dat吧,管好您的比特币,不需要文件,只需要私钥。