风险提示:理性看待区块链,提高风险意识!

比特币地址、公钥、私钥都是什么?有什么用?

1个回答

武当张三疯5星评价

2021-04-20 09:24:44

比特币地址、公钥、私钥都是什么?有什么用?

我们提到了钱包为用户自动生成了地址、公钥、私钥,并且在这篇文章中,我们讲解了什么是地址、地址用来做什么:地址就是用户的银行账号,用户通过地址来交易比特币。  

image.png

既然用户用地址就能交易,那公钥和私钥还有什么用?  

我们需要知道的是,从09年至今,全球所有的交易记录是所有人可见的。交易记录中包含有交易流水单号、发币人的发币地址、收币人地址、发币人的找零地址。也就是说,全球所有用户的地址都是可以被任何人知道的。既然如此,如果中本聪在设立比特币机制时,仅仅通过告诉钱包地址是多少的方式就能完成交易的话,那么整个交易机制是不安全的,我可以随便用别人的地址假装是自己的地址,来和别人交易。  

于是,在整个机制中,有了私钥和公钥的概念。  

私钥用来证明这笔交易的发起人确实是比特币的所有者。私钥是一串很长的随机数比如:  

4KeZdDEu11z3gPrtuX3phjwGnNP4RFd7yyrCVC1j2WLBB9ZXMCJ是由钱包替用户随机生成的。私钥一定不能曝光给别人,因为一旦让别人知道私钥,别人就可以轻松将你的比特币转走,并且再也拿不回来。(所以我们用钱包交易的前提,是信任钱包不会盗取我们的私钥)  

公钥是由私钥通过算法生成,通过私钥可以计算出唯一一个公钥。但公钥并不能逆向推导出私钥。  

顺便提一下,地址是由公钥通过算法生成,通过公钥可以计算出唯一一个地址。但地址并不能逆向推导出公钥。  

中本聪设计了如下机制:钱包需要先将私钥通过加密算法A加密,再将加密之后的字符串(我们把叫做签名)、公钥一并发送给矿工。矿工收到信息后,将签名、公钥带入到一个验证函数F中,如果得出的结果为true,那么矿工就认为这个交易发起人确实是持币者发起的。  

image.png 

回到交易流程中:钱包用张三的私钥通过加密算法生成了一段加密过的私钥,然后与公钥一并写到了交易信息里,再发给全球矿工。此时,矿工收到了这笔交易信息,信息里包含:交易流水单号、发币人地址、收币人地址、发币人提供的加密过的私钥、发币人的公钥。矿工将加密过的私钥、公钥带入上面提到的公式中,等待程序验证。如果程序反馈给矿工"true",那么即可表明,这笔交易确实是持币者发起的了。如果程序反馈给矿工"false",那么说明这笔交易存在问题,不能被验证通过。  

这样的话,张三不需要将自己的私钥发给矿工,既能让矿工简单地验证这笔交易是否由持币者发起,又能保证自己的私钥不外泄了。


热搜币种 更多

币种价格24H 涨跌幅
  • FTT

    FarmaTrust

    ¥17.61

    2.4923 USDT
    -3%
  • BTC

    比特币

    ¥440,347.47

    62338.61 USDT
    -1.88%
  • CFX

    Conflux Token

    ¥1.31

    0.1852 USDT
    -0.91%
  • XCH

    奇亚

    ¥113.90

    16.1241 USDT
    -7.54%
  • DOGE

    狗狗币

    ¥0.76

    0.1073 USDT
    -5.71%
  • TRX

    波场币

    ¥1.10

    0.156 USDT
    +1.1%
  • FIL

    Filecoin

    ¥26.11

    3.6964 USDT
    -2.2%
  • SOL

    Solana

    ¥1,013.23

    143.44 USDT
    -3.67%
  • SHIB

    柴犬币

    ¥0.00

    1.735E-5 USDT
    -5.81%
  • CELO

    Celo

    ¥4.99

    0.7065 USDT
    -8.96%
  • DYDX

    dYdX

    ¥6.36

    0.9004 USDT
    -0.96%
  • HT

    火币积分

    ¥3.69

    0.5226 USDT
    -4.51%