比特幣地址格式的分類及應用場景
比特幣地址是用于接收和發送比特幣的標識符,主要有以下幾種格式,每中類型都有其特定的用途和特點:
比特幣地址格式
P2PKH
1xxxx
leagcy地址
P2SH
3xxxx
允許更復雜的交易多重簽名
bech32
bc1xxxx
bech32mP2TR
bc1pxxxx
P2PKH(pay-t0-publicHash)
即支付到公鑰哈希地址。通常以數字 “1” 開頭,長度為 26-35 個字符。這是最常見的比特幣地址格式之一,是通過對公鑰應用哈希函數得到的,并在最后添加了校驗碼。
- 格式:以 1 開頭,例如,1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa。
- 特點:這是最傳統和最常見的地址類型,廣泛用于比特幣的早期交易。
- 優點:兼容性好,幾乎所有錢包和交易所都支持。
- 缺點:隨著時間的推移,這種地址類型的使用效率較低,交易費用可能會較高。
P2SH(pay-to-script-hash)
即支付到腳本哈希地址。通常以數字 “3” 開頭,長度為 34 個字符。這種地址格式用于多重簽名和其他復雜的交易腳本,不直接包含公鑰,而是包含一個腳本的哈希值。例如:3J98t1WpEZ73CNmQviecrnyiWrnqRhW9k9。
- 格式:以 3 開頭,例如,3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy。
- 特點:這種地址允許更復雜的交易腳本,例如多重簽名地址。
- 優點:支持更復雜的交易和腳本,安全性更高。
- 缺點:創建和管理比 P2PKH 地址更復雜。
SegWit(bech32)
即隔離見證地址。通常以 “bc1” 開頭,長度為 42 個字符。SegWit 地址將簽名數據從交易中分離出來,有助于降低交易費用。
- 格式:以 bc1 開頭,例如,bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwfvenl。
- 特點:這是比特幣改進提案BIP-0173中引入的新地址格式,旨在提高交易效率和減少費用。
- 優點:交易和交易簽名進行隔離,交易費用更低,處理速度更快,且有助于減少交易體積。消除交易延展性攻擊
- 缺點:并非所有的錢包和交易所都支持這種地址類型,盡管支持率在逐步增加。
bech32m(P2TR)
即pay-to-taproot,這是一種更高級的 SegWit 地址格式,提供更好的錯誤檢測和更高的兼容性。
- BIP Taproot 協議簇產生,主要用于 Taproot升級
- schnorr 簽名,交易短小,消耗的手續費更低
- 抽象 merkle 語法樹引入
- 格式:以“bc1p”開頭
- 特點
- Bech32m 是基于比特幣改進提案(BIP-350)設計的,主要用于生成更具魯棒性的地址。它將地址表示為一串以字母和數字組成的字符串(不區分大小寫),確保不會出現混淆字符。
- 與 Bech32 的區別在于校驗和的算法不同,Bech32m 使用了新的校驗和常數 0x2bc830a3,這一改動提高了校驗的準確性,并且能夠避免常見的人為錯誤。
- Bech32m 主要用于 Taproot 升級,為比特幣未來的擴展性而設計。
- 優點:
- Bech32m 格式非常注重防止用戶在手動輸入地址時的復制和輸入錯誤。通過精確的校驗和設計,能夠高效地檢測和糾正錯誤輸入
- Bech32m 編碼不區分大小寫,避免了用戶在輸入地址時因為大小寫混淆而犯錯誤,提升了使用體驗。
- Bech32m 使用了一種簡潔、易于理解的格式,長度相對固定,使用的字符集限制在 32 個字符,避免了難以區分的字符(如 1 和 l、0 和 O),使得地址較為直觀。
- Bech32m 可以檢測單個字符的錯誤和交換錯誤,進一步減少手動輸入地址的風險。
- 缺點:平臺兼容性問題
Taproot 是 2021 年 11 月 14 日在比特幣網絡上激活的一項重要升級協議。
- 引入 Schnorr 簽名:Taproot 用 Schnorr 簽名替代了比特幣之前使用的橢圓曲線數字簽名算法(ECDSA)。Schnorr 簽名具有線性特性,能將多個簽名聚合成一個,使多個比特幣交易可快速批量驗證,而非逐個驗證,大大提高了交易驗證效率。例如,在多重簽名交易中,以前每個簽名都需單獨驗證,現在可將多個簽名合并驗證。
- 實現 Merkle 化抽象語法樹(MAST):Taproot 通過 MAST 優化區塊鏈上的交易數據存儲。MAST 結構只需暴露一個分支及對應的 Merkle 路徑就能解鎖腳本,無需暴露其他分支,隱藏了交易的復雜性,增強了隱私性。比如,復雜的智能合約交易可通過 MAST 將未執行的部分隱藏,僅顯示執行的部分。
- 結合 BIP341 和 BIP342:BIP341 定義了 Taproot 的腳本格式和交易原理,允許將多重公鑰哈希表示成單個公鑰,隱藏多重簽名蹤跡;BIP342 規范了 Tapscript 的定義和交易規則,支持腳本的多種操作和語法,為 Taproot 提供了完整功能支持。