Mobile Factory Tech Blog

技術好きな方へ!モバイルファクトリーのエンジニアたちが楽しい技術話をお届けします!

EIP-2718: Typed Transaction Envelope が Ethereum の未来を感じる提案だったので紹介したい

こんにちは、ブロックチェーンチームでソフトウェアエンジニアをしている id:odan3240 です。 来月に予定されている Ethereum Berlin Upgrade の調査を行う中で発見した EIP-2718: Typed Transaction Envelope が、Ethereum の未来を感じさせる提案だったので紹介します。

EIP-2718 の提案内容

EIP-2718 は新しいトランザクションタイプを定義する提案(以下「この提案」と呼びます)です。

この提案での有効なトランザクション (Transaction) とトランザクションのレシート (Receipt) の定義は次の通りです。|| はバイト列の結合演算子です。

  • Transaction: TransactionType || TransactionPayloadLegacyTransaction のどちらか
  • Receipt: TransactionType || ReceiptPayloadLegacyReceipt のどちらか

LegacyTransaction/LegacyReceipt はどちらも従来の Ethereum のトランザクションとトランザクションのレシートの定義です。

TransactionType はトランザクションのタイプを識別するための 0 から 127 までの128通りの数字です。

TransactionPayload/ReceiptPayload はそのトランザクションタイプの payload です。

EIP-2718 のモチベーション

この提案以前ではトランザクションを拡張する場合は後方互換性を保つ必要がありました。例えば EIP-155: Simple replay attack protection では secp256k1 の署名の v の値に chainId を考慮した値を加算することで、要件を満たしつつ後方互換性を実現しました。この提案では TransactionType の値でトランザクションを判別するため、後方互換性を気にする必要がなくなります。

そのため以前では、トランザクションの data の構造を自由に設定できることを活かして EIP-712: Ethereum typed structured data hashing and signingEIP-1613: Gas stations network などが提案されてきました。今回の提案によりトランザクションの構造についても自由に設定することができるようになり、トランザクションレベルでのマルチシグトランザクションの実装などが可能になります。

EIP-2718 を応用する提案

この提案を使って新しいトランザクションタイプを定義している提案を紹介します。

EIP-1559: Fee market change for ETH 1.0 chain

ガスの支払いを変更する提案です。maxInclusionFeePerGasmaxFeePerGas などのパラメータがトランザクションに追加されています。

EIP-2711: Sponsored, expiring and batch transactions.

以下の3つのトランザクションタイプを提案しています。

  • Sponsored Transactions: トランザクションの送信者とガスを支払う人を分離可能
  • Batch Transactions: 複数のトランザクションをまとめて実行可能
  • Expiring Transactions: トランザクションに有効期限を設定可能

EIP-2733: Transaction Package

トランザクションの success や gas_used などの実行情報を次のトランザクションに渡せるようにする提案です。

EIP-2930: Optional access lists

トランザクションがアクセスする予定のあるアドレスとストレージを事前に渡せるようにする提案です。事前申告されたアドレス以外にアクセスするとコストが増加します。

EIP-2938: Account Abstraction

コントラクトが EOA と同様に料金の支払いやトランザクションの実行ができるようにする提案です。

EIP-2972: Wrapped Legacy Transactions

従来のトランザクションタイプをこの提案の形式で定義し直す提案です。chainId が明示的にトランザクションのパラメータに含まれています。

EIP-2976: Typed Transactions over Gossip

devp2p が新しいトランザクションタイプを受け入れるようにする提案です。

終わりに

EIP-2718 はこれまで固定だったトランザクションの構造を可変にする提案で、その紹介をしました。トランザクションの構造が柔軟になることによってこれまでなかった提案がされ Ethereum の自由度は更に高まっています。特に EIP-1559 からは目が離せないですね。

Google Docs を用いたエクストリームリーディングのすゝめ

あけましておめでとうございます。ブロックチェーンチームのソフトウェアエンジニアの id:odan3240 です。


この記事では Google Docs を用いたエクストリームリーディング形式の社内勉強会を1年間継続できた記念に、その形式を紹介をします。

エクストリームリーディング とは

エクストリームリーディングとは黙読フェーズと議論フェーズの2つのフェーズを繰り返す読書会の形式の1つです。

黙読フェーズでは次のことを行います。

  1. 1節、1章、数ページなどのある程度のまとまった文章を読む範囲として決定
  2. この範囲を参加者で並行して黙読

その次の議論フェーズでは黙読した結果について次のことを行います。

  • 文章の解釈を合わせる
  • 文章中で分からないところを教え合う

エクストリームリーディングの利点は次の通りです。

  • 読書会への参加に必要な事前準備が必要ないため参加のハードルが低い
  • お互いの知識を補え合える

1つ目の利点に関しては、輪講形式の読書会の準備に苦労したことがある方にとっては理解しやすいと思います。

Google Docs を用いたエクストリームリーディング

モバファクでは Ethereum Layer2 勉強会という社内勉強会を開催しており、この勉強会では Google Docs を用いたエクストリームリーディング形式の読書会を採用しています。この勉強会では Ethereum の Layer2 技術に関する Web 上のサイトやドキュメントを Google Docs に転記してみんなで読み進めています。

この Google Docs を用いたエクストリームリーディングでは、上で紹介した進め方の黙読フェーズ中に Google Docs のコメント機能で文中の感想、解釈、分からないところをコメントします。これは従来のエクストリームリーディングと比べて次の利点があると考えています。

  • 気軽にコメントができる
    • Google Docs を使う前は対象の文を引用してコメントを書いていた
  • 議論箇所の目安になり議論フェーズが活発になる
  • 文章の流れを妨げない

実際に Layer 2 勉強会では画像のような形で進行しています。 f:id:odan3240:20210119175844p:plain

Making Sense of Ethereum’s Layer 2 Scaling Solutions: State Channels, Plasma, and Truebit | by Josh Stark | L4 blog | Medium を読んでいる様子

f:id:odan3240:20210119175826p:plain

Optimistic vs. ZK Rollup: Deep Dive | by Alex Gluchowski | Matter Labs | Medium を読んでいる様子

参加者の声

Layer 2 勉強会の参加者に Google Docs を用いたエクストリームリーディングについて感想を質問してみました。

  • リモート環境だと読書会をしても他のメンバーがどこを見ているのか分かりにくく議論に支障が出ていたのですが、Google Docsを使うと誰がどこに言及しているのかはっきりして捗りました
  • 集中して読む時間を確保しつつも、その場で生じた疑問を忘れないうちにすぐ議論できるのがよかったです。
  • 文の意味が理解しづらかったときや技術特有の文脈などで不明なところがあったときにすぐ議論できてよかった
  • 読みながら疑問点や感想を書くので、書き忘れたり読んでいた箇所を見失ったりせずスムーズに進められました

終わりに

Google Docs を用いたエクストリームリーディングを紹介しました。

社内では Layer2 勉強会以外にも Google Docs を用いたエクストリームリーディングを使った社内勉強会をやっていこうという話になり、 web.dev の記事を読む社内勉強会が立ち上がり始めています。

この記事を読んでいる方も Web 上の文章の読書会に Google Docs を用いたエクストリームリーディングはいかがでしょうか?