BIP-84: Native SegWit 派生路徑
定義 Native SegWit (bech32) 地址的 HD 錢包派生路徑標準。
84
Standards Track
Proposed
2017-12-28
摘要
BIP-84 定義了用於 P2WPKH(Pay-to-Witness-Public-Key-Hash)腳本類型的 派生路徑結構。這是 BIP-44 的擴展,專門用於原生 SegWit 地址(bech32 格式,以 bc1q 開頭)。
動機
SegWit(BIP-141)引入了新的腳本類型,包括 P2WPKH 和 P2WSH。 為了在 HD 錢包中正確支持這些新地址類型,需要定義新的派生路徑標準, 以避免與現有的 BIP-44(P2PKH)和 BIP-49(P2SH-P2WPKH)地址混淆。
派生路徑
BIP-84 使用與 BIP-44 相同的層級結構,但 purpose 設為 84':
對於比特幣主網,完整的派生路徑範例:
地址格式比較
| BIP | 腳本類型 | 地址範例 | 交易費用 |
|---|---|---|---|
| BIP-44 | P2PKH | 1BvBMSEY... | 最高 |
| BIP-49 | P2SH-P2WPKH | 3J98t1Wp... | 中等 |
| BIP-84 | P2WPKH | bc1qar0s... | 最低 |
為什麼使用 BIP-84?
- 1. 更低的交易費用
P2WPKH 輸入比 P2PKH 節省約 38% 的交易大小,直接降低手續費。
- 2. 更高的容量
見證數據有折扣,相同的區塊可以容納更多交易。
- 3. 錯誤檢測
Bech32 地址使用更強的校驗機制,能檢測並定位錯誤字符。
- 4. 全小寫格式
bc1q 地址全部使用小寫字母,更容易閱讀和輸入。
公鑰到地址的轉換
從 BIP-84 派生的公鑰轉換為 P2WPKH 地址的過程:
1. 從派生路徑獲取公鑰(33 字節壓縮格式)
2. 計算公鑰的 HASH160(RIPEMD160(SHA256(pubkey)))
3. 創建見證程序:0x00 0x14 <20字節哈希>
4. 使用 Bech32 編碼見證程序
5. 得到地址:bc1q...
擴展密鑰版本
BIP-84 定義了新的擴展密鑰版本,與 BIP-44 區分:
| 類型 | 主網 | 測試網 | 前綴 |
|---|---|---|---|
| 擴展公鑰 | 0x04b24746 | 0x045f1cf6 | zpub / vpub |
| 擴展私鑰 | 0x04b2430c | 0x045f18bc | zprv / vprv |
現代錢包的最佳實踐
截至 2024 年,大多數現代錢包默認使用 BIP-84(bc1q 地址)來接收比特幣, 因為它提供最低的交易費用。對於需要 Taproot 功能的用戶, 可以使用 BIP-86(bc1p 地址)。
相關 BIP
相關 BIP
延伸閱讀: 查看 GitHub 上的完整 BIP-84 文件