Guides ·

送金前に暗号資産アドレスを検証する方法


暗号資産のトランザクションは取り消せません。不正な形式のアドレス、間違ったネットワークのアドレス、または1文字が入れ替わったアドレスに資金を送ると、連絡する銀行もチャージバックもありません。コインは消えます。アドレス検証は資金と永久的な損失の間の最後の防衛線ですが、ほとんどの人はこれを完全にスキップしています。

このガイドでは、アドレス検証が技術的レベルでどのように機能するか — フォーマットチェック、チェックサム検証、クロスチェーン混同検出 — を説明し、すべての送金がウォレットを離れる前にチェックされるようワークフローに検証を組み込む方法を示します。

検証が暗号資産を守る理由

暗号資産を失う最も一般的な方法は、高度なハッキングではありません。単純な人的エラーです:アドレスの不正確なコピー、間違ったチェーンのアドレスの貼り付け、またはクリップボード内のアドレスを攻撃者が管理するものに静かに置き換えるクリップボードハイジャックマルウェアの被害です。

メカニクスを考えてください。bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4のようなBitcoinアドレスは42文字です。Ethereumアドレスは0xプレフィックスを含めて42文字です。Solanaアドレスは最大44文字になります。これらは人間にとって扱いやすい文字列ではありません。

検証はこれらの問題が災害になる前にキャッチします。適切な検証チェックは以下を教えてくれます:

  • フォーマットは正しいか? 文字列はターゲットブロックチェーンの期待されるパターンと一致するか?
  • チェックサムは通過するか? アドレスが生成されてから文字が変更されていないか?
  • 正しいネットワークか? BitcoinをBitcoin Cashアドレスに、または同一に見えるBNB ChainアドレスにETHを送ろうとしていないか?

各チェックは異なるレイヤーで動作します。これらを組み合わせると、アドレス関連エラーの大部分をキャッチする多層防御戦略を形成します。

フォーマット検証:正規表現

検証の最初のレイヤーは構造的です。すべてのブロックチェーンがアドレスの特定のフォーマットを定義しており、シンプルなパターンチェックで適合しない文字列を即座に拒否できます。

Bitcoinアドレスフォーマット

Bitcoinには3つのアクティブなアドレスフォーマットがあり、それぞれ固有のプレフィックスがあります:

  • レガシー (P2PKH): 1で始まる、25-34文字。Base58Checkエンコーディング使用。
  • スクリプト (P2SH): 3で始まる、25-34文字。同じくBase58Check。
  • Native SegWit (Bech32): bc1q (v0) または bc1p (v1/Taproot)で始まる、42-62文字。Bech32またはBech32mエンコーディング使用。

EthereumおよびEVMアドレス

Ethereumアドレスはよりシンプルなフォーマットです:0xに続く40文字の16進数。すべてのEVM互換チェーン — PolygonArbitrumOptimismBaseBNB Chain — に同じフォーマットが適用されます。

Solanaアドレス

SolanaアドレスはBase58エンコードされたed25519公開鍵で、通常32-44文字の長さで、固定プレフィックスはありません。

XRPアドレス

XRPは独自のBase58バリアントを使用します。アドレスはrで始まり、25-35文字です。

TRONアドレス

TRONアドレスはTで始まり34文字で、Bitcoinのレガシーフォーマットに似たBase58Checkエンコーディングを使用します。

フォーマットチェックは高速で低コストです — フォームフィールドのすべてのキーストロークで実行できます。しかし、検証の最も弱いレイヤーです。フォーマットが有効なアドレスでも破損している可能性があります。それをキャッチするにはチェックサムが必要です。

チェックサム検証:タイプミスの検出

チェックサムはアドレス内に埋め込まれた小さな冗長データで、整合性を検証できます。文字が変更されるとチェックサムが一致せず、アドレスは拒否されるべきです。

Base58Check (Bitcoinレガシー、TRON、XRP)

Base58CheckエンコーディングはダブルSHA-256ハッシュから導出された4バイトチェックサムを付加します。ランダムエラーがこのチェックを通過する確率は約43億分の1(2^32)です。

Bech32とBech32m (Bitcoin SegWit)

Bech32はBCHコードに基づく異なるエラー検出スキームを使用します。すべての単一文字エラーとほとんどの一般的な複数文字エラーを検出できます。

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

Ethereumアドレスは16進数であるため、エンコーディング内に従来のチェックサムの余地がありません。EIP-55はこれを巧みに解決します:16進文字の大文字小文字をチェックサムとして使用します。小文字アドレスのKeccak-256ハッシュの対応するニブルに基づいて各文字が大文字または小文字になります。

Ethereum Address ValidatorがフォーマットとEIP-55の大文字小文字の両方をチェックする理由です。

Solana:組み込みチェックサムなし

Solanaアドレスは組み込みチェックサムのない生のBase58エンコード公開鍵です。これはタイプミスが誰のものでもない — あるいはさらに悪いことに他の誰かのものである — 有効に見えるアドレスを生成する可能性があることを意味します。Solana Address Validatorでフォーマットを確認できます。

クロスチェーン混同:よくあるミス

フォーマットとチェックサム検証はタイプミスから保護します。クロスチェーン検証は正しいアドレスを間違ったネットワークに送信することから保護します。

EVMチェーンの重複

最も危険なクロスチェーン混同はEVM互換ネットワークで発生します。EthereumアドレスはPolygon、Arbitrum、Optimism、Base、BNB Chainアドレスとしても有効です。フォーマットだけではEVMアドレスを区別する方法はありません。唯一の防御はウォレットソフトウェアでネットワーク選択を確認し、確認前にチェーンIDを再確認することです。EVMアドレスセキュリティの詳細はEVMアドレスセキュリティをご覧ください。

Bitcoin vs. Bitcoin Cash

レガシーBitcoinアドレス(1または3で始まる)はBitcoin Cashアドレスと構文的に同一です。Bitcoin Cashは混同を減らすためにCashAddrフォーマット(bitcoincash:q...で始まる)を導入しましたが、多くのサービスがまだレガシーフォーマットを表示しています。

TRON vs. Bitcoinレガシー

TRONアドレスはTで始まりBase58Checkを使用し、一部のBitcoinアドレスパターンと表面的に似ています。自動化された検証ツールはBase58Checkペイロード内のバージョンバイトをチェックして即座にこれをキャッチします。

SafeSeedアドレスバリデーター

SafeSeedは複数のブロックチェーン向けの無料クライアントサイドアドレスバリデーターを提供しています。各バリデーターはフォーマットチェックと該当する場合はチェックサム検証を完全にブラウザ内で実行します — データはサーバーに送信されません。

これらのツールはWeb Crypto APIを使用して完全にブラウザで動作するため、最大のセキュリティのためにエアギャップマシンで使用できます。オフライン環境でのアドレス生成ガイドはBitcoinシードをオフラインで生成Ethereumウォレットをオフラインで生成をご覧ください。

ワークフローへの検証の統合

検証の仕組みを知ることは半分に過ぎません。残りの半分は習慣にすることです。

すべてのトランザクションの前に

  1. 信頼できるソースからアドレスをコピーしてください。 メッセージ、メール、ウェブサイトではなく、ウォレットアプリケーションから直接使用してください。クリップボードマルウェアは実在し広く普及しています。
  2. バリデーターに貼り付けてください。 チェーン固有のバリデーターでアドレスを実行し、フォーマットとチェックサムを確認してください。2秒しかかからず、数千ドルを節約できます。
  3. 最初と最後の数文字を視覚的に確認してください。 自動検証後でも、貼り付けたアドレスの最初の6文字と最後の6文字を元のものと比較してください。
  4. まず少額テストトランザクションを送信してください。 大きな送金では、まず少額を送り受信を確認してから残りを送ってください。トランザクション手数料は保険です。

開発者向け

ウォレット、取引所、またはdAppを構築している場合、入力レイヤーでアドレス検証を必須にすべきです。ユーザー自身がアドレスを検証することに依存しないでください。

一般ユーザー向け

バリデーターツールをブックマークし、毎回使用してください。検証チェックに値しないほど小さい、またはルーティンなトランザクションはありません。かかる数秒は、たった1件の誤ったルーティングのトランザクションの取り消し不能な損失と比べれば何でもありません。

アドレス検証は華やかではありません。ヘッドラインを飾ったり普及を推進する種類の機能ではありません。しかし、暗号資産を保護するためにできる最も実用的な単一の行動です。すべてのアドレス、毎回 — 例外なし。