プッシュ通知

Ethereum 2.0 (Serenity)とは?

*本レポートでは、あくまでEthereum 2.0(Serenity)のOverviewレベルでの全体像を把握する事を目的としています。

少し前になりますが、昨年2018年の11月頃に、イーサリアムの開発者向けに行われる最大級規模のカンファレンスである「Devcon 4」が行われました。

このカンファレンスで、Ethereumの4段階の開発フェーズの内の最終開発フェーズであるSerenityの開発ロードマップが発表されました。

Ethereumの開発は当初からFrontier、Homested、Metropolis、Serenityの4段階が計画されており、2019/03/01にMetropolisの2段階目のアップデートであるコンスタンティノープルのアップデートも無事完了しました。(*2019/4/21現在)

今回は、「Devcon 4」で発表されたEthereumの4段階目の最終フェーズであるSerenityについての概要と開発ロードマップについて解説していきます。

Devcon当日の発表資料(全体)

https://slideslive.com/ethereum/devcon4-main-hall

VitalikによるEthereum 2.0(Serenity)についての発表資料

https://slideslive.com/38911602/latest-of-ethereum

Ethereum 2.0 (Serenity)の背景と目的

Ethereumは元々”World Computer”という、様々なアプリケーションや金融分野サービスなどでの大規模なトランザクションを捌ける広く分散されたネットワークをコンセプトとしています。

Ethereumは現在Proof of Workをコンセンサスとして用いており、平均15 TPS (Transaction per Second)と現在世界の決済ネットワークであるVISAの2000TPSを大きく下回っています。

文字通りEthereumが“World Computer”を実現するためには、”World Computer”と呼ばれるにふさわしいまで大規模なトランザクションを捌けるようになるまでスケールさせなければなりません。Ethereum 2.0 (Serenity)は主に、このスケーリングに重点を当てたアップデート内容となっています。

Ethereum 2.0 (Serenity)の全体像

まずはDevcon 4でのVitalikのプレゼンからEthereum 2.0(Serenity)の概要について把握していきましょう。

Vitalikはプレゼンテーションの中でEthereum 2.0(Serenity)の概要についてこのように説明しています。

“Arealization of Casper (pure proof of stake), sharding, EWASM and other ideas from protocol research between 2014-2018.”

日本語訳としては

“(Serenity)は、Casper(純粋なproof of stakeのコンセンサスアルゴリズム)、sharding、EWASMやその他の2014年から2018年にかけて行なったプロトコルリサーチのアイデアを実現したもの”という意味になります。

また、次のスライドで以下のようにも説明しています。

”A new blockchain, though with a link to the existing PoW chain”

“Serenityは新しいブロックチェーンだが、現存のPoWのイーサリアムブロックチェーンとの接続を持っている”という意味になります。

この2つをまとめると、Ethereum 2.0(Serenity)とはつまるところ”既存のPoWイーサリアムブロックチェーンと接続を持っており(片道か双方向かは議論中。長所と欠点はこちら)、尚且つCasper(純粋なPoSのコンセンサスアルゴリズム)、sharding、EWASMなどのアイデアも同時に実現されている新しいブロックチェーン”といった風にまとめられます。

また、こちらのState of The state of Ethereum2.0でも、Ethereum 2.0の主な概要として、以下のように書かれています。

Ethereum 2.0” refers to a set of specifications that will dramatically improve the performance characteristics of the Ethereum blockchain. As of this writing, it does so by merging and improving upon research from two older specifications: “Casper,” which introduces a proof-of-stake consensus mechanism, and “sharding,” which introduces the splitting of transactions across a number of “shards” secured by the main chain.

 

These specs confer the following benefits to Ethereum users:

  1. Proof-of-stake removes the need to invest in equipment and burn electricity to secure the chain. Furthermore, it improves Ethereum’s finality characteristics by making certain types of 51% attacks dramatically more expensive and reducing reliance upon mining cartels to secure the chain.
  2. Sharding improves the Ethereum network’s maximum transactions per second by orders of magnitude.

つまり、Ethereum 2.0は以下のアップデートがメインテーマであるという事になります。

  1. PoWからPoSへの移行(Casper)
  2. イーサリアムネットワークのTPSの大幅な向上(Sharding)

まとめると、この”Casper”と”Sharding”の2つの統合の実装によってパフォーマンスが大幅に向上したイーサリアムブロックチェーンがEthereum 2.0(Serenity)という事になります。

今回の記事では、上記でも触れらている、Ethereum 2.0(Serenity)のメインアップデートとなるCasperとShardingなどの技術の目的と概要、そしてそれぞれのロードマップについて解説していきます。

PoS (Casper)

まず、Casperについてです。

Casperとは、イーサリアムがPoWからPoSへとコンセンサスを移行する際に新しく実装される独自のコンセンサスアルゴリズムです。

PoWのコンセンサスでは、世界中の電力を大量に消費してる事や、下の写真のように、主要なマイニングプール数社による寡占が問題となっています。

Source : https://etherscan.io/stat/miner?range=7&blocktype=blocks

イーサリアムはこれらの問題を抱えるPoWからPoSへのコンセンサスの移行を計画していますが、PoSも同時にいくつかの課題を抱えています。

Nothing at stake問題

PoWのコンセンサスでは、マイナーは多大な電力コストを消費してブロックの作成を行います。そのため、分岐して不正なチェーンを作ろうとすると、正しいチェーンよりも大きなコストがかかってしまいます。つまり、不正なチェーンを分岐しようとして正しいチェーンに負けた場合、電力コストが全て無駄になってしまいます。(下の写真の場合、赤い不正なブロックにかけたコストが無駄になってしまいます。)

このため、PoWでは不正なブロックを作成するインセンティブが抑えられています。

一方で、イーサリアムのPoSのコンセンサスではブロック生成に対するリワードはなく、トランザクションの手数料のみになります。

なのでブロック作成にはPoWのように多大な電力コストを必要とする訳ではありません。

言い換えると、イーサリアムのPoSでは、不正なチェーンを作成するインセンティブが抑えられていません。

この問題がNothing at stake問題であり、Casperは主にこのような問題に対応するためアプローチとなっています。

少し紛らわしいのですが、CasperはPOSの独自プロトコルの事を指しますが、開発者の違いによって2つの異なるデザインが提案されていました。

① Casper FFG (Friendly Finality Gadget)

参考 : https://www.youtube.com/watch?v=rl63S6kCKbA

② Casper CBC (Correct by Construction)

参考 : https://www.youtube.com/watch?time_continue=5&v=EoNQUGsPvuU

Tutorial : https://vitalik.ca/general/2018/12/05/cbc_casper.html

Casper FFG (Friendly Finality Gadget)

①のCasper FFGは、Vitalikによって提案されたCasperの仕様で、これはPoWとPoSのハイブリッド型のコンセンサスアルゴリズムになっています。

Casper FFGがPoWとPoSのハイブリッド型のコンセンサスアルゴリズムであるというのは、ブロック作成では従来通りPoWを用いてマイニングが行われますが、Casper FFGでは100ブロック毎に「チェックポイント」が存在します。

掛け金をデポジットしているバリデーター達は、この「チェックポイント」に存在するブロックチェーンは本当に正当な(不正ではない)チェーンなのか?という投票を行います。正当なチェーンだと思った場合は投票を行い、そうでない場合は投票はしません。

その後、他のノード達によって結果が検証され、正しい投票をしたバリデーターには報酬が、そうでないバリデーターには罰金(デポジットしてある掛け金の没収)が課されます。

また、不正を発見できたユーザーには「発見料」というような形で報酬が与えられるため、正当な事実確認をするインセンティブも同時に発生します。

Casperで用いられているこのような懲罰の仕組みをSlasherと言います。

PoWでは、不正を働くと電力コストが無駄になってしまうのと同様に、CasperのSlasherでは「不正を行うと掛け金が没収されてしまう仕組み」を採用してPoSのNothing at stake問題を解決しようとしています。

後ほど詳しく説明しますが、実はこのCasper FFGは当初は先日2018/03/01日本時間に行われたイーサリアムの3段階目のアップデートであるコンスタンティノープルで実装される予定でしたが、様々な理由から今Casper FFGを実装するのは取りやめになりました。

新たなCasperのアップデートはCasper V2としてSerenityでアップデートされる予定です。

Casper CBC (Correct by Construction)

②のCasper CBCはVlad Zamfirによって提案されたCasperの仕様です。Casper CBCは”Correct by Construction”(構造による正しさ)と言う通り、合意形成プロトコルを導き出すアプローチになります。プロトコル上の規定のアップデートによりPoSへの移行を目指すイメージです。

このCasper CBCによるプロトコルのアップデートでは、100%純粋なPoSへのコンセンサスアルゴリズムの移行を目指しています。

Vitalikの当日のスライドでもあるように、”Post” - Serenity innovation(Serenity後の段階)として、Casper CBCのアップデートでPoSプロトコルの改善を行う予定としています。

Ethereum 3.0のドキュメントにも同様の記載があります。

Sharding

続いてはShardingについてです。イーサリアムブロックチェーンでは、「State(状態)」という概念が存在します。このStateを変える作業として、現状はネットワークを構成する全てのノードが全てのトランザクションを検証しなければなりません。

例えば1,000のノードが存在する場合で、100件のトランザクションが生成された時には理論上、1,000の各ノードはそれぞれ100回ずつ検証作業を行う必要があるという事になります。

Shardingは、この存在するノード群を分担してグループに分け、トランザクションの承認作業を並列化する事でトランザクションの検証をより効率的に行う事を目指しています。

blockgeeksより

具体的にどういう事かというと、上記の例の場合、1,000のノードを50ノードずつの20グループに分けます。この例の場合、1つのグループ(50ノード)は5回(100件/20グループ)の検証作業だけで済む事になります。

従来では100回分の検証作業が必要だったのに対し、Shardingの導入により5回の検証作業に大幅に削減されます

このようにShardingはブロックチェーン上のストレージを分割し、トランザクションの並行処理が可能になるため、トランザクションの処理能力の大幅な向上が見込まれています。

現状1024個のShardsに分けることが想定されているようです。

また元々Shardingとはデータベースの用語で、下の写真のようにデータを複数のサーバーに分散して管理する「分散データベース」に由来しています。Shardingは元々イーサリアムの独自技術というわけではありません。

CasperとShardingの統合

ShardingとCasperについては別々のチーム間でのR&Dが進められており、元々は別々での実装が予定されていました。

しかし、元々のCasper (FFG)の想定では、Validatorは最低1500ETH(約2200万円 *2018/03のレート)をデポジットする必要があり、これがネットワークの「中央集権化」を招くとされた背景があります。

また、研究の結果から、メインチェーンとShardチェーンの間にビーコンチェーンを挟み、CasperとShardingを統合したアップデートの実装を決定しました。

ビーコンチェーンとは、このPoSチェーンのメインチェーンで、Shardingのベースレイヤーでもあります。

ShardingとCasperを統合したこの統一的なアプローチで、最少で32ETHのステーキングでバリデーターになることが可能になる事がわかりました。これはCasper FFGで想定されていたデポジット額の1500ETHに比べても大幅に低く抑えられ、非常に分散化されたネットワークを実現できるようになる事が予想されたため、当初に予定されていたCasper FFGは廃止して新たにShardingとCasperを統合したアップデートであるCasper V2(Shasper)のアップデートに変更がなされました。

SerenityではこのShardingとCasper(PoS)を統合したアップデートであるCasper V2(Shasper)の実装によってスケーラビリティの改善を見込んでいます。

Casper V2の仕様の詳細については、こちらをご確認ください。

Ethereum 2.0 (Serenity)の構造

CasperとShardingの統合を予定しているEthereum 2.0 (Serenity)ですが、構造を把握するにはこちらのHsiao - Wei Wang氏のプレゼン資料がとても参考になります。

https://slideslive.com/38911682/sharding-implementation-updates-4q2018-implementing-ethereum-20-today より

現行のPoWのEthereum1.xに対して、Full Proof of StakeとRandom Number Generatorを行うBeacon Chain、そしてShardingを行うShard Chains、そして現行のPoWを採用しているEthereum 1.xという3つのチェーンから構成されているのがSerenityの全体像という事になります。

ステーキングの仕組みとしては、まず現行のPoW Main Chainから32ETHをステークします。バリデーターはステークされたユーザーの中から抽選で選ばれますが、その乱数作成やETHのステークをこのBeacon Chainで扱います。

Shard Chainではトランザクションやアカウントデータの処理を複数のブロックチェーンに分散させることで負荷を軽減させています。

各Shard ChainはBeacon ChainにCross Link(クロスリンク)という仕組みで繋がっており、同期されます。

概略を把握するには、こちらの画像が分かりやすいです。

What you can do for Ethereum 2.0 a.k.a. shardingより

Ethereum2.0 (Serenity)の開発ロードマップ

Devcon 4では、Vitalikからロードマップについての発表もありました。

ロードマップとしては、主に4つのフェーズがあります。

  • Phase 0 : beacon chain PoS
  • Phase 1 : shard as data chains
  • Phase 2 : enable state transition (EWASM)
  • Phase 3 and beyond : iterate, improve, add tech

Phase 0では、Beacon Chainの導入が予定されています。Phase 0ではこのBeacon Chainはいわばダミーのようなチェーンを想定しており、ブロックチェーン上にデータなどは記録されません。Validatorの登録とValidationの実行機能のみが実装される予定です。

つまり、実際に32ETHをステーキングしてValidatorになり、リワードを得る事ができますが、Validatorの登録機能以外は何もないので、アプリケーション等も何もない状態です。

Phase 1では、Shardingが一部導入される予定です。一部というのは、上記でも説明したようにイーサリアムブロックチェーンはState(状態)の概念が存在します。Phase 1ではState(状態)の推移まではShardingを行うわけではなく、あくまでブロックチェーン上のデータのみShardingで管理します。この段階ではデータはShardingで管理されるため、スケーラビリティの向上は見込まれますが、State(状態)の推移は組み込まれていません。もしこの段階でアプリケーションを作りたいDappsの開発者は、独自にState(状態)の推移機能を組み込まなければなりません。

Phase 2では、State transition(状態の推移)が実装されるようになります。VMの実装や、コントラクト機能、アカウント、Etherの移動などが可能になる予定です。

Phase 3以降はSerenityの後のワールドコンピューターに向けたプライバシーなどの機能を含む引き続きのアップデートというような認識でしょう。

これらのアップデートによって、Vitalikは以下のような特徴が期待されるとしています。

  • Pure PoS consensus(純粋なPoSコンセンサス)
  • Faster time to synchronous confirmation(同期確認にかかる時間の短縮 / 8-16秒)
  • ”Economic Finality”(経済的フィナリティ / 10-20分)
  • Fast VM excecution via EWASM(EWASMを通したより早いVMの実行)
  • 〜1000x higher scalability(最大で1000倍のスケーラビリティの向上)

ここまでがEtherum 2.0(Serenity)の概要とロードマップになります。

最後に、Ethereumでは毎週Ethereum 2.0の開発の進捗も公開されているので、ぜひご興味のある方はこちらのGithubページからも確認ください。

  • フェーズ0:シャード未実装のビーコン・チェーン
  • フェーズ1:EVM未実装の基本的なシャーディング
  • フェーズ2:EVMのステート(状態)推移機能
  • フェーズ3:軽量クライエントステート(状態)のプロトコル
  • フェーズ4:クロスシャード間のトランザクション
  • フェーズ5:チェーンのセキュリティ強化
  • フェーズ6:指数関数的シャーディング

Sharding roadmapより

(*現在2018/03時点ではPhase 0 : PoS beacon chain without shardsに取り掛かっている段階です。)

Ethereum 2.0(最初のフェーズ)でのStakingの概要と必要なこと

みなさまこれについて興味あるかと思いますので言及します。

なおここに書いてあるものは検討中のものであり、実際にメインネットが出る際には仕様が変わっている恐れが十分に存在します。

ノードについて

ノードとしてはBeacon NodeとValidator Nodeがあります。調べてもどっちが必要とかはありませんでしたがETHHubの見解によると、おそらくどちらも必要になりそうです。

それぞれ位置付けとしては

Beacon Node:これまでのgeth/Parityみたいなもの

Validator Node:軽量 スマホでも実行できるくらい(と中の人はDevconでちらっと聞いた記憶)

ちなみに必要なストレージや帯域幅などの仕様の詳細はまだ全然決まってない模様です。

Stakingに使用するのはValidatorノードです。このノードは32ETHDepositすることによって作成できます。ちなみにPoSだからと言ってこれ以上Depositしても何も変わりません。つまりより多くStakingしたい場合はたくさんノードを建てまくらなくてはいけません。(築城合戦!)ノードたてまくるインセンティブが存在するので、Shardingによってよりスケーラブルになりそうですね。(たくさんのShardを作れることになるので。

また、Validator Nodeをたくさん建てても、Beacon Nodeもそれと同時にたくさん建てなくてはいけないってことはなく、あくまでもBeacon Nodeは一つでいいそうです。

Validatorには必ずOnelineになることが求められます。もしダウンした場合ペナルティーを食らう仕様になります。1日ごとにもらうはずだったパーセンテージの分だけマイナスされていきます。また、一つのShardのなかで33%以上がオフラインになっている(=ブロックが生成できない)状況下でオフラインになった場合、最大18日間で60%ものETHが罰金として没収される恐れがあります。ちなみに16ETH以下になった場合Validatorの資格はなくなり強制退場となります。

Stakingしている間はもちろんETHを引き出せません。引き出す場合、18時間の拘束期間があります。

リスクとしては上のオフラインリスクの他にも、ハッキングリスクやコードリスクなど様々なリスクが存在します。(ある程度厳格な運用が求められます。)

報酬について

現状最初にETH2.0に移行した段階(おそらく片道切符で新しいチェーンに移せる状況)でどれだけBETH(Beaconchain Ether)が得られるのかについてです。これについては現状議論中ですが、4/19日にVitalikがコミュティーからのフィールドバックに基づき新しい報酬案を出しました。元々の案よりは多くなってます。

ETH validating Max annual issuance Max annual return rate
1,000,000 181,019 18.10%
3,000,000 313,534 10.45%
10,000,000 572,433 5.72%
30,000,000 991,483 3.30%
100,000,000 1,810,193 1.81%
134,217,728 2,097,152 1.56%

 

https://github.com/ethereum/eth2.0-specs/pull/971より

仮に全てのETHがBETHになったら年間インフレが1.56%ってことですね。これプラス取引手数料が入ります。(現在年間219000ETHらしいですがもちろん変動するし、特に最初のうちはEthereum 2.0のチェーンでどれくらい発生するかは謎です。)

運営者情報

様々な知見をお持ちの方々に、ハイクォリティな記事を書いていただくメディアサイト

Twitter:@Stir_Lab

 

運営元

 

Twitterでフォローしよう

おすすめの記事