Ethereum2.0 コンプリートガイド(2020年11月版)仕組み・ロードマップ・ステーキングの要件・マーケットへの影響

目次

  • 前提
  • Ethereum2.0のアーキテクチャとデザインゴール
  • これまでのEthereumの開発と現在地点
  • Ethereum2.0を分解した各フェーズ、およびスケジュール
  • フェーズ0:Beacon Chainのローンチ、Casper FFG
  • フェーズ1:シャーディング(Sharding)、Cross-Link
  • フェーズ2:eWASM
  • PoWのEthereumチェーンとPoSのEthereum2.0チェーンの統合(フェーズ1.5)
  • ステーキングの参加要件・報酬の仕組み・スラッシュ
  • Ethereum2.0の主要クライアント
  • クロスシャードトランザクションの懸念
  • 同時進行で開発されるレイヤー2の技術「A rollup-centric ethereum roadmap」
  • トランザクション手数料モデルの抜本的変更提案 EIP-1559
  • Ethereum2.0がETHのマーケットに与える影響、アセットとしての性質変化
  • 総論
  • 参照リンク

前提

本レポートでは、Ethereumの大型アップデートであるEthereum2.0について解説をします。
EthereumではDeFi(分散型金融)をはじめとして様々なアプリケーションが開発され、ユーザーも増加し続けています。その一方で、増え続けるトランザクションに対してネットワークのキャパシティは足りなくなりつつあり、スケーラビリティの問題は深刻です。Ethereum2.0は、そのスケーラビリティを大きく高めるアップデートです。
関連レポート:Ethereumの最新の開発動向やビジネスユースケースを網羅する【2020年版】
https://hashhub-research.com/articles/ethereum-develpment-and-usecase-2020
Ethereum2.0は、Ethereumコミュニティで長く議論が交わされてきたPoSへの移行やバーチャルマシンの変更、シャーディング(Sharding)などを含む抜本的なアップデートです。分散性を維持したままトランザクション性能を大幅に向上させること等が期待さています。現在のEthereumを単純にアップデートさせるのではなく、新しいEthereum2.0ブロックチェーンができ、新旧ブロックチェーンを連携して運用される予定です。Ethereum2.0は複数のフェーズに分けて段階的にローンチされる予定です。
今回のレポートではEthereum2.0の全体像を概観します。全体アーキテクチャ、コアとなる要素、スケジュールなどを網羅します。

Ethereum2.0のアーキテクチャとデザインゴール

Ethereum2.0のアーキテクチャの最も重要な点として、Ethereum2.0はこれまでのEthereumと異なるブロックチェーンとしてローンチします。その後しばらく(正確な期間は未確定)、現在のEthereumとEthereum2.0は並存します。
新しいEthereum2.0のブロックチェーンはBeacon Chainと呼ばれます。さらにBeacon Chainから64のShard Chain(シャードチェーン)を実装して、並列処理を行います。現在のPoWのEthereumは最終的にはなくなりますが、今後もかなり長い期間、双方が運用されます。このアーキテクチャを図にすると下記のようになります。
参照: https://docs.google.com/presentation/d/1G5UZdEL71XAkU5B2v-TC3lmGaRIu2P6QSeF8m3wg6MU/edit?fbclid=IwAR02snrGkuhD1w_vXohCA8UOkMexlrX-7UoUjCu297lY6ePSDAqZ1B5-4bM#slide=id.g3c326bb661_0_58
このアーキテクチャを目指して3~5年程度をかけアップデートが行われます。後述しますが一度にアップデートを行うのではなく、フェーズを細分化して行う予定になっています。その最初のフェーズは2020年を予定しています。
Ethereum2.0には様々なアップデートが含まれますが、特に鍵となる点は、PoSへの移行とシャーディングです。
今までのPoWでは計算資源投下に伴いブロック生成を行うノードを決定するアルゴリズムでしたが、PoSではトークンを保有するノードがブロック生成に参加します。計算資源を投下してnonce(ナンス)の探索をする必要がなくなり、ブロック間隔を短くすることができるためトランザクション性能が高まります。加えて、シャーディングによってブロックチェーンを64に分割し並列処理することでトランザクション処理能力をさらに高めます。これを分散性を犠牲にせず実装・運用することがEthereum2.0の基本的なコンセプトです。
また、Ethereum2.0のデザインは下記を重視して行われます。
・Decentralization(分散性)
ノートPCでもバリデーターとしてネットワークに参加でき、ノードが分散している状態をつくる。
・Resilience(弾性)
多くのノードがオフラインになっても稼働し続けるネットワーク
・Security(セキュリティ)
多くのバリデーターが参加してセキュリティの高いネットワーク
・Simplicity(シンプル)
多少の効率性を失ってもシンプルさを重視した設計を優先する。
(バグは複雑な設計にこそ発生し、アップデートの自由を損ないやすいため)
・Longevity(持続性)
量子耐性、コンポーネントの可換性による持続性
また、現在のEthereumチェーンもしばらく並列して残り、アップデートされます。この従来のチェーンのEthereumを「Ethereum 1.x」と呼びます。
次節以降ではEthereum2.0の開発ロードマップについて解説します。

これまでのEthereumの開発と現在地点

前提知識としてEthereumのこれまでの開発や、開発プロセスについて触れます。
Ethereumは、ホワイトペーパーリリース時点から4段階のフェーズに分けて開発されることが発表されていました。
その後、実際には更に細分化されてリリースされています。
  • Frontier(2015/07)
  • Homestead(2016/03)
  • Metropolis-phase 1: Byzantium(2017/10)
  • Metropolis phase 2: Constantinople(2019/02)
  • Serenity: Ethereum2.0(2020-2024?)
さらにMetropolisとSerenityの間には、Ethereum1.xと呼ばれるIstanbul(2019/10)などのアップデートが予定されています。
Ethereumはこれらの大型アップデートの度に双方互換性のないクライアント、つまりハードフォークを伴うアップデートを行いネットワークの開発をしています。ハードフォークによって互換性のないクライアント、つまり古いチェーンはアップデートの度に破棄されています。PoSへの移行はSerenityのアップデートに含まれており、ホワイトペーパーリリース時点から予定されていたロードマップです。
SerenityとEthereum2.0、Eth2.0などの単語は明確な定義はありませんが、同一のものを指すと捉えて良いでしょう。後述しますが、Serenity: Ethereum2.0を(2020-2024?)と幅広い期間で表記したようにこのアップデートは数年の長い期間をかけて段階的に行われます。
また、Ethereumのネットワークのアップデートがある際に、どのような手順でソフトウェアがリリースをされるかを解説します。
ブロックチェーンはP2Pのネットワークなので、互換性のあるクライアントが通信しあって形成されます。このクライアントの実装パターン(Ethereumであればgo-ethereum、Parityなど)はいくつかありますが、クライアントソフトウェアのリリース自体まで到達すること全体を指してブロックチェーンの開発と呼べるでしょう。これらのクライアントはそれぞれ別の開発チームが行っています。
なお蛇足ですが、すべてのクライアントはオープンソースのため収益は生まれないので、各開発チームはEthereum Foundationからグラントを受け取っているか、別の営利事業を行っている場合が多いです。
このクライアントリリースまで到達するには大まかに下記のような過程をたどります。
  1. 将来のEthereumの実装について日常的に議論される(ethresearchや開発者イベントなどの場が中心となる)。
  2. それらの議論を元に、分解した機能や規格ごとにEIPという形式でGitHubのEIPレポジトリ(参照:https://github.com/ethereum/EIPs )にプルリクエストが行われる。プルリクエストは誰でも可能で、EIPステータスはDraft(提案)、Accepted(承認)、Final(実装済)の段階を経て実装まで向かう。Deferredは現時点では実装しないEIPで将来的に再考慮されるかもしれないEIPステータスである。
  3. 次の大型アップデート(ハードフォーク)にどのようなEIPが実装されるかなどの期限を決めて、アップデートスペックの決定をする。これをスペックのフリーズと呼ぶ。
  4. EIPによって決定されたスペックを元に各クライアントのGitHubのレポジトリに機能を追加する開発が行われる。それぞれのクライアントにコアコントリビュータは存在するが、オープンソースなので誰でもプルリクエストは可能である。
  5. クライアントのテストネットをリリース。
  6. 通常、数ヶ月のテストネットの運用期間で安全性を確認。その後メインネットのソフトウェアをリリース。
  7. 日時を決めハードフォークをスケジュールする。この時にマイナー、フルノードオペレータ、取引所は新しくリリースされたクライアントにアップデートを行う(アップデートをしなければ互換性のない古いクライアントで動かしているノードはネットワークと通信できなくなる)。
  8. ネットワークのアップデート完了。EIPに含まれていた新機能などがメインネットで使えるようになる。
このようにしてEthereumのネットワークはアップデートを繰り返します。Ethereum2.0のリリースもこの手順を踏襲します。しかしながら、後述しますがEthereum2.0は全く新しいブロックチェーンであり、既存のブロックチェーンをハードフォークするわけではありません。いずれにしても議論→スペックの決定→各クライアントの開発→リリースという流れは変わらず、Ethereum 2.0もこれに沿って開発されます。

Ethereum2.0を分解した各フェーズ、およびスケジュール

上述したようにEthereum2.0は複数のフェーズに分けてローンチされます。
大まかなロードマップは下記の通りです。
  • フェーズ0:(2020年末)
    新しいブロックチェーンであるBeacon Chainのローンチ、PoS機能のCasper FFGの実装、ただしこの時点ではステーキングしかできず本格的な使用はできない。
  • フェーズ1:(2021年内)
    シャーディングの実装、Beacon Chainとそれぞれのシャードを繋ぐためのCross-Linkの実装
  • フェーズ2:(2022年-)
    eWASMの実装、スマートコントラクトが扱えるようになる。
詳しくは次節以降で取り扱います。
https://twitter.com/trent_vanepps/status/1321936246332104705?s=20
Ethereum2.0は段階的にローンチするものの、フェーズ2までは実用的なブロックチェーンではなく、ETHのステーキングをするだけなど一部の機能に留まります。
本レポートを執筆している2020年11月時点ではフェーズ0の実装開発と、フェーズ1~2の開発の議論がEthereum2.0の開発コミュニティでの主要トピックとなっています。
本レポートではフェーズ2までのEthereum2.0の主要な機能を取り扱いますが、フェーズ3以降に含まれる機能については詳しく取り扱いません。フェーズ2までに含まれる機能についてもいまだ流動的で、確定していないことが多いためです。
いずれにしても現在Ethereumコミュニティは、Beacon Chainのローンチとその後のフェーズ2を大きなマイルストーンと見なして動いています。また、Ethereum2.0は各フェーズを順番に開発しているのではなく、同時開発している部分も多い状態です。下図はスケジュールイメージを図示したものです。
参照:https://twitter.com/meeseeking/status/1321452219506503681
次節以降ではEthereum2.0のフェーズ0~2のロードマップと、各フェーズで実装される予定のコンポーネントについて解説します。

フェーズ0:Beacon Chainのローンチ、Casper FFG

フェーズ0はBeacon Chainのローンチ、Casper FFGの実装を含みます。また、Beacon Chainのローンチに伴いEthereum2.0でのステーキングが始まります。
Beacon ChainでのステーキングはEthereum1.0のチェーンでデポジットコントラクトにETHをステーキングすることで、Beacon Chain上でETH2トークンが受け取れるという仕様になっています。しかしながらすでに述べたように、フェーズ0ではスマートコントラクトなどをサポートしていません。
フェーズ0に含まれる機能の詳細は以下の通りです。

Beacon Chain

Beacon Chainはフェーズ0以降に実装される64のShard ChainをマネジメントするEthereum2.0のコアです(Shard Chainはフェーズ1で実装予定)。トランザクション実行や、スマートコントラクトの実行、Stateの更新はShard Chainで行われますが、Beacon ChainではそのShard Chainの各シャードのstate rootを記録します。これにより、Merkle proofを使って各Shard Chainのイベントを検知でき、クロスシャードコミュニケーションも実現できるようになります。
また、Beacon Chainには乱数生成によってバリデーターを各シャードに割り当てる機能があります。
なお、Beacon Chainのローンチに伴い、Beacon Chain上に新しいETHが誕生します。これをETH2と仮称します。
現在のEthereumチェーンのETHを、Ethereum2.0のBeacon Chain上のETH2トークンに移動させる方法については、デポジットコントラクトによる一方向ペグ(1way-peg)の手法が考案されています。
現在のEthereumチェーンのETHをブロックチェーン上にデプロイされるデポジットコントラクトに対してデポジットすると、Beacon Chainはこのコントラクトを監視しており、Beacon Chain上のETH2トークンに変換できます。
Beacon Chainのバリデーターになる際はETH2トークンが32必要になります。Beacon Chain上でPoSの実装が行われており、バリデーターはBeacon Chain上でブロック報酬としてETH2トークンを受け取ります。
フェーズ0ではBeacon Chainがローンチされるだけであり、この新しいチェーン上にはバーチャルマシンなどが存在せず、スマートコントラクトは実行できません。つまりフェーズ0がローンチしてもフェーズ2に到達するまでの期間、トランザクションやコントラクトの実行はEthereum 1.xチェーンで行われます。また重要な点として、フェーズ0時点でETH2を1.xチェーンに引き出すことはできません。この時点でのBeacon Chainではコントラクトの実行ができないためです。

PoSおよびCasper FFG(Friendly Finality Gadget)

PoSには様々な種類が存在しますが、Ethereum2.0のPoSはバリデーターの数に上限がないという点が最も大きな特徴となります。COSMOSやPolkadot、EOSなどはいずれもバリデーター上限数を21や100程度にしているのに対して、Ethereum2.0ではバリデーターの数に制限がありません。ノードは32ETHを保有していればバリデーターになれます。
各Shard Chainに対してバリデーターが乱数によりランダムに割り当てられ、各バリデーターはそれぞれのシャードのブロック生成を行います。それらのShard Chainの情報にファイナリティを与える機能がCasper FFGです。5分程度の一定間隔でBeacon ChainにShard Chainのstate rootを集め、2/3以上のバリデーターが正しいブロックであると承認したブロックは、以後覆ることはありません。

フェーズ1:シャーディング(Sharding)、Cross-Link

フェーズ1では主にシャーディングの実装が行われます。

シャーディング(Sharding)

Ethereumのスケーリングを劇的に改善する手法としてシャーディングを実装します。シャーディングとは、シャード(Shard)ごとに個々のデータを分け、効率的に並列処理する仕組みを指します。1つのブロックチェーンではなく分離した複数のShard Chainがそれぞれトランザクション、ステートを管理します。
Ethereum2.0のShard Chainは64に分かれることで、トランザクション性能の桁が変わります。64のShard Chainそれぞれのブロック生成をバリデーターが行います。
これまでEthereumの各ノードはブロックチェーンの情報をすべてダウンロードしていましたが、Ethereum2.0においては各ノードがバリデーションするいくつかのShard Chainの情報だけをダウンロードすればよくなるため、スケーリング問題を大幅に解決できます。

Cross-Link

フェーズ1ではCross-Linkというコンポーネントが実装されます。Cross-Linkとは各シャードブロックチェーンの状態をBeacon Chainに記録する機能です。
それぞれのShard Chainの最新のステートは、6分ごとにBeacon Chainにハッシュで記録されます。この際、Cross-Linkと呼ばれるコンポーネントによって各Shard Chainのバリデーターの署名を集めて、Beacon Chainのブロックを生成します。そしてBeacon ChainでCasper FFGによるファイナリティを得ることによって、Cross-linkで紐付いたShard Chain側のブロックもファイナリティを得ます。
なお、フェーズ1時点でShard Chainはスマートコントラクトの実行はできません。

フェーズ2:eWASM

フェーズ2ではeWASM(Ethereum-flavored Web Assembly)が実装されます。
この段階でいよいよEthereum2.0はスマートコントラクトの実行できるようになります。Ethereum2.0チェーンにeWASMというバーチャルマシンが実装されます。これまでのバーチャルマシンであるEVMとは異なり、バイトコードがOPCODEからWASMへ変更されています。
WASMはW3C( World Wide Web Consortium )で標準化されているWeb Assemblyという仕様であり、eWASMのベースとなっています。もともとはWebでもCやC++並みの実行速度を実現するという目的でasm.jsから派生しました。WASMはブラウザ上で実行できることが特徴で、eWASMはこのWASMに準拠した形でのバーチャルマシンです。
eWASMの実装でバーチャルマシンの実行速度が大幅に効率的になることが期待されます。これによってSolidityだけでなく様々な言語でEthereumの開発が行えるようになり、開発者の参入ハードルが大幅に下がることが期待されます。現在のスマートコントラクト言語として主要なSolidityからもコンパイルができるように準備されています。

PoWのEthereumチェーンとPoSのEthereum2.0チェーンの統合(フェーズ1.5)

現在のEthereumチェーンのETHを、Ethereum2.0のBeacon Chain上のETH2トークンに移動させる方法については、デポジットコントラクトによる一方向ペグ(1way-peg)の手法が考案されていることをBeacon Chainの章で解説しました。しかしこれまで運用されてきたEthereum1.xのブロックチェーンには様々な他のアセットやスマートコントラクトがStateとして存在しています。完全移行のゴールはPoWのブロックチェーンのEthereumがなくなり、ユーザーも開発者もEthereum2.0を利用している状態です。
移行の方法として、Ethereum1.xをEthereum2.0の1つのShard Chainにしてしまうことが長らく議論の対象になってきました。しかし2019年12月にVitalik Buterin氏はより簡単に移行できる新しい手法を提案しており、現在はこの手法が有力視されています。
それがStateless Clientという機能です。Stateless Clientでは、Ethereum1.xのアカウント情報、コントラクトコードなどのステートを、Ethereum 2.0にそのまま保管することなく、数学的な証明だけを保存する手法です。Ethereum2.0側でEthereum1.xのステートのマークルプループを検証する形になります。Stateless Clientは執筆時点でまだリサーチフェーズですが、これが上手くいけばEthereum2.0の内部にEthereum1.xの最新の状態を取り込み、ほとんど1つのブロックチェーンに統合できるとしています。

ステーキングの参加要件・報酬の仕組み・スラッシュ

次に、ユーザーがステーキングをし、バリデーターとして参加する要件について解説します。実際にはサードパーティサービスや取引所などが簡単にステーキングをできるサービスを展開することが考えられます。本節ではあくまでプロトコルとしてのステーキング参加要件や報酬の仕組みを解説します。

バリデーターになる要件

Ethereum2.0は、なるべく多くのノードがバリデートに参加できることを優先してデザインされており、ラップトップPCやラズベリーパイのようなシングルボードコンピューターでも運用ができる予定です。
1ノード32ETHをステーキングして、ラップトップの場合3~10スロット、ラズベリーパイで最大3スロット程度のノード運用できる見通しがされています。100スロット(3200ETHのステーキングなど)の場合は、専用サーバーなどの環境が推奨され、AWSなどで運用するようにことになります。
Ethereumのステーキングへの参加は他のブロックチェーンと比較してシンプルですが、それでも一般の人が自宅で環境を整備することには一定のハードルがあると言えるでしょう。この課題を踏まえてステーキングのためのライトクライアントなどもフェーズ2以降で提案される可能性もあります。
またすでに述べたように、フェーズ0でステーキングをしたユーザーは、しばらくの間そのETHを1.xチェーンに引き戻すことができません。恐らくフェーズ2のローンチまで時間がかかるはずであり、つまり1年半~2年の間(フェーズ2のローンチが遅れればそれ以上の期間)、1.xチェーンにETHを戻せない可能性を考慮してステーキングに参加する必要があると言えます。

PoS参加に対するETHの報酬、インフレーションレート

下記はPoSのステーキングに参加した場合どの程度の報酬を得られるかを表した図表です。
参照 https://github.com/ethereum/eth2.0-specs/pull/971
報酬の仕組みとしては、ステーキングされているETHの総量とリワード率(≠インフレ率)が反比例します。ネットワーク全体でステークされるETHの数が増えれば増えるほど、1バリデーターノードへのリワード率は減っていく仕様になっています。ノードの数が少ない時には報酬率が高く、ノードの参加を促す仕組みになっています。逆に十分にバリデーターノードが稼働している場合は報酬を減らして、ネットワークの新規トークンのインフレーションを抑える仕組みになっています。
関連レポート:各ブロックチェーンがステーキングに対するリワードをどのように決定しているか。ブロックチェーンにセキュリティを加えるためのコストの決定方法
https://hashhub-research.com/articles/2019-07-25-staking-rewards

バリデーターへのペナルティ・スラッシュ

Ethereum2.0ではバリデーターノードがオフラインになった場合、または悪意のある行動をした際に「スラッシュ」と呼ばれる罰則が設けられています。
これはノード運営者がある特定の行動をするとステーキングしたETHが没収される仕組みで、ノード運営者がノードを正しく運用し、ネットワークを安定させるためのプロトコルデザインです。具体的には2種類の罰則が設けられています。
・Inactivity leaks
バリデーターノードがオフラインになった場合に発生するペナルティです。一つの基準として18日間オフラインになった場合、最大でステークしているETHの60.8%がスラッシュされます。
・Slashing
バリデーターが二重署名などを試みたと判断された場合にもスラッシュがおきます。最低で1ETHの罰則ですが、ネットワーク内で複数のノードが同時に二重署名を起こした場合などは、より悪意がある行動とみなされ、スラッシュされるETHの量は比例して大きくなります。

Ethereum2.0の主要クライアント

Ethereum2.0のクライアントは複数開発されています。複数のクライアントを用意する理由は、例えば一つのクライアントにクリティカルなバグが発生したり、開発者コミュニティが停止してたりしても、他のノードクライアントは正常に稼働し続け開発が継続することを期待しているからです。いわゆる分散性の観点でもノードの実装が多数あることは望ましく、単一クライアントに含まれたバグがネットワークにとってクリティカルなものにならないことが以前から重視されています。
Ethereum2.0では様々なクライアントが別の言語実装で開発されています。リストは以下の通りです。

なお、いずれのクライアントもオープンソースであり営利企業としては収益に直接結びつかないプロジェクトです。各チームはEthereum FoundationやConsenSys、Gitcoinのグラントから助成金を受け取り開発しています。

クロスシャードトランザクションの懸念

Ethereum2.0のフェーズ2がローンチされたとしても、課題はまだ残されています。クロスシャードトランザクションです。つまり、異なるShard Chain間でのコミュニケーションをシームレスに行うことが難しくなるだろうと懸念されています。
すでに述べたように、各シャードの最新のステートはファイナリティを得るまでに約6分が必要です。つまりShard Chain:AがShard Chain:Bのステートとコミュニケーションをするたびに6分待つ必要があります。
最近のDeFi(分散型金融)のプロジェクトでは、スマートコントラクト同士が繋がり合って1つの動作の実行に3~5回のトランザクションを行うことなども珍しくありません。この際に、各スマートコントラクトがそれぞれ別のShard Chainに配備されていると、シームレスなアプリケーションの相互運用ができず、コミュニケーションは非同期になってしまいます。各シャードのコミュニケーションをシームレスにするための手法として、Shard Pairing、Shard Zones、Yankingなどの手法も提案されていますが、いずれもまだ研究開発フェーズです。
例えば、シャードAには各金融アプリケーションが集まり、その中であればアプリケーションはリアルタイムに同期ができます。シャードBにはゲーム系のアプリケーションが多く存在し、その中でリアルタイムに同期できるという具合です。この場合シャードBのゲーム系アプリケーションのアセットを、シャードAの金融系アプリケーションで売却することも可能ですが、非同期コミュニケーションとなり、トランザクションのファイナライズまでは時間を要します。
実際にEthereum2.0が公開される際に開発者やユーザーがどのような行動をするかは分かりませんが、このようにShard Chainごとにアプリケーションの性質が分かれるという可能性はあるでしょう。

同時進行で開発されるレイヤー2の技術「A rollup-centric ethereum roadmap」

また、Ethereumのスケーリングの改善提案はEthereum2.0だけではありません。レイヤー2による開発も同時に行われており、トランザクション性能を大幅に高めることが目論まれています。
2020年10月にEthereum創設者のVitalik Buterin氏が「A rollup-centric ethereum roadmap」という新しい提案を公開しました。RollupとはEthereumのレイヤー2の技術の1つであり、2020年の時点で実用化がはじまっています。
(参照: https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698
実用化しているRollupの1つであるOptimismは、Optimistic Virtual Machine (OVM)と呼ばれるバーチャルマシンで、EVMが実現できる状態遷移のほぼすべてを再現できるとしています。
関連レポート:スケーラビリティ技術の4分類 証明方法とデータの保管場所を軸に俯瞰する
https://hashhub-research.com/articles/2020-06-13-scalability-technology-4categories
関連レポート:Optimistic Rollupの仕組みとPlasmaとの類似点と違い
https://hashhub-research.com/articles/2020-01-25-optimistic-rollup
この現状から、Ethereumの開発もRollupを前提にするべきではないかという考えを示したものが「A rollup-centric ethereum roadmap」です。

Ethereum2.0はフェーズ2からスマートコントラクトが使用できるようにバーチャルマシンの実装を始めますが、バーチャルマシンとシャーディングを組み合わせる実装は難易度が高いとされています。このことから、バーチャルマシンを持たないがシャーディングだけは可能とされるEthereum 2.0のフェーズ1でRollupを使えば、レイヤー2上でバーチャルマシンを使えるのではないか、というのが提案の骨子です。つまり各シャードはデータの保存だけを行い、Beacon chainでファイナライズをして、コントラクトの実行をRollup上で行うというものです。
Vitalik Buterin氏は、Ethereumエコシステムは短期及び中期的にはRollupに全面的に取り組む可能性が高いと述べており、もし本格的にこのロードマップが稼働すると、Ethereum2.0はフェーズ2を必要とせずに実用化される可能性すらあります。氏は、フェーズ1のShard Chainがローンチされた時点でRollupを利用できるようになると、ユーザーはRollupの体験に適応し、フェーズ2のシャーディングとバーチャルマシンがローンチしたとしてもRollupだけで十分だったということもあり得ると述べています。
2020年11月時点の段階では、Ethereum 2.0はこのようなRollupを視野に入れた開発も検討しながらも、基本的にはフェーズ2までリリースするのが大きな方向性となります。しかしRollupを中心とした開発がうまくいった場合、Ethereum2.0は現在構想されているものとは異なる進化を遂げるかもしれません。

トランザクション手数料モデルの抜本的変更提案 EIP-1559

Ethereum2.0だけではなくEthereum1.xにも関わる点として、EIP-1559というトランザクション手数料モデルの抜本的変更提案があります。EIP1559はVitalik Buterin氏とEric Conner氏によって2019年4月に提案されました。
前提としてEthereumの現在の手数料モデルの課題を整理しましょう。
現在、Ethereumは使用するgasに対してETHをどの程度支払うかオークションモデルで決定しています。入札価格が高いトランザクションほど早くブロックに取り込まれるというシンプルなオークション形式です。
ユーザーは毎回トランザクションを実行する度に支払う手数料を変更することができます。使用しているウォレットによって、ユーザーが任意で細かく設定できたり、ウォレットプロバイダがアプリケーション側で最適な手数料を算出したりするなど、手数料支払いを決定するインターフェイスは様々です。
Ethereumの現在の手数料モデルの課題は、ユーザーがその都度最適な手数料モデルはなにかを確認しないといけないことや、需要によって大幅に上下しやすいためウォレットプロバイダが最適な手数料を自動計算しにくいことなどが挙げられます。EIP1559ではこれを解決します。
EIP1559に含まれる提案内容は大きく分けて2つあります。
  • BASE FEE (基本手数料)をベースにしたオークションモデルへの変更
  • BASE FEEで支払われたトランザクション手数料のバーン
まず、BASE FEEという概念を設定します。日本語で訳すと基本手数料というところでしょう。
プロトコルレベルでBASE FEEが設定され、これは1ブロックあたり800万のgasをターゲットにして常に変動します。例えば、あるブロックで900万gasが使われていた場合、次のブロックでのBASE FEEは上昇します。逆に、あるブロックで500万gasしか消費されていない場合、次のブロックのBASE FEEは減少します。しかし1ブロックあたりにBASE FEEは1/8しか増減しません。
ユーザーはトランザクションを実行する度にBASE FEEとプレミアム(premium)を支払うかどうかを選択できます。基本的にはあるブロック内に取り込まれているトランザクションはほとんどすべてBASE FEEのみの支払いのはずですが、混雑時には前ブロックと比較してBASE FEEが上がりやすい状況になり、ユーザーが確実にブロックに取り込まれるように僅かなプレミアムを支払うか、アンクルブロックのリスクを最小にするために同じく僅かなプレミアムを支払う場合があることを想定されています。
EIP1559では、あるブロック内で複数の人が異なるgas feeを支払うことがなくなります。
またgas価格の上下は今まで通り需要をベースとしながらも、BASE FEEは1ブロックあたりに1/8しか増減しません。つまりBASE FEEが倍になったり半分になったりするには8ブロックの経過が必要になります。そのため手数料の変化が今より緩やかになり、予測しやすくなるだろうと目論まれています。
また、これまで手数料は100%がブロック作成者の報酬でしたが、EIP1559ではプレミアムのみがマイナー(バリデーター)に支払われ、BASE FEEはネットワークからバーンされる設計になっています。
EIP1559の提案が注目されている理由は、手数料計算の方法だけでなく、ETHのバーンというネイティブトークンの将来価格に大きく関わってくるからでしょう。つまりEthereumネットワークが使用される量次第で、ETHがデフレーションする可能性もありということです。
EIP1559の概要は下記のレポートをご参照ください。
関連レポート:EIP1559の概要。ETHのトランザクション手数料モデル変更とETHの価値が長期的に上昇し続けることに繋がる提案
https://hashhub-research.com/articles/2019-10-24-eip1559-overview

Ethereum2.0がETHのマーケットに与える影響、アセットとしての性質変化

次にEthereum2.0がETHの価格にどのような影響を与えるかや、アセットとしてのETHの性質の変化について述べます。
EthereumやDeFi(分散型金融)などの情報を配信するニュースレターBanklessでは、「PoS移行後のETHは債券のような性質を持つアセットになる」という見解が述べられています。いままでも度々Bitcoinはデジタルゴールドと呼ばれ、ETHはスマートコントラクトプラットフォームの使用手数料という意味で石油であると表現されて来ました。そしてPoS移行後のETHには、債券のような性質が加えられると予想されています。
参照:https://bankless.substack.com/p/ether-the-birth-of-the-digital-bond
これまで通常、暗号資産はインカムゲインを得られないアセットでした。しかしETHはステーキングすれば利子のようにインカムゲインを得ることができます。また、サードパーティリスクがないことも特筆に値します。
現在でもBlockFiなどのレンディングサービスでBitcoinを貸し出したり、CompoundでETHを貸し出すことで利子は得られますが、これにはレンディングサービスのカウンターパーティーリスクを受け入れる必要があります。しかしETHをステーキングする際には、カウンターパーティーリスクはありません。PoS移行後も、ETHは引き続きコードのデプロイやトランザクションの実行に必要であるため、実際には石油的な性質と債券的な性質の両方を合わせもつことになるでしょう。
Stefan Coolican氏はETHのステーキングが始まり成熟を迎えるとそのステーキング比率は高まり、年間に生成されるETHが減少し希少性が高まると指摘しています。PoS移行後のEthereum2.0は、ネットワーク全体でステーキングされているETHの総量によってステーキング報酬が増減し、すなわちインフレーション率も変化します。より多くの参加者がステーキングした場合、報酬は減少する傾向になります。変化率は下記の図の通りです。
参照:https://bankless.substack.com/p/ether-the-birth-of-the-digital-bond
将来的に、ETHがネットワーク内で十分にステーキングされるとステーキング報酬は2.1%程度になり、ネットワーク全体でのインフレーション率は1.5%以下になります。1.5%のインフレーション率とは、金やBitcoinよりも年間で採掘される量が少ないということです。
参照:https://bankless.substack.com/p/ether-the-birth-of-the-digital-bond
マーケットに与える影響として、インフレーションしたETHはステーキングしているETH保有者のみに分配されます。ステーキングされているとはすなわちマーケットで売却されないということであり、市場で売られにくいアセットになる可能性があります。

総論

本レポートでは、Ethereum2.0について2020年11月時点で明らかになっていることを幅広く解説しました。
レポート全文を読まれた方は、EthereumのPoSへの移行はどのように行われるかについておおよその理解ができたのではないでしょうか。とはいえレポート中で示した通り、フェーズ2から先はまだ不透明な点も多い状態です。フェーズ1、フェーズ2の実施もまだ先の話であり、これから仕様変更やローンチの遅れが発生する可能性も十分にあります。
しかしながらEthereum 2.0がフェーズ2まで完了をした際のスケーラビリティやeWASMは、これまでのパブリックブロックチェーンから大きく異なる可能性を持っているとも考えられるでしょう。

参照リンク