BIP39(Bitcoin Improvement Proposal 39)是比特幣與多數加密貨幣錢包採用的助記詞標準,將隨機熵值轉換為人類易讀的單詞序列,進而推導出私鑰與錢包地址。本文深入剖析其技術原理、生成步驟、安全性考量與實作工具,幫助已具基礎的讀者全面掌握 BIP39 的運作機制與應用實務。
📊 重點速覽
1. 什麼是 BIP39?核心定義與歷史
BIP39 的全稱為 Bitcoin Improvement Proposal 39,由 Marek Palatinus 與 Pavol Rusnák 於 2013 年提出,旨在解決原始比特幣錢包私鑰過長且難以備份的問題。在此之前,用戶需手抄 64 位元十六進位私鑰或二維碼,備份門檻極高。BIP39 透過將隨機熵值(Entropy)映射至預定義的 2048 個英文單詞列表,產生一組 12 至 24 個單詞的助記詞,使用者只需安全保存這些單詞即可還原整個錢包。
這項提案目前已成為業界標準,幾乎所有主流加密貨幣錢包(如 Ledger、Trezor、MetaMask、Trust Wallet 等)皆支援 BIP39。理解其技術細節對於投資者與開發者而言至關重要,因為它直接影響資產的安全性與可攜性。
2. BIP39 工作原理:詞庫與熵值
BIP39 的核心包含兩個要素:熵值(Entropy) 與 預定義詞庫(Wordlist)。熵值是一段隨機產生的位元序列,長度可為 128、160、192、224 或 256 bits,對應的助記詞數量分別為 12、15、18、21、24 個單詞。熵值越長,安全性越高,但備份詞彙也越多。
詞庫固定為 2048 個單詞(現有英文、中文、日文等 10 種語言版本),每個單詞可編碼 11 bits(2¹¹ = 2048)。生成過程首先對熵值進行 SHA256 雜湊,取前(熵值長度 / 32)bits 作為校驗和,附加在熵值末尾,然後將整個位元序列每 11 bits 一組對應到詞庫中的單詞,最終得到助記詞。
下表整理了常見的熵值長度與對應的助記詞數量:
| 熵值長度 (bits) | 校驗和長度 (bits) | 總位元數 | 助記詞數量 | 安全性等級 |
|---|---|---|---|---|
| 128 | 4 | 132 | 12 | 高 (通常足夠) |
| 160 | 5 | 165 | 15 | 更高 |
| 192 | 6 | 198 | 18 | 極高 |
| 224 | 7 | 231 | 21 | 非常高 |
| 256 | 8 | 264 | 24 | 最高 (抗量子預備) |
3. 助記詞生成私鑰的完整步驟
BIP39 僅規範助記詞的產生,後續的私鑰推導則由 BIP32(分層確定性錢包)與 BIP44(幣種路徑)處理。但實際使用邏輯如下:
- 生成熵值:透過硬體隨機數生成器(TRNG)或軟體偽隨機數產生128~256 bits。
- 計算校驗和並附加:對熵值做SHA256,取前N bits(N=熵值長度/32)附加在熵值後。
- 分割與映射:將位元串每11 bits一對照詞庫索引,得到助記詞序列。
- 使用助記詞作為種子:將助記詞加上可選密碼(passphrase)透過PBKDF2演算法(2048次迭代)產生512 bits的種子(seed)。
- 透過BIP32推導主私鑰:種子經HMAC-SHA512生成主金鑰與主鏈碼,再用於派生子金鑰。
4. BIP39 安全性考量與常見誤區
BIP39 的安全性建立在熵值的隨機性與詞庫的離散性。常見誤區包括:
- ❌ 誤區一:助記詞可以自己挑選單詞 — 人為選擇無法保證隨機性,極易被暴力破解。
- ❌ 誤區二:多個錢包使用相同助記詞但不同密碼是安全備份 — 助記詞本身若洩露,密碼僅增加一層保護,但仍可透過離線破解。
- ❌ 誤區三:BIP39 種子即是私鑰 — 種子經過 BIP32 等金鑰派生才產生私鑰,且可推導多個地址。
- ✅ 正確觀念:助記詞應離線保存於鋼板、防火保險箱,並搭配密碼。
下表比較不同備份方式的風險:
| 備份方式 | 便利性 | 耐用性 | 建議場景 |
|---|---|---|---|
| 手抄紙本 | 高 | 低(怕水、火) | 短期、小額 |
| 金屬鋼板 | 中 | 極高 | 長期儲存 |
| 加密雲端 | 高 | 中(需信賴第三方) | 方便恢復,但風險較大 |
| 硬體錢包 + 助記詞 | 中 | 高(硬體本身防篡改) | 日常使用與長期結合 |
5. 實作工具比較與選擇
市面上有許多支援 BIP39 的工具與函式庫,以下是常見的選項:
| 工具 / 函式庫 | 語言 | 功能 | 安全性 | 適合對象 |
|---|---|---|---|---|
| BIP39 tool (iancoleman.io) | 網頁JS | 生成助記詞、種子、私鑰 | 中等(建議離線使用) | 學習、驗證 |
| bitcoinjs-lib | JavaScript | 完整錢包函式庫 | 高(需搭配安全環境) | 開發者 |
| hdkey | Node.js | BIP32 + BIP39 | 高 | 後端整合 |
| Trezor Suite / Ledger Live | 桌面APP | 硬體錢包管理 | 極高(硬體隔離) | 一般使用者 |
選用工具時,務必確認原始碼開放且經過審計。網頁工具應下載後離線執行,避免連網竊取風險。
6. BIP39 與 BIP32、BIP44 的關聯
BIP39 專注於助記詞的制定,而 BIP32(分層確定性錢包)定義如何從單一種子推導出多組金鑰對,BIP44 則規範多幣種錢包的路徑格式(例如 m/44’/0’/0’/0/0 表示比特幣首個收款地址)。三者結合形成了現代加密貨幣錢包的標準層級:
- BIP39:人類可讀的備份(助記詞)
- BIP32:從種子生成金鑰樹
- BIP44:多幣種、多帳戶的路徑規範
❓ 常見問題(FAQ)
Q1: BIP39 助記詞可以用中文嗎?
可以,BIP39 支援多語言詞庫,包括繁體中文。但請注意,不同語言的詞庫不同,還原時需使用同一語言。
Q2: 如果遺失部分助記詞,還能恢復錢包嗎?
理論上需要全部單詞(及順序)。若僅遺失1~2個,可透過暴力窮舉(2048^遺失數)嘗試,但實務上難度極高。務必完整備份。
Q3: BIP39 密碼(passphrase)與錢包密碼有何不同?
BIP39 密碼是助記詞的額外熵值,會產生完全不同的種子(即一組新的錢包)。錢包密碼僅保護本地存取,不影響鏈上金鑰。
Q4: 助記詞能否在多個錢包間轉移?
只要錢包都遵循 BIP39/BIP32/BIP44 標準,即可匯入相同助記詞得到相同地址。但部分錢包可能使用非標準路徑,需確認相容性。
Q5: 我該選12詞還是24詞?
24詞提供 256 bits 熵值,安全性更高,但備份尺寸較大。對於長期大額儲存,建議 24詞;日常小額可選12詞。
🎯 結論與行動呼籲
BIP39 是區塊鏈錢包安全的基石,理解其原理能幫助你更妥善地保護資產。從現在起:
- ✅ 使用硬體錢包生成助記詞,並離線備份於金屬鋼板。
- ✅ 設定強密碼(passphrase)增加一層防護。
- ✅ 定期測試還原流程,確保備份可用。
若你是開發者,可進一步研究 BIP39 的實作,自行撰寫離線生成工具,避免第三方風險。加密貨幣的安全永遠掌握在自己手中。
- Corporate Bond 6 — 公司債投資指南(相關資產配置策略)
- Financial Guide 84 — 金融債券比較與推薦(理解不同金融工具)
- Financial Guide 69 — 股權連結商品分析(多元化投資組合)



