主页 > imtoken转币到交易所 > 区块链学习-比特币地址详解

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

imtoken转币到交易所 2023-05-20 06:44:06

2021-04-01

文章内容

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

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

慢慢听我说。

私钥、公钥和比特币地址

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

.

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

BlockChain学习——比特币地址详解

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

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

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

BlockChain学习——比特币地址详解

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

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

所以不应该公开公钥。

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

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

BlockChain学习——比特币地址详解

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

类别:

技术要点:

相关文章: