Cryptography
BIP32 建議使用 256 位種子。為什麼大多數比特幣錢包只使用 128 位種子?
根據 BIP32 的“主密鑰生成”部分,“建議使用 256 位”。
見<https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#Master_key_generation>
為什麼 BIP32 認為 256 位是推薦的種子大小,為什麼這麼多比特幣錢包實現的作者認為 256 位是不必要的?
3個數字的原因:
- 比特幣使用 256 位 ECDSA 簽名。這些需要大約 2 128個步驟才能從已知的公鑰中找到私鑰。這是比特幣的安全級別:我們的目標是始終要求攻擊者執行2128步。如果種子的熵少於 128 位,這不可避免地會導致更快的算法,攻擊者可以在不到 2128 步內簡單地遍歷所有可能的種子。因此,BIP32至少需要 128 位的熵。
- 當種子的熵小於 256 位(但大於 128)時,生成的密鑰也將具有小於 256 位的熵。由於橢圓曲線密碼術使用完整的 256 位密鑰(儘管攻擊者比在 2 128步中破解它更快),BIP32 還推薦 256 位熵。
- BIP32 中的私鑰和鏈碼(“擴展私鑰”)的組合大小為 512 位。因此,使用熵超過 512 位的種子不可能進一步提高安全性——它只是被丟棄的資訊。因此,BIP32 將種子限制為最多 512 位熵。