主页 > 合法imtoken钱包下载 > 区块链技术10:如何存储和使用比特币

区块链技术10:如何存储和使用比特币

合法imtoken钱包下载 2023-10-16 05:09:25

比特币钱包里有什么

比特币钱包只存储用户的公私密钥对的钥匙串。

区块链是去中心化的,没有银行等机构可以存储用户余额等信息。硬币只反映在交易中,所以比特币钱包里没有比特币。

钱包类型

非确定性钱包(Nondeterministic Wallet,也称为 Just a Bunch Of Keys,简称 JBOK Wallet):存储的密钥之间没有关联。

确定性钱包:存储的密钥由称为种子的主密钥生成。为了让用户更容易记住比特币是怎么使用的,种子被编码为一组单词(不限于英语),也称为助记符。

BIP 共同定义了一个确定性钱包的实现,称为分层确定性 (HD) 钱包。

高清钱包

助记符是如何生成的(BIP-39)

生成128位(到256位)的随机序列(熵);

使用比特币支付_比特币是怎么使用的_以太币比特币是骗局吗

提出随机序列经过SHA256生成序列的前几位(熵长/32)作为随机序列的校验和;

在随机序列的末尾添加校验和;

将校验和相加后的序列以 11 位为单位进行除法;

用 2048 个字的预定义词典替换每个 11 位;

得到助记词。

生成种子(BIP-39)

PBKDF2密钥扩展函数的第一个参数是第6步生成的助记词。

PBKDF2 密钥扩展函数的第二个参数是盐。由字符串常量“助记符”与可选的用户提供的密码字符串连接而成。

比特币是怎么使用的_使用比特币支付_以太币比特币是骗局吗

PBKDF2 使用 HMAC-SHA512 算法比特币是怎么使用的,使用 2048 个哈希来扩展助记符和盐参数,产生一个 512 位的值作为其最终输出。这个 512 位的值就是种子。

生成公私密钥对 (BIP-32)

使用 HMAC-SHA512 对种子进行哈希处理;

HMAC-SHA512采用SHA512哈希算法,以一条消息和一个密钥为输入,生成一个512位的消息摘要作为输出;

从种子计算主私钥时,种子作为输入消息,字符串“比特币种子”作为输入密钥,计算产生一个 512 位的输出。

将加密输出的512位结果分成左右两个256位;

剩下的 256 位作为主私钥,生成 264 位的主公钥;

右 256 位用作主链码。

以太币比特币是骗局吗_使用比特币支付_比特币是怎么使用的

主私钥用于产生后代子私钥和主公钥;

HD 协议使用 ECDSA 公钥函数 point()(椭圆曲线)从公钥生成私钥。

观点()

child_public_key==

点((parent_private_key + i)% p)==

parent_public_key + point(i)

1 child_public_key ==

2 点((parent_private_key + i)% p)==

以太币比特币是骗局吗_使用比特币支付_比特币是怎么使用的

3 parent_public_key + point(i)

如上所述,

子私钥的生成:子私钥=(父私钥+i)%p

公钥的生成:公钥=点(私钥)

同时,point() 满足以下特点:

子公钥 = 父公钥 + 点(i)

对于上面的通用键,i = index;

对于扩展密钥,i = 索引 + 父公钥 + 父链码;

使用比特币支付_以太币比特币是骗局吗_比特币是怎么使用的

对于强化的自密钥,i = 索引 + 父私钥 + 父链码。

概括

生成过程如下:

随机序列 -> 助记符

助记符 + 盐 -> 种子

种子 + 字符串“比特币种子” -> 主密钥 -> 主公钥

因此,助记词和用户密码需要存放在HD钱包中。

扩展密钥

为了切断兄弟之间的联系,需要增加一个新的计算参数,即扩展键。

———————————————

原文链接: