ビットコインを受け取ったり送ったりするときに必ず登場するのが「ビットコインアドレス」です。英数字が並んだ長い文字列やQRコードとして表示されることが多く、見慣れないうちは「何が違う?」「どれを使えばいい?」と戸惑いやすいポイントでもあります。

実は、ビットコインアドレスには様々な形式が存在しており、2009年のビットコイン誕生から現在にかけて特徴や形式が移り変わっています。ビットコインアドレスは種類ごとに特徴が異なりますが、見た目も異なり、プレフィックス(先頭文字)によって分類することが可能です。

この記事では、代表的なビットコインアドレスの種類を整理し、それぞれの特徴・見分け方をわかりやすく解説します。

今後皆さんがウォレットを運用していく中で効率的にビットコインアドレスを選択するための助けになったら幸いです。

ビットコインアドレスの種類の比較表

ビットコインのアドレス形式は大まかに分けて以下の4つに区分されます。

  • 草創期アドレス
  • レガシーアドレス
  • SegWit
  • Taproot

特徴を以下の表にまとめてみました。

分類 タイプ 登場時期 プレフィックス エンコード方式 長さ
草創期 P2PK 2009年1月3日 04 - -
レガシー P2PKH 2009年1月16日 1 Base58Check 26-34
レガシー P2SH 2012年4月1日 3 Base58Check 34
SegWit P2WPKH 2017年8月23日 bc1q Bech32 42
SegWit P2WSH 2017年8月23日 bc1q Bech32 62
Taproot P2TR 2021年11月13日 bc1p Bech32m 62

(P2MSというマルチシグ用の形式も存在しますが、2012年1月29日からわずかにしか使用されていないため本記事では解説を省きます。)

各分類のアドレス形式について、それぞれ解説していきます。

草創期アドレス (P2PK)

P2PKは厳密にはアドレス形式ではありません。しかしビットコイン誕生時に最初に使われた形式であるため、『マスタリング・ビットコイン』では「草創期アドレス」として紹介されています。さらに、2023年の調査ではビットコインの受け取り方式の約9%がP2PKでした。

P2PK(Pay to Public Key)

種類 P2PK
登場時期 2009年1月3日
ブロック高 0
プレフィックス 04
長さ -
エンコード方式 -

P2PKは2009年1月3日にビットコイン誕生とともに初めて使用されたアドレス形式であり、ブロック0(Genesis Block)にて確認することができます。

Genesis Blockのブロック報酬である50BTCは動かせないとされており、その秘密については下記記事でまとめています。ご興味があればご覧ください。

「Genesis Block」サトシ・ナカモトの50BTCに隠された秘密
Genesis Blockの報酬50BTCが使えない理由を技術的に解説。Genesis Addressに関して、P2PKとP2PKHの違い、100BTC以上あると紹介される背景まで網羅します。

P2PKはPay to Public Keyの略で、名前の通り直接公開鍵に支払う形式であるため厳密にはアドレスではありません。またブロックチェーン上に公開鍵が露出する形となるため、現在多くのウォレット実装でP2PKは対応していません。(自分でトランザクションを作成すれば使用できます)

見た目については非常に長く、プレフィックス(先頭文字)が04から始まるのが特徴です。

P2PKの例
04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f

また、以下の様な公開鍵の情報を元にした構造を持ちます。

04 | X座標 (32 bytes) | Y座標 (32 bytes)

ビットコインの公開鍵は楕円曲線上の点を表しているため、X座標とY座標が登場します。数学の概念がそのまま実装に現れているのが分かります。

💡
公開鍵は本来「X座標+Y座標」ですが、楕円曲線の性質によりXが決まるとYは2通りに絞れます
そのため、公開鍵は X(32bytes)とどちらのYかを示す印(02=Yが偶数、03=Yが奇数)で圧縮して表すことができます。

02/03 | X座標 (32 bytes)

レガシーアドレス(P2PKH、P2SH) Base58Check

一般的に「レガシーアドレス」という言葉は、SegWitなどの新しい形式と比較して、従来から使われてきたBase58Check形式のビットコインアドレスを指すことが多いです。ただし文脈によって指す範囲が揺れることもあり、P2PKH(1...)のみをレガシーと呼ぶケースもあります。

本記事では、どちらもBase58Checkで表現されるという共通点から、P2PKH(1...)とP2SH(3...)をまとめてレガシーアドレスとして扱います。

Base58Checkは、ビットコインアドレスを人間が読みやすい文字列に変換するためのエンコード方式の一つです。さらにチェックサム(検査用データ)が付いているため、入力ミスなどの誤りを検出しやすくなっています。

P2PKH(Pay to Public Key Hash)

種類 P2PKH
登場時期 2009年1月16日
ブロック高 728
プレフィックス 1
長さ 33 or 34
エンコード方式 Base58Check

P2PKHは2009年1月16日にブロックチェーンで確認されたアドレス形式で、ビットコインが誕生(2009年1月3日)してからわずか2週間で使用されています。

公開鍵はとても長く扱いづらいという理由から、ハッシュ関数を利用して一定の長さに変換した値を使うビットコインアドレスがP2PKHという形式です。そのため、名前はPay to Public Key Hashの略であり、公開鍵のハッシュに支払うという意味になります。

P2PKHの例
12higDjoCCNXSA95xZMWUdPvXNmkAduhWv

P2PKHは1から始まることが特徴で、33文字か34文字で構成されています。(理論的には26文字まで短くすることができます)

現在P2PKHはあまり広く使われていませんが古くから存在するアドレスのため、多くのウォレット実装や取引所で対応しているというメリットはあります。しかし、手数料が高くなってしまうというデメリットが存在するため、今からウォレットを使用する際にはわざわざ使う必要はありません。

P2SH(Pay to Script Hash)

種類 P2SH
登場時期 2012年4月1日
ブロック高 170,052
プレフィックス 3
長さ 34
エンコード方式 Base58Check

P2SHは、2012年4月1日にソフトフォークにより誕生し、ブロック174,717で初めて使用が確認されています。しかし、ソフトフォークが発生する以前に開発者間でアドレスの実験が行われており、ブロック170,052においてP2SHの形式が使われた様子を確認することができます。

P2SHの誕生の裏にはサトシ・ナカモト退場後の開発者間で「どの提案を採用し、どの手順でソフトフォークを進めるべきか」という深い対立が存在しており、この対立によりビットコイン開発の文化が形成された最初の戦争であったとも言われています。

P2SHは、複雑な条件を簡略化することができます。例としては、マルチシグなどで使われることが多い印象です。マルチシグとは複数の鍵のうち一定数の署名が必要な仕組みです。

💡
「m-of-n」 マルチシグ
・マルチシグに必要な署名の個数をm
・登録している公開鍵の総数をn
としたとき、m of n のマルチシグと呼ばれている

1-of-2:2つの鍵のうち1つ署名すればよい
2-of-3:3つの鍵のうち 2つ署名したら解除(よく使用されます)
3-of-3:3つの鍵すべて署名しないと使えない

以前のP2PKHにおいてマルチシグなど複雑な条件を設定する場合、ロック条件を長々と記述する必要があり、データ量が増えて手数料が高くなるという問題がありました。

そこでP2SHでは、ロック条件をハッシュ化して短くし、条件自体をわからなくしたものをアドレスとして使います。P2SHがPay to Script Hashの略である所以はこの仕組みから来ています。

P2SHの例
37paP4uTjmA4Pi85LG6CF9huift3Dw1kFT

P2SHは3から始まる形式になっており、長さは34文字となっているのが特徴です。

ビットコインのロック条件は普段隠されており、使用するときにのみロック条件が明かされるという特徴を持っています。

ビットバンク 入金画面

ちなみに暗号資産取引所のビットバンクの入金アドレスは3から始まるため、P2SHのマルチシグが使われているのだと考えられます。

SegWit(P2WPKH、P2WSH)Bech32

SegWitに分類される2つの形式(P2WPKH、P2WSH)は、前述したP2PKHとP2SHをSegWitに対応させたアドレスとなっており、Native SegWitと呼ばれています。

簡単にSegWitを説明すると「ビットコインのトランザクションにおいて、署名データを本体から分けて別枠に格納する仕組み」です。これにより1取引あたりのデータ量が少なくなるため、手数料が安くなりやすいというメリットがあります。

SegWit以降に主流になったエンコード方式であるBech32は、BIP173で定義されています。Bech32は従来のBase58Checkと比べて入力ミスに強く、機械的にも扱いやすいため、誤った宛先への送金リスクを減らす目的で採用されました。

💡
Bech32の特徴
・数字と小文字のみが使われる
(数字と大文字でも使用可能であるが、小文字のみで使用することを推奨される)
・誤りを検出するだけでなく、訂正も行うことができる
 ‣4文字以下の誤りは必ず検出できることが数学的に保証されている
 ‣ただし入力アドレスの長さと元のアドレスの長さが同じ場合のみ

P2WPKH(Pay to Witness Public Key Hash)

種類 P2WPKH
登場時期 2017年8月23日
ブロック高 481,824
プレフィックス bc1q
長さ 42
エンコード方式 Bech32

P2WPKHは、P2PKHのSegWit版であり2017年8月のソフトフォークにより導入されたアドレスです。ブロック481,824で初めて使用が確認されています。

ビットコインでは、1ブロックあたりに格納できるデータ量が長らく約1MBに制限されていました。利用が増えると手数料が高くなったり、承認が遅くなったりする問題が起きていました。

この課題を解決するために導入されたのがSegWit(署名データを分離して容量を効率化する仕組み)であり、そのSegWitで使われる代表的なアドレス形式のひとつがP2WPKHです。

なお当時はブロックデータの拡張方法をめぐって意見が割れ、一部はBitcoin Cash(BCH)として分岐しました。

P2WPKHの例
bc1q34aq5drpuwy3wgl9lhup9892qp6svr8ldzyy7c

プレフィックスはbc1qで、長さが42文字となっているのが特徴です。

P2WPKHは手数料が安くなりやすく、現在では多くのウォレット(Blue Wallet, Green Wallet, Nunchunkなど)で標準的に使われています。

P2WSH(Pay to Witness Script Hash)

種類 P2WSH
登場時期 2017年8月23日
ブロック高 481,824
プレフィックス bc1q
長さ 62
エンコード方式 Bech32

こちらのP2WSHは、先述したP2WPKH同様P2SHのSegWit版であり、2017年8月23日に登場しブロック481,824にて初めて使用が確認されました。

P2WSHの例
bc1qeklep85ntjz4605drds6aww9u0qr46qzrv5xswd35uhjuj8ahfcqgf6hak

P2WSHはプレフィックスがbc1qであり、長さが62文字であることが特徴です。

P2WPKHもプレフィックスがbc1q であるので、アドレスの文字数が42文字ならP2WPKH、62文字ならP2WSHであると見分けることができます。

P2WPKHは通常のトランザクションで使用されるのに対して、P2WSHは複雑な条件、例えばマルチシグ、タイムロック、「if/else」構造のスクリプトで使用されることが多いです。SegWitにより手数料が削減されるため、同条件ならP2SHより安くなります。

Taproot(P2TR)Bech32m

Taprootはシュノア署名とMASTという仕組みにより、複雑な条件のトランザクションを普通のトランザクションのように見せて、手数料を安くすることができる仕組みです。

Taproot対応にあたってエンコード方式は、BIP350で示されているようにBech32の問題点を改善したBech32m(Bech32 modified)が採用されています。

P2TR(Pay to Taproot)

種類 P2TR
登場時期 2021年11月13日
ブロック高 706,632
プレフィックス bc1p
長さ 62
エンコード方式 Bech32m

P2TRは2021年11月13日にTaprootに対応したアドレスとして登場し、ブロック706,632で初めて使用が確認されています。

P2TRの例
bc1pxwww0ct9ue7e8tdnlmug5m2tamfn7q06sahstg39ys4c9f3340qqxrdu9k

P2TRのプレフィックスはbc1pであり、長さが62文字であることが特徴です。

使用率はいまだに低く、古いアドレスとの互換性がない場合がありますが、プライバシーを重視される方はこちらのアドレスの使用をおすすめします。

P2TRがよく使われる例として、オンチェーンとライトニングネットワークのスワップ(サブマリンスワップ)を行うことができるBoltzというサービスがあります。こちらの記事にてBoltzとサブマリンスワップの仕組みを解説しているのでぜひご覧ください。

Boltzは本当にトラストレスなのか?Submarine Swapの仕組みから解説
BoltzはSubmarine Swapを用いて、オンチェーンBTCとLightning残高をアトミックに交換できるサービスです。本記事では、その仕組みとWeb appの役割から、Boltzがどこまでトラストレスと言えるのかを技術的観点で解説します。

まとめ:ビットコインアドレスは頭文字で種類がわかる

ビットコインアドレスは一見すると単なる英数字の羅列に見えますが、実際には複数の形式が存在し、先頭のプレフィックス(頭文字)によって種類を判別できます。ビットコインは誕生から現在に至るまで、ソフトフォークによって機能改善が繰り返されてきたため、アドレス形式もレガシーからSegWit、そしてTaprootへと進化してきました。

レガシーアドレスは 1 から始まるP2PKHと、3 から始まるP2SHが代表で、どちらもBase58Checkでエンコードされています。これらは古くから存在するため互換性が高い一方で、取引データが大きくなりやすく、手数料面では不利になりやすいという特徴があります。特にP2SHはマルチシグなど複雑な条件の送金に対応しやすく、取引所の入金アドレスとして使われる場面も多い形式です。

SegWitアドレスは bc1q で始まり、Bech32によってエンコードされます。SegWitは署名データを分離する仕組みにより取引を効率化し、手数料を抑えやすくするため、現在のオンチェーン送金で最も一般的な選択肢となっていますbc1q の中でも、42文字程度ならP2WPKH、62文字程度ならP2WSHと区別できるため、文字数を見るだけでタイプを判断できるのも実用的です。

Taprootアドレスは bc1p で始まり、Bech32mでエンコードされます。複雑な条件を含む取引を通常の取引に近い形で扱えるため、プライバシーや効率の面で優れた新しい形式として注目されています。ただし、環境によっては互換性に注意が必要な場合もあるため、用途に応じて使い分けることが大切です。

今後ウォレットを運用していく中で、アドレス形式を理解して選べるようになると、より効率的で安全なビットコイン運用につながるでしょう。