比特币钱包开发:开发比特币钱包不得不了解的概念

当前位置:首页 > 币圈百科 > 比特币钱包开发:开发比特币钱包不得不了解的概念

比特币钱包开发:开发比特币钱包不得不了解的概念

2022-12-24币圈百科267

目标

本章内容是了解比特币钱包发展过程中非常重要的概念。

了解钱包、账号、地址、公钥、私钥、密码、助记符。了解什么是高清钱包。了解BIP协议常用版本的作用。知道Base58在比特币账户中的重要性

一、钱包应用

1。钱包

钱包不是一个账户,而是一个应用,主要用来管理账户,保管私钥,发送而且钱包里可以有很多账户,账户可以导入到不同的钱包里。

2。帐号

每个帐号都由一对密钥组成:公钥和私钥。每个账户对应一个地址。账户由钱包管理,一个钱包可以包含多个账户。以太坊中账号与公钥、私钥、地址一一对应,而在一些区块链中,如EOS,账号与公钥、私钥对、地址一一对应。

3。地址

地址的长度是25个字节。转换成base58编码后就是34或35个字符,比如1 pfjzsk 9 gegogkt 3 at dzu 2 o 7 kb 4 w 815 PC。Base58是一种类似base64的代码,但它去掉了容易造成视觉混乱的字符,并在地址的末尾增加了4字节的校验位。因为公钥有两种形式,一个公钥对应两个地址,两个地址都可以用同一个私钥签名。地址标有账号,可以透露给别人,让别人给你转账。地址不是公钥,地址是公钥生成的,公钥是私钥生成的。这两个过程是不可逆的,即地址无法计算公钥,公钥无法计算私钥。

4。公钥

公钥的压缩格式为33字节,未压缩格式为65字节。即压缩格式为66位十六进制,未压缩格式由130位十六进制字符组成。压缩的公钥从002/003开始。早期比特币使用的是非压缩公钥,现在大部分客户端已经默认使用压缩公钥。加密公钥账户的交易。也就是说,用公钥对交易进行签名,然后用私钥对交易进行验证。公钥是用secp256k1椭圆曲线加密算法计算私钥对应的公钥得到的。公钥、私钥和地址,它们是一一对应的、唯一的、不可更改的。

5。私钥

私钥由64位十六进制字符组成,如0xe 4356 e 49 c 88 c 8 b 7 ab 370 af 75 c 0 c 54 f 0261 aa 006 f 6 bde 09 CD 4745 cf 54 e 0115 a。私钥必须妥善保管,不能泄露。拥有私钥就相当于拥有了这个账号的使用权。私钥可以从助记符中导出。

6。Password

Password不是私钥,可以修改或重置。在钱包应用中,创建账户时需要设置密码。该密码通常要求不少于8个字符。为了安全起见,还是把密码设置的复杂一点比较好。

7。助记词

私钥是64位十六进制字符,不利于记录,容易记忆。而且每个账号对应一个私钥,多个账号有多个私钥,不好管理。所以用一个算法把一串随机数转换成一串12 ~ 24个好记的单词,便于记录。于是有同学得出如下结论:

助记符是私钥的另一种形式。也有同学说助记符=私钥,这是不正确的。通过助记符可以获得多个私钥,但是其中一个私钥无法获得助记符,所以助记符私钥。

8。摘要

Wallet应用程序用于管理多个帐户。在比特币中,账户与公钥和私钥对以及地址是一一对应的,公钥、私钥和地址也是如此。私钥生成公钥,公钥生成地址,这是不可逆的。私钥是账号的核心,不能泄露,地址可以公开用于转账。子账户的引入将在后面解释。

二。高清钱包

这个高清钱包不是硬件钱包。这里的HD是分级确定性的缩写,意思是分级确定性,所以HD钱包的全称是比特币分成确定性钱包。比特币中的钱包是非确定性钱包,BIP32是高清钱包的标准定义,它

1。BIP

BIP是一个协议,是比特币改进提案的缩写。意思是比特币的改进建议,用于提出比特币的新功能或改进措施。BIP协议有许多版本,包括BIP32、BIP39和BIP44。

BIP32

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

BIP39

因为种子是一长串的随机数,不利于记录,我们用算法把种子转换成12 ~ 24个字的字符串,方便保存记录。这是BIP39,扩展了高清钱包种子的生成算法。

BIP44

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

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

m/purpse '/coin _ type '/account '/change/address _ index用途:建议在BIP43后设置常量为44 '指示根据BIP44规范使用此节点的子树。Coin_type: Currency,表示一个主节点(种子)可以用于无限数量的独立加密货币,如比特币、莱特币或Namecoin。这个级别为每种加密货币创建一个单独的子树,避免重复使用其他链中已经存在的地址。开发者可以为他们的项目注册未使用的号码。列出货币帐户:帐户。为了设置独立的用户身份,所有货币都可以放在一个账户中,从0增加到0。变化:常数0用于外链,常数1用于内链,外链用于钱包对外收付款。内部链用于钱包外不可见的地址,比如返回交易变更。Address_index:地址索引,从索引0开始按升序编号。

bip 44的规则让高清钱包变得非常强大。用户只需保存一个种子,就可以控制所有货币和账户的钱包。所以BIP39生成的助记符非常重要,一定要安全妥善保管。那么会被破解吗?如果一个高清钱包助记符是12个字,总共有2048个字的可能性,那么随机生成的助记符的所有可能性大约是5e 39,所以几乎不可能被破解。

2。种子

种子可以派生生成多个私钥,所以种子是一个钱包账户中最关键的数据,比私钥有更高的级别。因此,备份种子将会备份所有关联的私钥。钱包包含从树形结构中派生出来的键,这样父键可以从一系列子键中派生出来,每个键又可以从一系列子键中派生出来,从而达到无限深度。

seed

Base58代码

蓑衣网小编2022 1。Base64代码

Base64是一种基于64个可打印字符表示二进制数据的方法

Base64使用26个小写字母、26个大写字母、10个数字,Base64通常用于对邮件中的附件进行编码。

Base64字符集:

abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz 0123456789/

2 .Base58编码

Base58是一种基于文本的二进制编码格式,是比特币使用的一种独特编码方式,主要用于生成比特币的钱包地址。

与Base64相比,Base58不使用数字“0”、大写字母“O”、大写字母“I”和小写字母“L”以及符号“和”/。目的是去除易混淆的字符。这种编码格式不仅实现了数据压缩,保持了易读性,还具有错误诊断的功能。

Base58字符集:

abcdefghjklmnpqrstuvwxyzabcdefghijkmnopqrsttuvwxyz 123456789

3 .Base58check

Base58check是比特币常用的一种base 58编码格式,增加了一个错误校验码,用于检查数据转录中的错误。在Base58Check中,一个名为“版本字节”的前缀被添加到数据中,用于指定要编码的数据类型。

首先,给数据添加一个版本前缀。这个前缀用于标识编码的数据类型。 比如比特币地址的前缀是0(十六进制的000)。SHA256哈希算法校验和=sha256(前缀数据))用于连续执行两次数据。在生成的长度为32字节的哈希值(两次哈希云计算)中,前4个字节作为校验,加入到第一步数据生成的数据中。对数据

进行Base58编码处理base 58校验的编码过程如下图所示。

base58check蓑衣网小编2022base 58 check的作用:

由于有base 58编码,所以0和O,1和L和I之间没有错误,大整数也转换成可读的字符串。为什么会有Base58Check这样的链接?想象一下,你在程序中输入一个Base58编码的地址。虽然不能把0和O,1和L和I弄错,但是如果不小心输入了一个错别字,或者写的字符越来越少怎么办?你可能会说,没什么大不了的,就是个错别字。这不是很常见吗?你就不能重新输入吗?但当用户向一个比特币地址转账时,如果输入错误,那么对方将收不到资金。更重要的是,资金被发到一个根本不存在的比特币地址,所以资金永远无法交易,也就意味着比特币的丢失。校验码为4字节长,添加到要编码的数据中。校验码是从要编码的数据的哈希值中获得的,因此可以用来检测和避免转录和输入中的错误。当使用Base58check编码格式时,程序将计算原始数据的校验码,并将其与自己的校验码进行比较。如果两者不匹配,则表明有错误。其实在比特币交易中,总是会检查比特币地址是否合法。如果已经通过Base58Check的比特币地址被比特币钱包程序判定无效,当然会阻止交易继续进行,从而避免资金损失。

版权声明:博客内文章版权归博主所有,未经授权禁止转载。转载请联系作者许可并注明出处。未经授权,禁止转载或改编。转载请注明出处!

比特币钱包开发:开发比特币钱包不得不了解的概念 | 分享给朋友: