Skip to main content

EVMの基礎

Ethereum Virtual Machine (EVM) は、Ethereumをはじめとする多くのEVM互換ブロックチェーンで稼働するスマートコントラクト実行環境である。EVMの理解は、サンドイッチ攻撃の仕組みを把握する上で不可欠である。

Proof of Stake (PoS)

Ethereumは現在PoSを採用しており、バリデータがトークンをステークすることでブロック生成権を得る。バリデータは、ブロックに含めるトランザクションの順序を決定できるため、MEV(Maximal Extractable Value)の発生源となる。 EthereumのPoSでは、バリデータはステーク量に応じて確率的にブロック提案権を得る。選ばれた提案者はトランザクション順序を決められるのでサンドイッチ攻撃が発生する。ただし、全体で100万以上のバリデータが稼働しており、大規模な不正(チェーン改ざん)は極めて困難。一方で、単発のMEV抽出(サンドイッチ攻撃など)は「正当なブロック内の順序変更」として日常的に行われている。

Validator

トランザクションの検証とブロック生成を担う。Validatorはmempool内の未処理トランザクションを参照し、独自の利益を得るために順序を操作することが可能である。

Block & Transaction

各ブロックには複数のトランザクションが含まれ、順序はブロック提案者(Validator)が決定する。この順序操作が、フロントランニングやサンドイッチ攻撃を可能にする。

RPC Server

ユーザーやDAppは通常、RPC(Remote Procedure Call)サーバーを通じてネットワークに接続し、トランザクションを送信する。RPCサーバーが不正である場合、取引情報が傍受され、攻撃に利用されるリスクがある。

Solidity

DeFiプロトコルの多くはSolidityで記述され、EVM上で実行される。スマートコントラクトの透明性は高い一方で、その仕組みを悪用する攻撃者にとっても行動しやすい環境を提供してしまう。

Wallet

ユーザーが秘密鍵を管理し、トランザクションの署名や送信を行うためのソフトウェアまたはハードウェア。ウォレットは資産の保管庫であると同時に、ユーザーがEthereumネットワークとやり取りするインターフェースでもある。ウォレットから送信されたトランザクションはRPCサーバーを経由してmempoolに入り、ブロックに取り込まれる。