Address

為什麼比特幣同時支持壓縮和未壓縮的密鑰/地址?

  • September 2, 2020

我的問題是關於壓縮密鑰和地址之間的區別,我知道它已在另一個問題中得到解決,但我的問題不是關於理論,而是關於如何在比特幣中實際使用密鑰。

所以這就是我所做的:我在 .7.2 客戶端中使用dumpprivkey了一個地址183Tw2TqXKkbk5ZeocTYwmxg8x46ADXb6c,並得到了 .7.2 客戶端中的地址L5DTi7rgqsPg7Vq1vTU2dP2HWMEsNM5w5JCqEDXXXXXXXXXXXX。當我將它粘貼到bitaddress.org 的錢包詳細資訊腳本中時,它返回了幾件事。首先,它顯示了一個不同的地址1FKswUuFsjWKyr4ZPSe3vEpp1iCXXChBZm,但它也顯示了上面的地址,並說它是壓縮版本。我向 2 個地址中的每一個發送了 0.0001,而我的 satoshi 客戶端僅顯示從 183(壓縮)地址收到的交易。

有人可以實際解釋一下區別是什麼以及為什麼它們都存在於比特幣中嗎?任何幫助表示讚賞。

它們兩者都存在的原因是因為 Satoshi 不知道壓縮公鑰,而且最近才發現它們可以在沒有兼容性問題的情況下使用(僅支持參考客戶端的 0.6 版)。

優勢很明顯:他們的公鑰更小,導致網路上的交易更小,為每個人節省了區塊鏈大小。

更新:在 SegWit 支出中,只能使用壓縮密鑰。

雖然比特幣最初只用了一個;未壓縮的公鑰,如果隨後更改為不允許使用未壓縮的密鑰(並且只允許使用壓縮的密鑰),那些錢包地址與私鑰的未壓縮密鑰相關的人將無法訪問他們的資金。

這是因為公鑰:

02E9A095A6A5790BC82FEADE07EE6FC77B05BC4DE7F3790C36D2ECC886D9EC0AC0(壓縮)

有一個地址

1MEqCrJfxPAh2uCcGmAV2Bgkj6qD69XgfF

雖然該公鑰的未壓縮版本:

04E9A095A6A5790BC82FEADE07EE6FC77B05BC4DE7F3790C36D2ECC886D9EC0AC0E44402759C51ED0D3BA2F53E749B30A6D1772F0DAE1E3F465E8C8828DF899FE2(未壓縮)

有一個地址

1JGTdegLcK8N9mqwhXmGjeUgbQNugii3rm

如果比特幣停止接受你的未壓縮版本,你必須找到一個壓縮的公鑰,這將導致你的相同地址繼續訪問你的資金。這樣做就像試圖破解比特幣算法一樣困難和不切實際。

引用自:https://bitcoin.stackexchange.com/questions/5952