為什麼比特幣地址有不同開頭?

為什麼比特幣地址有不同開頭?的文章封面插畫

打開不同錢包的收款畫面,可能會看到以 13bc1qbc1p 開頭的比特幣地址。它們都能用來收款,外觀卻像來自不同系統,難免讓人懷疑其中是否有新舊、真假或帳戶等級之分。

開頭的差異確實有意義,但它不代表某個地址比較有錢,也無法證明收款人身分。這些前綴主要反映地址採用哪一代編碼,以及收款後要用哪一類條件證明支出權。較舊的錢包可能不認識較新的格式,同一套比特幣規則裡也因此長期並存多種地址。

理解這些格式時,最有用的框架是把前綴看成「付款條件的包裝標記」。它能協助軟體辨認該如何建立交易,卻不能替人判斷交易對象是否可信。

地址承載收款條件,沒有存放帳戶餘額

比特幣地址是方便分享的公開收款資訊。它通常把公鑰衍生資料或一段花費規則的摘要,連同版本與校驗資料編碼成字串。真正能授權支出的祕密仍是私鑰;只知道地址的人,可以查看相關鏈上紀錄或向它付款,無法僅靠這串字元動用資產。

版本資訊讓軟體知道後續資料該用哪套規則解讀。校驗資料則能抓出許多抄寫錯誤,例如漏掉字元或改錯一位。可是,一串格式完整、校驗正確的地址仍可能屬於別人;校驗機制只檢查字串內部是否一致,不負責確認收款人。

四種常見開頭各自代表什麼

1:早期常見的傳統格式

1 開頭的主網地址通常是 P2PKH。它把付款條件指向一個公鑰雜湊,是比特幣早期最常見的格式,因此舊軟體的相容性通常最好。它仍然有效,只是在建立後續支出時,交易資料通常會比現代隔離見證格式占用更多空間。

3:把較複雜規則包在雜湊後面

3 開頭的主網地址通常是 P2SH。它可以承載多重簽章等腳本條件,也曾廣泛用來包裝隔離見證,讓尚未完整支援新格式的軟體仍能付款。只看 3 這個開頭,無法得知背後一定是哪一種用途,所以把它直接等同於多重簽章並不準確。

bc1q:原生隔離見證格式

bc1q 通常表示原生 SegWit v0 地址。它採用 Bech32 編碼,大小寫規則與傳統地址不同,也移除了容易混淆的部分字元。當收款與支出條件都合適時,交易可以使用較有效率的資料結構,減少為同一類支出占用的區塊空間。

bc1p:Taproot 使用的較新格式

bc1p 表示 SegWit v1,也就是常見的 Taproot 地址,採用 Bech32m 校驗。它讓某些簽章與複雜花費條件能以更一致的方式呈現。不過,較舊的發送軟體可能尚未支援 bc1p;軟體拒絕輸入時,問題可能出在相容性,不能只憑這點判定地址無效。

這些說明以比特幣主網為範圍。測試網路會使用不同前綴,讓軟體降低把測試用資產和主網交易混在一起的機會。

新格式不會自動保證交易成本最低

手續費主要取決於整筆交易占用多少資料權重,以及當時有多少交易競爭有限空間。地址格式會影響輸出如何建立,也會影響那筆資產日後被花費時需要攜帶多少資料,所以採用 SegWit 或 Taproot 常有機會提高效率。

可是,光看收款地址開頭,無法算出完整費用。交易包含多少筆輸入與輸出、使用哪種簽署路徑,以及錢包如何組合交易,都會改變結果。bc1p 也不保證每一種情境都比 bc1q 便宜;格式提供的是可用能力,實際成本仍由具體交易結構決定。

通過格式檢查,仍可能付給錯的人

前綴、長度與校驗碼能擋下許多無效字串,錢包也常會拒絕不屬於正確網路的格式。這些防線降低手動輸入出錯的機率,卻辨認不了一個「格式正確但收款人錯誤」的地址。

若剪貼簿內容遭替換,或發送者複製到另一個有效地址,網路看到的仍是一筆符合規則的付款。交易送出並取得交易確認後,比特幣協議沒有客服帳戶可代為撤回。地址格式能協助機器發現編碼錯誤,無法理解人原本想把錢交給誰。

地址變了,控制者未必換人

同一個錢包可以管理許多不同格式或不同序號的地址;同一位使用者也可能為每次收款產生新地址。反過來說,兩串開頭相同的地址通常沒有任何身分關係。前綴只描述技術格式,不是姓名、地區或信用標章。

持續重複使用同一地址,還可能讓外界更容易把多筆收付款聚在一起觀察。換用新地址有助於減少最直接的關聯,但無法單獨解決所有隱私問題,因為交易輸入、找零與其他公開線索仍可能被交叉分析。

所以,13bc1qbc1p 可以告訴我們編碼世代、花費條件類型及可能的軟體相容性,不能告訴我們地址背後是誰、裡面有多少資產,或對方是否值得信任。看懂前綴的價值,在於理解錢包為何有時接受、有時拒絕某串收款資訊,也能把格式檢查與收款人核對視為兩個不同問題。