Bitcoin-Core

知道公共地址是否可以被 HD 種子使用?

  • November 28, 2019

我想知道一個地址是否可以被 HD 種子使用,為此我使用以下命令:

> bitcoin-cli getaddressinfo 3LFc64RRd96ejjYvm14KaogBF9fmeNmePW | jq '.solvable'
false

然而,正如這里這裡所提到的,不可能 100% 確定 HD 種子不能從某個地址消費,因為需要生成無限地址。為了平衡我發現了一個增加“搜尋空間”的命令:

> bitcoin-cli keypoolrefill 1000

但是,我不確定getaddressinfo是否對這個keypoolinfo參數敏感,或者只是檢查到目前為止生成的地址(可以通過 獲取的地址bitcoin-cli listreceivedbyaddress 0 true)。我可以用第二個節點對此進行測試,但我的另一個節點可能正在使用另一個種子來生成新地址。即使我使用過,但在傾倒錢包時sethdseed我看到了不同的東西。xpriv

嘗試使用 Bitcoin Core 的錢包列舉所有私鑰是非常低效的。此外,您在 Bitcoin Core 中生成的任何地址本質上都來自 HD 種子,因為 Bitcoin Core 是 HD 錢包並使用 HD 種子。您也不會獲得不屬於您錢包的 HD 地址的任何資訊。

但是,我不確定getaddressinfo是否對這個keypoolinfo參數敏感,或者只是檢查到目前為止生成的地址(可以通過 獲取的地址bitcoin-cli listreceivedbyaddress 0 true)。

它對密鑰池“敏感”。當您將密鑰添加到密鑰池時,它們實際上會與一些元數據一起生成並保存到錢封包件中。getaddressinfo無論關聯的密鑰是否在密鑰池中,都會查找任何可用的元數據。

我可以用第二個節點對此進行測試,但我的另一個節點可能正在使用另一個種子來生成新地址。

除非您明確設置了特定的種子,否則它絕對是。否則,這將是一個安全漏洞,如果他們都使用相同的種子,任何人都可以竊取其他人的硬幣。

即使我使用了sethdseed,我在轉儲錢包時看到了不同的xpriv。

你需要提供你的第一個錢包的種子。否則它將生成一個新的隨機種子並使用它。

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