Private-Key

為什麼在根種子上使用 HMAC-SHA512 在 HD 錢包中創建主私鑰和鏈碼?

  • January 20, 2022

過程如圖所示。具體來說,鑑於根種子是使用 PBKDF2 派生的(已經使用 HMAC-SHA256 進行了 2048 輪散列),除了創建 512 位熵之外,為什麼我們還要額外通過 HMAC-SHA512?為什麼不單獨使用 SHA512?我之前在這裡問過,我得到的答案是 HMAC 版本用於確保密鑰的唯一生成,但我不知道這意味著什麼。似乎對於主私鑰和鏈節點的推導,該函式僅用作單向雜湊函式,那麼為什麼使用MAC?有一個東西被加密了,我們這裡並沒有另外試圖保證任何東西的真實性,對吧?

具體來說,鑑於根種子是使用 PBKDF2 派生的(已經使用 HMAC-SHA256 進行了 2048 輪散列),我們為什麼要經歷

除了創建 512 位熵之外,還額外通過 HMAC-SHA512 嗎?

這些東西來自不同的標準。BIP32(指定從主密鑰到密鑰)排在第一位。後來出現的各種建構主密鑰/種子的方法正在使用;我假設您指的是其中之一。

為什麼不單獨使用 SHA512?

我不知道。我認為那會很好。唯一棘手的細節是您還需要包含密碼。

似乎對於主私鑰和鏈節點的推導,該函式僅用作單向雜湊函式,

為了完全準確,您需要的不僅僅是單向函式。例如,如果散列函式總是產生一個可以被 3 整除的散列,這將遵循散列函式的所有屬性,但它作為密鑰派生函式會更弱。

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