暗号資産アドレスタイプを解説: Legacy、SegWit、Taproot
Bitcoin をある程度使っていると、"1" で始まるアドレス、"3" で始まるアドレス、そして "bc1q" や "bc1p" で始まるアドレスを見たことがあるはずです。これらは見た目だけの違いではありません。資金のロックと解除の仕組みが根本的に異なり、手数料、プライバシー、機能性に大きく影響します。
このガイドでは、主要な Bitcoin アドレスタイプをすべて解説し、技術的な仕組み、メリット・デメリット、用途に応じた選び方を説明します。あわせて Ethereum やその他主要ブロックチェーンのアドレス形式も扱います。
Bitcoin アドレスタイプ
Legacy アドレス(P2PKH) — "1" で始まる
正式名称: Pay-to-Public-Key-Hash
例: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Derivation path: m/44'/0'/0' (BIP-44)
Legacy アドレスは Bitcoin の初期プロトコルで定義された、最初のアドレス形式です。アドレスは公開鍵ハッシュを Base58Check でエンコードしたものです:
Address = Base58Check(0x00 || RIPEMD160(SHA256(public_key)))
0x00 の version byte により、mainnet では "1" で始まるアドレスになります。
送金時の仕組み(script):
ScriptPubKey: OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
ScriptSig: <signature> <publicKey>
Legacy アドレスから資金を使うには、送信者が公開鍵と有効な署名を提示します。ネットワークは、公開鍵のハッシュがアドレスに一致することと、署名がその公開鍵に対して有効であることを検証します。
メリット:
- 最高の互換性。2009 年以来、すべての Bitcoin ウォレット、取引所、サービスでサポート。
- シンプルで理解しやすい。
デメリット:
- トランザクションサイズが最大(手数料が最も高い)。
- SegWit の利点がない(witness 割引なし)。
- Base58Check は大文字小文字を区別するため、転記ミスが起きやすい。
- チェックサム以外のエラー検出がない(ランダムな誤りは検出できても、すべての置換は検出できない)。
P2SH アドレス — "3" で始まる
正式名称: Pay-to-Script-Hash
例: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy
Derivation path: m/49'/0'/0'(BIP-49、SegWit ラップ用)
P2SH はより複雑な支払い条件を実現するために BIP-16(2012)で導入されました。公開鍵ハッシュへの支払いではなく、script のハッシュへ支払います。script ではマルチシグ、タイムロック、ハッシュロック、そして現在最も一般的には SegWit 出力のラップなど、任意の条件を実装できます。
P2SH-P2WPKH(SegWit 互換):
現在の P2SH アドレスで最も一般的な用途です。SegWit(P2WPKH)出力を P2SH script の中に包むことで、SegWit の利点を得つつ、P2SH アドレスしか理解しない古いソフトウェアとの後方互換性を維持します。
RedeemScript: 0x0014 <20-byte-pubkey-hash> (a P2WPKH script)
ScriptPubKey: OP_HASH160 <hash-of-redeemScript> OP_EQUAL
メリット:
- 後方互換性を保ちながら SegWit の利点(手数料削減、malleability 修正)を得られる。
- ほぼすべての現代的なウォレットと取引所でサポート。
- 複雑な script(multisig、time locks)を実現できる。
デメリット:
- ネイティブ SegWit より手数料が高い(ラッパー script のオーバーヘッド)。
- 曖昧さがある。"3" アドレスは通常の multisig、wrapped SegWit、その他任意の P2SH script の可能性があり、アドレスだけでは判別できない。
ネイティブ SegWit アドレス(P2WPKH) — "bc1q" で始まる
正式名称: Pay-to-Witness-Public-Key-Hash(Bech32 エンコード)
例: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
Derivation path: m/84'/0'/0'(BIP-84)
ネイティブ SegWit アドレスは BIP-141/BIP-143(2017 年 8 月に有効化)で導入され、BIP-173 で定義された Bech32 エンコードを使用します。Base58Check は使わず、次の特徴を持つ新しいエンコード方式を採用します。
- 小文字のみ — 大文字小文字の問題を排除。
- BCH エラー訂正 — 最大 4 文字の誤りを検出し、一部は自動訂正可能。
- 人間可読プレフィックス — Bitcoin mainnet は
bc、testnet はtb。
送金時の仕組み:
ScriptPubKey: 0 <20-byte-pubkey-hash>
Witness: <signature> <publicKey>
署名と公開鍵はトランザクションの "witness" セクションに移され、この部分にはトランザクション重量(手数料)で 75% の割引が適用されます。
メリット:
- Taproot 以前のアドレスタイプの中で最安の手数料(witness 割引)。
- Malleability 修正 — SegWit はトランザクション malleability を解消し、Lightning Network のような layer-2 プロトコルを可能にする。
- 高いエラー検出性能 — Bech32 は Base58Check より多くの誤りを検出。
- script がシンプル — P2SH ラッパーのオーバーヘッドがない。
デメリット:
- 古い一部のウォレットや取引所では bc1q 宛送金に未対応(2025 年時点ではかなり稀)。
- Legacy や P2SH よりアドレス文字列がやや長い。
Taproot アドレス(P2TR) — "bc1p" で始まる
正式名称: Pay-to-Taproot(Bech32m エンコード)
例: bc1p5d7rjq7g6rdk2yhzks9smlaqtedr4dekq08ge8ztwac72sfr9rusxg3297
Derivation path: m/86'/0'/0'(BIP-86)
Taproot は 2021 年 11 月に Bitcoin で有効化されました(BIP-340、BIP-341、BIP-342)。SegWit 以降で最も重要な script 機能のアップグレードです。
Taproot は ECDSA の代わりに Schnorr 署名を使い、key-spend/script-spend モデルを導入します。
- Key path spend — 最も一般的なケース。1 つの署名で支出を承認し、見た目は他の Taproot トランザクションと同一。
- Script path spend — 複雑な条件(multisig、time locks、hash locks)を Merkle tree にコミットし、必要時のみ公開可能。
送金時の仕組み:
ScriptPubKey: 1 <32-byte-tweaked-public-key>
Witness: <signature> (key path, most common)
— or —
Witness: <script> <control-block> <arguments> (script path)
メリット:
- プライバシー — Taproot トランザクションは、背後の支出条件に関係なくオンチェーン上で同じ見た目になる。key path を使うと multisig と単一署名の区別がつかない。
- 効率性 — Schnorr 署名は ECDSA より小さい。鍵集約(MuSig2)により、multisig でも 1 つの結合署名を生成可能。
- script の柔軟性 — MAST(Merkelized Alternative Script Trees)により、未使用ブランチを公開せず複雑な支出条件を実現。
- 低手数料 — key-path spend ではネイティブ SegWit と同等かそれ以下。
デメリット:
- 普及は進行中。Taproot アドレスへの送受信をまだ完全対応していないウォレットや取引所がある。
- 実装が複雑でウォレットバグのリスクが高まる(ただし成熟した実装は存在する)。
- Bech32m エンコード(Bech32 とは別)に対応する必要がある。
アドレスタイプ比較
| Feature | Legacy (1...) | P2SH (3...) | Native SegWit (bc1q...) | Taproot (bc1p...) |
|---|---|---|---|---|
| BIP | Original | BIP-16 | BIP-141/BIP-173 | BIP-341/BIP-350 |
| Derivation | m/44'/0'/0' | m/49'/0'/0' | m/84'/0'/0' | m/86'/0'/0' |
| Encoding | Base58Check | Base58Check | Bech32 | Bech32m |
| Signature | ECDSA | ECDSA | ECDSA | Schnorr |
| Fee cost | Highest | Medium | Low | Lowest (key path) |
| Privacy | Low | Medium | Medium | High |
| Error detection | Basic checksum | Basic checksum | BCH codes | BCH codes |
| Compatibility | Universal | Near-universal | Most wallets | Growing |
どの Bitcoin アドレスタイプを使うべき?
2025 年以降の多くのユーザー向け: デフォルトはネイティブ SegWit(bc1q)を推奨。低手数料、強い互換性、成熟したサポートのバランスが最良です。
最大のプライバシーと最安手数料を重視: ウォレットが対応し、利用サービスが Taproot 宛送金に対応しているなら Taproot(bc1p)を使います。
古いサービスとの互換性重視: bc1q や bc1p へ送れないサービスから受け取る必要がある場合は P2SH(3...)を使います。
新規ウォレットで Legacy(1...)は避けることを推奨します(特別な互換性要件がある場合を除く)。
Ethereum アドレス形式
Ethereum は単一のアドレス形式を使います:
0x742d35Cc6634C0532925a3b844Bc9e7595f2bD38
0xプレフィックス付き 20 バイト(16 進数 40 文字)。- 公開鍵の Keccak-256 ハッシュ末尾 20 バイトから導出。
- EIP-55 mixed-case checksum — 大文字・小文字がチェックサムとして機能。どれか1文字でもケースを変えるとチェックサム不一致になる。
- すべての EVM 互換チェーン(Ethereum、Polygon、Arbitrum、Optimism、BSC)で同じ形式を使用。
重要: 同じアドレスに誤ったネットワーク(例: ETH mainnet と Polygon)でトークンを送っても資金は失われません(アドレスは全 EVM チェーンに存在)。ただしアクセスするには正しいネットワークへ切り替えが必要です。
ENS (Ethereum Name Service)
ENS は Ethereum アドレスに人間可読な名前を提供します:
vitalik.eth → 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
送金前に、名前解決されたアドレスを必ず確認してください。ENS 名は譲渡可能なため、名前の裏にあるアドレスは変わる可能性があります。
その他ブロックチェーンのアドレス形式
Bitcoin Cash (BCH)
Bitcoin Cash は Bitcoin アドレスと区別するため CashAddr 形式を使います:
bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a
bitcoincash: プレフィックスにより、Bitcoin アドレスへの誤送金を防ぎます。
Litecoin (LTC)
Litecoin は Bitcoin と似たアドレスタイプを使います:
- Legacy:
LまたはMで開始 - P2SH:
Mまたは3で開始 - Native SegWit:
ltc1qで開始
Solana (SOL)
Solana は Base58 エンコードされた Ed25519 公開鍵を使います:
7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV
32 バイトを Base58 エンコードし、通常 32〜44 文字です。
Cardano (ADA)
Cardano は addr プレフィックス付き Bech32 エンコードアドレスを使います:
addr1qx2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzer3jcu5d8ps7zex2k2xt3uqxgjqnnj83ws8lhrn648jjxtwq2ytjqp
Cardano アドレスは支払い資格情報とステーキング資格情報の両方をエンコードするため、Bitcoin アドレスよりかなり長くなります。
TRON (TRX)
TRON は T で始まる Base58Check エンコードアドレスを使います:
TJYeasTPa6gpB9Ut5HALR2twMHU3gYpML8
Cosmos (ATOM)
Cosmos はチェーン固有プレフィックス付き Bech32 エンコードを使います:
cosmos1qypqxpq9qcrsszg2pvxq6rs0zqg3yyc5lzv7xu
Cosmos SDK の各チェーンは異なるプレフィックスを使います(例: Osmosis は osmo、Juno は juno)。
SafeSeed Address Generator を使うと、単一の seed phrase から複数ブロックチェーン・複数アドレスタイプのアドレスを導出できます。同じ seed から Bitcoin Legacy、SegWit、Taproot、Ethereum などで異なるアドレスが生成される様子を確認できます。すべての処理はブラウザ内でローカル実行されます。
アドレス検証と安全性
チェックサム検証
送金前に必ずアドレスを確認してください:
- Bitcoin Legacy/P2SH: Base58Check には 4 バイトのチェックサムが含まれ、多くのウォレットが自動検証します。
- Bitcoin SegWit/Taproot: Bech32/Bech32m には強力なエラー検出(BCH codes)を備えた 6 文字チェックサムが含まれます。
- Ethereum: EIP-55 mixed-case checksum。ウォレットが EIP-55 を実装していない場合、任意の大文字小文字を受け入れてしまうため警告サインです。
アドレス再利用
プライバシーのため、Bitcoin アドレスの再利用は避けてください。各トランザクションでは新しいアドレスを使うべきです。HD Wallet(BIP-44)は新しいアドレスを自動生成します。
Ethereum アドレスは通常再利用されます(account-based model)が、複数アカウントを使うことでプライバシーを改善できます。
クリップボード乗っ取り
マルウェアはクリップボードを監視し、暗号資産アドレスを攻撃者のアドレスへ置き換えることがあります。貼り付け後は最低でも先頭 6 文字と末尾 6 文字、理想的にはアドレス全体を目視確認してください。ウォレットによっては確認しやすいよう、アドレスの視覚ハッシュ(identicon)を表示します。
QR コード検証
QR コードをスキャンしてアドレスを取得する際は、デコード結果が想定どおりか確認してください。悪意ある QR コードには攻撃者管理のアドレスが埋め込まれている可能性があります。
アドレスタイプ間の変換
アドレス種別ごとに異なる derivation path と鍵セットを使うため、アドレスを別タイプへ「変換」(例: Legacy → SegWit)することはできません。ただし次は可能です。
- 同じ seed phrase から複数タイプのアドレスを生成する — 同じ seed phrase から、異なる derivation paths により全アドレスタイプの鍵を同時に導出できます。
- あるアドレスタイプから別タイプへ送金する — Legacy アドレスから SegWit アドレスへ通常どおりトランザクションを送ればOKです。
SegWit アドレスに送られた資金を Legacy derivation path で扱うことはできません。使用する秘密鍵が異なるためです。
FAQ
Legacy アドレスと SegWit アドレスの違いは?
Legacy アドレス("1" で始まる)は元の Bitcoin トランザクション形式を使います。SegWit アドレス("bc1q" で始まる)は Segregated Witness を使い、署名データをトランザクション本体から分離するため、トランザクションが小さくなり、手数料が下がり、トランザクション malleability も修正されます。新規ウォレットでは SegWit 推奨です。
Legacy アドレスから SegWit アドレスへ Bitcoin を送れますか?
はい。Bitcoin の全アドレスタイプはネットワーク上で相互運用可能です。どのタイプからどのタイプにも送れます。互換性の問題は主にウォレットソフト側で、古いウォレットの一部は bc1q や bc1p 宛トランザクションを作成できません。
ウォレットで毎回違うアドレスが表示されるのはなぜ?
BIP-44 を使う HD Wallet では正常な挙動です。プライバシー向上のため、取引ごとに新しいアドレスが生成されます。すべて同じ seed phrase から導出されるため復元可能です。以前使ったアドレスも有効で、引き続き受け取りに使えます。
Bech32 エンコードとは?
Bech32 は BIP-173 で規定されたアドレスエンコード形式で、ネイティブ SegWit(bc1q)アドレスに使われます。小文字英数字(1, b, i, o を除く)を使い、BCH エラー訂正チェックサムを含み、人間可読プレフィックス(Bitcoin mainnet は bc)を持ちます。Bech32m(BIP-350)は Taproot(bc1p)向けの改良版です。
手数料が最も安い Bitcoin アドレスタイプは?
一般的に Taproot(bc1p)は Schnorr 署名効率により key-path spend で最も低手数料です。ネイティブ SegWit(bc1q)が僅差で次点。P2SH-wrapped SegWit(3...)はそれより高く、Legacy(1...)はトランザクションサイズが大きいため最も高くなります。
Bitcoin と Bitcoin Cash で同じアドレスを使えますか?
いいえ。Legacy Bitcoin と Bitcoin Cash のアドレスは見た目が似ることがあります(どちらも "1" 開始の場合あり)が、Bitcoin を Bitcoin Cash アドレスへ(または逆に)送ると誤ったチェーンに送られる可能性があります。Bitcoin Cash はこの混乱を防ぐため CashAddr 形式("bitcoincash:" 開始)を使います。
間違ったネットワークで間違ったアドレスタイプに送るとどうなりますか?
EVM チェーン(Ethereum、Polygon、BSC など)では同じアドレスが全チェーンに存在するため、資金は失われません。正しいネットワークでアクセスすればよいだけです。非 EVM チェーンではアドレス形式が異なるため、通常はウォレットが無効アドレスへの送信を防ぎます。もし存在しない形式へ送れてしまった場合、資金は永久に失われる可能性があります。
Ethereum アドレスはすべて同じ形式ですか?
はい。Ethereum はすべての用途で単一形式(0x + 40 桁 16 進数)を使います。ETH 受け取り、ERC-20 トークン、NFT、スマートコントラクト操作のすべてで同じです。同一アドレスはすべての EVM 互換チェーンで有効です。