本文主要是介绍BIP钱包介绍与在Cosmos中的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
BIP钱包
BIP 说明
BIP 英文全称:Bitcoin Improvement Proposal(比特币改进建议)。简单来说的话,BIP 就是一个经过筛选后的“意见箱”。
“BIP 意见箱”的运作机制大概是这样的:
- 1、谁都可以提意见,这些意见在“知识库(repository)”中经过开发者的海选
- 2、通过海选的还需要进行淘汰赛,这一轮由比特币核心开发者当评委。
- 3、核心开发者通过后,将得到一个BIP号码。
- 4、有了BIP号码就可以进入决赛了,决赛是投票制。大部分的社区成员和开发者同意。
BIP仓库地址
助记词
私钥是一长串的01字符,不易记忆,所以引出了助记词的定义。
- 规定熵的位数必须是 32 的整数倍,所以熵的长度取值位 128 到 256 之间取 32 的整数倍的值,分别为 128, 160, 192, 224, 256;
- 校验和的长度为熵的长度/32 位, 所以校验和长度可为 4,5,6,7,8 位;
- 助记词库有 2048 个词,用 11 位可全部定位词库中所有的词,作为词的索引,故一个词用 11 位表示,助记词的个数可为 (熵+校验和)/11,值为 12,15,18,21,24
词库地址
熵(bits) | 校验和(bits) | 熵 + 校验和 (bits) | 助记词长度 |
---|---|---|---|
128 | 4 | 132 | 12 |
160 | 5 | 165 | 15 |
192 | 6 | 198 | 18 |
224 | 7 | 231 | 21 |
256 | 8 | 264 | 24 |
- 1、生成一个长度为 128~256 位 (bits) 的随机序列(熵)
- 2、取熵哈希后的前 n 位作为校验和 (n= 熵长度/32)
- 3、随机序列 + 校验和
- 4、把步骤三得到的结果每 11 位切割
- 5、步骤四得到的每 11 位字节匹配词库的一个词
- 6、步骤五得到的结果就是助记词串
通过助记词生成种子
助记词由长度为 128 到 256 位的随机序列(熵)匹配词库而来,随后采用 PBKDF2 function 推导出更长的种子(seed)。生成的种子被用来生成构建 deterministic Wallet 和推导钱包密钥。
在密码学中,Key stretching 技术被用来增强弱密钥的安全性,增加了暴力破解 (Brute-force attack) 对每个可能密钥尝试攻破的时间,增强了攻击难度。各种编程语言原生库都提供了 key stretching 的实现。PBKDF2 (Password-Based Key Derivation Function 2) 是常用的 key stretching 算法中的一种。基本原理是通过一个为随机函数(例如 HMAC 函数),把明文和盐值作为输入参数,然后重复进行运算最终产生密钥。
为了从助记词中生成二进制种子,BIP39 采用 PBKDF2 函数推算种子,其参数如下:
- 助记词句子作为密码
- “mnemonic” + passphrase 作为盐
- 2048 作为重复计算的
这篇关于BIP钱包介绍与在Cosmos中的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!