区块链开发之确定性算法bip32,bip39,bip44
引言
随着比特币区块链的发展,人们已经不满足于,只有一个账号的情况,有些人会有好几个账户,但是这就出现一个问题,我有几个账号,就要保存几个私钥,这就特别麻烦和不友好,所以,就出现了bip32确定性算法,该算法可以让你只有同一个种子,就可以生成无数个私钥和地址,这就大大方便了用户的使用。但是这个种子,也比较长,用户使用起来也比较繁琐,这就出现了bip39,它是使用助记词的方式,生成种子的,这样用户只需要记住,12个单词(3,6,9,12,15,18,21,24支持这些单词数,目前使用较广泛的是12和24),这就有大大提高了用户使用的便利性。又随着区块链发展,市面上出现了很多币种,之前的确定性算法只是针对比特币的,也就是说只支持一种币种,用户想用同一个种子,管理不同币种,这就促使了bip44协议的出现,它是基于bip32协议的,它给bip32的路径,赋予了不同的意义,很好的解决了多币种,多地址的问题。
协议官方链接
如果想详细的了解这些协议,请查看官方文档(解析的最清楚)
big32:https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
bip39:https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
bip44:https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki
验证网站:https://iancoleman.io/bip39/
BIP44简介
路径级别
bip44给bip32定义了5各级别
m / purpose’ / coin_type’ / account’ / change / address_index
m是固定的
Purpose也是固定的,值为44(或者 0x8000002C)
Coin type
这个代表的是币种,0代表比特币,1代表比特币测试链,60代表以太坊
完整的币种列表地址:https://github.com/satoshilabs/slips/blob/master/slip-0044.md
Account
代表这个币的账户索引,从0开始
Change
常量0用于外部链,常量1用于内部链(也称为更改地址)。外部链用于在钱包外可见的地址(例如,用于接收付款)。内部链用于在钱包外部不可见的地址,用于返回交易变更。 (所以一般使用0)
address_index
这就是地址索引,从0开始,代表生成第几个地址,并且官方建议,每个account下的address_index不要超过20
示例
coin | account | change | address | path |
---|---|---|---|---|
Bitcoin | first | external | first | m / 44’ / 0’ / 0’ / 0 / 0 |
Bitcoin | first | external | second | m / 44’ / 0’ / 0’ / 0 / 1 |
Bitcoin | first | internal | second | m / 44’ / 0’ / 0’ / 1 / 1 |
Bitcoin Testnet | first | external | first | m / 44’ / 1’ / 0’ / 0 / 0 |
Bitcoin Testnet | second | external | first | m / 44’ / 1’ / 1’ / 0 / 0 |
区块链开发之确定性算法bip32,bip39,bip44相关推荐
- 基于Java的Android区块链开发之生成助记词(位数可选)
基于Java的Android区块链开发之生成助记词 位数可选 具体实现代码 这里使用bitcoinj库,来实现生成bip39的12个助记词,引用库 implementation 'org.bitcoi ...
- 区块链开发教程 # 2 以太坊公链
科普向介绍请参考 tutorial.技术开发教程请参考本文.本系列文章更偏向技术入门.参考网上资料根据个人理解整理而成.本文主要参考廖雪峰博客. 前一篇文章地址:区块链开发教程 # 1 比特币公链 本 ...
- 区块链开发: 2019年及以后数字货币的前景如何?
区块链开发: 2019年及以后数字货币的前景如何 区块链是 2017年最热门的技术之一.来自世界各地的数千人试图利用比特币和其他数字货币不断上涨的价格进行投资和套现.似乎世界将在短短几年内依靠这些货币 ...
- 区块链开发公司能做什么?对企业未来市场有何帮助?
随着区块链开发公司的日趋成熟,商业结构在可持续发展的思路上渐显乏力,很多人想寻求一个更能切入未来市场的方式,因为他们清楚的知道面对未来市场,结合区块链开发公司做到"全面覆盖"的商业 ...
- 区块链开发:为什么你应该学习?
2019独角兽企业重金招聘Python工程师标准>>> 为什么你要学习区块链技术开发?在回答这个问题之前,需要先指出一点: 区块链现在是一个过度估值的领域, 这些高估值是不可持续的, ...
- 《Node.js区块链开发》一3.5 亿书对DPoS机制的改进
本节书摘来华章计算机<Node.js区块链开发>一书中的第3章 ,第3.5节,朱志文 著 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.5 亿书对DPoS ...
- 区块链开发之搭建以太坊私有链
(一)区块链开发之搭建以太坊私有链 本文链接:https://blog.csdn.net/rwdxll/article/details/82929417 1.安装ethereum/Go client( ...
- 5分钟学会区块链 - 开发一条区块链 Develop BlockChain with Tendermint
本文攻略:解惑区块链开发,学习 Tendermint,给自己造一条区块链 建议玩家等级:技术小白,学生党,初级码农 阅读此文先解锁技能: 一点点命令行基础 一点点 GO 基础:三天包学会 一点点区块链 ...
- 《Node.js区块链开发》——1.6 参考
本节书摘来自华章计算机<Node.js区块链开发>一书中的第1章,第1.6节,作者 朱志文,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.6 参考 < ...
- 区块链开发公司 注重用户的价值才是企业归宿
区块链开发成了街头巷议的热门词,在决策偏好上,大多数人习惯关注短期的直接结果,人们对于短期收益的热情远高于长期收益的期待,但这并不意味着我们对区块链开发公司的关注只应停留于一级结果,而忽视其对社会变革 ...
最新文章
- Error:The SDK Build Tools revision (23.0.3) is too low for project ':app'. Minimum required is 25.0.
- 原生Android也能做Web开发了
- 第七周实践项目2.3 顺序环形队列
- SAP Spartacus避免不能向下兼容的breaking changes
- 创业者们的19个Surprises
- AND、OR运算符的组合使用
- STL和C++标准库
- 08.QT中sqlite3数据库基本操作
- 【设计模式:单例模式】单例模式02:懒汉模式
- 深入解析LoadRunner下的参数化取值
- 记录一个对外接口签名问题
- OpenCV学习笔记(十五)——k近邻算法
- Vue源码分析系列:目录
- 在Ubuntu 22.04上安装WRF-Chem模型4.4版本和KPP
- itween的抛物线线性移动
- 蛙蛙推荐:蛙蛙牌网页捕捉器
- Eclipse开发Android的安装配置。
- 2023年Node.js全网详细下载安装的最新教程
- 目标检测之详解yolov3的anchor、置信度和类别概率
- ISeeYou:一款基于Bash和Javascript开发的社会工程学网络钓鱼工具