Ethereum Berlin ハードフォークについて
Ethereum(イーサリアム)1.0の大型アップグレード「Berlin(ベルリン)」が2021年4 月14日頃(正確にはblock# 12,244,000)にmainnetにリリースされます。
アップグレード内容について書いていきます。
アップグレード内容
ベルリンでは以下4つの改善案(EIP)が実装されます。
EIP-2565:ModExp Gas Cost (ModExpのガスコスト)
ModExpというのは ここ を参照してください。
ModExpはRSA署名検証に使用しますが、そのガス代を下げるというものです。
EIP-2929: Gas cost increases for state access opcodes (ステート アクセス オプコードのガス代増加)
SLOAD、*CALL、BALANCE、EXT*、SELFEDESTRUCTのopcodeが初めてトランザクションで利用される際に、ガス代を引き上げる提案です。
(*CALLや EXT* というのはファミリーを表しています。*CALLならCALL, CALLCODE, DELEGATECALL, STATICCALLがあります)
例えば、CALLファミリーの機能の最初の呼び出しのガス代を700から2600に大幅に引き上げます。2回目以降のガス代は100 gasになります。
目的の一つはDoS攻撃ベクトルを緩和することにあります。
EIP-2718:Typed Transaction Envelope (トランザクションタイプの定義)
Ethereumで to アドレスが0x00宛てのトランザクションはコントラクトをデプロイするものだとわかりますが、この提案はトランザクションタイプを新たに設け、トランザクションのタイプを明示するというものです。
EIP-2930:Optional access lists (オプショナルアクセスリスト)
トランザクションがアクセスする予定のアドレスとストレージキーのリストである「アクセスリスト」を含むトランザクションタイプを追加します。これにより、EIP-2929で導入されたガス代の増加が緩和されます。
アクセスリストを指定することで、クライアントがトランザクションを処理しやすくなり、ガス代を安全に下げることができます。
なお、EIP-2315はBerlinからドロップしています(リンク)。
結論
Ethereumを開発しやすくし、またガス代を下げようという内容の渋いアップグレードという印象です。
参考
公式ブログです。
公式ブログからリンクされていた、EIPの詳細が書かれています。
1月のちょっと古い記事になりますが、日本語なのでありがたいですね。
名著マスタリング・ビットコインの著者、アントノプロスの書いた本です。
Ethereumの技術的なことを知りたい場合にはまず一番に読んでおきたい本です。
マスタリング・イーサリアムのPDF版が欲しい方oreillyのサイトで購入できます。
https://www.oreilly.co.jp/books/9784873118963/
原著(英語)は無料で公開されています。
https://github.com/ethereumbook/ethereumbook#mastering-ethereum