Address

從相同的公鑰生成不同的地址?

  • May 5, 2018

我對通過雜湊生成比特幣地址的理解存在差距。(為方便起見,我在下面引用 Antonoplous 的話,但我已經諮詢了多個其他來源。)

根據安東波洛斯的說法:

“比特幣地址是通過使用單向加密散列從公鑰派生的。(Antonpolous,2014:71)”

我對公鑰的理解是,一旦從私鑰生成(通過 ECDSA 乘法),它們就不會改變:

“因為所有比特幣使用者的生成點始終相同,所以私鑰 k 乘以 G 將始終得到相同的公鑰 K。(Antonpolous,2014:68)”

關於比特幣地址的最佳實踐建議:

“每次交易都應該使用一個唯一的地址。大多數比特幣軟體和網站都會在你每次創建發票或付款請求時生成一個全新的地址來幫助解決這個問題。(Antonpolous,2014:188)”

我知道對相同的數據執行雜湊函式總是會產生相同的結果(摘要):

“對於任何特定的輸入,生成的雜湊值總是相同的,並且可以由任何實施相同雜湊算法的人輕鬆計算和驗證。” (安東波洛斯,2014:188)。

鑑於以上所有情況,我的問題是,如何從相同的、不變的輸入(即公鑰)生成不同的地址?

是雙重雜湊(SHA256 + RIPEMD160)嗎?是地址池嗎?是因為確定性錢包嗎?答案可能很簡單,盯著我的臉,但我看不到。感謝您的任何澄清。

出於某種原因,您得出的結論是,您可以從單個公鑰中派生多個地址,但引用的文本並沒有這麼說。它說公鑰是從私鑰唯一生成的(通過將曲線生成器 G 乘以一個隨機的 256 位數字,即私鑰)。它還說該地址是通過散列(RIPEMD160 和 SHA256)從公鑰派生的。最後它說每次使用不同的地址是個好主意。

這並不意味著您可以從同一個公鑰生成多個地址。每次你必須生成一個新的私鑰,然後是來自該私鑰的公鑰,最後是來自公鑰的地址。

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