主页 > imtoken官网下载2.0苹果 > 区块链学习-比特币地址详解

区块链学习-比特币地址详解

imtoken官网下载2.0苹果 2023-01-18 18:16:15

文章目录

这本书在上面继续,我们提到了一个价值

这个值的设置其实很巧妙,可以通过回答这两个问题得到:为什么比特币地址不直接使用公钥,而是需要通过哈希生成?为什么每次付款都要设置找零地址?

慢慢听我说。

比特币地址和公钥关系

私钥、公钥和比特币地址

首先澄清一下,这里的比特币地址和上面的完全等价

.

比特币地址和公钥关系

私钥和公钥和比特币地址之间有这样的关系:

在这里插入图片描述

私钥可以单向生成公钥,公钥可以单向生成比特币地址(不可逆):

比特币地址和公钥关系

比特币地址需要Hash生成的原因

结合下图理解,第一行是收款人她的比特币钱包中的一个比特币地址(HerBitcoinAddr)。第二行是付款人的 MyBitcoin 钱包中的一个 MyBitcoin (MyBitcoinAddr)。我想付钱给她,然后我生成的交易记录显示在下面的灰色框中,里面有我的公钥(MyPubKey),我的比特币地址(MyBitcoinAddr),她的比特币地址(HerBitcoinAddr),以及支付信息和我的签名(签名)通过我的私钥。

在这里插入图片描述

比特币地址和公钥关系

请注意,灰色框中的交易是公开的,也就是说,如果她只想收钱,那么她只需要公开她的比特币地址(HerBitcoinAddr)就足够了,不需要透露其他信息而且我需要支付,所以除了我的比特币地址(MyBitcoinAddr),我还需要公开我的公钥(MyPubKey)和签名(Signature)。

这是什么意思?根据非对称算法(PKI)原理,公钥可以由私钥生成,但私钥不能从公钥推导出来。注意“不能从公钥推导出私钥”的说法是错误的!其实从公钥中推导出私钥是可以的,但是难度很大。现代智人认为比特币地址和公钥关系,未来的量子计算机可以从公钥中推导出私钥。因此,在比特币公开交易记录中包含付款人的公钥(MyPubKey)会使付款人的我的比特币地址(MyBitcoinAddr)中的钱不安全。也就是说,比特币假设一旦公钥被释放,私钥就会被暴露比特币地址和公钥关系,这样比特币地址里的钱就会被别人使用。

所以不应该公开公钥。

比特币地址和公钥关系

至于收件人的比特币地址,因为她只公开了自己的比特币地址,而量子计算无法通​​过哈希值还原原始内容,所以无法通过她的比特币地址地址还原她的公钥,所以她的私钥无法推断,所以她的比特币地址可以认为是安全的。

那么,作为付款人,我付款后,我的比特币地址(MyBitcoinAddr)会被公布,是不是不安全,我该怎么办?正确的方法如下图所示。每次付款都要提供另外一个找零地址(MyBitcoinAddr2),这个找零地址需要是我从来没有透露过的公钥(MyPubKey2)的比特币地址,即我从来没有用它来付款。当我付款时,我将所有剩余的钱从用于付款的比特币地址(MyBitcoinAddr)转移到我的零钱地址(MyBitcoinAddr2)。

在这里插入图片描述

也就是说,我每次付款时,我的付款比特币地址(MyBitcoinAddr)都是无效的,钱是单独转账到收款人的比特币地址(HerBitcoinAddr),我自己的找零地址(MyBitcoinAddr2)@ >. 因为 HerBitcoinAddr 和 MyBitcoinAddr2 都没有支付过,公钥也从来没有被公开过,所以即使量子计算出现了,两个比特币地址里的钱都是安全的。