详解私钥、密码、keystore和助记词
文章以及资料(开源):github地址
文章目录
- 密码
- 私钥
- keystore
- 助记词
- 以太坊对BIP的支持
- 密码、私钥、keystore与助记词的关系
- 如何解锁账户
密码
首先明白密码不是私钥,它是在创建账户时候的密码(注意可以修改)。密码在以下情况下会使用到:
- 作为转账的支付密码
- 用keystore导入钱包的时候需要输入的密码,用来解锁keystore的
私钥
私钥由64位长度的十六进制的字符组成,比如:0xA4356E49C88C8B7AB370AF7D5C0C54F0261AAA006F6BDE09CD4745CF54E0115A
,一个账户只有一个私钥且不能修改,。通常一个钱包中私钥和公钥是成对出现的,有了私钥,我们就可以通过一定的算法生成公钥,再通过公钥经过一定的算法生成地址,这一过程都是不可逆的。私钥一定要妥善保管,若被泄漏别人可以通过私钥解锁账号转出你的该账号的数字货币。
keystore
Keystore常见于以太坊钱包,它是将私钥以加密的方式保存为一份 JSON 文件,这份 JSON 文件就是 keystore,所以它就是加密后的私钥。Keystore必须配合钱包密码才能使用该账号。
助记词
私钥是64位长度的十六进制的字符,不利于记录且容易记错,所以用算法将一串随机数转化为了一串12 ~ 24个容易记住的单词,方便保存记录。注意:
- 助记词是私钥的另一种表现形式
- 助记词可以获取相关联的多个私钥,反过来私钥没法获取助记词。
要弄清楚助记词与私钥的关系,得清楚BIP协议,是Bitcoin Improvement Proposals
的缩写,意思是Bitcoin 的改进建议,用于提出 Bitcoin 的新功能或改进措施。BIP协议衍生了很多的版本,主要有BIP32、BIP39、BIP44。
以太坊对BIP的支持
BIP是用于提出 Bitcoin 的新功能或改进措施,那么对于以太坊来说如何支持呢?
- 以太坊在EIPs/issues/84中讨论,是否遵循 BIP32 和 BIP44,社区里提出来很多有意思的观点,比特币是基于 UTXO 的,所以可以使用 HD 钱包(BIP32)为每个交易分配一个新地址,以保护您的隐私。然而,以太坊是基于帐户,每个帐户都有一个地址,BIP 是比特币的提案,而且比特币的数据结构的设计是围绕改变地址的想法构建的,BIP 的一些提案可能并不适合以太坊。以太坊的模式和比特币UTXO 不同,以太坊转账不能改变地址,如果在以太坊上实现 UTXO ,用户还必须签名两个交易以将余额的一部分发送到一个地址,将余额的一部分发送到第二个地址 - 这将使成本增加一倍,而且第二个交易可能不会在同一个区块中,当然以太坊也可以通过智能合约的方式实现。另外,以太坊目前官方钱包采用 KDF 的形式,也就是我们常说的 Keystore 的形式。
- 以太坊在EIPs/issues/85中讨论,以太坊社区似乎也采用了 BIP32 的做法,提议 HD 路径为 :
m/44'/60'/0'/0/n
,n 是第 n 次生成地址。目前以太坊客户端实现了BIP32的客户端有:Jaxx, Metamask, Exodus, imToken, TREZOR (ETH) & Digital Bitbox
。
密码、私钥、keystore与助记词的关系
如何解锁账户
解锁账户有如下几种方式:
- 私钥(Private Key)
- Keystore+密码(Keystore+Password)
- 助记词(Mnemonic code)
我们可以得到以下总结:
- 通过私钥+密码可以生成keystore,即加密私钥。
- 通过keystore+密码可以获取私钥,即解密keystore。
- 通过助记词根据不同的路径获取不同的私钥,即使用HD钱包将助记词转化成种子来生成主私钥,然后派生海量的子私钥和地址。
详解私钥、密码、keystore和助记词相关推荐
- 密码、私钥、keystore与助记词之间的关系
密码.私钥.keystore与助记词之间的关系 一.它们关系可以用下面的图来表述. 二.私钥 基于以上的分析,我们对以太坊钱包的账号系统有了一个很好的认识,那么我们在使用钱包的过程中,该如何保管自己的 ...
- 助记词创建以太坊钱包源码_技术指南 | 以太坊钱包开发:生成账户地址、私钥、keystore、助记词...
一.使用web3连接到以太坊网络(测试网.主网) 1. 什么是web3 web3是以太坊官方开提供的一个连接以太坊区块链的模块,允许您使用HTTP或IPC与本地或远程以太坊节点进行交互,它包含以太坊生 ...
- 简单科普私钥、地址、助记词、Keystore的区别
简单科普私钥.地址.助记词.Keystore的区别 苏江同学 关注 2017.10.31 21:03* 字数 1589 阅读 13437评论 10喜欢 18赞赏 3 很多人保管不好自己的虚拟财产,发 ...
- java助记词_JAVA生成BTC地址以及私钥,公钥和助记词
JAVA生成BTC地址以及私钥,公钥和助记词 有用的话,回来给我点个赞,谢谢了.有问题留言,我会尽快回复. maven依赖 org.bitcoinj bitcoinj-core 0.14.7 上代码 ...
- AToken小课堂----什么是私钥?什么是助记词?
AToken是一个手机端的HD钱包,说到HD钱包很多用户并不理解是什么,在这里小编简单科普一下: HD钱包并不是Hardware Wallet(硬件钱包)的缩写,而是Hierarchical Dete ...
- 以太坊---「地址、密码、私钥、助记词、Keystore 」那些事
想知道更多关于区块链技术知识,请百度[链客区块链技术问答社区] 链客,有问必答!! 国内最好的以太系钱包当属 imToken,在使用钱包时,有几个名词必须深刻理解,不然就有可能造成区块链资产的损失,这 ...
- 怎么通过助记词登录MetaMask和通过私钥登录
怎么通过助记词登录MetaMask和通过私钥登录 问题 相信伙伴们想切换账户的时候都会遇到这样一个问题,就是明明我记住的是助记词,它却要我输入那一长串很难记住的字符,其实可以这样通过助记词登录账户 ...
- php实现助记词转TRX,ETH 私钥和钱包地址
TRX助记词转地址网上都是Java,js或其他语言开发的示例,一个简单的功能需要依赖其他环境来实现表示不能忍,毕竟php是世界上最好的语言.[狗头] 一.知识准备 要实现助记词转TRX私钥和地址,先需 ...
- 1.16. BIP39协议:使用助记词生成确定性钱包
以太坊系统学习教程: https://www.netkiller.cn/blockchain/bip39.html 1.16. BIP39协议:使用助记词生成确定性钱包 BIP:39 层:应用层 标题 ...
最新文章
- LeetCode Python题解(二)----排序
- 安装搭建kafka集群
- @Autowired原理
- Windows Server 2008网络基础结构的实现与管理
- opencv学习笔记8:类型转换
- oracle大表复制加并行,GoldenGate复制单表开并行
- 如何JQ将下拉列表的值传送给php,JQuery设置获取下拉菜单某个选项的值(比较全)...
- MTK 功耗优化(1)---MTK PerfService
- 【大数据】0001---使用SparkSQL关联两个表求和取前几行
- TrackBar问题,有高人能解决吗?
- 输出数组元素(c语言)
- stm32f103rc片内Flash使用FAL库配置说明
- 【2022刷题】受伤的皇后
- apache的动态网站部署,discuz论坛系统和ecshop电商系统
- 【产业互联网周报】阿里云栖大会、百度世界大会召开:阿里重推“云端一体”、百度AI全面升级...
- 关于高通8953开机需要按pwrkey很长时间的问题
- Linux监控服务之zabbix
- 0811 iOS开发完整学习路线
- DC/DCT/DCG 差别和联系
- 论文翻译:2020_RNNoise:A Hybrid DSP/Deep Learning Approach to Real-Time Full-Band Speech Enhancement...