發佈日期: 發佈留言

[基礎知識] 比特幣地址類型、格式介紹?如何選擇?

比特幣地址類型、格式,讓True Node TEAM詳細介紹如何選擇?

先講大結論,有興趣多認識比特幣,可以繼續接著看:

  • 錢包、交易所,支援度最高:Legacy Address。(手續費最貴,使用率下降)
  • 錢包、交易所,支援度最低:Taproot Address。(手續費最低、NFT…)
  • 市場目前主要使用:Native SegWit Address (手續費相對低,使用率增加)、Nested SegWit Address (手續費相對低,使用率下降)

Pay-to-Pubkey (P2PK)

比特幣的原始交易方式,不是我們熟悉收款用的公開「地址」,而是直接支付給公開的「公鑰」。

例如,這筆由中本聰 (Satoshi Nakamoto)將比特幣發送給早期開發者 Hal Finney。(區塊鏈實例)

這種缺乏隱私性的P2PK類型,現已不再使用。

Pay-to-Public-Key-Hash (P2PKH) (編碼 Base58) 

它在創世塊出現不到兩週後首次出現在區塊鏈上,中本聰在「P2PK」的基礎上做了一些改進,引入「地址」概念,而非支付給公開的「公鑰」。

多數錢包開發商將其命名為「Legacy Address」,以「1」開頭。

所有錢包和交易所都支持,中本聰活躍時期的主要地址類型,缺點是交易費用較高,因此使用率下滑。 (區塊鏈實例)

Pay-to-Multisig (P2MS) 

在 2012 年初,根據「BIP-11」作為標準引入比特幣,但這種地址類型與「P2PK」有相同的缺陷,因為它是支付給公開的「公鑰」,不使用地址形式,並且多重簽名仲裁中的公鑰數量被限制為三個,目前也不再使用,被「P2SH」所創建的多重簽名地址所取代。(區塊鏈實例)

Pay-to-Script-Hash (P2SH) (編碼 Base58)

2012年4 月1日,根據「BIP-16」軟分叉,引入比特幣,由中本聰繼承人「Gavin Andresen」貢獻代碼,並根據「BIP-13」該種類地址以「3」開頭。

「P2SH」與「P2PKH」有很多共同點,主要區別在於地址是通過對兌換腳本,進行哈希處理,而不是對單個公鑰,進行哈希處理來創建的。

該地址類型可以指定將來如何使用「P2SH」地址收到的比特幣,可以構建複雜的腳本,使其有多種可能性,其中最常見用途是創建「Nested SegWit Address」 (封裝隔離見證「Wrapped SegWit」,在隔離見證正式實施前的技術過渡)和多重簽名地址 (取代P2MS)。(區塊鏈實例)

Pay-to-Witness-Public-Key-Hash (P2WPKH) (編碼Bech32)

2017年8月,隔離見證 (Segregated Witness,SegWit)實施,通過「軟分叉」引入比特幣,由Pieter Wuille和其他Bitcoin Core成員貢獻代碼。

隔離見證的主要思想是重新組織區塊數據,使簽名不再與交易數據存儲在一起,縮小數據,它是有爭議的軟分叉,背後的故事收錄於名為區塊擴容戰爭 (The Blocksize War)一書,由「Jonathan Bier」撰寫。

隔離見證被早期比特幣(現金)社區認為是破壞中本聰的原始代碼設計,並認為擴容才是正確道路,為保護原始設計,選擇在隔離見證實施前,於2017年8月1日「硬分岔」出至今的比特幣現金 (Bitcoin Cash,BCH)

「P2WPKH」是隔離見證實施引入兩種地址類型中的第一種,一般錢包商將其命名為「Native SegWit Address」。

簡單來說「P2WPKH」是「P2PKH」的「SegWit」變體,基本層面上意味著選擇這種地址類型,而不是舊的 「P2PKH」地址,幫助您在使用比特幣時,節省交易費用。

SegWit地址類型,看起來有很大不同,根據「BIP-173」它們使用新編碼「Bech32」而不是編碼「Base58」。「Bech32」編碼中沒有大、小寫字母之分,「P2WPKH」地址可以通過「bc1q」識別。(區塊鏈實例)

Pay-to-Witness-Script-Hash (P2WSH) (編碼Bech32)

「P2SH」的「SegWit」變體,隔離見證後引入兩種地址類型中的第二種,使用「P2WSH」優於「P2SH」的主要優勢,在於它可以進一步降低交易費用,使用腳本哈希,而不是公鑰哈希的主要原因是為了構建多重簽名腳本。

與「P2WPKH」一樣,「P2WSH」地址以「bc1q」開頭。(區塊鏈實例)

Pay-to-Taproot (P2TR) (編碼Bech32m)

2021 年 11 月,Taproot「軟分叉」誕生,以「bc1p」開頭,「BIP 350」針對Bech32作略微修改,降低交易費。

「P2TR」不同於原始比特幣的「ECDSA」簽名方式,改使用一種稱為「Schnorr 」簽名,增加隱私性跟降低交易費,但有個致命缺陷,僅極少數錢包和交易所有支援該類型,也不像其他地址類型,可互相交換兼容,因此支援性較差。(區塊鏈實例)

後話

以上七種就是所有比特幣發展歷史中出現過的地址類型、格式,現在仍在使用剩下五種地址:

  • Pay-to-Public-Key-Hash (P2PKH) (編碼 Base58) -Legacy Address:中本聰親手創建的地址,開頭為「1」。
  • Pay-to-Script-Hash (P2SH) (編碼 Base58)-Nested SegWit Address:腳本地址,多用於封裝隔離見證地址 (技術過渡期)及多重簽名地址,開頭為「3」。
  • Pay-to-Witness-Public-Key-Hash (P2WPKH) (編碼Bech32):隔離見證實施後的「P2PKH」地址,開頭為「bc1q」。
  • Pay-to-Witness-Script-Hash (P2WSH) (編碼Bech32):隔離見證實施後的「P2SH」腳本地址,開頭為「bc1q」。
  • Pay-to-Taproot (P2TR) (編碼Bech32m):Taproot改良後的地址,地址不兼容,用途較少,目前用例為「Bitcoin NFT」,開頭為「bc1p」。