主页 > imtoken钱包下载 > 比特币私钥、公钥和地址

比特币私钥、公钥和地址

imtoken钱包下载 2024-01-26 05:09:10

2021-05-05

在比特币中,三个词经常出现:私钥、公钥和地址。 他们的意思是什么? 他们之间是什么关系? 理解它们之间的关系和区别是理解比特币的基础。

比特币的私钥,公钥和地址

私钥

先说私钥。 一般我们看到的私钥是像下面这样的字符串:

5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss

支持比特币协议的应用程序可以将这个字符串正确转换成比特币私钥,再转换公钥得到地址。 如果地址上有对应的比特币比特币私钥哪里看,就可以用这个私钥在上面消费比特币。

我们所说的比特币私钥在密码学上是安全的。 并不是说不能有重复的私钥,而是说不可能通过遍历找到具体的私钥,或者通过其他方式找到。 ,地址上的比特币可以不使用私钥进行消费,从数学上保证了私钥的安全性。

私钥总数很大,但是私钥的生成依赖于随机数。 真正的随机性很难实现。 大多数私钥的生成依赖于伪随机算法 (PRNG)。

伪随机是使用函数产生随机数。 这不是真的随机的。 它只是一个更接近真正随机性的随机数。

比特币 私钥恢复钱包_比特币私钥哪里看_比特币 手机 私钥

私钥生成的随机性非常重要。 加密安全随机性是指:

随机性是不可预测的,随机结果是无法遍历的。 如果不是安全的随机数生成器,生成的私钥可能会被其他人冲撞。 不依赖于随机生成的私钥大大降低了它们生成的概率空间。

公钥和地址的生成依赖于私钥,所以我们只需要保存私钥即可。 有了私钥,就可以生成公钥和地址,就可以消费对应地址上的比特币了。

不过输入上面的不规则字符串还是比较费力的。 当然,你也可以将私钥转换成其他形式,比如词的形式(12或24个词),脑钱包的形式,或者你自己。 某句生成私钥,注意脑钱包生成的随机私钥安全性不高。

我们看到的私钥除了5开头的私钥,还有L和K开头的私钥,为什么会这样呢? 5. L带和K带代表什么? 这是关于公钥的。

公钥

比特币的基础是椭圆曲线数字签名算法:

椭圆曲线数字签名算法 (ECDSA) 是使用椭圆曲线密码术 (ECC) 的数字签名算法 (DSA) 的模拟

椭圆曲线密码术 (ECC) 是一种公私密钥加密技术:

比特币 私钥恢复钱包_比特币私钥哪里看_比特币 手机 私钥

ECC基于椭圆曲线理论,利用椭圆曲线方程的性质来生成密钥,而不是采用传统的大素数乘积生成密钥的方法。 其特点是:密钥长度小,安全性能高,整个数字签名耗时少。

DSA(DigitalSignature Standard)数字签名技术:

在DSA数字签名和认证中,发送方使用自己的私钥对文件或消息进行签名,接收方在收到消息后使用发送方的公钥来验证签名的真实性。

这里很明显私钥是用来签名的,公钥是用来验证签名的。

公钥由私钥通过椭圆曲线(ECPoint)生成。 私钥可以通过椭圆曲线转换为公钥。 公钥是一个 65 字节的数组。 一般我们会看到这样一个公钥:

04a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd5b8dec5235a0fa8722476c7709c02559e3aa73aa03918ba2d492eea75abea235

显示的公钥一般显示的是经过hex(十六进制)处理后的字节数组,不带Base58,因为: 公钥用于验证私钥的签名。 一般我们很少看到公钥。 在使用私钥签署交易后,他会将自己的公钥与交易一起发送,这样对于一个完整的交易,他会使用交易中包含的公钥来验证私钥的签名是否正确.

私钥和公钥成对出现。 只有对应的公钥才能验证私钥签名的数据,地址也是由公钥生成的,这样就可以验证花费的交易是否属于这个地址了!

压缩后的公钥对比特币来说意义重大。 比特币是一种去中心化的 p2p 加密货币。 每个节点都会有完整的交易记录。 除了coinbase(挖矿得到的比特币),每笔交易都需要发送公钥,支持压缩格式的公钥,每笔交易的数据可以减少32字节,这对整个比特币网络来说意义重大,并且整个比特币网络的数据在传输和存储上都可以得到改善。 效率不高。

比特币 手机 私钥_比特币 私钥恢复钱包_比特币私钥哪里看

对私钥进行Base58编码时,旧的未压缩公钥的私钥是一个33位的字节数组,第一位存储私钥的Version信息,当前值为128,生成的Base58全部从5开始。

老版本未压缩私钥=Base58(版本+32位随机数)

支持压缩公钥的私钥是34位,第一位是版本信息,它的值也是128,多出的位是最后一个字节用来存放信息是否压缩信息,1表示是支持压缩格式的公钥,经过Base58处理后,恰好以L或K开头

新版私钥格式=Base58(版本+32位随机数+是否支持压缩)

例子中的私钥不仅包含32字节数组的信息,还包含私钥版本信息以及其公钥是否压缩(根据位数和数值判断)

公钥是否压缩不仅会影响私钥的显示,还会影响地址。

地址

公钥太长比特币私钥哪里看,所以有一个更短地址的概念。 另一方面,没有发送过交易的地址不想暴露自己的公钥,地址是通过摘要算法生成的,公钥不会暴露。 真实内容:

地址由公钥生成,地址长度为25bytes,经过base58处理后,在地址末尾增加一个4字节的校验位。

比特币 手机 私钥_比特币私钥哪里看_比特币 私钥恢复钱包

我们看到的地址一般都是经过Base58编码处理的,地址的生成比较复杂。 从公钥到地址生成的过程就是先对公钥做一次SHA256(哈希算法)。

sha-256-hash= SHA-256(公钥)

经过hash160处理后,hash160:RIPEMD(PACE integrity Primitives Evaluation Message Digest)是原始完整性验证报文的摘要,160标准对应20个字节:

hash160=hash160(sha-256-hash)

对结果进行hash160处理,得到一个20字节的数组,在这个20位的字节数组前面加一个字节,这个字节就是地址的Version信息,地址的Version当前值为0,并且版本信息在比特币测试网络上会使用不同的值,完整的比特币地址表示为:

地址=Base58(版本+hash160(SHA-256(公钥))+校验和)

校验和用于校验比特币地址,然后将地址的版本信息加入到得到的hash160中,再对信息进行两次SHA-256,然后取前4位得到校验和:

校验和=get_front_four(SHA-256(SHA-256(version+hash160)))

其中hash160是这个过程中最重要的信息。 从这个值可以得到地址的前21位(第一位是版本)和后面的校验和,就可以生成Base58格式的地址。 Hash160也可以从Base58格式的地址中得到,也就是说hash160格式的地址可以和Base58格式的地址互换。

比特币 手机 私钥_比特币私钥哪里看_比特币 私钥恢复钱包

私钥的不同对地址有什么影响?

之前有人说过:

随机数可以有一个压缩的公钥和一个未压缩的公钥

每个公钥都会生成一个地址,而上面的私钥其实可以有两个地址:

1HZwkjkeaoZfTSaJxDw6aKkxp45agDiEzN(未压缩公钥)

1F3sAm6ZtwLAUnj7d38pGFxtP3RVEvtsbV(压缩公钥)

这两个地址就是这个随机数生成的地址,每个地址上的比特币都可以用这个随机数对应的私钥来消费。 目前大多数应用程序默认使用压缩私钥。

分类:

技术要点:

相关文章: