Address

如何從公鑰生成隨機地址,以便以後僅使用公鑰恢復它們

  • July 27, 2017

我認為,從公鑰中,您可以通過在公鑰中添加一個隨機數來生成隨機地址。然後,您可以在需要時重新生成所有這些地址,對嗎?

如果我的錢包知道我的公鑰(當然知道),它可以通過添加一個數字來生成許多私鑰/公鑰對。例如,假設私鑰是x,其公鑰是y。如果錢包在一段時間內刪除了私鑰x,它可以生成地址y+1,並確保x+1它會在將來需要花費這些資金時獲得該地址的私鑰。這是橢圓曲線密碼學的一個屬性,因為私鑰和公鑰的集合之間存在同胚。

我聽說如果我給某人我的公鑰,他可以派生一個唯一地址並將其發送到該地址,以確保我能夠使用它,因為我只需添加相同的地址就可以找到該地址的私鑰他用來生成它的公鑰的隨機數。問題是:

他必須告訴我使用了哪個隨機數,否則我必須隨機嘗試直到找到他使用的隨機數。但是,如果它是這樣製作的,那麼任何人都可以選擇我的公鑰並找到我所有的地址。如果他真的必須告訴我使用的隨機數(假設它真的很大而且隨機,所以我無法通過暴力猜測),那麼我就有失去它的風險,因為我必須跟踪所有這些隨機數。

那麼這是怎麼做到的呢?給定某人的公鑰,我如何為他生成一個隨機地址,以便他以後能夠獲得私鑰/公鑰,但這樣他就不需要儲存任何用於生成的東西那個地址?

我相信您正在談論 HD 派生密鑰,就像您連結的上一個問題一樣。HD 錢包結構在BIP 32中進行了佈局。

如果有人擁有您的父擴展公鑰,他們可以使用它和索引/隨機數派生公共擴展子密鑰。它們必須具有擴展密鑰(包括鏈碼),但不能派生子私鑰。只有您可以使用父擴展私鑰來執行此操作。所以他們可以告訴你索引,其他任何擁有索引和擴展父公鑰的人都可以看到使用了哪個公鑰,但唯一擁有私鑰的是你。

要派生子密鑰,您至少必須保留主擴展私鑰(或它來自的種子)。沒有它,您將無法派生任何私鑰。

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