比特幣地址類型完整指南:Legacy、SegWit 與 Bech32 的深度比較

深入分析比特幣地址的技術原理、三種主要地址格式的比較,以及如何選擇最適合的地址類型。涵蓋 Legacy(P2PKH)、SegWit(P2SH-P2WPKH)、Bech32(原生 SegWit)與 Bech32m(Taproot)等地址格式的完整比較。

比特幣地址類型完整指南:Legacy、SegWit 與 Bech32 的深度比較

好,現在讓我們來聊聊比特幣地址這件事。說實話,第一次看到比特幣地址的時候,我整個人都是懵的——什麼 1 開頭、3 開頭、bc1 開頭,到底有啥差別?轉帳的時候用錯了會怎樣?這篇文章就來幫你把這些搞清楚。

先搞清楚:地址到底是什麼?

比特幣地址說白了就是一個「收款帳號」,就像你的銀行帳戶號碼一樣。不過比特幣地址可不是銀行給你開的,而是你自己用私鑰生出來的。整個流程大概是這樣的:

私鑰 → 產生公鑰 → 公鑰雜湊 → 地址

每一個步驟都用到密碼學函數,所以理論上你可以離線生成無數個地址,而且別人根本沒辦法從地址反推回私鑰。這就是比特幣的厲害之處——安全又隱私。

三種地址格式:Legacy、SegWit、Bech32

Legacy 地址(P2PKH):一切的原點

以 1 開頭的地址就是最原始的比特幣地址格式,叫 Pay-to-Public-Key-Hash,簡稱 P2PKH。比特幣剛出生的時候就用的這種,中本聰設計的。

這種地址長這樣:

1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2

Legacy 的「Legacy」就是「遺產」的意思——不是說它老古董過時了,而是它是所有新格式的基礎。缺點是手續費貴、交易體積大;優點是兼容性最好,什麼錢包都能用。

具體來說,P2PKH 的解鎖腳本大概是長這樣:

OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG

翻成白話就是:「拿公鑰出來,先做 SHA-256 再做 RIPEMD-160,得到雜湊值,然後跟地址裡存的雜湊比對,比對成功才讓你花這筆錢。」

區塊鏈上驗證的時候,這個流程大概長這樣:

輸入: <sig> <pubKey>
腳本:
  OP_DUP          -> 複製公鑰
  OP_HASH160      -> 雜湊公鑰
  <pubKeyHash>    -> 壓棧目標雜湊
  OP_EQUALVERIFY  -> 比對是否相等
  OP_CHECKSIG     -> 驗證簽名

SegWit 地址(P2SH-P2WPKH):省手續費的第一步

2017 年隔離見證(Segregated Witness,簡稱 SegWit)升級帶來了新地址格式。以 3 開頭的地址其實是 P2SH 包裝過的 SegWit 地址,全名是 P2SH-P2WPKH。

3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy

等等,我聽到你在問了:明明是 SegWit 地址,為什麼長得跟 Legacy 一樣是以 3 開頭?

原因很簡單——P2SH(Pay-to-Script-Hash)本來就是設計來包裝各種腳本的。SegWit 為了向後相容,就把自己「包裝」成 P2SH 的形式。這樣一來,舊錢包雖然不認識 SegWit,但起碼能識別這是個 P2SH 地址,會幫你廣播交易。

省多少手續費? 大概 30-40%。原因是 SegWit 把簽名資料移到 witness 欄位,不算在基本交易大小裡了。對經常轉帳的人來說,這筆省下來的費用還是挺可觀的。

P2SH 的腳本格式:

OP_HASH160 <scriptHash> OP_EQUAL

這次鎖定腳本長這樣:

OP_HASH160 4c7001cdb71a33e9412d1bbc52e26a483ce2a9be OP_EQUAL

Bech32 / Bech32m 地址(原生 SegWit):最新也最省

終於輪到現在最推薦的地址格式了。bc1 開頭的地址叫原生隔離見證地址(Native SegWit),用 Bech32 編碼。2019 年比特幣升級到 BIP-173 規範後正式登場。

bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq

這裡的「bc」是 Bitcoin 的縮寫,「1」代表原生 SegWit 版本。你可以把它想成比特幣地址的「正式身份證」——所有新功能都會以這種格式為優先支援對象。

Bech32 的設計有一些特點:

Bech32m 是後來更新版本,用於 Taproot 時代的地址(bc1p 開頭):

bc1p0plr3nqr5yz6xt2mus7xm5ymlkved8cfrjp5yq2fvc5q3xj0ycsr2z9c6

三種格式的實務比較

特性Legacy (1...)SegWit (3...)Bech32 (bc1q...)Bech32m (bc1p...)
開頭字母13bc1qbc1p
推出時間2009201720192021
手續費最高中等最低最低
兼容性最佳良好需錢包支援新錢包支援
支援 Taproot

到底該用哪種?

老實說,如果你只是偶爾轉轉帳,選哪種格式差別不大。但我個人建議:

首選 bc1q 開頭的 Bech32 地址。手續費最省,而且這種格式會越來越普及。

次選 3 開頭的 SegWit 地址。手續費比 Legacy 便宜不少,萬一遇到不支援 Bech32 的老錢包也能應付。

盡量避免 1 開頭的 Legacy 地址。除非你有特殊需求,否則真的沒必要多花冤枉手續費。

要注意的是,地址格式只影響「怎麼轉入」,不影響「怎麼轉出」。也就是說,不管你用的是哪種格式的地址,收到的比特幣都是比特幣,不會變成別的幣。

常見誤解

誤解一:不同格式地址代表不同的比特幣

錯!所有格式的地址都指向區塊鏈上的同一筆 UTXO(未花費交易輸出)。你用 Legacy 地址收到的比特幣,可以用 Bech32 地址轉出來,反過來也行。

誤解二:bc1 開頭的地址比較「高級」

嚴格來說,bc1q 和 bc1p 適用場景不同。bc1q 是普通的 SegWit 地址,bc1p 是 Taproot 地址。Taproot 雖然更新,但並非所有場景都一定更好。

誤解三:地址格式影響轉帳速度

不影響。比特幣網路的區塊時間固定 10 分鐘左右,不管你用哪種格式都要等這麼久。真正影響速度的是手續費——手續費越高,礦工越願意優先打包你的交易。

實務問題

Q: 我可以把比特幣從交易所轉到任意格式的地址嗎?

A: 大型交易所現在普遍支援 Bech32 了,但建議轉帳前先在交易所後台確認一下。如果交易所不支持,建議換一家,理由很簡單——省手續費。

Q: 轉錯格式的地址會怎樣?

A: 理論上會失敗,比特幣退回去。但某些特殊情況下可能造成資金損失,特別是跨鏈轉帳(例如把 BSV 轉到比特幣地址)。再次強調:轉帳前一定要核對幣種和地址格式。

Q: 一個錢包可以生成所有格式的地址嗎?

A: 可以。大部分現代錢包會同時支援 Legacy、SegWit、Bech32 三種格式。拿 Electrum 來說,選項裡就有「legacy」「p2sh-segwit」「native segwit」三種地址類型。

給新手的建議

  1. 不用糾結太久。大多數新手問題都是在選地址格式上浪費時間,真實情況是——哪種格式都能用,別想太多。
  1. 記得確認收款方格式。轉帳時看清楚對方要你匯到哪種格式的地址,別把比特幣轉到萊特幣地址去了。
  1. 測試小額轉帳。第一次用新錢包或新格式,先轉個小額測試一下,等確認沒問題了再轉大筆。
  1. 錢包備份是關鍵。不管你用哪種地址格式,12 或 24 個助記詞一定要抄好。丟了助記詞,任何格式的地址都救不回來。

說到底,地址格式只是比特幣進化過程中的一個環節。重要的是理解底層邏輯——比特幣是一種去中心化的價值儲存與轉移系統,地址只是這套系統的「門牌號」。搞清楚這一點,選什麼格式就不是什麼難題了。

延伸閱讀:

相關 BIP:

延伸閱讀與來源

這篇文章對您有幫助嗎?

評論

發表評論

注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。

目前尚無評論,成為第一個發表評論的人吧!