什麼是 BIP?
BIP(Bitcoin Improvement Proposal,比特幣改進提案)是比特幣社群用於提出協議變更、新功能和最佳實踐的標準化文件格式。任何人都可以提交 BIP,但需要經過社群討論和審核。
BIP 分為三種類型:
- Standards Track - 影響比特幣實現的協議變更
- Informational - 提供資訊或指導方針
- Process - 描述流程或提出變更
錢包與密鑰管理
這些 BIP 定義了現代比特幣錢包的標準,幾乎所有錢包都實現了這些規範。
| BIP | 標題 | 說明 |
|---|---|---|
| BIP 32 | HD Wallets | 階層式確定性錢包,從單一種子派生無限多個密鑰,是現代錢包的基礎 |
| BIP 39 | Mnemonic Code | 將種子轉換為 12/24 個助記詞,方便人類備份和記憶 |
| BIP 43 | Purpose Field | 定義 HD 錢包路徑的第一層用途欄位,如 m/44’/… |
| BIP 44 | Multi-Account | 多幣種、多帳戶的 HD 錢包標準路徑 m/44’/0’/0’ |
| BIP 49 | P2WPKH-nested-in-P2SH | SegWit 相容地址的派生路徑 m/49’/0’/0’(3 開頭地址) |
| BIP 84 | Native SegWit | 原生 SegWit 地址的派生路徑 m/84’/0’/0’(bc1q 開頭) |
| BIP 86 | Taproot Single Key | Taproot 單簽地址的派生路徑 m/86’/0’/0’(bc1p 開頭) |
建議閱讀順序:BIP 32 → BIP 39 → BIP 44 → BIP 84 → BIP 86
SegWit 隔離見證
2017 年啟用的重大升級,解決交易延展性問題並提升擴容能力。
| BIP | 標題 | 說明 |
|---|---|---|
| BIP 141 | Segregated Witness | SegWit 核心規範,將簽名數據移至見證區,修復交易延展性 |
| BIP 143 | Transaction Signature | SegWit 交易的新簽名算法,防止二次哈希攻擊 |
| BIP 144 | Peer Services | SegWit 的 P2P 網路協議擴展 |
| BIP 173 | Bech32 Address | bc1 開頭的原生 SegWit 地址編碼格式 |
Taproot 升級
2021 年啟用的重大升級,引入 Schnorr 簽名和更強大的智能合約能力。
| BIP | 標題 | 說明 |
|---|---|---|
| BIP 340 | Schnorr Signatures | 新的簽名算法,比 ECDSA 更高效,支持密鑰和簽名聚合 |
| BIP 341 | Taproot | 定義 Taproot 輸出結構,Key Path 和 Script Path 花費方式 |
| BIP 342 | Tapscript | Taproot 下的腳本規則,新增操作碼如 OP_CHECKSIGADD |
| BIP 350 | Bech32m Address | bc1p 開頭的 Taproot 地址編碼格式(修正 Bech32 缺陷) |
為什麼重要:Taproot 讓複雜的多簽和智能合約交易看起來像普通交易,提升隱私性和效率。
時間鎖與智能合約
這些操作碼讓比特幣支持基於時間的條件支付,是閃電網路的基礎。
| BIP | 標題 | 說明 |
|---|---|---|
| BIP 65 | OP_CHECKLOCKTIMEVERIFY | 絕對時間鎖,資金在指定區塊高度或時間前無法花費 |
| BIP 68 | Relative Lock-time | 相對時間鎖,定義 nSequence 欄位的新語義 |
| BIP 112 | OP_CHECKSEQUENCEVERIFY | 腳本層級的相對時間鎖操作碼 |
| BIP 199 | HTLC | 哈希時間鎖合約標準,跨鏈原子交換和閃電網路的基礎 |
交易與費用
優化交易處理和費用管理的重要提案。
| BIP | 標題 | 說明 |
|---|---|---|
| BIP 125 | Replace-by-Fee (RBF) | 允許用更高手續費替換未確認交易 |
| BIP 174 | PSBT | 部分簽名比特幣交易格式,支持多方協作簽名 |
| BIP 370 | PSBT Version 2 | PSBT 第二版,支持更靈活的交易構建 |
| BIP 326 | Anti-Fee-Sniping | 防止礦工「偷取」高手續費交易的鎖定機制 |
網路與通訊
定義比特幣節點之間如何通訊。
| BIP | 標題 | 說明 |
|---|---|---|
| BIP 152 | Compact Block Relay | 緊湊區塊傳輸,大幅減少區塊傳播的頻寬需求 |
| BIP 155 | addrv2 | 支持 Tor v3、I2P 等新型網路地址格式 |
| BIP 157 | Client Side Filtering | 輕客戶端的新過濾機制,比 BIP 37 更隱私 |
| BIP 158 | Compact Block Filters | 緊湊區塊過濾器的資料結構定義 |
輸出描述符與 Miniscript
現代錢包的進階功能。
| BIP | 標題 | 說明 |
|---|---|---|
| BIP 380 | Output Descriptors | 描述輸出腳本的標準語言,如 wpkh([fingerprint/path]xpub) |
| BIP 381 | Non-Segwit Descriptors | 傳統地址的描述符:pk(), pkh(), sh() |
| BIP 382 | SegWit Descriptors | SegWit 地址的描述符:wpkh(), wsh() |
| BIP 386 | Taproot Descriptors | Taproot 地址的描述符:tr() |
推薦學習路徑
初學者
- BIP 39 - 理解助記詞如何運作
- BIP 32 - 理解 HD 錢包原理
- BIP 141 - 理解 SegWit 基本概念
開發者
- BIP 174 (PSBT) - 現代錢包必備
- BIP 340/341/342 - Taproot 三部曲
- BIP 380 系列 - 輸出描述符
進階研究
- 時間鎖系列 (BIP 65/68/112)
- Schnorr/MuSig 相關論文
- 閃電網路 BOLTs
延伸資源
- BIP 官方倉庫 - 所有 BIP 原文
- Bitcoin Optech - 技術主題深入解說
- Learn Me a Bitcoin - 視覺化學習
- Bitcoin Developer Guide - 官方開發文件