<。p style="text-align: left;">EOF(EVMオブジェクト・フォーマット)は、EVMを改善するために設計されたEIPの小さなセットです。
利点:
- EOFはオプコードのガス料金の変更を可能にします
ガス観測可能性の削除
L2がユースケースに基づいてガスを変更できるようにする
バイトコードのサイズを小さくすることで、ガス使用量を減らす
初期のデータでは、コード/初期化コードのサイズとガス使用量が削減されています。
Uniwap-v3のデプロイメントでは、初期化コードとデプロイメントコードが6.5%削減されます。
UniswapV3Factoryのデプロイは約14%少ないガスを使用し、runTestの呼び出しは約9%少ないガスを使用します。
ENS DNSRegistrarのデプロイメントでは、初期化コードを~6%、デプロイメントコードを~1.5%削減します。
ENSのproveAndClaim:呼び出しは、ガスの使用を~10%削減します。
バイトコード変換とスケーラビリティを可能にする
コード観測性を削除するということは、PC、CREATE/CREATE2、EXTCODEHASH、EXTCODESIZE、EXTCODECOPY、CODESIZE、CODECOPYオペコードを削除するということです。
コードが変更されると、レガシー契約は機能しなくなります。
これにより、将来verkleを導入する際に、EOFバイトコードに何らかの変更を加えることができるようになります。
EOF有効化オペコード即時
高価なジャンプターゲット解析の削除
静的解析がより簡単に
EOFバイトコードはより高速なバイトコードにコンパイルできる
EVMの将来性
アドレス空間の拡張
現在の EVM との統合
開発者にとって重要な問題は、変更を実装するのに必要な労力、テストのコスト、およびこれらのオペコードを維持するコストです。.
新しいオペコードはレガシーオペコードと衝突しませんし、EOF検証は非推奨のオペコードには触れません。
EOFのエンコードとデコードはファジーテストが可能です。検証は新しく、Revmには約500行のコードがありますが、カバーすべきエッジケースがたくさんあり、実装全体にわたって正しくすることに集中する必要があります。
EOFバイトコードのキャリアとして使用されるトランザクションの作成は、EOFCREATEに似ていますが、実行前にバリデーションが必要です。EXTDELEGATECALL (0xf9), EXTSTATICCALL (0xfb)
EOFCREATEとRETURNCONTRACT
EXCHANGE(0xe8)、SWAPN(0xe7)、DUPN(0xe6)、DATACOPY(0xd3)、DATASIZE(0xd2)、DATALOADN(0xd1), DATALOAD (0xd0), RJUMP (0xe0), RJUMPI (0xe1), RJUMPV (0xe2), RETURNDATALOAD
CALLF(0xe3)、RETF(0xe4)、JUMPF(0xe5)
変更はEVMが中心なので、クライアントの残りの部分との統合は、クライアントのアーキテクチャとバイトコードが保存される場所に依存します。
EXTCODESIZEとEXTCODEHASHは、アカウントがEOFかどうかを知る必要があり、定義済みの値(0xEF00サイズとハッシュ)を返します。1つのアイデアは、任意のEXTCODEタイプのオペコードを呼び出すときにバイトコードのロードをスキップするために、一般的なアカウントテーブルにis_eofフラグを保存することです。
L2 への影響
大きな疑問は、なぜ L2 はこれらの変更を実装しないのでしょうか?イーサネットL1でのEVMの改善を止めるべきでしょうか?
現実には、L2は準備ができておらず、それだけでなく、これらの技術革新を統合するためのプラットフォームを持っていません。バイトコードのバージョン管理はL2が使用できるプラットフォームの構築に役立ち、コードの観測可能性の除去はスケーラビリティの問題を軽減するのに役立ち、ガスの変更はZK L2がガス爆弾のDDoSベクトルを排除するのに役立ちます(たとえば、zkのハッシュは非常に高価です)。
さらに重要なことは、EOFは単なるフォーマットではなく、それを使用するためには言語(Solidity/Vyper/Huff)のサポートとツールチェーンのサポートが必要だということです。それを使用するにはエコシステムが必要であり、このフォーマットはL2が革新するためのより多くの安定性を提供します。
デメリット:レガシーバイトコードがまだ存在する
これはよくある問題です。レガシー バイトコードは常に存在し、代替手段を提供しなければ、困ったことになります。バイトコードの代替フォーマットがあれば、将来、状態の有効期限が切れたときに、レガシーバイトコードを移行して削除することができます。
まとめ
EOFは次の光るものではありません。EVMの初期バージョンのレガシーな問題を修正するメンテナンスEIPであり、その問題を修正するには、それを壊す以外に方法はありません。EVMのさらなる発展と将来性のために必要なものだ。