主页 > imtoken转币到交易所 > 区块链以太坊代币开发新技术分层确定性钱包钱包介绍

区块链以太坊代币开发新技术分层确定性钱包钱包介绍

imtoken转币到交易所 2023-06-17 06:50:09

区块链以太坊代币开发新技术分层确定性钱包钱包介绍

钱包是发送和接收令牌的客户端,就像我们使用邮箱来管理我们的电子邮件一样,我们需要一个客户端来管理我们的令牌。 钱包的本质是一种保管私钥的工具。 私钥是一长串数字和字母。 该字符串赋予您将数字货币发送给他人的权利。 也就是说,无论谁知道你的私钥,都可以控制你的数字货币。 私钥还用于生成您的令牌地址——它就像一个电子邮件地址,如果您知道该地址,您只能将令牌发送给其他人。

然而以太坊硬件钱包,虽然代币地址是由私钥生成的,但无法通过查看数字货币地址来确定私钥是什么。 总而言之,钱包的核心功能就是私钥的创建、存储和使用。

钱包类型

不同的私钥生成方式也对应不同的钱包结构,通常可以分为非确定性钱包和确定性钱包。 最早的比特币客户端(中本聪客户端)是一个非确定性钱包,它是随机生成的私钥的集合。 客户端会预先生成100个随机私钥,每个私钥只使用一次。 一笔交易使用一个地址的概念是由中本聪提出的。 如果交易频繁,可能会用完私钥,然后会生成一批私钥,所以每次完成100笔交易后,一定要备份新的wallet.dat文件,否则可能会丢失资产。

这样的钱包很难管理和备份。 如果生成许多私钥,则必须保留所有私钥的副本。 这意味着必须定期备份钱包。 每个私钥都必须备份,否则一旦钱包无法访问,钱包将无法找回。 确定性钱包不需要为每次传输进行备份。 确定性钱包的私钥是通过对种子进行单向哈希运算生成的,种子是由随机数生成器生成的一串随机数。 在确定性钱包中,只要有这个种子,就可以找回所有的私钥。 只备份种子就相当于备份了你所有的钱包,所以这个种子也很重要,一定要备份到安全的地方。

什么是以太坊钱包

以太坊硬件钱包_以太坊好的硬件钱包推荐_web3j 以太坊钱包

以太坊钱包是目前常用的确定性钱包。 说到以太坊钱包,大家可能首先想到的是硬件钱包(Hardware Wallet)。 其实这里的以太坊是Hierarchical Deterministic(分层确定性)的缩写。 所谓分层,就是一个大公司可以为每个子部门生成不同的私钥,子部门也可以管理下子部门的私钥。 每个部门都可以看到所有子部门的币,也可以在里面消费这个币。 也可以只把某个级别的公钥给会计,这样他就可以看到这个部门和子部门的收支记录,但是不能花里面的钱,让财务管理更加方便的。

早在 BIP32 提案中就提出了层次决定论的概念。 根据比特币核心开发者 Gregory Maxwell 的原始描述和讨论,Pieter Wuille 于 2012 年 2 月 11 日编译并提交了 BIP32,直到 2016 年 6 月 15 日才被合并到比特币核心中。目前,几乎所有的钱包服务提供商都集成了协议。 BIP32 是以太坊钱包的核心提案。 通过种子生成主私钥,进而衍生出大量的子私钥和地址。 但是种子是一长串随机数,不利于记录,所以我们用一种算法将种子转换成一串助记词(Mnemonic),方便记录。 这就是 BIP39,它扩展了生成以太坊钱包种子的算法。 BIP43在BIP32树结构中增加了子索引标识purpose的扩展名m/purpose'/*。

BIP44在BIP43和BIP32的基础上增加了多种币种,通过以太坊钱包衍生出多个地址,可以同时管理主网和测试网的比特币。 BIP44提出5层路径建议,如下: m/purpse' /coin_type'/account'/change/address_index BIP44的规则让以太坊钱包非常强大。 用户只需要保存一个种子,就可以控制所有账户的所有币种和钱包。

比特币以太坊钱包是如何生成的?

1.生成助记词(见BIP39)

以太坊硬件钱包_以太坊好的硬件钱包推荐_web3j 以太坊钱包

2.使用PBKDF2将助记词转化为种子(参见BIP39)

3.种子用于使用HMAC-SHA512生成根私钥(参见BIP32)

4. 从这个根私钥,导出子私钥(见BIP32),其中节点布局由BIP44设置

可见BIP39生成助记词的过程非常重要。 大家一定很关心BIP39的安全性。 如果一个以太坊钱包助记词是 12 个单词以太坊硬件钱包,那么总共有 2048 个单词的可能性。 如何计算随机生成的助记词 所有可能的单词都是一个排列问题,根据公式:n!/( n - r )! , 即 2048!/(2048-12)! = 5.2715379713014884760003093175282 e+39。

我们可以打个比方,地球上的沙子数量大约是1后面跟18个零。 如果每秒可以生成一百万个助记词,那么一年可以生成1000000*60*60*24*365=3.1536e+13,遍历所有助记词大约需要1.6715937e+26年。 这个多少钱? 哪年?

web3j 以太坊钱包_以太坊好的硬件钱包推荐_以太坊硬件钱包

以太坊目前的解决方案

以太坊在 EIP84 中讨论是否遵循 BIP32 和 BIP44。 社区中提出了许多有趣的意见。 比特币基于 UTXO,因此您可以使用以太坊钱包 (BIP32) 为每笔交易分配一个新地址,以保护您的隐私。 但是,以太坊是基于账户的,每个账户都有一个地址,BIP是比特币的一个提案,而比特币的数据结构设计是围绕着变地址的思想进行的,BIP的一些提案可能不是适用于以太坊。 以太坊的模型不同于比特币 UTXO。 以太坊转账不能更改地址。 如果在以太坊上实现 UTXO,用户还必须签署两笔交易,将余额的一部分发送到一个地址,将余额的一部分发送到第二个地址——这会增加一倍的成本,而且第二笔交易可能不在同一个区块中,当然以太坊也可以通过智能合约的方式来实现。

另外,以太坊目前的官方钱包是KDF形式,也就是我们常说的Keystore形式。

在EIP85的讨论中,以太坊社区似乎默认采用了BIP32的方式

先说说BIP32的好处

web3j 以太坊钱包_以太坊硬件钱包_以太坊好的硬件钱包推荐

1.使用时间长,社区审核通过

2.已经有多种编程语言的实现

3.使用多个硬件钱包

4. 一个钱包可以同时支持比特币和以太坊

EIP85提出以太坊路径为:m/44'/60'/a'/0/n 其中a代表账号,n为第n个生成地址,60在SLIP44提案中暂定,因为BIP44只是定义到 0 - 31。

以太坊硬件钱包_以太坊好的硬件钱包推荐_web3j 以太坊钱包

目前已知的以太坊客户端的具体实现:

m/44'/60'/0'/0/x: BIP44, imToken (路径可自定义), MetaMask, Jaxx, MyEtherWallet, TREZOR, Exodusm/44'/60'/x'/0/0: BIP44, KeepKey、MetaMaskm/44'/60'/0'/x:Electrum、Ledger Chrome 应用程序、m/44'/coin_type'/account'/0:Coinomi

最后

使用单一地址钱包,您的所有交易都将与单一地址相关联。 由于区块链中的所有交易记录都是公开的,任何人都可以看到每个地址的所有交易记录和账户余额。 以太坊钱包能够在发送和接收资金时生成新地址,从而大大提高隐私性,使您的交易难以追踪。 当然,匿名是相对的,现在我们也有了隐私性更好的零知识证明算法。

以太坊钱包是一种生成不可重复使用地址的方法。 记住一个种子可以访问所有地址的钱,而不需要为每个地址备份私钥。 当然,以太坊钱包不仅仅适用于比特币,以太坊钱包可以让一个钱包同时管理多种资产成为可能。

原始来源

打开应用程序并阅读笔记