Mee*_*tel 0 bitcoin ethereum wallet
我想创建自己的加密货币钱包。我知道钱包中使用的私钥和公钥概念,但我无法理解我的钱包如何验证其他公共地址?我的钱包如何验证其他用户?coinomi 如何管理他们的钱包来存储各种货币?谁能解释一下钱包的完整逻辑?
我认为您正在寻找的是分层确定性钱包(或“HD 钱包”)。这些钱包被提议作为bip32的一部分。此外,与bip39、bip43和bip44一起,您可以创建一个成熟的 HD 钱包。
Bip32:提出了HD钱包的规范。它包含所有技术细节,例如如何实施 HD 钱包。它描述了如何使用选定长度(128 到 512 位之间;建议 256 位)的单个种子以独特且确定的方式为不同加密货币的各种帐户生成多个密钥。
Bip39:它提出了一种将种子编码为人类可读的 12 个(或 15/18/21/24)个单词的密码短语的方案。
Bip43:BIP32 规范为实现者提供了太多的自由度。多种实现可能声称它们兼容 BIP32,但实际上它们可以生成具有不同逻辑结构的钱包,从而使它们不可互操作。不幸的是,这种情况使得“BIP32 兼容”声明变得毫无用处。因此,Bip43 被引入。
Bip44:这包含了 HD 钱包的实际实现细节。
什么是钱包?
通俗地说,它们非常像您的实体钱包,有助于存储金钱。然而,由于加密货币更像是数字货币,因此存储(读取管理)它们所需的钱包也是数字的。现在,有两种钱包。
如前所述,加密钱包实际上并不存储加密货币。与银行一样,加密货币的所有权详细信息位于分类账上,对于加密货币来说,分类账就是区块链。现在,这些数字钱包仅用于管理它们。此外,这种管理意味着它赋予您使用自己的加密货币的专有权利。现在,加密货币附属于某些账户,就像我们的银行账户中有数字货币一样。为了管理数字货币,我们获得了各种设施,例如网上银行、信用卡等,我们可以使用这些设施来消费这些钱。同样,为了花费加密货币,我们需要钱包。
因此,钱包只不过是一些数字密钥的包装。它们更像是您的网上银行凭证或信用卡的 4 位数密码。要了解以太坊钱包的外观,请查看这篇文章。
什么是HD钱包?
现在,在比特币繁荣之后,出现了大量的加密货币。现在,要管理每种加密货币,需要一个具有各自密钥的不同帐户。此外,在同一个加密域中,一个人拥有数百个带有各自密钥的帐户。因此,使用各自的钱包管理来自不同域的各种密钥变得相当困难。此外,一旦您与某个供应商创建了钱包,就不可能将其迁移到其他供应商,因为每个供应商都根据自己的想法和幻想实现钱包结构。因此,钱包的便携性成为一个大问题。为了解决所有这些问题,HD钱包被引入。
有关 bips 的一些详细解释,您可以参考其相应的 github wiki,也可以参考此处和此处的这些文章。
编辑:为了实现,您可以使用库。例如,如果您使用 JavaScript,则可以使用ethereumjs-wallet。这是一个创建 v3 钱包对象的构造函数。要创建 HD 钱包,您可以使用此.
现在,问题来了如何使用它。为此,您可以参考任何标准的以太坊钱包。更好的起点可能是探索完全依赖于 ethereumjs-wallet 库的metamask-extension代码。