从助记词到地址,发生了什么?
比特币钱包找回指南 - 如何恢复丢失的比特币钱包
比特币钱包找回指南 (‘Bitcoin Wallet Recovery Guide’)
嗨,各位数字资产投资者!今天,我要给大家介绍一个有关比特币钱包的指南。顺带一提,找回比特币钱包竟然也需要一份指南?一开始我也是这么想的,想着只要将助记词随便导入一个钱包软件,比特币就回来了。但是事情并没有那么简单。所以,今天我就来向大家解释一下助记词和钱包背后的基本原理,以及如何找回你的比特币钱包。
首先,我们得先搞清楚私钥、公钥和地址之间的关系,这可是非常重要的。
私钥是一切的源头。你可以把它想象成一串有着256位0和1组成的随机数,类似于比特币的密码。要是搞不定这串数字,想要解锁比特币就像找“绣花针”一样难。你肯定听说过那句广为流传的名言:“Not your key, not your coin。”这就是在告诉你私钥的重要性。
公钥是由私钥通过椭圆曲线算法计算得到的。简单来说,公钥就是私钥经过一系列计算得到的另一串数字。
经过一系列单向的哈希运算和编码,公钥就变成了我们使用的比特币地址。这个地址就像是比特币的房产证,用来接收和发送比特币。
请注意,私钥、公钥和地址之间的关系是单向的,也就是说你可以由私钥计算出公钥,进而得出对应的地址,但你不能通过地址逆向计算出私钥。这是因为哈希算法和非对称密码学为私钥和比特币的安全提供了保障。
在早期的比特币钱包软件中,每当用户需要一个新地址时,钱包就会创建一个新的私钥并产生一个新的地址。这样一来,随着使用的地址越多,对应的私钥也越多。你可以想象一下,备份这么多私钥得多麻烦,简直要比备份“鸡肋文件”还麻烦。那时候,用户需要定期备份一个名叫“wallet.dat”的文件。一旦这个备份文件丢了,资金就没法找回了。
那么,是不是可以让不同私钥之间产生联系?而助记词又是如何取代繁琐而危险的备份方式的呢?这就得从三个非常重要的BIP(比特币改进提案)说起。
BIP39:助记词
BIP39是一个非常有名的BIP标准,它极大地简化了私钥备份的难度。私钥对于普通人来说太复杂了,很难清晰地记录和输入这么一长串字符。好在有了BIP39,我们可以将私钥转换为12或者24个简单的单词,这样在不同钱包之间导入和导出就变得更加方便了。
现在几乎所有的比特币钱包都支持助记词这种备份方式。但是光有助记词还是不够的。如果每个私钥之间没有联系的话,那就意味着每次使用新地址,就得备份一份新的助记词,感觉好像和备份“钱包文件”没什么区别。那么,那些常用的钱包是如何通过一个助记词管理一大堆钱包地址的呢?
实际上,在助记词出现之前,另一个BIP已经给我们提供了基础。
BIP32:分层确定性钱包
BIP32提供了一种方案:通过一个初始的主密钥,我们可以根据特定的算法(叫做密钥派生函数)派生出无数个扩展密钥对(扩展公钥和扩展私钥)。哇,通俗点说就像是一棵树,主密钥可以派生出一堆子密钥,每个子密钥又可以用同样的算法派生出自己的子密钥。
通过这种方式,我们可以拥有无穷多的地址。虽然这些扩展密钥对彼此没有直接的联系,但它们都来自于同一个初始主密钥。那么,问题来了,怎么建立这些扩展密钥和主密钥之间的联系呢?派生路径登场!
派生路径长这样:m/0'/0'/0/0/
这段字符清晰地表达了如何从最初的主密钥计算出具体某一对密钥的全过程。在这个字符中,“m”代表着最初的主密钥,每一层子密钥由“/”分隔开。每一个“/”代表经过了一轮密钥派生算法,斜杠之间的数字就是这一轮密钥派生算法的参数,也可以表示密钥的索引号。比如,由主密钥派生出的第一个子密钥为m/0,由这个子密钥派生出的第一个子密钥为m/0/0,依次类推……只要数字变了,得到的密钥和地址就会完全不同。这个派生路径就像是电脑里的文件路径,告诉你怎么找到某个具体的地址。
有了BIP32,钱包的管理就变得相当便利,只要一个私钥,就能管理千万个地址,真是方便到没朋友。所以,这下我们只需要备份好助记词就足够了,对吧?
但是聪明如你,可能会问,助记词本身并不能直接得到某个具体的地址,是吗?必须得加上派生路径才能推导出比特币地址。但是,那为什么在大多数情况下,我只是把助记词导入到钱包,曾经用过的那些地址就能出来了呢?
这需要归功于标准化的派生路径。
BIP44:为派生路径定义规范
BIP44为派生路径中的每一层赋予了特定的含义,形式如下:
m / purpose' / coin_type' / account' / change / address_index
purpose:代表该分层确定性钱包遵循的规范。对于比特币钱包而言,通过这一层的数字,就可以知道最终的比特币地址类型。coin_type:代表币种的类型。同一个助记词可以用于派生不同的加密货币钱包,0代表比特币,1代表测试网上的比特币,每种密码学货币都有其特定的编号。account:账户的索引值,代表当前路径下的第0个账户、第1个账户、第2个账户…change:定义该地址是收款地址还是找零地址。0代表收款地址,1代表找零地址。address_index:地址的索引值,代表当前路径下的第0个地址、第1个地址、第2个地址…
通过这个规范的派生路径,钱包知道该遵循哪个派生路径来生成对应的地址。所以,大多数情况下,我们只需要导入助记词并选择地址类型,就能找回我们曾经使用过的钱包地址。
助记词、分层确定性钱包和标准化派生路径的组合,让备份和找回比特币资产变得前所未有的方便。所以,只备份好助记词就够了吗?
助记词并不是万能的
即便有了这么多关于钱包的BIP,当你真正需要找回钱包的时候,仅有助记词可能还是不够的。不同的钱包在开发时没有一个绝对的标准,总会有一些例外的情况,这些情况靠助记词是无法解决的:
- 部分钱包并没有实施BIP标准;
- 钱包实施了BIP标准,但与其他钱包不一致;
- 实施了一些较新的标准,但被采用的钱包非常少。
这样的情况即便你避免使用小众的钱包也不一定会消失。
举个例子,如果你使用Electrum钱包创建了助记词,但将这份助记词导入其他钱包时,可能会面临“助记词无效”的尴尬局面。这是因为Electrum并没有采用行业通用的BIP39助记词,而是使用了自己独特的助记词系统。
还有一个例子是使用Ledger钱包以及以太坊的用户。当你想更换硬件钱包时,Ledger也给你上了一课。同样的助记词导入到其他钱包,会得到完全不同的以太坊地址。这是因为Ledger使用的派生路径和其他钱包不一样。如果你想找回原来用过的地址,就必须手动设置成和Ledger一样的路径。
不同钱包采用不同标准的情况非常普遍,经常有人在找回资金的路上碰壁。这也导致出现了类似Wallets Recovery这样的网站,专门指导用户如何在不同的钱包中找回资金。所以,如果你遇到找回钱包的困难,也可以去那里碰碰运气。
钱包找回指南
回到一开始的问题:如何找回比特币钱包呢?也就是说,当我们需要找回自己的钱包时,需要哪些东西呢?
在了解完上文提供的基础知识后,这个问题的答案已经非常明确了:如果你的比特币钱包使用了标准化的派生路径(绝大多数钱包都提供了查看派生路径的功能),那么,记住你所使用的地址类型,做好助记词的备份就足够了。在找回钱包时,软件会根据你指定的地址类型自动匹配派生路径的标准,推导出正确的地址。
如果你无法确定当前钱包使用的派生路径是否标准,那么请一定要备份好助记词和派生路径。有了这两者的备份,你总是可以找回自己的资产。
不过,对于那些喜欢尝鲜和追求自我托管的用户来说,助记词和派生路径可能还不是找回钱包所需的全部。
例外情况
密语(LianGuaissphrase)钱包
对于普通用户来说,最容易出问题的一种情况是,使用了密语钱包却忘了备份密码短语。
密语,被称为第25个助记词,它在助记词的基础上添加了一个短语,可以是单词、字符、数字、空格,或者它们的组合。通过添加密码短语,用户可以创建一个与原来钱包完全没有任何关联的新钱包,这种功能可以创建一个隐秘的保险库。这样,即使助记词泄露,资产也不会丢失。在许多安全教程中,密语钱包也是抵御“五美金扳手攻击”(五角大楼里的那个扳手)的最佳选择之一。
如今,密语钱包的用户群体相当广泛,很多软硬件钱包都支持了这一功能。但请记住,只有备份了密码短语,你才能恢复自己的钱包,这和备份助记词的方法一样。不同的密码短语对应着完全不同的隐藏钱包。一旦弄丢了密码短语,找回资产就像大海捞针一样困难。所以,如果你使用密语钱包提升了安全性,请记得备份密码短语。
多签钱包
多签钱包将比特币自我托管的安全性提升到了一个新的高度,在社区中得到了广泛的应用。但对于新手用户来说,使用多签时也极容易出错。
常见的一个误区是,只需要持有两把私钥,就可以拿回属于自己的资产。实际上这是不够的。当你丢失了自己的钱包时,仅仅依靠两把私钥是无法帮助你恢复资产的。除了私钥,你还需要备份所有参与创建多签钱包的扩展公钥。只有有了这些信息,你才可以在任意一个多签工具中恢复出原来的钱包,并使用手头满足数量要求的私钥来花费里面的资金。
另一个更优雅的备份方式是记录你多签钱包的描述符。描述符是一个字符串,包含了找回钱包所需的全部信息,可以用它来代替扩展公钥的备份,简化备份操作。目前主流的比特币钱包软件都添加了对描述符的支持。
一些钱包最近还增加了对BIP129(比特币安全多重签名设置)的支持,它会在你创建多签钱包后给你一个BSMS(BSMS)文件。类似于描述符,这个文件里包含了恢复多签钱包所需的全部信息,任何支持该文件的钱包都可以恢复多签钱包。BSMS的出现,为不同钱包之间提供了一个标准化的多签设置流程。
关于如何使用比特币多签钱包的更多详细信息,可以参考一份非常详细的指南。
BIP85
BIP85是一种利用助记词派生新助记词的新颖方案,目前只有少数钱包支持。通过BIP85,用户可以利用一套助记词和一个索引号(index)派生出确定性的新助记词。只要索引号不变,派生出的助记词就不会有任何变化。利用该功能,用户可以在各种需要创建新助记词的场景中简化备份工作。
如果你使用了由BIP85派生的子助记词,请记得备份对应的索引号。和密码短语类似的是,索引号也是唯一的。
非标准的助记词形式
少部分钱包为用户提供了非标准助记词的选择,以实现一些独特的功能。
前面提到的Electrum就是一个典型的例子。Electrum有自己独特的助记词版本系统,在助记词中融合了一个版本号,这个版本号指导钱包如何通过助记词派生私钥和地址。因此,在Electrum的助记词系统中,你只需要备份助记词,助记词本身已经包含了关于派生地址的一切信息。但是需要注意的是,这种特殊类型的助记词只能在Electrum钱包中使用,无法兼容其他钱包。所以,如果你决定使用Electrum的助记词创建钱包,请确保你一直使用Electrum或有计划将资产迁移。
另一种常见的非标准助记词形式是SLIP39(Shamir密钥分割方案)。使用SLIP39,用户可以创建多个助记词分片,只需要持有指定数量的分片,即可恢复出钱包。以3/5的Shamir密钥分割方案为例,创建钱包时会生成5份助记词分片,用户把这些分片分开保存。当需要恢复钱包时,需要凑齐其中的3份分片,就可以恢复出钱包。这个备份方案提供了更多的冗余,避免了助记词丢失/被盗的单点故障。如果你选择了这种备份方案,请记住:Shamir密钥分割方案产生的助记词分片和标准的BIP39助记词无法互相转换。因此,当你需要恢复你的助记词时,只能选择支持该方案的钱包工具。目前只有少数几款软硬件钱包支持了Shamir备份。
当然,还有更多五花八门的非标准方案,但因用户数过少,本文不再详述。
总结
对于任何一个持有比特币的人来说,了解钱包的这些基础知识都非常重要。有太多人因为备份不当而导致资产丢失的悲惨案例了。
如果你还是一名新手,请使用支持标准助记词和派生路径的钱包,这可以帮你避免绝大部分坑。如果你已经有了一定的经验积累,想尝试一些复杂的方案来获得更高的安全性。那么,搞清楚它们背后运作的机制非常重要,请熟悉你所使用的工具后再转入资产。享受这些进阶方案所提供的附加优点的同时,做好必要的备份工作,避免悲剧发生。
希望今天的指南对你有所帮助!如果你有任何问题或者故事想要分享,欢迎在评论区留言。现在让我们一起探索这个有趣而复杂的比特币世界吧!🚀
We will continue to update 算娘; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles





