博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
钱包应用程序
阅读量:7065 次
发布时间:2019-06-28

本文共 2313 字,大约阅读时间需要 7 分钟。

想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】链客,有问必答!!一、钱包应用程序
  1. 钱包

钱包不是账号,钱包是一个应用程序,主要用于管理账号、保管私钥、发送和接受代币的客户端。

钱包中可以有很多账号,账号也能导入不同的钱包。

  1. 账号

每个账户都是由一对钥匙组成:公钥和私钥。每个账户都对应一个地址。

账户由钱包来管理,一个钱包可以包含多个账户。
账号与公钥、私钥、地址,在以太坊中是一一对应的,而在有的区块链中账号与公私钥对、地址不是一一对应的,比如:EOS。

  1. 地址

地址长度为25字节,转为base58编码后,为34或35个字符,如:1PFjZSK9GEGoGKt3aTDZU2o7kBC4W815pC。

base58是类似base64的编码,但去掉了易引起视觉混淆的字符,又在地址末尾添加了4个字节校验位。
由于存在公钥有两种形式,那么一个公钥便对应两个地址,这两个地址都可由同一私钥签署交易。
地址标记着一个账号,可以公开给别人,用于别人给你转账。
地址不是公钥,地址是由公钥生成,公钥由私钥生成,这两个过程是不可逆的,即地址不能推算出公钥,公钥也不能推算出私钥。

  1. 公钥

公钥压缩格式是33字节,非压缩格式是65字节。即压缩格式是66位长度的十六进制,非压缩格式是130位长度的十六进制字符组成。以0x02/0x03开头为压缩公钥。早期比特币均使用非压缩公钥,现大部分客户端已默认使用压缩公钥。

公钥对账号的交易进行加密。即使用公钥签名交易,然后使用私钥去验证交易。
公钥是通过使用secp256k1椭圆曲线加密算法计算私钥所对应的公钥获得。
公钥、私钥、地址,它们是一一对应的,唯一的,不可修改的。

  1. 私钥

私钥由64位长度的十六进制的字符组成,比如:0xE4356E49C88C8B7AB370AF7D5C0C54F0261AAA006F6BDE09CD4745CF54E0115A,

私钥一定要妥善保管,不能被公开和泄漏,拥有私钥就相当于拥有此账号的使用权。
私钥有可由助记词推导出来。

  1. 密码

密码不是私钥,密码可以进行修改或重置。在钱包应用程序中,创建账号时需要设定一个密码,这个密码一般要求不少于 8 个字符,为了安全,密码最好设置复杂一点。

  1. 助记词

私钥是64位长度的十六进制的字符,不利于记录且容易记错,且每个账号对应一个私钥,多个账号就有多个私钥,不易管理,所以用算法将一串随机数转化为了一串12 ~ 24个容易记住的单词,方便保存记录。所以有的同学有了下面的结论:

助记词是私钥的另一种表现形式。

还有同学说助记词=私钥,这是不正确的说法,通过助记词可以获取相关联的多个私钥,但是通过其中一个私钥是不能获取助记词的,因此助记词≠私钥。

  1. 总结

钱包应用程序用于管理多个账号,在比特币中账号与公私钥对、地址是一一对应的,公钥、私钥、地址也是一一对应的,私钥生成公钥,公钥生成地址,且不可逆,私钥是账号的核心且不可泄漏,地址可以公开用于转账。关于子账号的介绍稍后说明。

二、HD钱包

这个HD钱包,并不是Hardware Wallet硬件钱包,这里的 HD 是Hierarchical Deterministic的缩写,意思是分层确定性,所以HD钱包的全称为比特币分成确定性钱包 。比特币中的钱包就是非确定性钱包,BIP32是 HD钱包的标准定义,由种子派生生成多个私钥。

  1. BIP

BIP是协议,是Bitcoin Improvement Proposals的缩写,意思是Bitcoin 的改进建议,用于提出 Bitcoin 的新功能或改进措施。BIP协议衍生了很多的版本,主要有BIP32、BIP39、BIP44。

BIP32

BIP32是 HD钱包的核心提案,通过种子来生成主私钥,然后派生海量的子私钥和地址,种子是一串很长的随机数。

BIP39

由于种子是一串很长的随机数,不利于记录,所以我们用算法将种子转化为一串12 ~ 24个的单词,方便保存记录,这就是BIP39,它扩展了 HD钱包种子的生成算法。

BIP44

BIP44 是在 BIP32 和 BIP43 的基础上增加多币种,提出的层次结构非常全面,它允许处理多个币种,多个帐户,每个帐户有数百万个地址。

在BIP32路径中定义以下5个级别:

m/purpse'/coin_type'/account'/change/address_index

purpose:在BIP43之后建议将常数设置为44'。表示根据BIP44规范使用该节点的子树。

Coin_type:币种,代表一个主节点(种子)可用于无限数量的独立加密币,如比特币,Litecoin或Namecoin。此级别为每个加密币创建一个单独的子树,避免重用已经在其它链上存在的地址。开发人员可以为他们的项目注册未使用的号码。币种列表
Account:账户,此级别为了设置独立的用户身份可以将所有币种放在一个的帐户中,从0开始按顺序递增。
Change:常量0用于外部链,常量1用于内部链,外部链用于钱包在外部用于接收和付款。内部链用于在钱包外部不可见的地址,如返回交易变更。
Address_index:地址索引,按顺序递增的方式从索引0开始编号。
BIP44的规则使得 HD钱包非常强大,用户只需要保存一个种子,就能控制所有币种,所有账户的钱包,因此由BIP39 生成的助记词非常重要,所以一定安全妥善保管,那么会不会被破解呢?如果一个 HD 钱包助记词是 12 个单词,一共有 2048 个单词可能性,那么随机的生成的助记词所有可能性大概是5e+39,因此几乎不可能被破解。

转载地址:http://zfill.baihongyu.com/

你可能感兴趣的文章
25 JavaScript的幻灯片用于在Web布局的精彩案例
查看>>
用C语言写的迅雷看看XV文件提取器及C语言源代码
查看>>
ccpuid:CPUID信息模块 V1.01版,支持GCC(兼容32位或64位的Windows/Linux)
查看>>
用dom4j操作XML文档(收集)
查看>>
WinForm实例源代码下载
查看>>
hdu 1829 A Bug's Life(并查集)
查看>>
每日英语:Chinese Writer Wins Literature Nobel
查看>>
java中三种主流数据库数据库(sqlserver,db2,oracle)的jdbc连接总结
查看>>
Oracle Apps AutoConfig
查看>>
[leetcode]Flatten Binary Tree to Linked List
查看>>
css颜色代码大全:(网页设计师和平面设计师常用)
查看>>
boost 1.52在windows下的配置
查看>>
素材锦囊——50个高质量的 PSD 素材免费下载《上篇》
查看>>
【转】oc中消息传递机制-附:对performSelector方法的扩充
查看>>
oracle的nvl和sql server的isnull
查看>>
[转]虚拟机下Ubuntu共享主机文件(Ubuntu、VMware、共享)
查看>>
高血压 治疗 偏方
查看>>
HtmlAttribute HTML属性处理类
查看>>
[书目20130316]jQuery UI开发指南
查看>>
Sql Server系列:开发存储过程
查看>>