主页 > imtoken苹果闪退 > 比特币私钥推导出公钥比特币私钥、公钥、钱包地址的关系

比特币私钥推导出公钥比特币私钥、公钥、钱包地址的关系

imtoken苹果闪退 2023-10-15 05:12:03

比特币交易涉及大量密码学:公钥、私钥、散列、对称加密、非对称加密、签名等等。 那么哪些需要用户妥善保管不能泄露给外界,哪些需要用户公开呢? 让我们从钱包地址生成开始。

钱包地址生成

有余额的比特币私钥_比特币私钥生成导出_比特币钱包导出私钥

1. 首先使用随机数生成器生成“私钥”。 通常,这是一个 256 位的数字。 有了这串数字,就可以操作对应“钱包地址”中的比特币,所以一定要妥善保管。

2、“私钥”经过SECP256K1算法处理生成“公钥”。 SECP256K1 是一种椭圆曲线算法。 当知道“私钥”时,就可以计算出“公钥”,但是当知道“公钥”时,就不能反算出“私钥”。 这是保护比特币安全的算法基础。

3. 和SHA256一样,RIPEMD160也是一种Hash算法。 可以从“公钥”计算“公钥哈希”,但反之则不行。

4、在“公钥哈希”头上连接一个字节地址版本号(对于比特币网络的公钥地址,这个字节为“0”),然后对其进行两次SHA256运算,结果取第一个4个字节作为“公钥哈希”的验证值,比特币私钥用于计算公钥,最后连接。

5、将上一步的结果(比特币定制版)用BASE58编码得到“钱包地址”。

例如,1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

“私钥”、“公钥”和“钱包地址”的关系

以上五个步骤中,只有“BASE58编码”有对应的可逆算法(“BASE58解码”),其他算法都是不可逆的,所以这些数据之间的关系可以表示为:

比特币钱包导出私钥_比特币私钥生成导出_有余额的比特币私钥

可见的:

以上计算过程中的所有值都可以通过“私钥”得到。

“公钥哈希”和“钱包地址”可以通过倒数运算进行转换,因此它们是等价的。

使用“私钥”签署交易

比特币钱包之间的转账是通过交易完成的。 交易数据由出款钱包的“私钥”拥有者生成,也就是说有余额的比特币私钥,用“私钥”比特币私钥计算出公钥,即可花费钱包的比特币余额。 生成交易的过程如下:

比特币私钥生成导出_比特币钱包导出私钥_有余额的比特币私钥

1、交易的原始数据包括“转账金额”和“转入钱包地址”,但仅有这些是不够的,因为无法证明交易的生成者有权使用“转入钱包地址”的余额地址”。 因此,原始数据需要用“私钥”进行签名。

2、生成“转账钱包公钥”,过程同第二步生成“钱包地址”。

3、在原始交易数据上加上“转出签名”和“转出公钥”,生成正式的交易数据,广播到比特币网络进行转账。

使用“公钥”验证签名

有余额的比特币私钥_比特币私钥生成导出_比特币钱包导出私钥

交易数据广播到比特币网络后,节点检查交易数据,包括签名验证。 如果验证无误,则余额成功从“转账钱包”转入“转账钱包”。

总结

如果一个“钱包地址”从不向另一个“钱包地址”发送余额,那么它的“公钥”就不会暴露在比特币网络上。 公钥生成算法(SECP256K1)是不可逆的,即使“公钥”暴露有余额的比特币私钥,也很难影响“私钥”的安全(难易程度取决于“私钥”的生成算法)。

“私钥”用于生成“公钥”和“钱包地址”,也用于签署交易。 拥有“私钥”意味着完全有权操纵钱包余额。

因此,保护​​“私钥”是任何比特币钱包应用最基本也是最重要的功能。

笔记

本文只讨论标准的P2PKH交易方式,P2SH不在讨论范围。

从历史上看,被错误验证的交易进入了区块链,而来自此类交易的比特币在网络空间中永远丢失了。

币圈新闻,版权所有丨如未注明,均为原创丨本站受BY-NC-SA协议授权

转载请注明原文链接:比特币私钥计算公钥比特币私钥、公钥、钱包地址的关系