実行モデル、コンセンサス、EVM の基礎、検証可能な AI を扱う技術記事です。洞察を通じて Web3 をより明確にします。
編集部おすすめ実行クライアントは EVM を交換可能な一つの実行者として扱い、その間には状態アクセスのインターフェースが一層挟まります。go-ethereum の組み込みインタプリタ、evmone、revm はそれぞれ位置づけが異なり、マルチ実装の一致性は規範のテストベクタで担保され、インタプリタの最適化余地はディスパッチ、gas 計量、メモリ管理に集中しています。
記事を読む →
実行クライアントは EVM を交換可能な一つの実行者として扱い、その間には状態アクセスのインターフェースが一層挟まります。go-ethereum の組み込みインタプリタ、evmone、revm はそれぞれ位置づけが異なり、マルチ実装の一致性は規範のテストベクタで担保され、インタプリタの最適化余地はディスパッチ、gas 計量、メモリ管理に集中しています。

状態変数は宣言順に 32 バイトのスロットへ収まります。小さい型はスロットを共有し、マッピングと動的配列はハッシュから位置を導出し、継承順はスロット番号を全体としてずらします。これらの配置規則が、アップグレード可能なプロキシがなぜコンパイラの割り当てるスロットを避けなければならないかを決めます。

4 つの呼び出し命令はバイトコード上では番号が数個違うだけですが、そのセマンティクスは、コードが誰のコンテキストで動き、誰のストレージに書き込み、msg.sender と address(this) が何になるかを決めます。CALL、CALLCODE、DELEGATECALL、STATICCALL を順に対照すると、プロキシがなぜ DELEGATECALL に依存するのか、STATICCALL がなぜ導入されたのかが見えてきます。

生の calldata から ABI を分解します。4 バイトのセレクタは正規署名を切り詰めたもので、静的型はそのまま 1 ワードを占め、動的型はオフセットと長さによる二段階のアドレッシングで辿ります。イベントは indexed パラメータを topics に書き込むことで検索性を得ます。ABI は自己記述的ではないため、デコードとアップグレードはいずれも制約を受けます。

イーサリアムのイエローペーパーはブロックレベルの状態遷移をネストした呼び出しとして書き下しており、評価順序はそれゆえ仕様の一部です。一件ずつの直列実行のセマンティクスがどこから来るのか、読み書き集合のコンフリクトがなぜ事前に判定できないのか、決定性と検証の単純さが何と引き換えに得られたのか、そしてこの設計の原点にどんな案が正面から応答しているのかが、以下の本筋です。

ブロックヘッダの stateRoot はわずか 32 バイトですが、ネットワーク全体のアカウント、残高、コントラクトストレージを束縛します。以下では Merkle Patricia Trie のノード構造と、アカウントの下にぶら下がるストレージ trie の設計を分解し、Merkle 証明がどのようにオフチェーン検証を支えるのか、そして状態膨張のコストが誰にのしかかるのかを説明します。

Gas は EVM の資源計量単位であり、その価格は手数料市場が決めます。両者を混同すると、スケーリングと実行中止の境界を誤って判断することになります。本稿は固有コストと動的コストの構成を分解し、out-of-gas と REVERT がそれぞれ何を返すのか、EIP-1559 の base fee と tip がそれぞれ誰に帰属するのかを説明します。

同じ 32 バイトのデータでも、メモリ、ストレージ、一時ストレージのどこに置くかでガスコストは二桁変わることがあり、生存期間もまったく異なります。本稿は帰属、寿命、価格設定という三つの軸で三種類のストレージを分解し、再入ロック、一時配列、状態変数をそれぞれどこに置くべきかを説明します。

EVM はレジスタを持たないスタックマシンです。256 ビットの語長、1024 項のスタック深、JUMPDEST にしかジャンプできないプログラムカウンタを備えます。フェッチ、デコード、実行という 1 回のループは、スタックのアンダーフローとオーバーフローがなぜガスを使い切るのか、そしてスタックマシンがレジスタマシンに対して何を得て何を支払ったのかを説明します。

イーサリアムを送金を記録する台帳と見なすと、最も重要な部分を見落とします。アカウント・ストレージにある自由に読み書きできる変数です。イエローペーパーの状態遷移関数 Υ(σ, T) に従えば、イーサリアムは分散型ステートマシンであり、EVM はその状態遷移の実行仕様です。さらに、ネットワーク全体がビット単位でリプレイすることが、実行セマンティクスに一連の厳しい制約を課します。