Fundamentals ·

暗号資産アドレス形式:Bech32、Base58、そして0x


暗号資産のアドレスをコピーしたことがあれば、Bitcoinアドレスはbc1で始まり、Ethereumアドレスは0xで始まり、Solanaアドレスはまったく別の言語のように見えることに気づいたでしょう。これらの違いは見た目だけのものではありません。各アドレス形式は、ブロックチェーン、サポートするトランザクションタイプ、資金を保護するエラー検出メカニズムに関する特定の情報をエンコードしています。

アドレス形式を理解することは実用的な知識です。暗号資産アドレスの1文字が間違っているだけで、資金が永久に失われる可能性があります。このガイドでは主要なエンコーディングスキームを分析し、各ブロックチェーンがその形式を選んだ理由を説明し、チェックサムがコストの大きいミスをどう防ぐかを示します。

なぜアドレスが異なって見えるのか

暗号資産アドレスは公開鍵またはそこから導出されたハッシュの人間可読な表現です。生の暗号出力はバイナリデータであり、人間が読み取り、コピー、検証するには実用的ではありません。異なるブロックチェーンが、バイナリデータをテキスト文字列に変換するために異なるエンコーディングスキームを選択しました。

これらのエンコーディング選択は以下の間のトレードオフを反映しています:

  • 文字セットの安全性 -- 見た目が似ている文字(0/O、l/1/I)を回避
  • エラー検出 -- 資金が失われる前にタイプミスを検出する内蔵チェックサム
  • スペース効率 -- 短いアドレスは扱いやすい
  • 大文字小文字の区別 -- 小文字のみの形式はクリップボードの混乱を回避

暗号資産の3つの主要なエンコーディングファミリーはBase58CheckBech32、そして0xプレフィックス付きの16進数です。

Base58Check:Bitcoinレガシー

Base58Checkは、Satoshi NakamotoがBitcoinと共に導入した最初のアドレスエンコーディングスキームの一つです。視覚的な混乱を引き起こす文字を意図的に除外した58文字の英数字を使用します:

  • ゼロ(0)なし -- 文字Oに酷似
  • 大文字O(O)なし -- ゼロに酷似
  • 小文字L(l)なし -- 大文字Iと数字1に酷似
  • 大文字I(I)なし -- 小文字lと数字1に酷似

Base58Check Bitcoinアドレスはこのように見えます:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

形式にはペイロードの先頭にバージョンバイト、末尾に4バイトのチェックサムが含まれます。このチェックサムにより、1文字でも誤って入力すると、間違った有効なアドレスに資金が送られるのではなく、ほぼ確実にバリデーションが失敗します。

他のいくつかのブロックチェーンもBase58Checkを採用しました:

  • LitecoinレガシーアドレスはLまたはMで始まる
  • DogecoinアドレスはDで始まる

SafeSeedのBitcoin Address Validatorを使用して、トランザクション前にBase58Checkアドレスのチェックサムが有効かどうか確認できます。

Bech32:SegWit bc1アドレス

2017年にBitcoinはSegWit(Segregated Witness)を導入し、新しいアドレス形式が必要になりました。Base58Checkを拡張する代わりに、開発者はBIP173で定義されたBech32を作成しました。Bech32アドレスはBitcoinメインネットでbc1で始まるため、すぐに認識できます。

Bech32アドレスはこのように見えます:bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4

小文字のみ

Bech32は小文字と数字のみを使用します。これにより、アドレスが口頭で伝えられたり、混合ケースフォントで印刷されたり、QRコードにエンコードされるときの大文字小文字の問題が解消されます。

優れたエラー検出

Base58Checkはエラーを検出しますがエラーの場所を教えることができません。Bech32は、単一文字エラーとほとんどの複数文字置換エラーを検出できるBCHコードを使用します。

より小さなQRコード

Bech32は制限された文字セット(32文字)を使用するため、これらのアドレスを表すQRコードは測定可能に小さく、スキャンしやすいです。

Bech32m

Bech32m(BIP350)と呼ばれる更新版は、最後の文字に関する元のBech32形式のマイナーな弱点を修正しました。最新のSegWit v1アドレス(Taproot、bc1pで始まる)はBech32mを使用します。SafeSeedのBitcoin Address GeneratorでBitcoinアドレスを生成すると、デフォルト出力は最新のBech32/Bech32m形式を使用します。

0x:EVMチェーンアドレス

Ethereumはまったく異なるアプローチを取りました。Ethereumアドレスは0xプレフィックス付きの40文字の16進数で表示される20バイト値です:

0x742d35Cc6634C0532925a3b844Bc9e7595f2bD08

EIP-55混合ケースチェックサム

元のEthereumアドレス形式には内蔵チェックサムがありませんでした。EIP-55はこれをヘックス文字の大文字化をチェックサムとして使用することで解決しました。アドレスはKeccak-256でハッシュされ、ハッシュの対応するニブルが8を超えると各文字が大文字化されます。

一見ランダムな大文字化はチェックサムです。1文字を変更すると大文字化パターンが一致しなくなり、適切に実装されたウォレットがそれを拒否します。

EVMチェーン全体で共有

0x形式の最も重要な側面の一つは、すべてのEVM互換チェーンで同一であることです:

同じ秘密鍵がこれらすべてのチェーンで同じアドレスを生成します。EVMアドレスセキュリティの詳細はEVMアドレスセキュリティガイドをご覧ください。

SafeSeedのEthereum Address ValidatorでEIP-55チェックサムを含む任意のEVMアドレスを検証できます。

Solana、XRP、TRONのBase58

いくつかの現代のブロックチェーンはBase58エンコーディングを使用しますが、Check接尾辞なしで独自のチェックサムまたは検証メカニズムを実装しています。

Solana

SolanaアドレスはBase58エンコードされたEd25519公開鍵で、通常32〜44文字の長さです。SolanaはBitcoinと同じBase58アルファベットを使用しますが、バージョンバイトやSHA-256チェックサムを追加しません。検証はEd25519曲線上の有効な点であるかに依存します。SafeSeedのSolana Address Validatorがこの検証を処理します。

XRP

XRPは独自のバージョンプレフィックスを持つBase58Checkエンコーディングを使用し、rで始まるアドレスを生成します。

TRON

TRONアドレスは0x41バージョンバイトのBase58Checkを使用し、Tで始まるアドレスを生成します。

チェックサム:あなたのセーフティネット

チェックサムはアドレスペイロードから導出される小さなデータで、ソフトウェアがエラーを検出できるようにします。1文字でも変更されるとフィンガープリントが一致しなくなります。

主要形式間のチェックサムメカニズムの比較:

形式 チェックサム方式 検出能力
Base58Check ダブルSHA-256(4バイト) 事実上すべてのエラーを検出
Bech32 BCHコード(6文字) すべての単一文字エラーを検出;最大2つのエラーを特定
EIP-55 (0x) Keccak-256大文字化 単一文字変更に対して約99.98%のエラー検出
Solana Base58 Ed25519曲線検証 無効な曲線点を拒否

チェックサムはすべてのタイプのミスから保護するわけではありません。マルウェアがクリップボード全体を別の有効なアドレスに置き換えた場合(クリップボードハイジャック攻撃)、攻撃者のアドレス自体が有効であるためチェックサムは通過します。チェックサムは偶発的なタイプミスや送信エラーから保護しますが、意図的な詐欺からは保護しません。

タイプミス以外の脅威についてのより広い視点はシードフレーズを狙う一般的な暗号資産詐欺をご覧ください。

送金前のアドレス検証

すべての暗号資産トランザクションはアドレス検証から始めるべきです。適切な検証には以下が含まれます:

1. フォーマット検証

アドレスが使用中のブロックチェーンの期待される形式と一致するか確認します。

2. チェックサム検証

内蔵チェックサムをチェックするバリデーターでアドレスを実行します。SafeSeedは最も一般的なチェーンの無料バリデーターを提供しています:

すべての検証はクライアントサイドコードを使用してブラウザ内で完全に実行されます。アドレスデータはサーバーに送信されません。

3. 視覚的確認

自動検証後でも、アドレスの最初と最後の数文字を視覚的に確認します。

4. 少額テストトランザクション

大規模な送金の場合、まず少額を送って受取を確認してから全額を送ります。

5. アドレス帳機能の活用

ほとんどのウォレットでは検証済みアドレスを保存できます。アドレスを確認したら保存して、再入力を避けます。

検証プロセスの詳細は暗号資産アドレスの検証方法をご覧ください。

正しいフォーマットの選択

新しいアドレスを生成する場合、最新の形式がほぼ常に推奨されます:

  • Bitcoin:低い手数料とより良いエラー検出のためにBech32(bc1)アドレスを使用します。
  • EthereumとEVMチェーン:常にEIP-55チェックサム付きアドレスを使用します。
  • Solana:Base58が唯一のオプションで、うまく機能します。

SafeSeedでアドレスを生成する際、ツールは各ブロックチェーンの最新かつ最も安全な形式をデフォルトで使用します。Bitcoin Seed Phrase GeneratorでもEthereum Address Generatorでも、導出されるアドレスはそのチェーンに推奨されるエンコーディングを使用します。

これらの形式を理解すると、暗号資産アドレスの謎がなくなります。それらはランダムな文字列ではなく、単純な人的エラーから資金を保護するために内蔵された安全メカニズムを備えた、暗号鍵の注意深く設計された表現です。