主页 > imtoken钱包网址 > 区块链——密码、私钥、密钥库和助记词之间的爱恨交织

区块链——密码、私钥、密钥库和助记词之间的爱恨交织

imtoken钱包网址 2023-01-16 22:13:06

一、了解密码、私钥、密钥库和助记符1.密码

密码不是私钥,可以修改或重置密码。主要有两个用途,一是转账时的支付密码,二是导入带有keystore的钱包时需要输入的密码,用于解锁keystore。

在钱包应用中,创建账户时需要设置密码。此密码一般要求不少于 8 个字符。为了安全起见,最好设置一个更复杂的密码。

2.私钥

私钥由64位十六进制字符组成,如:0xE4356E49C88C8B7AB370AF7D5C0C54F0261AAA006F6BDE09CD4745CF54E0115A。一个账户只有一个私钥钱包密码助记词私钥丢失,不能修改。谁拥有私钥,谁就可以控制账户的数字货币。通常,钱包中的私钥和公钥是成对出现的。有了私钥,我们可以通过一定的算法生成公钥,然后用公钥通过一定的算法生成地址。这个过程是不可逆的。它是如何产生的?我们在上一章中有详细的说明。私钥必须妥善保管。如果泄露,其他人可以使用私钥解锁账户,转移您账户的数字货币。

在钱包应用中,解锁账户后可以导出私钥。

3.密钥库

因为私钥不利于记忆,容易被盗,所以有一个Keystore。 Keystore 常用于以太坊钱包。它不是私钥,而是将私钥以加密方式保存为 JSON 文件。这个 JSON 文件是密钥库,所以它是加密的私钥。但是Keystore必须配合钱包密码才能使用账户,所以只有Keystore文件无法控制账户。助记词和私钥不同。只要知道助记词或私钥,就可以控制账户。

钱包密码助记词私钥丢失

在应用程序中,可以在解锁帐户后生成Keystore文件。支持的钱包包括 MetaMask、Mist 等。

4. 助记符

私钥是64位长度的16进制字符,不利于记录,容易记忆,所以采用算法将一串随机数转换成12到24位的字符串记单词,方便记录。因此,部分同学得出以下结论:

目前只有少数钱包应用支持导出助记词,如MetaMask等。通过助记词导入账户仅少数钱包应用支持,如MyEtherWallet、imToken等。

BIP

要搞清楚助记词和私钥的关系,就要了解BIP协议,它是Bitcoin Improvement Proposals的缩写,意思是比特币的改进提案,用来提出新的功能或比特币的改进措施。 BIP协议衍生了很多版本,主要是BIP32、BIP39、BIP44。

钱包密码助记词私钥丢失

BIP32

BIP32是HD钱包的核心提案。通过种子生成主私钥,然后衍生出大量的子私钥和地址。种子是一长串随机数。

BIP39

由于种子是一长串随机数,不利于记录,所以我们使用算法将种子转换成12到24字的字符串,方便保存记录。这是 BIP39,它扩展了 HD 钱包种子的生成算法。

BIP44

BIP44 是对 BIP32 和 BIP43 的多币种补充。提议的层次结构非常全面,它允许处理多种货币、多个账户,并且每个账户都有数百万个地址。

钱包密码助记词私钥丢失

BIP32路径中定义了以下5个级别:

m/purpse'/coin_type'/account'/change/address_index

BIP44的规则让HD钱包非常强大。用户只需要保存一个种子,就可以控制所有币种和所有账户的钱包。所以BIP39生成的助记词是非常重要的钱包密码助记词私钥丢失,所以一定要妥善保管,这样会不会被破解?如果一个HD钱包的助记词是12个单词,那么一共有2048个单词的可能性,那么随机生成一个助记词的概率大约是5e+39,所以破解几乎是不可能的。

高清钱包

通过BIP协议生成账户的钱包称为HD钱包。这个高清钱包不是硬件钱包硬件钱包。这里的HD是Hierarchical Deterministic的缩写,意思是层次确定性,所以HD钱包的全称是Bitcoin分为确定性钱包。

以太坊对 BIP 的支持

钱包密码助记词私钥丢失

BIP 用于提出比特币的新功能或改进,那么它如何支持以太坊?

二、密码、私钥、keystore、助记词的关系

它们的关系可以用下图表示。在下面的教程中,我们将学习如何通过代码一一实现以下每一行。

三、钱包的核心:私钥

基于上面的分析,我们对以太坊钱包的账户体系有了很好的了解,那么在使用钱包的过程中我们应该如何保管好自己的钱包呢?主要包括以下几种方法:

账户可以通过以上三种方法之一进行解锁和控制,因此每种方法中的数据都必须正确包含。如有泄露,请尽快转移数字资产。

钱包密码助记词私钥丢失

我们可以得到以下总结:

可以看出,这些方法的核心其实是获取私钥然后解锁账户,所以钱包的核心功能就是创建、存储和使用私钥。

参考文献

web3js.readthedocs.io/en/1.0/web3-eth-accounts.html

github.com/bitcoin/bips/blob/master/bip-0032.mediawiki

github.com/bitcoin/bips/blob/master/bip-0044.mediawiki

github.com/ethereum/EIPs/issues/84

github.com/ethereum/EIPs/issues/85