数字货币 分层确定性钱包(HD Wallets)
HD Wallets的全称是Hierachical Deterministic Wallets, 对应中文是 分层确定性钱包。
分层确定性的概念在BIP32提案提出。
根据比特币核心开发者 Gregory Maxwell 的原始描述和讨论,Pieter Wuille 在2012 年 02月 11日整理完善提交 BIP32 。
直到 2016年 6月 15 日 才被合并到 Bitcoin Core,目前几乎所有的钱包服务商都整合了该协议。
BIP32 是 HD 钱包的核心提案,通过种子来生成主私钥,然后派生海量的子私钥和地址,但是种子是一串很长的随机数,不利于记录,所以我们用算法将种子转化为一串助记词 (Mnemonic),方便保存记录,这就是 BIP39,他拓展了HD钱包种子的生成算法。
BIP43对BIP32树结构增加了子索引标识purpose的拓展m/purpose'/* 。BIP44是在BIP43和BIP32的基础上增加了多币种, 通过HD钱包可以派生多个地址,可以同时管理主网和测试网的比特币, BIP44提出了5层的路径建议, 如下:
m / purpose' / coin_type' / account' / change / address_index
详细的BIP44设置可以参考https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki
BIP44的规则使得HD钱包非常强大, 用户只要保存一个种子,就能控制所有币种,所有账户的钱包。
生成HD钱包及根据种子生成子私钥的步骤:
首先,生成一个
助记词
(BIP39 Mnemonic)该助记词使用PBKDF2转化为
种子
(BIP39 Seed)种子用于使用HMAC-SHA512生成
根私钥
(BIP32 Root Key)通过根私钥生成
子私钥
(参见BIP32),其中节点布局由BIP44设置
可以看出BIP39生成助记词的过程非常重要,如果一个HD钱包的助记词是12个有序单词, 单词拥有2048个不同单词的单词库中随机选择, 那么根据排列组合公式,n! / (n-r)!, 即2048!/ (2048-12)! = 5.27e+39 。地球上的沙子数量大概是1e18, 如果每秒生成一百万个助记词, 那么一年可以生成 1000000606024365 = 3.15e+13, 大概需要 1.67e+26年才能遍历所有的助记词
HD钱包生成工具
除了各主流钱包均加入了对BIP39规则的支持, github上有很多HD钱包生成工具,例如:https://github.com/iancoleman/bip39, 建议下载下来后在断网环境下使用
使用HD钱包的好处
备份更容易
传统钱包的问题是一个钱包可能存有一堆密钥地址,每个地址都有一些比特币。这样备份钱包的时候,需要备份所有的密钥。但如果之后生成了一个新地址,你就需要重新备份一次。事实上,每次生成新地址的时候,你都需要做一次备份。 HD钱包允许你从一个主(根)密钥创建海量的子密钥。这意味着,一旦你控制了主密钥,你就可以生成所有的子密钥,主密钥和子密钥形成树状结构。所以你就不需要频繁的备份钱包,你只需要在创建钱包的时候备份一次就可以了,因为你可以从主密钥重新创建所有的子密钥。
私钥离线存放更安全
HD钱包还带来了一些新特性,比如不需要任何私钥,就可以从一个父公钥生成所有的子公钥。具体来说,你的主私钥是以纸钱包的方式备份的,并且离线存放在一个安全的地方。你手头有主公钥,用这个公钥,你就可以生成所有的子公钥。 举个实际的例子,我们要开一个网店,接受比特币付款。你可以离线存放你的私钥,只把公钥放在公网的服务器上。你的网站可以使用这个公钥为网站上的每一个商品生成一个收款地址,或者给你的每个顾客生成一个唯一的地址,甚至为每次交易生成一个地址(如何使用,取决于你的想象)。 并且因为私钥是离线存放的,没人可以黑进你的服务器偷走比特币。
权限控制
HD钱包有个额外好处,它让你可以控制你的组织里谁可以控制哪些密钥。 和一个商业组织的组织结构类似,HD钱包也是以树形结构组织密钥的。你可以给你的组织里的每个分支部门创建密钥,把私钥交给这个分支部门,这个部门就可以花它的分支上的币,而你,因为有主私钥,所以你可以看到并花费整个树上的币。
记账
想让会计看到所有的交易,但不想让他花你的钱?没问题,你可以给他任何一级上的公钥,他就可以看到该级下的所有交易,并且不能花任何的币。
数字货币 分层确定性钱包(HD Wallets)相关推荐
- 分层确定性钱包(HD Wallets)
HD Wallets的全称是Hierachical Deterministic Wallets, 对应中文是 分层确定性钱包. 分层确定性的概念在BIP32提案提出.根据比特币核心开发者 Gregor ...
- 分层确定性钱包 HD Wallet 介绍
分层确定性钱包 HD Wallet 介绍 文章来源:ConsenLabs 以太坊,区块链(Blockchain), 2017/10/20 14:06 3296 钱包是用于发送和接受代币的客户端,就像我 ...
- 分层确定性钱包 HD Wallet 钱包归集
分层确定性的概念早在 BIP32 提案提出.根据比特币核心开发者 Gregory Maxwell 的原始描述和讨论,Pieter Wuille 在2012 年 02月 11日整理完善提交 BIP32, ...
- 分层确定性钱包开发的代码实现(HD钱包服务)
HD Wallets的全称是Hierachical Deterministic Wallets, 对应中文是 分层确定性钱包. 这种钱包能够使用一组助记词来管理所有的账户的所有币种,在比特币的BIP3 ...
- 数字货币 electron cash钱包 如何长时间存放数字货币
根据地藏的推荐,数字货币我已经物色好了,选BCH,剩下的就是找靠谱的钱包.放交易所是不可能的,这辈子都不可能放交易所. 我首先试了一下imtoken.kcash.比特派这三个有APP应用的钱包.用的方 ...
- 币泳金:理安全的储存数字货币,冷钱包与热钱包的管理
在谈到比特币的钱包时,需要考虑的关键点是它接入互联网的问题.这个功能将钱包分为两大类:热钱包和冷钱包.这就像银行把一些资金存放在银行的出纳台上,这样客户可以随时存取,而其余的资金则存放在保险库里.换句 ...
- 分层确定性钱包-以太坊创建钱包
基本概念 所有问题大体可以分为三类:区块链基本概念,钱包安全知识以及钱包转账交易 区块链的基本特性 去中心化 因为整个网络没有中心统治者.系统依靠的是网络上多个参与者的公平约束,所以任意每几个节点的权 ...
- 数字货币 Electron Cash钱包 如何离线转账
别人花了几千块钱去买专门的硬件钱包来保存自己的资产,同样的效果,阎王现在亲自试验后,都免费教给大家. 首先我的苹果电脑是联网的,windows电脑是不联网的. 用苹果电脑打开Electron Cash ...
- 数字货币钱包开发需要注意哪些问题?
10月24日,也就是上周五,国家明确提出要把区块链作为未来科技的主攻方向,从国家层面上,区块链被钦点成未来核心技术创新的突破口,可以肯定的是,区块链技术将在之后加大投入与研究.今日,区块链概念股百股涨 ...
最新文章
- oracle sql判断相等,获取多行相等的人员(Oracle SQL)
- android小球移动代码,Android自定义圆形View实现小球跟随手指移动效果
- ObservableCollection排序
- Chart of Accout-科目表
- 【技术贴】解决 myeclipse打不开报错an error has occurred, see .
- 前端开源项目周报0307
- bzoj2423[HAOI2010]最长公共子序列
- java sql update用法_使用if else条件将SQL UPDATE语句转换为php(codeigniter)
- UVA457 Linear Cellular Automata【模拟】
- ios8升级ios12教程_iOS SpriteKit教程
- Java中PreparedStatement和Statement区别
- JavaScript高级程序设计(第四版) 第二章 HTML中的javascript
- HTML邮件 兼容问题
- Mac M1 + Vmware Fusion 安装 Windows 11 arm版及相关问题解决
- Java IO流中偏移量是什么意思
- 3D游戏编程与设计作业五
- ubuntu 更换系统源和pip源
- 动态规划算法之断句问题
- VsCode与Sublime编辑器优缺点对比
- mysql百万数据写入_快速写入百万数据