この記事の要約
トランザクションハッシュ(TxHash, Tx ID)は、ブロックチェーン上の取引を一意に識別する64文字程度の英数字の文字列です。送金や交換などの操作を行うと自動的に発行され、ブロックチェーンエクスプローラを使えば、誰でもそのハッシュから取引の状態と詳細を確認できます。資産が「届いていない」「失われた」と感じたときに、まず確認するのがこのハッシュです。
トランザクションハッシュとは何か?
トランザクションハッシュとは、ブロックチェーンに送信されたひとつの取引(トランザクション)を一意に識別するために割り当てられる英数字の識別子です。一般的には「0x」で始まり、その後に64文字の十六進数が続きます。たとえば 0x4f3ac9b1d8e271fa… のような形式で表示されます。
このハッシュは、取引の内容(送信元アドレス、送信先アドレス、金額、データ、タイムスタンプなど)を入力として、暗号学的ハッシュ関数で計算された結果です。Ethereumなど多くのチェーンでは、結果を出すためにKeccakやSHA-256系の関数が使われます。入力がほんの1ビットでも違えば、出力されるハッシュはまったく別の値になります。これが「一意の識別子」として機能する理由です。
送金やDeFiのスマートコントラクトとのやり取りを行ったとき、利用者のウォレットには必ずこのトランザクションハッシュが表示されます。これを保存しておくことで、後から取引の状態を確認することが可能になります。
トランザクションハッシュはどのように生成されるのか?
取引が作成され、ネットワークに送信される過程は、おおよそ次のような流れで進みます。
- 取引データの構築:送信元、送信先、金額、ガス料金、データ(コントラクト呼び出しなどの場合)、ノンスといった情報を組み合わせて、トランザクションデータが作成されます。
- 署名:送信元の秘密鍵を使ってトランザクションデータが署名されます。これにより、本人による正当な取引であることが暗号学的に証明されます。
- ハッシュ化:署名済みのトランザクションデータが、暗号学的ハッシュ関数を通じて固定長の文字列に変換されます。これがトランザクションハッシュです。
- ブロードキャスト:署名済みのトランザクションがネットワーク上のノードに送信されます。各ノードは内容を検証し、有効であればメンプール(未承認取引のプール)に保存します。
- ブロック取り込み:マイナーまたはバリデーターが、メンプールから取引を選んで新しいブロックに取り込みます。ブロックがチェーンに追加された時点で、トランザクションは「承認済み」となります。
取引が承認されると、エクスプローラやウォレットの履歴上、その取引のステータスが「Pending」から「Success」または「Failed」に変化します。ハッシュ自体は、取引データから計算されたものなので、承認の前後で変わることはありません。
トランザクションハッシュはどこで確認できるのか?
トランザクションハッシュの確認には「ブロックチェーンエクスプローラ」と呼ばれるWebサービスを使います。代表的なものに、Ethereumの取引を扱う Etherscan、Bitcoinを扱う Blockchain.com Explorer、Polygonを扱う Polygonscan などがあります。利用しているチェーンに対応したエクスプローラを選ぶことが前提です。
確認の手順は次のとおりです。
- ウォレットでハッシュを取得:取引履歴から該当のトランザクションを開き、「TxHash」または「トランザクションハッシュ」と表示されている値をコピーします。
- 対応するエクスプローラを開く:例:Ethereumであれば
etherscan.io。利用しているチェーンに対応したエクスプローラの公式URLを直接入力するのが最も安全です。 - 検索ボックスに貼り付ける:コピーしたハッシュをエクスプローラの検索欄に貼り付け、検索を実行します。
- 取引の詳細を確認:ステータス、ブロック番号、ガス使用量、送信元・送信先、金額、データなどが表示されます。
ハッシュから何がわかるのか?
エクスプローラでトランザクションハッシュを検索すると、その取引について次のような情報が表示されます。
| 項目 | 説明 |
|---|---|
| Status(ステータス) | Success / Failed / Pending のいずれか。失敗した取引もチェーン上には記録されます。 |
| Block(ブロック) | 取引が取り込まれたブロックの番号。クリックでそのブロックの詳細が見られます。 |
| Timestamp | 取引が承認された日時。ブロックの生成時刻に基づきます。 |
| From / To | 送信元と送信先のアドレス。コントラクトとのやり取りの場合は宛先がコントラクトアドレスになります。 |
| Value | 送金されたネイティブ通貨(ETHなど)の量。 |
| Transaction Fee | 取引にかかった手数料。ガス料金 × 使用ガス量で計算されます。 |
| Input Data | コントラクトの呼び出し内容。デコードすれば、どの関数がどんな引数で呼ばれたかが確認できます。 |
ハッシュ確認が必要になる典型的な場面は?
トランザクションハッシュの確認が必要になるのは、主に以下のような場面です。
- 送金後しばらく経っても、相手の口座に着金が反映されていないとき
- 取引所への入金が反映されず、サポートに問い合わせるとき(多くの場合、TxHashの提示が求められます)
- ガス不足などで取引が失敗したのか、ペンディングのままなのかを確認したいとき
- スマートコントラクトとのやり取りで、想定通りの結果になっているかを検証したいとき
フィッシングサイトに注意
「トランザクションハッシュを入力すれば送金がキャンセルできます」「資産を回復できます」と謳うサイトは、ほぼすべてフィッシング詐欺です。承認済みの取引はキャンセルできません。シードフレーズや秘密鍵の入力を求めるサイトには、絶対に応答しないでください。ウォレットへのログイン記事でも、フィッシング対策の基本を扱っています。