Development

BIP32 的邊緣案例

  • June 11, 2018

我正在嘗試編寫具有完整測試覆蓋率的BIP0032程式碼,但遇到了這些非常罕見的邊緣情況:

私有父密鑰→私有子密鑰

在 parse256(IL) ≥ n 或 ki = 0 的情況下,生成的鍵是無效的,應該繼續 i 的下一個值。(注意:這在 2^127 中的機率低於 1。)

公共父密鑰→公共子密鑰

如果 parse256(IL) ≥ n 或 Ki 是無窮遠點,則生成的鍵無效,應該繼續 i 的下一個值。

我沒有圍繞這些條件編寫任何程式碼,因為沒有測試案例來證明我做得正確,這是毫無意義的。

我已經使用從另一個庫生成的 3000 萬個地址成功地測試了我的程式碼,但我認為找到這些邊緣情況之一的機會要高於 50/50,我必須按以下順序檢查10^19(來源:生日攻擊) .

所以我的問題是,有沒有人有這些案例的測試向量?

另一種方法是進行白盒測試,將錯誤IL值直接傳遞給其他私有函式,但我寧願進行黑盒測試。

我懷疑任何人都會有這樣的價值,因為它需要大量的計算。一種方法是猴子修補您的 HMAC-SHA512 函式以返回一個帶有 32 個前導零字節的值,以便進行測試。

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