私钥、公钥、钱包地址之间的关系

摘要:同SHA256一样,RIPEMD160也是一种Hash算法,由『公钥』可以计算得到『公钥哈希』,而反过来是行不通的。将一个字节的地址版本号连接到『公钥哈希』头部(对于比特币网络的pubkey地址,这一字节为“0”),然后对其进行两次SHA256运算,将结果的前4字节作为『公钥哈希』的校验值,连接在其尾部。...

摘要: BTC私钥、公钥、钱包地址的关系

比特币交易涉及到很多密码知识:公钥、私钥、哈希、对称加密、非对称加密、签名等等。那么,哪些用户需要仔细保管,而不是泄露,那些需要用户披露呢?从钱包地址的形成开始。

生成钱包地址

私钥、公钥、钱包地址之间的关系

1. 首先,使用随机数发生器生成一个『私钥』。一般来说,这是一个256bits的数字,有了这串数字就可以对应『钱包地址』BTC要操作,所以必须安全保存。

2. 『私钥』SECP25K1算法处理生成『公钥』。SECP256K1是一种椭圆曲线算法『私钥』时可以算得『公钥』,而『公钥』已知时难以反向计算『私钥』。这是确保BTC安全的算法基础。

3. RIPEMD160与SHA256一样,也是一种Hash算法『公钥』可计算获得『公钥哈希』,反之亦然是行不通的。

4. 连接到字节地址版本号『公钥哈希』头部(对于比特币网络的pubkey地址,该字节为“0”),然后对其进行两次SHA256计算,将结果前4字节作为『公钥哈希』校验值,连接在其尾端。

5. 使用BASE58编码上一步的结果(BTC定制版)『钱包地址』。

例如,
A1zp1ePQFi2DMPTL5SLMV7

『私钥』『公钥』『钱包地址』间的关系

在上述五个步骤中,只有“BASE58编码”有明确的可逆算法(“BASE58解码”),其他算法是不可逆转的,因此这些信息之间的关系可以表示为:

私钥、公钥、钱包地址之间的关系

能够看见:

· 通过『私钥』您可以在上述计算步骤中获得所有值。

· 『公钥哈希』和『钱包地址』它们可以通过互逆运算进行转换,因此它们是等价的。

使用『私钥』签署交易

比特币钱包间的转账是通过交易进行的(Transaction)实现。交易数据是从钱夹转出的『私钥』所有者生成,换句话说,有了『私钥』您可以花费该钱包的BTC余额。生成交易的过程如下:

私钥、公钥、钱包地址之间的关系

1. 交易的原始数据包括“转账金额”和“转账到钱包地址”,但只有这些是不够的,因为它不能证明交易的形成者有权使用“转账到钱包地址”的余额。因此,需要使用它『私钥』签署原始数据。

2. 生成“转出钱夹公钥”『钱包地址』第二步是一样的。

3. 将“转出签名”和“转出公钥”添加到原始交易数据中,生成正式的交易数据,使其可以广播到比特币网络进行转账。

使用『公钥』验证签名

私钥、公钥、钱包地址之间的关系

交易数据广播到比特币网络后,节点将检测交易数据,包括签名验证。如果验证正确,余额将成功地从“转移到钱夹”转移到“转移到钱夹”。

总结

1.如果一个『钱包地址』余额从未发送到其他余额『钱包地址』,那么它的『公钥』它不会暴露在比特币网络上。公钥生成算法(SECP256K1)是不可逆转的,即使是『公钥』暴露,也很难对『私钥』影响安全性(难度取决于安全性)『私钥』形成算法)。

2.『私钥』用于生成『公钥』和『钱包地址』,也用于签署交易。拥有它。『私钥』就是拥有这个钱包余额的所有操作权。因此,保护钱包余额。『私钥』它是所有比特币钱包应用中最基本、最重要的功能

(作者:链接社区,内容来自链接内容开放平台“获得号”;本文仅代表作者的观点,不代表链条获得官方立场)

相关推荐