主页 > imtoken如何安装 > 区块链入门②——钱包

区块链入门②——钱包

imtoken如何安装 2023-06-27 05:28:59

区块链入门②——钱包 钱包概览

钱包类型

第二种是确定性钱包,其中所有私钥都来自主私钥,也就是种子。 此类钱包中的所有私钥都是相互关联的。 如果有原始种子,可以重新生成所有私钥。

注意单词

比特币扩展公钥_比特币分叉对比特币的影响_808比特币创始人颜万卫 炮制比特币风险大

创建一个 128 到 256 位的随机数(熵)。 提取随机数的SHA256哈希值的前x位(x等于随机数除以32)作为校验码。 将校验和添加到随机序列的末尾。 将序列除以 11 位。 将每个 11 位值映射到一个包含 2048 (

2^{11}

) 在预定义的单词词典中。 生成的单词序列就是助记符。

比特币扩展公钥_808比特币创始人颜万卫 炮制比特币风险大_比特币分叉对比特币的影响

808比特币创始人颜万卫 炮制比特币风险大_比特币分叉对比特币的影响_比特币扩展公钥

PBKDF2密钥扩展函数的第一个参数是第6步生成的助记词。PBKDF2密钥扩展函数的第二个参数是salt。 由固定字符串“mnemonic”和可选的用户输入的密码字符串组成。 PBKDF2以助记词和盐为参数,调用HMAC-SHA512哈希算法2048次,生成一个512位的值作为其扩展的最终输出。 这个 512 位的值就是种子。创建主私钥和主链码

比特币扩展公钥_比特币分叉对比特币的影响_808比特币创始人颜万卫 炮制比特币风险大

子密钥的推导

分层确定性钱包使用 CKD(子密钥派生)功能从父密钥派生子密钥。

因为导数方程是单向方程,所以不能使用子密钥来发现它们的父密钥。 子键也不能用于在同一级别发现它们的兄弟键。

没有子链代码比特币扩展公钥,子密钥不能用于派生任何孙子。 您需要子密钥和相应的链代码来创建新分支以派生孙密钥。

父私钥 -> 子私钥 -> 子公钥

比特币分叉对比特币的影响_比特币扩展公钥_808比特币创始人颜万卫 炮制比特币风险大

808比特币创始人颜万卫 炮制比特币风险大_比特币扩展公钥_比特币分叉对比特币的影响

扩展密钥

将密钥和链码这两个重要部分结合起来称为扩展密钥。 术语“扩展密钥”也被认为是“可扩展密钥”,因为这样的密钥可用于派生子密钥。 扩展密钥可以简单地表示为连接和存储的一系列密钥和链代码。

扩展公钥及其应用:

安全隐患

如果知道子私钥,可能会导致父私钥泄露。 推导如下:

两种子密钥推导方式的输入参数分别为父公钥、父链码、父索引号,导致输出相同512位,链码(右256位)也一致。 因为扩展公钥包含链码比特币扩展公钥,可以生成后代链码,所以可以得到左边的256位。 根据子私钥=左256bits+父私钥,如果对应的子私钥泄露,可以逆向推导出父私钥。 继续反推已知最早的扩展公钥对应的私钥。子私钥强推

比特币分叉对比特币的影响_808比特币创始人颜万卫 炮制比特币风险大_比特币扩展公钥

这个强推导函数使用父私钥来推导子私钥。 这导致 512 位输出与通过派生子公钥生成的链代码(右 256 位)之间的不一致。 因此无法得到对应的左256位,也无法逆向父私钥。

因此强推导用于扩展密钥树中公钥的上层以创建“间隙/防火墙”。

为了避免主密钥的泄露,从主密钥派生的一级子密钥总是通过强化派生的。

索引代码、密钥标识符、路径

HD 钱包密钥标识符(路径)

高清路径键说明

米/0

从主私钥(m)导出的第一个子私钥(0)

米/0/0

从第一个子私钥(m/0)导出的第一个子私钥(0)

米/0'/0

从第一个加固子私钥(m/0')导出的第一个常规子私钥(0)

米/1/0

从第二个子私钥(m/1)导出的第一个子私钥(0)

男/23/17/0/0

第18个子公钥(M/23/)的第24个子公钥(M/23)导出的第1个子公钥(M/23/17/0)的第一个子公钥(0) 17)

HD钱包树结构导航

BIP-44 指定了一个具有 5 个预定义树级别的结构:

m /purpose'/coin_type'/account'/change/address_index

高清路径Key描述

M/44'/0'/0'/0/2

比特币主账户第三个接收公钥

M/44'/0'/3'/1/14

第四个比特币账户零钱收集的第15个公钥

米/44'/2'/0'/0/1

莱特币主账户中的第二个私钥,用于签署交易

同类热门推荐

本站仅用于信息传播,不对所发布内容本身负责。 如有版权等问题,请联系站长。