ビットコインウォレットアドレスとは
ビットコインウォレットアドレスの構造・種類・生成原理・正しい使い方を解説。P2PKH、P2SH、ネイティブSegWit(Bech32)、Taproot(Bech32m)アドレスを初心者向けにわかりやすく説明する。
ビットコインを初めて目にすると、長い文字列でできたアドレスに戸惑いを感じやすい。1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa のような文字列は何を意味し、どのように生成され、なぜこれほど複雑な形をしているのか。本記事はその疑問に答える。
ウォレットアドレスは銀行口座番号ではない
従来の金融では、送金を受け取るために口座番号を教えればよい。ビットコインでもアドレスが同じ役割を担うが、その性質は根本的に異なる。
銀行口座番号は金融機関が管理する識別子だ。銀行が消えれば口座も消える。ビットコインのアドレスは違う。数学的に生成される値であり、いかなる機関の許可も必要としない。インターネットが切断された状態でも、紙と鉛筆だけで有効なアドレスを作ることができる。
核心的な違い:
- 銀行口座:機関が発行・管理
- ビットコインアドレス:個人が数学的に生成、誰の許可も不要
アドレスはどのように作られるか
ビットコインアドレスの生成は3段階を経る。
ステップ1:秘密鍵の生成
まず256ビットの乱数、すなわち秘密鍵(private key)を生成する。この数は2²⁵⁶通りの可能性の中の一つだ。宇宙の原子数をはるかに超える数であり、正しく生成された秘密鍵は他者に推測できない。
秘密鍵の例:
E9873D79C6D87DC0FB6A5778633389F4453213303DA61F20BD67FC233AA33262
秘密鍵は絶対に外部に公開してはならない。秘密鍵を知る者がそのアドレスのビットコインを使える。
ステップ2:公開鍵の導出
秘密鍵に楕円曲線暗号(ECDSA、secp256k1曲線)を適用すると公開鍵が導出される。この過程は一方向だ。公開鍵から秘密鍵を逆算することは現在のコンピューティング能力では不可能だ。
ステップ3:アドレスの導出
公開鍵にSHA-256とRIPEMD-160ハッシュ関数を順に適用した後、レガシーアドレスはBase58Checkエンコードを、SegWitとTaprootアドレスはBech32/Bech32mエンコードを経て最終的なアドレスが生成される。この過程でも逆算は不可能だ。
秘密鍵 → (楕円曲線演算) → 公開鍵 → (ハッシュ関数) → アドレス
結果として、アドレスだけを知る外部者は公開鍵も秘密鍵も知ることができない。これがビットコインセキュリティの数学的基盤だ。
アドレスの種類
ビットコインプロトコルの発展とともに、アドレス形式も複数の世代を経てきた。
P2PKH(レガシーアドレス)
形式: 1 で始まる、25〜34文字
例: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2
最も古いアドレス形式。ビットコインの最初期から使われてきた。ほとんどの取引所・ウォレットが対応しているため互換性が高い。欠点はトランザクション手数料が相対的に高い点だ。
P2SH(スクリプトハッシュアドレス)
形式: 3 で始まる、34文字
例: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy
マルチシグ(多重署名)トランザクションや複雑な条件のロックスクリプトに使われる。3で始まるアドレスに送金すると、内部的にスクリプト条件を満たさなければ出金できない。
ネイティブSegWit(Bech32)
形式: bc1q で始まる
例: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
2017年のSegWitアップグレードで導入されたアドレス形式。手数料が最も安く、エラー検出機能も優れている。現在新たに作成されるウォレットのほとんどがデフォルトで使用する形式だ。bc1qで始まるため簡単に区別できる。
Taproot(P2TR)
形式: bc1p で始まる
例: bc1p5d7rjq7g6rdk2yhzks9smlaqtedr4dekq08ge8ztwac72sfr9rusxg3297
2021年のTaprootアップグレードで導入された最新の形式。プライバシーと効率性が向上している。まだ全てのサービスが対応しているわけではないが、採用は急速に広がっている。
| アドレス種類 | 接頭辞 | 特徴 | 手数料 |
|---|---|---|---|
| Legacy (P2PKH) | 1… | 最初のアドレス形式 | 最も高い |
| Script (P2SH) | 3… | マルチシグ・ネストSegWit | 中程度 |
| Native SegWit (Bech32) | bc1q… | SegWitネイティブ | 低い |
| Taproot (Bech32m) | bc1p… | シュノア署名・MAST | 最も低い |
アドレスは一度だけ使うのが原則
ビットコインアドレスは技術的に再利用可能だ。しかし一度使用したアドレスの再利用は推奨されない。
理由は二つある。第一に、支払いを受けるたびに同じアドレスを公開すると、外部からそのアドレスの残高と取引履歴を追跡しやすくなる。ビットコインブロックチェーンは公開台帳であるため、アドレスと残高情報は誰でも照会できる。
第二に、一部のウォレット実装ではアドレスを再利用すると公開鍵がブロックチェーン上に露出する場合がある。現在の暗号レベルでは問題ないが、長期的なセキュリティの観点から望ましくない。
現代のウォレットの多くは**HDウォレット(Hierarchical Deterministic Wallet)**構造を採用し、1つのシードから数百万のアドレスを派生させる。新しいアドレスが必要になるたびに自動生成されるため、ユーザーがアドレスの再利用を心配する必要はない。
アドレス送信時の注意事項
大文字・小文字の区別
レガシーアドレス(1始まり)とP2SHアドレス(3始まり)は大文字と小文字を区別する。1ABCと1abcは異なるアドレスだ。一方、Bech32アドレス(bc1)は大文字・小文字を区別しない。
入力ミスの防止
アドレスを手入力することは避けるべきだ。34文字の文字列を手で入力すればミスが発生する。QRコードスキャンやコピー&ペーストを使い、送信前に先頭と末尾の数文字を必ず目視で照合すること。
Base58CheckとBech32形式にはエラー検出コードが含まれており、アドレスの1文字が変わるとウォレットソフトウェアが無効なアドレスとして拒否する。ただしエラー検出は完璧ではないため、目視確認は必須だ。
ネットワーク混同に注意
ビットコイン(BTC)とビットコインキャッシュ(BCH)のレガシーアドレス形式はどちらも1で始まるため一部が同一だ。ビットコイン送金時にビットコインキャッシュのアドレスに送ったり、その逆の間違いが起こりうる。送金前にウォレットソフトウェアが正しいネットワーク(メインネット)を選択しているか確認が必要だ。
また、テストネット(testnet)アドレスはメインネットとは異なる。テストネットアドレスに本物のビットコインを送ると復元できない。
アドレスとトランザクションIDの違い
アドレスとトランザクションID(TXID)は混同しやすいが、全く異なる概念だ。
- アドレス: ビットコインを受け取るための識別子。複数回の取引の宛先になりうる。
- TXID: 完了した個別の取引を識別するハッシュ値。取引が発生するたびに新たに生成される。
txid.ukでアドレスを検索すると、そのアドレスに関連する全ての取引履歴と現在の残高を確認できる。
txid.ukでアドレスを検証する
アドレスが有効かどうか、残高はいくらかを確認するにはtxid.ukを活用しよう。
実践手順:
- txid.ukにアクセスし、検索欄にビットコインアドレスを入力
- アドレスの残高と全取引履歴を確認
- UTXO(未使用トランザクション出力)の詳細を閲覧
アドレスを検索しても資産が危険になることはない。ビットコインのアドレスと取引履歴は公開情報であり、照会自体は全くリスクがない。
まとめ
ビットコインアドレスは機関の許可なく数学的に生成される固有の識別子だ。秘密鍵から公開鍵を経てアドレスが派生する一方向の構造により、アドレスだけからは秘密鍵を知ることができない。レガシー(1)、P2SH(3)、SegWit(bc1q)、Taproot(bc1p)の各形式があり、現在は手数料が安いSegWitアドレスの使用が推奨される。アドレスを正しく使うためには再利用を避け、送信前に必ずアドレスを目視確認する習慣が重要だ。