メインコンテンツまでスキップ

トランザクションのライフサイクル:クライアントからオンチェーン確認まで

ブロック、鍵、コンセンサスについて理解を深めたところで、すべてをまとめ、ウォレットから世界中の確認までトランザクションを追跡してみましょう。まるで荷物の旅を追うように。


1.5 トランザクションのライフサイクル:クライアントからオンチェーン確認まで

オンチェーントランザクションは、ユーザーのウォレットによる構築と署名から始まり、ネットワーク伝播、パッケージング、コンセンサス、そして確認のステップを経て、最終的にグローバル台帳の永続的な一部となります。

ウォレットで「送信」または「確認」をクリックするたびに、魅力的で複雑な旅が始まります。それは単なるクリックではなく、グローバルに分散されたコンピューターネットワークに送信される不可逆的なコマンドです。このプロセスを段階的に見ていきましょう。


1. 構築

すべてはあなたのウォレットクライアント(MetaMaskなど)から始まります。トランザクションを実行することを決定すると、ウォレットはローカルでデータパケットを「構築」します。

  • 主要フィールドには以下が含まれます:
    • from: あなたのアドレス。
    • to: 受取人のアドレス(またはスマートコントラクトアドレス)。
    • value: 送金される金額。
    • gasLimit: このトランザクションに対して支払う意思のある最大計算リソース。
    • gasPrice / maxFeePerGas: 計算単位あたりに支払う価格。
    • nonce: 0から始まり、各トランザクションごとに1ずつ増加するカウンターで、リプレイ攻撃を防ぐために使用されます。
  • ローカルチェック: ウォレットは、残高が金額と手数料をカバーできるか、ノンスが連続しているか、アドレス形式が正しいかなどの事前チェックを実行します。

2. 署名

構築されたトランザクションデータは、短い「フィンガープリント」にハッシュ化されます。次に、ウォレットはここに保存されている秘密鍵を使用して、このハッシュに対してデジタル署名を作成します。このステップは非常に重要です。これは小切手に署名するようなもので、「この操作を承認します」という暗号学的証明を世界に提供します。署名されたトランザクションデータパケットはこれで完成し、送信準備が整いました。

3. ノードへのブロードキャスト

署名されたトランザクションは、ウォレットが**RPC (Remote Procedure Call)と呼ばれるインターフェースを介して接続されているブロックチェーンノードに送信されます。このノードは、ブロックチェーン世界の「郵便局の窓口」として機能します。トランザクションを受信すると、基本的な検証(署名が有効であるかどうかの確認など)を実行し、その後「メムプール」**と呼ばれる場所に配置します。メムプールは保留中のトランザクションの「待合室」であり、すべてのトランザクションはpending(保留中)状態にあります。

4. P2P伝播

メムプールに入ると、トランザクションは単一のノードにとどまりません。ノードはP2P(ピアツーピア)ネットワークを介して、接続されている隣接ノードにこのトランザクションを「ゴシップ」します。これらの隣接ノードは、さらにその隣接ノードに伝達します。このプロセスはウイルスのように広がり、数秒以内にあなたのトランザクションはネットワーク上の何千ものアクティブなノードに知られるようになります。すべてのマイナー/バリデーターは、メムプール内でパッケージ化されるのを待っているこのトランザクションを見ることができます。

5. ブロックへのパッケージング

ここで、マイナー(PoW)またはバリデーター(PoS)の出番です。彼らはネットワークの「会計士」であり、メムプールからトランザクションを選択し、新しいブロックにパッケージングする責任があります。

  • 選択戦略: 彼らは通常、より高い手数料を提示するトランザクションを優先します。なぜなら、これらの手数料が彼らの直接的な報酬となるからです。
  • パッケージングプロセス: 一連のトランザクションを選択した後、バリデーターはそれらのマークルツリーのルート(merkle_root)を計算し、それを前のブロックハッシュなどのフィールドと組み合わせてブロックヘッダーを形成し、その後コンセンサスプロセス(PoWの計算能力競争またはPoSのブロック提案)を開始します。

6. 新しいブロックのブロードキャスト

マイナー/バリデーターが新しいブロックの作成に成功すると、すぐにそれをネットワーク全体にブロードキャストします。この新しいブロックを受信した他のノードは厳格な検証を実行します。ブロックヘッダーハッシュは難易度要件を満たしているか?ブロック内のすべてのトランザクション署名は有効か?などです。検証が完了すると、ノードはこの新しいブロックをローカルで維持しているブロックチェーンの末尾に追加します。この時点で、あなたのトランザクションは正式に「オンチェーン」となります。

  • フォーク処理: 時折、2つのバリデーターがほぼ同時に新しいブロックをブロードキャストし、チェーンに一時的な「フォーク」を引き起こすことがあります。コンセンサスルールにより、最終的には1つのチェーンのみが存続することが保証されており、通常は最長チェーン(PoW)または最も重いチェーン(PoS)が、正当な履歴としてネットワーク全体に受け入れられます。

7. 確認とファイナリティ

トランザクションはオンチェーンにありますが、旅はまだ完全に終わっていません。

  • 確認数: あなたのトランザクションを含むブロックの後に追加される新しいブロックごとに、あなたのトランザクションは1つの「確認」を得ます。確認数が増えるほど、トランザクションがロールバックされる(フォークにより破棄される)可能性は指数関数的に低くなります。ビットコインネットワークでは、通常6回の確認(約1時間)後にトランザクションは安全と見なされます。取引所のような機関は、資産の重要性に基づいて異なる確認要件を設定します。
  • ファイナリティ: 多くのPoSチェーンは、より強力な保証を導入しています。ブロックが特定のコンセンサス投票(Casper FFGなど)を経ると、「ファイナライズされた」状態を達成できます。これは、ブロックがプロトコル自体によってロックされ、理論上は絶対に不可逆的または再編成不可能であることを意味し、複数の確認よりも強力な確実性を提供します。

トランザクションステータスの概要

ステータスラベル英語の説明説明
構築済みcreatedローカルウォレット内でのみ完了しており、まだ送信されていません。
署名済みsignedトランザクションが署名され、ブロードキャスト準備ができていますが、まだネットワークには送信されていません。
保留中pendingメムプールに入り、ネットワーク全体に伝播中で、パッケージ化されるのを待っています。
パッケージ済みin blockトランザクションがブロックに含まれ、ブロック高が確定しました。
確認済みconfirmedトランザクションのブロックの後に複数の新しいブロックが追加され、フォークのリスクが非常に低く、実質的に不可逆と見なされます。
ファイナライズ済みfinalizedこの機能をサポートするPoSチェーンでは、ブロックはプロトコルによってロックされ、暗号学的に絶対的な不可逆性を達成しています。

🤔 体験演習

  1. Etherscan.ioを開き、ホームページで最近のpending(保留中)トランザクションを見つけて、そのトランザクションハッシュ(Txn Hash)をクリックして追跡します。pendingから最終的に確認済み(青い「Success」ラベルとブロック番号が表示される)に移行するまでにかかる時間を観察してください。このトランザクションに支払われたGas Priceをメモしてください。
  2. MetaMaskウォレットで、設定 -> 高度な設定に進み、「高度なガス制御」スイッチをオンにします。次回テストネットトランザクションを実行する際に、Max fee per gas(ガスあたりの最大手数料)を手動で上下に調整して、入札レベルがトランザクションのパッケージング速度に与える大きな影響を個人的に体験してみてください。

📚 参考文献

  • 「イーサリアムトランザクションのライフサイクル」 - イーサリアム財団の公式ドキュメントで、トランザクションのライフサイクルに関する権威ある説明です。
  • 「イーサリアムメムプールへの詳細な考察」 - 一部の専門的な分析記事(BlocknativeやBitMEX Researchなど)は、メムプールの動作メカニズムとMEV(マイナー抽出可能価値)について深く理解するのに役立ちます。
  • 「Mastering Ethereum」第6章:トランザクション - イーサリアムのトランザクション構造とライフサイクルに関する古典的な解説です。

これで、トランザクションが存在しない状態からグローバル台帳の永遠の一部となるまでの過程を完全に理解できました。トランザクションを構築する際、私たちは繰り返し重要な要素であるガスと手数料について言及しました。次のセクション(1.6)では、**「ガスと手数料:オンチェーンリソースの価格メカニズム」**を具体的に分析し、ブロックチェーン上でなぜあらゆるものに料金を支払う必要があるのか、そしてより賢く支払う方法を完全に理解するのに役立ちます。