比特币钱包(4) BIP39 助记词
1. 定义生成助记词
助记词句子(mnemonic word sequence)作为密码,使用若干个助记词来替换之前直接生成随机数的方式(确定性钱包的种子随机数)。
1.1. 生成步骤
1) . 生成 128~256 位 (bits) 的随机数,称为熵(以128bits为例);
规定熵的位数必须是 32 的整数倍,所以熵的长度取值位 128 到 256 之间取 32 的整数倍的值,分别为 128, 160, 192, 224, 256;
2) . 计算熵 checksum
将熵进行 SHA256 哈希,取出前 4bits 用作校验码;(校验码长度 = 数据总长度 / 32);
3) . 将原始熵和 checksum 拼接为 132bits 长度
4) . 将 132bits 长度按照 11bits 分割为 12 份
5) . 每 11bits 对应为 2048 长度的单词表中的一个单词;
(助记词库有 2048 个词,用 11 位可全部定位词库中所有的词,作为词的索引)
1.2. 随机位数与助记词个数的对应表
校验和 = 长度为熵的长度/32 位
助记词个数 = (熵+校验和)/11
熵(bits) | 校验和(bits) | 熵+校验和(bits) | 助记词个数 |
---|---|---|---|
128 | 4 | 132 | 12 |
160 | 5 | 165 | 15 |
192 | 6 | 198 | 18 |
224 | 7 | 231 | 21 |
256 | 8 | 264 | 24 |
2. 助记词生成 Master Seed(512 位,64 字节)
BIP39 采用PBKDF2函数推算种子.
- 哈希函数HMAC-SHA512(key =“mnemonic” , passphrase 作为盐)
- 2048 作为重复计算的次数
【参考】
[1] HMAC算法可参考"HMAC(2)哈希运算消息认证码HMAC"
比特币钱包(4) BIP39 助记词相关推荐
- 以太坊BIP39助记词到公钥地址的原理与细节
以太坊基础-你真的懂吗 以太坊私钥 eg: fad9c8855b740a0b7ed4c221dbad0f33a83a49cad6b3fe8d5817ac83d38b6a19 由256位:不考虑0x前缀 ...
- (一)区块链钱包之生成助记词
(一)区块链钱包之生成助记词 (二)区块链钱包之创建钱包地址 (三)区块链钱包之加密算法简介 (四)区块链钱包之创建比特离线交易(BTC交易) (五)区块链钱包之创建以太坊交易(ETH交易) 助记词 ...
- imToken—钱包如何导出助记词?
imToken钱包tokenw.me 是现在很受投资者欢迎的一款轻钱包,该钱包不仅使用非常方便,并且还十分的安全.不管是从下载安装角度,还是去中心化的角度,亦或是使用的角度上来说,该钱包都是安全的.i ...
- 私钥,公钥,钱包地址,助记词,keyStore的区别
私钥,公钥,钱包地址,助记词,keyStore的区别 私钥:本质上是一个包含64位的随机数,是随机生成的 公钥:公钥是由私钥经过加密算法后生成的,拥有私钥,可以算出公钥,拥有公钥却不能算出私钥 钱包地 ...
- 比特币钱包开发:通过助记词扩展子地址的原理与编码
[db:标签]标 掌握生成助记词的原理 掌握助记词生成种子的原理 掌握种子生成子秘钥的原理 编程实践:从生成助记词到子地址 前言 为了安全尽量保证比特币地址的公钥未在网络上出现过,这就需要我们每次支付 ...
- java助记词反向_GitHub - gangan1345/mnemonic-sdk: Mnemonic bip39 bip32 bip44 生成助记词 私钥...
mnemonic-sdk Mnemonic bip39 bip32 bip44 支持 BIP39 助记词 支持 BIP32 子私钥 支持 BIP44 多币种管理 Install Gradle: Add ...
- 助记词是什么,有什么用?
玩加密货币的朋友相信对助记词都不陌生,我们在使用钱包之前,会让你备份12个单词,在备份期间不允许截图操作,并且不断强调这12个单词非常重要,最好用物理方式备份,备份时身边不要有任何人. 对于普通用户来 ...
- 以太坊---「地址、密码、私钥、助记词、Keystore 」那些事
想知道更多关于区块链技术知识,请百度[链客区块链技术问答社区] 链客,有问必答!! 国内最好的以太系钱包当属 imToken,在使用钱包时,有几个名词必须深刻理解,不然就有可能造成区块链资产的损失,这 ...
- 什么是私约、助记词和密码?
私钥是由字母和数字组成的64位长度的十六进制字符串.创建钱包后,输入密码即可导出私钥,一个账户只有一个私钥并且不能修改. 通常一个钱包中私钥和公钥是成对出现的,有了私钥,可以通过一定的算法生成公钥,再 ...
最新文章
- C#程序 权限不够的解决方案
- FAT32转换NTFS格式的命令
- signature=89b7a6bcfac55abae5ac369dafee29f4,Capecitabine
- 用python画关系网络图-python networkx 包绘制复杂网络关系图的实现
- 【学习笔记】14、标准数据类型—字典
- 独立开发者分享:游戏本地化的6个建议
- 阿里云监控插件安装 | 非阿里云服务器安装指南
- ffmpeg参数中文详细解释
- java学习(148):三个参数的输入流
- python格式化字符串%r_Python语法速查:3.字符串格式化
- 【WP主题】仿下载吧全开源无加密wordpress主题模板内含newzhan2.60无授权版本
- 三维数组地址计算_C语言进阶之路:数据类型 - 多维数组与指针!我的心中只有学习!...
- OSPF的Router-id确定顺序和冲突情况
- 算法初阶05:魔方矩阵
- 在线考试系统软件测试总结,基于智慧校园平台的在线考试系统应用研究
- cat 几行_CAT工具教程与解疑—SDL Trados 2021来了,分享一些简单测评体验
- 我了解的软件测试总结
- 计算机注册表命令,进入注册表的方法和命令(电脑的注册表怎么打开)
- h264 Profile-level-id解析
- 俄罗斯FAC认证介绍
热门文章
- css动画-animation各个属性详解(通俗易懂)
- js怎么把按钮往下移_js 实现单行数据上下移动
- 和泰c语言函数库,合泰杯 | 合泰单片机入门 编程详解(二)
- 黑龙江省:2025年将建成5G基站11.4万个,15万数据中心机架
- 网络工程中的割接是什么意思?
- 数据中心液体冷却技术的“机架经济学”
- 如何做好配电室、临时用电安全管理?
- 三伏天到了,记得为数据中心降降温
- mysql mysqlhotcopy_MySQL备份工具之mysqlhotcopy
- Dataset之JFT:JFT/FastEval14k数据集的简介、下载、案例应用之详细攻略