# 加密货币钱包多账户概念

By [DbgKingg](https://paragraph.com/@dbgkingg) · 2022-05-30

---

![封面](https://storage.googleapis.com/papyrus_images/8271164bb0acc600c058ceb06681f9dfbeddcdf141158042a251d789a18599d9.png)

封面

相信无论是入币圈已久的老炮儿还是刚入圈的萌新，对于“钱包”一定不陌生，毕竟进入web3.0第一件事就是创建钱包，没有钱包可以说是寸步难行。钱包的主要类型分为冷钱包和热钱包，而对于大部分人来说使用的基本都是热钱包。热钱包最常见的形式有浏览器插件、电脑软件或者是手机App，无论是哪种，使用起来都非常便捷。

在享受了便捷的同时，安全性也变得尤为关键。这篇文章我将简单介绍一下钱包内多账户的概念，因为我自己之前也是对这一知半解，导致自己被骗钱了，我也是最近才彻底搞清楚的。

详见：

[https://mirror.xyz/dbgking.eth/2DJGkarNCf2PlEYZXyOU5rKv5bmCHXdFIFrYKfZ8-s0](https://mirror.xyz/dbgking.eth/2DJGkarNCf2PlEYZXyOU5rKv5bmCHXdFIFrYKfZ8-s0)

我们以兼容EVM公链最常见的钱包：小狐狸为例，在我们创建新的钱包的时候除了设置密码外第一件事便是让我们记住12个英文单词组成的助记词组合。助记词是通过BIP39（Bitcoin Improment Proposals）标准生成的，它们源自于2048个单词。每一个助记词对应一个数字，而这暗号顺序排列的这12个数字就被称为Seed Integer（种子整数？？不会翻译）。我们把这个Seed Integer通过一个SHA256的加密函数就能生成一个私钥，并进而通过ECDSA（Elliptic Curve Sinature Algorithm）公钥也随之生成了。

![大致的助记词转化流程](https://storage.googleapis.com/papyrus_images/b72f612bec00381083d07af27b4b662936527377607d4d524244b08ff6344646.png)

大致的助记词转化流程

最终我们把这个公钥再度通过一个keccak256的加密函数进行加密，取结果的最后20个字节并且在最前面加上0x就组成了我们常见的以太坊地址了。不同的区块链他们的钱包地址的助记词生成方式他也不尽相同，这里仅以以太坊为例。

![私钥和公钥分别是如何被生成的（source: https://www.royalfork.org/2017/12/10/eth-graphical-address/?ref=hackernoon.com）](https://storage.googleapis.com/papyrus_images/7ccb55f3bfdc39d5f40a21cc3cc743faec6e9ac8b59cea33903aa078f07b81f2.png)

私钥和公钥分别是如何被生成的（source: https://www.royalfork.org/2017/12/10/eth-graphical-address/?ref=hackernoon.com）

很复杂？没关系，这和我们要讲的东西没啥大关系。简单来说就是通过助记词生成的公钥和私钥，小狐狸正式帮你新建了你的默认钱包。

而泄露了助记词了就相当于我们把钱包的密码泄露了，所以保护助记词尤为重要。在这里也提醒大家一定要保护好自己的助记词，尽量采用线下的形式在多处记录并保存好它。非不得已不要把它存在电脑内或者网上，因为如果你的电脑被黑了，泄露你的助记词的可能性也大大加大。实在非不得已可以储存在类似1passoword的密码保管软件，但是还是推荐大资金量的各位可以购买冷钱包。

![小狐狸首次设置钱包界面](https://storage.googleapis.com/papyrus_images/25b96559a242734f23cac51bdb12473721fb005d793e4f8145734b1bdc7fb43a.png)

小狐狸首次设置钱包界面

记录好助记词，设置完钱包后就能正式在web3遨游了，但是当你想新开一个钱包的时候小狐狸却仅仅需要询问你钱包的名称就完成了，新建的钱包的地址是不同的，但是并不需要再次记住钱包的助记词，你知道为什么吗？

![新建钱包界面](https://storage.googleapis.com/papyrus_images/f4c64efcf2dcfd10aeb7d3210fa9ea8214f4a6fee4e41dbe7a2866c590d03805.png)

新建钱包界面

答案嘛就是因为，这新建的钱包实则是你默认钱包的子钱包来的。你新建的第二个钱包实则为小狐狸把你的默认钱包的私钥通过一个加密函数而生成的，同理你的第三个钱包则是通过相同方式把你的第二个钱包的私钥通过一个加密函数而生成出来的。这些子钱包虽然拥有不同的钱包地址，对于区块链来说它们是独立的钱包，但是对于你来说它们都属于同一个主钱包。

> 随机小问题1：设立钱包时，你除了需要记住你的助记词外还需要设置一个密码，这个密码泄露了是否会导致你的钱包被盗呢？（答案在文章结尾）

![简单的图解释子钱包如何被生成（source: https://levelup.gitconnected.com/blockchain-series-how-metamask-creates-accounts-a8971b21a74b）](https://storage.googleapis.com/papyrus_images/46415d851fe32683cdaf3ee661447048b1b44a8a15304e21e5e8043c323294d3.png)

简单的图解释子钱包如何被生成（source: https://levelup.gitconnected.com/blockchain-series-how-metamask-creates-accounts-a8971b21a74b）

这也是为什么新建新的钱包不需要助记词的原因，因为这些子钱包都是通过主钱包衍生出来的。换句话说，如果你有多个钱包，你只需要记住你的助记词就好，因为剩下的子钱包都可以被相应导出。

小狐狸明确指出，在导入助记词的时候，它会尝试帮你自动把所有子钱包也导入进来直至遇到一个空钱包为止，剩余的钱包还是能继续被手动导入。所以只要是你曾经建立过的子钱包，都不会丢失。

![来源：https://metamask.zendesk.com/hc/en-us/articles/360015489271-How-to-add-missing-accounts-after-restoring-with-Secret-Recovery-Phrase](https://storage.googleapis.com/papyrus_images/87438812406e974a8e846f5c0f7a4718f107bbb506137e91080a0ed1ea7d0811.png)

来源：https://metamask.zendesk.com/hc/en-us/articles/360015489271-How-to-add-missing-accounts-after-restoring-with-Secret-Recovery-Phrase

> 随机小问题2：那么如果你的子钱包的私钥泄露了，你的主钱包是否泄露呢？（答案在文章结尾）

虽然对于我们来说，只需要记住一个助记词非常便利，但反过来看，如果助记词泄露了，你所有的子钱包也会随之被泄露。所以，谨记这条耳熟能详甚至老生常淡的道理准没错，便是好好保管你的助记词。

如果在万不得已需要泄露助记词，如在开发的时候有需要，切记要新开一个主钱包，而不是一个子钱包。小狐狸默认并不支持开两个主钱包，但是你可以新开一个新的浏览器账号（例如在Chrome），重新安装一个小狐狸并重新设置一个新钱包即可。

希望大家在Web3都能玩得开心，玩得安全，感谢大家阅读！😉

* * *

作者：

[https://twitter.com/DbgKinggg](https://twitter.com/DbgKinggg)

来自最有爱的社区：

[https://twitter.com/GohanGoNFT](https://twitter.com/GohanGoNFT)

[https://discord.com/invite/GSgmWYQUPD](https://discord.com/invite/GSgmWYQUPD)

* * *

对了，刚刚的问题1答案是不会导致你的钱包被盗，因为这个密码仅用于解锁你的钱包，如果你不记得了只需要通过助记词重新导入钱包即可。

问题2答案是不会泄露。因为你的子钱包的私钥由它的上一个钱包的私钥通过加密函数生成，也就是说这是不可逆的。所以子钱包泄露了你其他钱包还是安全的。

END

---

*Originally published on [DbgKingg](https://paragraph.com/@dbgkingg/hhW5X7JjynD88O09TQHx)*
