暗号資産における実行レイヤーとは?
実行レイヤーとは、トランザクションを処理し、スマートコントラクトのコードを実行し、手数料を計算して、ネットワークの現在の状態を更新するブロックチェーンシステムの構成要素です。ユーザーが暗号資産のトランザクションに署名して送信した後、何が起きるかを決定します。たとえば、実行レイヤーはアカウント間で暗号資産を送金したり、スマートコントラクトを通じてトークンをスワップしたり、デジタル資産を作成したり、レンディングポジションを更新したり、無効なトランザクションを拒否したりします。Ethereumでは、実行レイヤーはトランザクションを処理しEthereumの状態を管理する実行クライアントのネットワークとして公式に説明されています。詳細はEthereum用語集をご覧ください。
実行レイヤーは固定されたプロトコルルールに従うため、同じトランザクション一式から、正直なノードはすべて同じ結果を計算します。異なるノードが異なるアカウント残高やスマートコントラクトの結果を出すようではブロックチェーンは機能しないため、この一貫性は不可欠です。実行レイヤーはコンセンサスレイヤーと密接に関係していますが、それぞれ異なる役割を担います。実行レイヤーはトランザクションと状態変更が有効かどうかを判断し、コンセンサスレイヤーは有効なブロックのうち、どれを正式なブロックチェーンの履歴に含めるかについてネットワークが合意できるようにします。実行レイヤーの役割
実行レイヤーは、トランザクションを検証済みのブロックチェーン状態変更に変換するために必要な計算を行います。各トランザクションを適用する前に、プロトコルのルールに従っているか確認します。この処理には、トランザクション署名の検証、送信者の残高確認、アカウントのnonce確認、ガス使用量の計算、スマートコントラクト命令の実行が含まれます。実行レイヤーは、トランザクションによって生じる新しい残高、コントラクトのストレージ値、イベントログ、トランザクションレシートも計算します。トランザクションが無効であれば、実行レイヤーはこれを拒否します。スマートコントラクトの実行に失敗すると、要求された状態変更は通常取り消されますが、送信者はすでに行われた計算の費用を支払う場合があります。1つのトランザクションが次のトランザクションの結果を変えることがあるため、実行レイヤーは決められた順序で処理します。たとえば、同じトークンを別のトランザクションで使用する前に、トークン送金によって送信者の残高を更新する必要があります。ブロック内のすべてのトランザクションが処理されると、実行レイヤーはそのブロックによって生じた最終状態を計算します。他のノードも同じ計算を繰り返し、ブロック生成者がプロトコルルールに従ったか確認できます。実行レイヤーとブロックチェーンの状態
ブロックチェーンの状態とは、アカウント、残高、スマートコントラクト、保存されたコントラクトデータの現在の記録です。実行レイヤーは、ブロックチェーンをある有効な状態から次の有効な状態へ移行させます。この処理は一般に状態遷移と呼ばれます。状態遷移は、直前のブロックチェーン状態と有効なトランザクションから始まります。次に実行ルールを適用し、新しい状態を生成します。単純な暗号資産送金では、実行レイヤーが送信者の残高を減らし、受信者の残高を増やします。スマートコントラクトのトランザクションでは、多数のストレージ値を更新し、複数の他のコントラクトとやり取りする場合があります。Ethereumの状態には、秘密鍵で管理される外部所有アカウントと、コードで管理されるコントラクトアカウントが含まれます。重要なアカウント情報には、残高、nonce、コントラクトコード、コントラクトストレージなどがあります。Ethereumは、公式のMerkle Patricia Trieのガイドで説明されている状態、トランザクション、レシートのルートなど、認証可能なデータ構造を用いて実行レイヤーの重要情報を管理します。
これらの暗号学的ルートにより、ノードは実行結果やトランザクション記録が変更されたかどうかを検出できます。実行レイヤーとEthereum Virtual Machine
Ethereum Virtual Machineは、Ethereum上でスマートコントラクトの命令を実行する計算環境です。一般にEVMと呼ばれています。EVMはEthereumの実行レイヤーの主要な構成要素ですが、EVMと実行レイヤーはまったく同じものではありません。EVMはコントラクトコードを実行します。一方、より広い実行レイヤーは、トランザクション、アカウント状態、手数料、レシート、ブロック、他のノード構成要素との通信も管理します。実行クライアントを使うEthereumノードはすべて、同じEVMルールに従います。この決定論的な設計により、同じ有効なトランザクションは、正直なノードすべてで同じ結果を生みます。公式のEthereum Virtual Machineのドキュメントでは、EVMはEthereumノード間で一貫してコードを実行する分散型の仮想環境として説明されています。
スマートコントラクトコードは、EVMによる実行前にオペコードと呼ばれる低水準の命令へ変換されます。各オペコードは、数値の加算、ストレージの読み込みや書き込み、アドレスの確認、他のコントラクトの呼び出しなど、特定の処理を行います。処理ごとに必要な計算量は異なります。実行レイヤーは、この計算量をガスで測定します。実行レイヤーとガス
ガスは、Ethereumのトランザクション実行に必要な計算作業を測定する単位です。実行処理ごとにガスコストが設定されています。単純な暗号資産の送金は、複雑なスマートコントラクトとのやり取りより通常、消費するガスが少なくなります。たとえば、複数のコントラクトを使い、ストレージを更新して、多くの計算を行うトランザクションは、通常の送金より多くのガスを必要とします。ガスは、無制限の計算を要求するトランザクションから実行レイヤーを保護します。リソース上限がなければ、悪意のあるコードや適切に書かれていないコードによって、ノードが無期限に処理を続ける可能性があります。送信者はガスリミットを設定し、トランザクションで使用できるガスの上限を定めます。実行に必要なガスが上限を超えると、トランザクションはガス不足となり、意図した状態変更は取り消されます。送信者は失敗までに完了した処理の費用を支払う場合があります。公式のEthereumのガスと手数料に関するドキュメントでは、ガスが計算量を測り、限られたネットワークリソースの割り当てに役立つ仕組みを説明しています。
実行レイヤーのブロックスペースを多くのユーザーが奪い合うと、ガス代が上昇することがあります。手数料を高くすればトランザクションがブロックに取り込まれやすくなる場合がありますが、基盤となるスマートコントラクトのルールは変わりません。トランザクションが実行レイヤーに届くまで
暗号資産のトランザクションは通常、ウォレットまたは分散型アプリケーション内で作成されます。ユーザーが操作を選択して詳細を確認し、秘密鍵でトランザクションに署名します。署名によって、アカウントの管理者がトランザクションを承認したことが証明されます。署名済みトランザクションは、アプリケーション・プログラミング・インターフェースまたはピアツーピア接続を通じてブロックチェーンノードに送られます。実行クライアントは通常、ウォレット、アプリケーション、開発者、インフラサービスがネットワークとの通信に使うJSON-RPCメソッドを提供します。公式のEthereum Execution API仕様では、JSON-RPCは実行クライアントと後続ツールの標準インターフェースとして説明されています。
有効な保留中トランザクションは、一般にmempoolと呼ばれる実行クライアントのトランザクションプールに入ることがあります。ブロック生成者は、利用可能なプールからトランザクションを選び、実行ペイロードに含めます。トランザクションは記載された順序で実行されます。実行レイヤーは、更新された状態情報、ガス計算、ログ、レシートなどの結果を生成します。他のノードも独立してトランザクションを実行し、提案された結果を検証します。ブロックがコンセンサスによる承認とファイナリティを重ねるほど、トランザクションを覆すことは難しくなります。実行レイヤーが処理するトランザクションの種類
実行レイヤーは複数種類のブロックチェーントランザクションを処理できます。価値移転では、ネットワークのネイティブ暗号資産をあるアカウントから別のアカウントへ送ります。コントラクトデプロイメントトランザクションは、新しいスマートコントラクトを作成し、そのコードをブロックチェーンアドレスに保存します。コントラクトの呼び出しトランザクションは、既存のスマートコントラクトの関数を呼び出します。トークン送金では通常、ブロックチェーンのネイティブ資産を直接移動するのではなく、トークンコントラクトの関数を呼び出します。DeFiトランザクションでは、トークン取引、担保提供、資産借入、債務返済、流動性の引き出しなどを行う場合があります。ガバナンストランザクションでは、スマートコントラクトを通じて投票したり提案を提出したりすることがあります。認証トランザクションでは、対応するプロトコルルールの下で、外部所有アカウントにスマートアカウントの機能を一時的に追加する場合があります。最新のEthereumトランザクションのドキュメントでは、手数料市場型トランザクション、blobトランザクション、新しい認証リスト型トランザクションなど、複数の形式が説明されています。
トランザクション形式は進化する可能性がありますが、受け入れられるトランザクションはすべて、実行レイヤーの検証ルールと状態遷移ルールを満たす必要があります。実行レイヤーとスマートコントラクト
スマートコントラクトとは、ブロックチェーンアドレスに保存され、ブロックチェーンのルールに従って実行されるプログラムです。スマートコントラクトによって、実行レイヤーはプログラム可能になります。プログラム可能な実行レイヤーは、基本的な暗号資産送金だけでなく、トークン、レンディングプロトコル、分散型取引、デジタルコレクティブル、ブロックチェーンゲーム、保険システム、ガバナンスツールにも対応できます。ユーザーは、必要なデータを含むトランザクションを送信してスマートコントラクトを利用します。実行レイヤーはトランザクションを読み取り、要求されたコントラクト関数を実行します。コントラクトは既存データの読み込み、計算、ストレージの更新、資産移転、イベントログの作成、別のコントラクトの呼び出しを行う場合があります。公式のEthereumスマートコントラクトの入門では、コントラクトコードのデプロイや利用にはトランザクションとガスが必要と説明されています。
スマートコントラクト同士は1つのトランザクション内で連携でき、この性質は一般にコンポーザビリティと呼ばれます。コンポーザビリティにより、開発者は既存のオンチェーン機能を組み合わせて、より複雑な暗号資産アプリケーションを構築できます。ただし、あるコントラクトの問題が連携先の別のコントラクトに影響する可能性があるため、実行リスクも高まる場合があります。実行レイヤーとコンセンサスレイヤーの違い
実行レイヤーとコンセンサスレイヤーは、Ethereumの別々の構成要素ですが、相互に連携しています。実行レイヤーはトランザクションを処理し、状態変更を計算します。コンセンサスレイヤーは、バリデーター、ブロック提案、アテステーション、フォーク選択、ファイナリティを調整します。簡単に言えば、実行レイヤーはトランザクションの結果が有効かを問い、コンセンサスレイヤーはどの有効なブロックチェーン履歴をネットワークが採用するかを決めます。EthereumがProof of Stakeへ移行した後、完全なノードは実行クライアントとコンセンサスクライアントの両方を使用するようになりました。公式のEthereumノードの実行に関するページでは、The Merge後は両方のクライアントタイプが必要と説明されています。
2つのクライアントは通信し、実行結果とProof of Stakeのコンセンサス上の判断を連携させます。コンセンサスクライアントはコンセンサス情報を受信して検証します。実行クライアントはトランザクションを検証し、スマートコントラクトを実行し、実行状態を管理します。公式のThe Mergeの解説では、旧EthereumのProof of Workチェーンを実行レイヤー、Proof of StakeのBeacon Chainをコンセンサスレイヤーとして説明しています。
こうした役割の分離により、開発者は実行とコンセンサスを同一の機能として扱わず、それぞれの構成要素を改善できます。実行とコンセンサスの連携方法
有効なブロックチェーンブロックには、正しい実行とコンセンサスルールに基づく承認の両方が必要です。新しいブロックが提案されると、含まれるトランザクションから有効な実行結果が生成されなければなりません。実行クライアントはトランザクション署名、残高、nonce、ガスリミット、スマートコントラクトの動作、結果の状態を確認します。コンセンサスクライアントは、提案者、アテステーション、Proof of Stakeのルール、チェーンの採用履歴に関する情報を確認します。バリデーターは、ブロック生成者が提供した実行結果をそのまま信用するわけではありません。参加ノードが提案された状態変更を独立して検証できるよう、トランザクションは再実行されます。公式のEthereum Proof of Stakeガイドでは、提案ブロック内のトランザクションを再実行し、状態変更が有効か確認すると説明しています。
実行結果が無効であれば、稼働中のバリデーターが提案したブロックでも、正直なノードは拒否します。実行が有効でも、コンセンサスルールに従ってブロックが選択されなければ、正規チェーンの一部にならない場合があります。したがって、安全で利用可能なブロックチェーンには両方のレイヤーが必要です。実行クライアントと実行レイヤー
実行クライアントとは、ブロックチェーンの実行ルールを実装したソフトウェアプログラムです。実行レイヤーとは、参加するすべての実行クライアントによって形成される、より広範なネットワークとシステムです。ノード運営者は、トランザクションの処理、状態の管理、ピアとの通信、アプリケーションインターフェースの提供のために実行クライアントをインストールします。異なるクライアント実装は、異なるプログラミング言語や内部設計を用いながら、同じプロトコル仕様に従うことができます。複数のクライアント実装があると、ネットワーク全体が単一のソフトウェア実装に依存しにくくなり、耐障害性が高まる場合があります。ただし、互換性のある実行クライアントはすべて、有効なトランザクションの結果に合意する必要があります。状態遷移の動作に不一致があると、ノードごとに異なるブロックチェーン状態を計算する可能性があります。Ethereum Execution Layer Specificationは、実行クライアントの動作やネットワークアップグレードに関する参照仕様を提供します。
実行クライアントの開発者は、仕様や大規模なテストを活用し、結果の不一致リスクを抑えています。通常のユーザーはトランザクションを送信するために実行クライアントを動かす必要はありませんが、ノードを運営すると、独立した検証を強化し、ブロックチェーンへのアクセスをより主体的に管理できます。実行レイヤーとアプリケーションレイヤー
アプリケーションレイヤーには、ユーザーが操作するウォレット、インターフェース、分散型アプリケーションが含まれます。実行レイヤーは、これらのアプリケーションが作成したトランザクションを処理する基盤のブロックチェーンシステムです。ウォレットはトランザクションを作成して署名できますが、最終的なブロックチェーン状態を独自に決めるわけではありません。分散型アプリケーションはトークンスワップの画面を表示できますが、スワップを実行するスマートコントラクトは実行レイヤーが処理します。アプリケーションレイヤーはブロックチェーンの利用を容易にし、実行レイヤーはプロトコルルールを適用します。アプリケーションのインターフェースに問題があっても、実行レイヤーが失敗したとは限りません。たとえば、ウェブサイトが誤った情報を表示していても、基盤となるスマートコントラクトとブロックチェーン状態は正しい場合があります。反対に、インターフェースは正常に動作していても、スマートコントラクトに危険なロジックが含まれていることがあります。暗号資産アプリケーションを評価するときは、インターフェース、スマートコントラクト、ブロックチェーン実行それぞれのリスクを分けて考えてください。実行レイヤーと決済レイヤー
実行レイヤーはトランザクションを処理し、その結果を計算します。決済レイヤーは、最終的な所有権の確認や紛争解決のための信頼できる基盤を提供します。Layer 1ブロックチェーンでは、実行と決済は別の概念ですが、同じネットワーク全体の中で行われる場合があります。モジュラー型ブロックチェーン設計では、実行はあるネットワークで行い、別のネットワークが決済またはセキュリティを提供することがあります。たとえば、ロールアップはEthereumの主要な実行環境の外でトランザクションを実行し、その後、情報や証明をEthereumに送信できます。ロールアップの設計に従って、Ethereumはロールアップの決済基盤として機能します。すべてのユーザー操作をLayer 1環境で直接実行する必要がなくなるため、この分離によって取引処理能力を高められる場合があります。ただし、ユーザーは二次実行システムがデータをどのように送信し、結果を証明し、出金を処理し、障害に対応するかを理解する必要があります。実行はシステムで何が変化したかを示し、決済はシステムのセキュリティモデルに基づいて、その変化をいつ最終的なものとして扱えるかを定めます。実行レイヤーとデータ可用性レイヤー
データ可用性とは、ブロックチェーンの活動を検証するために必要な情報を、ネットワーク参加者が入手できるかどうかを指します。実行とデータ可用性は異なる課題に対応します。実行レイヤーはトランザクションルールを適用し、状態変更を計算します。データ可用性レイヤーは、検証に必要なトランザクションやブロックのデータを取得できるようにします。実行が正しいと主張されても、重要なトランザクションデータが隠されていれば、システムを独立して検証できません。モジュラー型ブロックチェーン設計の中には、実行、コンセンサス、決済、データ可用性を別の構成要素に分けるものがあります。Ethereumは、ロールアップが一時データをより効率的に公開できるよう、専用のblobトランザクションに対応しています。公式のEIP-4844仕様は、ロールアップのスケーラブルなデータ可用性を支援するblob付きトランザクションを導入しました。
Blobデータは、通常のスマートコントラクトのcalldataと同じ方法でEVMに利用されるわけではありません。実行がロールアップ環境で行われる間、ロールアップがデータをより低コストで利用可能にする方法を提供します。Layer 2ネットワークの実行レイヤー
Layer 2ネットワークは、別の実行環境を提供しながら、セキュリティや決済の一部をLayer 1ブロックチェーンに依存する場合があります。これにより、メインのLayer 1実行環境の外で多数のトランザクションを処理できます。その後、Layer 2システムは設計に応じて、トランザクションデータ、状態コミットメント、妥当性証明を公開します。Optimistic rollupでは一般に、無効な状態の主張に異議を申し立てられるチャレンジ期間が設けられています。Zero-knowledge rollupは、トランザクション群が所定のルールに従ったことを示す暗号学的な妥当性証明を使用します。公式のEthereum Layer 2の概要では、二次ネットワークがEthereumを決済レイヤーとして利用しながら処理能力を高める仕組みを説明しています。
Layer 2での実行は、トランザクションコストを抑え、処理能力を高める場合があります。ただし、各Layer 2システムでシーケンサーのルール、出金手続き、スマートコントラクトリスク、証明システム、アップグレード管理が異なる場合があります。すべての実行レイヤーが同じセキュリティ保証を備えていると考えてはいけません。実行場所は、システム全体の信頼モデルを構成する要素の1つにすぎません。実行レイヤーはLayer 1と同じですか?
実行レイヤーは、必ずしもLayer 1ブロックチェーンと同じではありません。Layer 1は、独自のプロトコルとセキュリティシステムを備える基盤ブロックチェーンネットワークを指します。実行レイヤーは、トランザクションを処理して状態変更を計算する機能を指します。Layer 1ブロックチェーンには、実行レイヤー、コンセンサスメカニズム、ネットワークルール、データ保存、決済機能が含まれる場合があります。Layer 2ネットワークも独自の実行レイヤーを持ちながら、決済やデータ可用性をLayer 1ネットワークに依存する場合があります。これらの用語が答える問いは異なります。Layer 1とLayer 2は、ブロックチェーンアーキテクチャの中でシステムがどこに位置するかを表します。実行レイヤーは、システムのどの部分が計算と状態遷移を担うかを表します。実行レイヤーとブロック生成
ブロック生成では、トランザクションの選択と実行・コンセンサスの役割が組み合わされます。ブロック生成者や関連するビルダーは、保留中のトランザクションを選び、順序を付けて実行ペイロードに含めます。スマートコントラクトの結果は、どのトランザクションを先に実行するかで変わることがあるため、順序が重要です。実行クライアントは、選択されたトランザクションがブロックのリソース制限内に収まるかを確認します。続いて、結果の状態、ガス使用量、レシート、その他の実行情報を計算します。コンセンサスシステムは、提案されたブロックの配布、検証、投票、採用チェーンへの追加を調整します。他のノードは生成者の計算を信用するのではなく、実行を再現します。こうした独立した検証は、ブロックチェーンの実行レイヤーと従来型の中央集権型データベースの大きな違いの1つです。中央集権型データベースでは、単一の運営者が正式な状態を直接管理する場合があります。ブロックチェーンでは、多数のノードが、提案された状態遷移が共有ルールに従っているかを検証できます。実行レイヤーとトランザクションの順序
トランザクションの順序とは、ブロック内でトランザクションを実行する順番です。この順番は、トークン価格、強制決済の結果、オークションの結果、スマートコントラクトの状態に影響する場合があります。たとえば、2人のユーザーがほぼ同時に同じ流動性プールで取引しようとする場合があります。先に実行されたトランザクションがプール残高を変え、後のトランザクションで得られる価格に影響します。トランザクションを選択、組み込み、除外、順序付けすることで生じる経済的価値は、一般にMaximal Extractable Value(MEV)と呼ばれます。公式のEthereumのMEVに関するドキュメントでは、ブロック構築やトランザクションの順序が、通常のブロック報酬や手数料を超える価値を生む仕組みを説明しています。
トランザクションの順序付けには市場効率を高めるものもありますが、ユーザーに不利な結果をもたらすものもあります。たとえばサンドイッチ攻撃は、ユーザーの分散型スワップの前後で取引を行い、価格インパクトから利益を得ようとします。スリッページ上限の確認、流動性の浅い市場の回避、想定トランザクション出力の確認によって、一部の執行リスクを抑えられる場合があります。実行レイヤーのスケーラビリティ
実行レイヤーのスケーラビリティとは、検証の安全性や実用性を損なわず、より多くのトランザクションを処理する能力です。ブロックチェーンは、ソフトウェア効率の改善、リソース上限の変更、トランザクションの並列処理、Layer 2システムへの活動移行によって、実行能力を高められます。どのスケーリング方法にもトレードオフがあります。大きなブロックはより多くの処理を可能にしますが、ノードに必要な帯域幅、ストレージ、計算能力が増加する場合があります。実行が複雑になると、検証ノードの運営が難しくなることがあります。Layer 2での実行はLayer 1への直接的な需要を減らせますが、ブリッジ、シーケンサー、証明システム、追加のスマートコントラクトが導入されます。トランザクションが同じ状態に依存しない場合、並列実行は性能向上に役立ちますが、競合するトランザクションには慎重な順序付けが必要です。持続可能な実行レイヤーには、処理能力、分散化、セキュリティ、予測可能な検証、妥当なハードウェア要件のバランスが求められます。実行レイヤーのセキュリティ
実行レイヤーのセキュリティは、正しいプロトコルルール、信頼できるクライアントソフトウェア、決定論的な計算、独立した検証に依存します。実行クライアントに重大なバグがあると、ノード間で有効な状態変更について意見が分かれる可能性があります。複数のクライアント実装、テスト、監査、形式仕様、協調的なネットワークアップグレードによって、このリスクを抑えます。実行レイヤーが安全だからといって、すべてのスマートコントラクトが安全になるわけではありません。スマートコントラクトは有効な実行ルールに従っていても、コーディングミス、危険な権限、破綻した経済モデル、悪用可能な設計を含むことがあります。実行レイヤーは、望ましくない結果を生むコードであっても、有効なコントラクトコードをそのまま実行します。そのため、ユーザーは基盤となる実行環境と個別アプリケーションの両方のセキュリティを評価する必要があります。その他のリスクには、サービス妨害攻撃、状態データの増大、手数料の急騰、悪意あるトランザクション順序付け、オラクル操作、ブリッジの脆弱性、安全でないコントラクトアップグレードがあります。安全な基盤レイヤーはインフラリスクを減らしますが、アプリケーションやユーザーのあらゆるミスをなくすことはできません。実行に失敗するとどうなるか
トランザクションがプロトコルやスマートコントラクトの要件を満たさない場合、実行に失敗することがあります。nonceの誤り、資金不足、署名の無効、期限切れ条件、ガス不足、コントラクト呼び出しのrevertなどが原因となります。無効なトランザクションは、ブロックに含まれる前に拒否される場合があります。ブロックに取り込まれたトランザクションでも、ガス代が支払われる一方でrevertすることがあります。revertが起きると通常、失敗した呼び出し中の状態変更は取り消されます。ブロックチェーンのレシートには、実行が成功したか失敗したかが記録されます。トランザクションの失敗は、実行レイヤー全体が停止したことを意味するわけではありません。通常は、特定のトランザクションがその時点の状態やコントラクトルールの下で完了できなかったことを意味します。ウォレットやアプリケーションは送信前にトランザクションをシミュレーションし、ガス使用量を見積もったり、失敗の可能性を特定したりすることがあります。シミュレーションはミスの削減に役立ちますが、実行までにブロックチェーンの状態が変わる可能性があるため、成功を保証するものではありません。承認前に実行結果が変わる理由
ウォレットは、トランザクションがブロックに含まれる前に、結果の推定値を表示することがあります。その推定値は、シミュレーション時点で利用可能なブロックチェーン状態に基づきます。他のトランザクションが、ユーザーのトランザクションの実行前に価格、残高、流動性、コントラクトストレージ、借入条件を変えることがあります。これは分散型スワップ、強制決済、オークション、数量限定のトークンセールで特に重要です。そのため、トランザクションの結果が変わったり、revertしたり、ユーザー設定のスリッページ上限を超えたりする場合があります。実行レイヤーが処理するのはインターフェースに表示された以前の状態ではなく、ブロック内での順番に応じた実際の状態です。署名前に、最低受取額、期限、ガス設定、コントラクト権限を確認してください。表示された見積もりは、実行が行われ、トランザクションが承認されるまでは確定しません。暗号資産ユーザーに実行レイヤーが重要な理由
実行レイヤーは、暗号資産ユーザーが行うほぼすべてのオンチェーン操作に影響します。送金が成功するか、ガスをどれだけ消費するか、スマートコントラクトが何を変更するか、どのトランザクション結果がブロックチェーン状態に含まれるかを決定します。アプリケーションの速度、トランザクションコスト、ネットワーク容量、開発者が構築できるプログラムの種類にも影響します。実行レイヤーが混雑すると、手数料が上昇し、待ち時間が長くなる場合があります。効率的な実行レイヤーは、より多くの処理を低コストで支えられる場合があります。プログラム可能な実行レイヤーによって分散型アプリケーションが実現します。安全な実行レイヤーがあれば、ノードは残高やコントラクト状態が正しく更新されたかを検証できます。実行の仕組みを理解すると、トランザクションが失敗した理由、スワップでスリッページが生じた理由、ガス代が変化した理由、アプリケーションがLayer 2ネットワークを使う理由を把握しやすくなります。暗号資産トレーダーに実行レイヤーが重要な理由
暗号資産トレーダーは、資産を移動したりオンチェーン市場を利用したりする際に実行レイヤーと関わります。実行環境は、分散型取引の最終コストに影響する場合があります。ガス代が高いと、小口取引が採算に合わなくなることがあります。流動性が低いと、コントラクト実行時に大きな価格インパクトが生じる場合があります。トランザクションの順序によって、スワップがMEV戦略の影響を受ける可能性があります。ネットワーク混雑は、入金、出金、ブリッジ送金、担保調整を遅らせることがあります。トランザクションが失敗しても手数料が発生し、取引機会を逃す場合があります。資金をネットワーク間で移動したり分散型プロトコルを利用したりする前に、実行レイヤーのコストを考慮してください。送信先ネットワーク、トークンコントラクト、ガス資産、ブリッジ手順、想定承認時間も確認してください。市場予測が正しくても、執行コストや技術的リスクを無視すると、取引結果が悪化する可能性があります。実行レイヤーの評価方法
まず確認すべき要素はセキュリティです。信頼できる実行レイヤーには、明確なプロトコルルール、継続的な開発、独立した検証、状態遷移を正しく処理してきた実績が求められます。2つ目は分散化です。独立した参加者がどれだけノードを運営し、トランザクションを検証し、ブロック生成に参加できるかを検討してください。3つ目は性能です。重要な指標には、処理能力、承認時間、ファイナリティまでの時間、需要が集中した際の性能があります。4つ目はコストです。通常の手数料、手数料の変動、失敗したトランザクションのコスト、実行手数料の支払いに必要なネイティブ資産を確認してください。5つ目はプログラム可能性です。開発者は、対応するプログラミング言語、仮想マシンの設計、ツール、デバッグ、コントラクト互換性を評価する場合があります。6つ目は相互運用性です。実行レイヤーと他のネットワークの間で、資産やメッセージをどのように移動するかを確認してください。7つ目はアップグレードリスクです。ガバナンス管理、緊急時の権限、ソフトウェアアップグレード、コントラクト更新の権限が、システムの信頼上の前提に影響することがあります。実行レイヤーに関するよくある誤解
よくある誤解の1つは、実行レイヤーとコンセンサスレイヤーが同じ役割を担うというものです。実行レイヤーは状態遷移を検証し、コンセンサスレイヤーは採用するブロックチェーン履歴について合意を調整します。もう1つの誤解は、EVMが実行レイヤー全体を表すというものです。EVMは計算エンジンですが、実行クライアントはトランザクション、状態、レシート、ネットワーク、アプリケーションインターフェースも管理します。3つ目の誤解は、すべての実行レイヤーがLayer 1ブロックチェーンだというものです。Layer 2システムも、決済やデータ可用性を別のブロックチェーンに依存しながら実行を担う場合があります。4つ目の誤解は、ブロックチェーン上で正常に実行されたなら、トランザクションも金融面で安全だというものです。実行レイヤーは、有害なトークン承認、不適切な取引、悪意あるコントラクトとのやり取りも正しく処理する可能性があります。5つ目の誤解は、送信したトランザクションが表示された結果で必ず実行されるというものです。状態変更、混雑、トランザクションの順序、ガスリミット、スリッページルールによって、実行結果が変わったり、実行されなかったりすることがあります。6つ目の誤解は、実行速度だけでブロックチェーンの安全性や分散性が証明されるというものです。性能はブロックチェーン設計の一要素にすぎず、検証要件や信頼上の前提と併せて検討する必要があります。実行レイヤーでのトランザクション例
あるユーザーが、分散型流動性プールを通じて暗号資産トークンを別のトークンにスワップするとします。ウォレットは、コントラクトアドレス、スワップ指示、トークン数量、期限、スリッページ上限、ガス設定を含むトランザクションを作成します。ユーザーは秘密鍵でトランザクションに署名します。実行クライアントは署名済みトランザクションを受信し、基本的な有効性を確認します。その後、ブロック生成者がトランザクションを実行ペイロードに含めます。ブロック内の順番に達すると、EVMは流動性プールのスマートコントラクトコードを実行します。コントラクトはユーザーのトークン承認を確認し、現在のプール価格を計算して取引手数料を適用し、最低出力要件を確認します。すべての要件を満たせば、コントラクトは入力トークンを受け取り、出力トークンを送り、プール残高を更新してイベントログを作成します。出力可能な数量がユーザーの最低受取額を下回ると、実行時にスワップがrevertします。他のノードも同じ実行を繰り返し、提案結果が正しいことを確認します。この例は、ウォレットの指示、スマートコントラクトコード、ガス、状態更新、ブロックチェーンの検証が実行レイヤーを通じてつながる仕組みを示しています。FAQ
暗号資産における実行レイヤーとは何ですか?
実行レイヤーとは、トランザクションを処理し、スマートコントラクトを実行し、手数料を計算し、アカウントやコントラクトの状態を更新するブロックチェーンの構成要素です。Ethereumの実行レイヤーとは何ですか?
Ethereumの実行レイヤーとは、トランザクションの処理、EVMの実行、トランザクション情報の配信、Ethereumの状態管理を担う実行クライアントのネットワークです。EVMは実行レイヤーですか?
いいえ。EVMはスマートコントラクトコードを実行する仮想マシンです。実行レイヤーには、トランザクション検証、状態管理、ガス計算、レシート、ブロック、実行クライアントのサービスも含まれます。実行レイヤーとコンセンサスレイヤーの違いは何ですか?
実行レイヤーはトランザクションを確認して適用し、コンセンサスレイヤーはバリデーターが有効なブロックの順序とファイナリティについて合意できるようにします。実行レイヤーはブロックを生成しますか?
実行レイヤーは実行ペイロードの組み立てと検証を支援し、コンセンサスシステムはブロック提案、アテステーション、フォーク選択、ファイナリティを調整します。実行にガス代はかかりますか?
はい。ガス代は、実行レイヤーがトランザクションを処理する際に使う計算作業と、限られたブロックリソースの対価です。Layer 2ネットワークに実行レイヤーはありますか?
はい。多くのLayer 2ネットワークは独自環境でトランザクションを実行し、決済、データ可用性、セキュリティのためにLayer 1ブロックチェーンに依存します。実行中にトランザクションが失敗するとどうなりますか?
意図した状態変更は通常取り消されますが、送信者はすでに行われた計算作業のガス代を支払う場合があります。実行レイヤーは悪意あるスマートコントラクトを止められますか?
実行レイヤーはプロトコルルールに違反するコードを拒否しますが、技術的には有効でも有害または不適切なコントラクトロジックを実行することがあります。トランザクションによってガス使用量が異なるのはなぜですか?
スマートコントラクトの処理ごとに必要な計算量、ストレージへのアクセス、状態変更が異なるためです。すべてのブロックチェーンに実行レイヤーがありますか?
すべてのブロックチェーンには、トランザクションを検証して状態を更新する仕組みが必要ですが、その機能の名称や構成はプロトコルごとに異なる場合があります。実行が決定論的なのはなぜですか?
同じ初期状態から同じトランザクションを処理する正直なノードが、同じ最終結果を計算できるようにするためです。まとめ
実行レイヤーは、署名済みトランザクションを検証済みの状態変更に変換するブロックチェーンの構成要素です。トランザクションの詳細を検証し、スマートコントラクトコードを実行し、ガスを計算し、残高を更新し、レシートを作成し、無効な操作を拒否します。Ethereumでは、実行レイヤーはEVMを実行し、ネットワークの実行状態を管理する実行クライアントで構成されています。実行レイヤーは、バリデーターを調整し、どの有効なブロックが採用されるブロックチェーン履歴に含まれるかを決定するコンセンサスレイヤーと連携します。実行レイヤーはアプリケーション、決済、データ可用性の各レイヤーとは異なりますが、これらの構成要素は密接に連携します。Layer 2ネットワークは独立した実行環境を提供しながら、決済やデータ可用性にLayer 1ブロックチェーンを利用する場合があります。実行レイヤーの設計は、トランザクション手数料、スケーラビリティ、スマートコントラクト機能、セキュリティ、オンチェーンアプリケーションのユーザー体験に影響します。暗号資産ユーザーにとって、実行レイヤーを理解すると、ガス代、失敗したトランザクション、スマートコントラクトの動作、Layer 2システム、ブロックチェーンの状態変更を把握しやすくなります。開発者やノード運営者にとって、実行レイヤーは、独立したマシン間でブロックチェーンの活動を一貫して計算するためのルールとソフトウェアを提供します。すべてのトークン送金、分散型取引、コントラクト呼び出し、オンチェーンアプリケーションが正しい実行に依存するため、安全で予測可能な実行レイヤーは不可欠です。関連コンテンツ
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
ホット
現在、市場で大きな注目を集めているトレンドの暗号資産
トップ取引高
取引高が最も多い暗号資産

