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

Ethereum と Status Network の違い

このページでは、Ethereum メインネットと比べて Status Network 上で動作が異なる、あるいはまだ提供されていない機能をまとめます。 ここに記載がない機能については、Status Network 上で利用可能であり、その動作は Ethereum メインネットと同一であるとみなせます。 もし異なる挙動を見つけた場合は、Telegram Builder コミュニティ までご連絡ください。

注記

Status Network は Linea zkEVM スタックの上に構築されています。 以下に挙げる差分は Linea zkEVM のアーキテクチャに由来するものであり、Status Network にもそのまま適用されます。

EVM オペコード

オペコードEthereumStatus Network
BLOBBASEFEE現在のブロックにおける blob ベースフィーの値を返します。常に最小値を返します。
BLOBHASHトランザクションに紐づく blob の index を指定すると、その blob のハッシュを返します。
範囲外のインデックスの場合は 0 を返します。
常に 0 を返します。
BLOCKHASH直近 256 ブロックのうち、指定されたブロックのハッシュを返します。正しい値を返しますが、その値は証明によって保証されているわけではありません(Status Network はタイプ 2 zkEVM であり、L2 固有の状態表現を使用・証明します)。
PREVRANDAOひとつ前のブロックの RANDAO 値を返します。Ethereum と同様の数式を用います。例: L2_prevrandao XOR hash(signed(slot_id))

詳細については、Ethereum Foundation の Opcode Reference を参照してください。

Evmdiff は EVM 実装を比較する際に便利です(Ethereum Mainnet と Linea を比較)。 また、evm.codes は Ethereum 上の個々のオペコードの詳細を調べるのに役立ちます。

プリコンパイル(Precompiles)

プリコンパイルEthereumStatus Network
BLAKE2fBLAKE2 暗号ハッシュアルゴリズムで使用される圧縮関数 F。未対応。
MODEXP任意精度のモジュラ累乗演算。引数(base, exponent, modulus)が 512 バイトを超えない整数に限りサポートされます。
プリコンパイルをトランザクションの受信者にするさまざまなユースケースで利用可能。未対応。トランザクションの to アドレスはプリコンパイルアドレス、つまり 0x010x09 の範囲のアドレスにはできません。
RIPEMD-160ハッシュ関数。未対応。

Beacon ルート

EIP-4788 は Ethereum の Dencun アップグレードで導入されたもので、 ビーコンチェーンブロックのハッシュツリールートを get / set できるスマートコントラクトを追加しました。

この機能は Status Network にも存在します。 ただし Ethereum メインネットと比較してブロックタイムが異なるため、利用できるのは直前のブロックのルートのみです。

コールデータ(Call data)

Status Network のシーケンサーは、トランザクションが対応する blob に収まるよう、 コールデータのサイズに制限を設けています。 現在の上限は 60,000 バイトです。

JSON-RPC API

Status Network は標準的な Ethereum JSON-RPC API メソッドを使用します。 ただし、いくつかのメソッドは Ethereum と動作が異なる場合があります。特に linea_estimateGas は、 Karma を考慮した手数料推定のために拡張されています。

詳細は JSON-RPC API リファレンスを参照してください。

タイプ 3 トランザクション

Status Network はタイプ 3(0x3、いわゆる「blob」)トランザクションをサポートしていません。 このトランザクションタイプは、Ethereum メインネットでは主に L2 ロールアップが L1 にデータを安価に投稿する用途で使用されています。

EIP-7702

Status Network はまだ EIP-7702 をサポートしていません。