【レッスン⑦】マルチクライアントステーキングとは

なぜこのレッスンが必要なのか

イーサリアムのコア開発者でない場合、イーサリアムに携わるにはステーキングを行うのが一般的です。本レッスンでは、マルチクライアントを通したステーキングについて学習していきます。イーサリアムのセキュリティを高めるためにマルチクライアントは重要な役割を果たします。

このレッスンで学べること

  • イーサリアム2.0のステーキング
  • マルチクライアントステーキング

目次を表示する

イーサリアム2.0にステーキングする方法

レッスン5で学んだ通り、イーサリアム2.0のバリデータになるには32ETHをネットワークに預ける必要があります。

ネットワークにETHなどの暗号資産を預けることをステーキングといい、PoSを正常に稼働させるために欠かせない仕組みです。


ステーキングをするにはクライアントを使用します。

イーサリアムのクライアントにはいくつかの種類が存在しますが、複数のクライアントを使用することが推奨されています。


これをマルチクライアントといい、ネットワークの分散性を高めることに貢献できるだけでなく、万が一特定のクライアントに不具合が発生した場合でも、他のクライアントがバックアップとしての役割を果たしてくれるのです。


実際にステーキングを行う際は、イーサリアム公式のStaking LaunchpadバックエンドAPIを使用するか、外部のステーキングプールを利用します。

具体的なステーキングの方法については次のレッスンで詳しく学習しましょう。


イーサリアム2.0では、バリデータになるために32ETHが必要になりますが、非常に高額になるため32ETHを用意できない人はたくさんいます。


そこで、少額からでもステーキングできるよう外部の企業がステーキングプールと呼ばれる仲介サービスを提供するようになりました。

これは、PoWにおけるマイニングプールと同じ役割を持つ仕組みだといえるでしょう。


バリデータになるには32ETHが必要ですが、ステーキングを行うだけであれば32ETHよりも少額から可能です。

なお、外部のステーキングプールを使用する場合、どのサービスを使用するかはステーキングリワードや鍵の所有方式、最低ステーク額、手数料などを参考に判断します。

いずれもイーサリアム公認ではない点に注意してください。


レッスン進捗の確認

レッスンの内容を理解したら、
「チェック」ボタンをクリックしましょう!

マルチクライアントステーキング

レッスン6で学んだ通り、2021年4月時点でイーサリアム2.0におけるクライアントは主に次のようなものがあげられます。

  • Prysm(Go実装)
  • Trinity(Python実装)
  • Lighthouse(Rust実装)
  • Nimbus(Nim実装)
  • Cortex(.NET実装)
  • Teku(Java実装)
  • Lodestar(JavaScript実装)


様々なプログラミング言語に対応しており、中でもTrinity」「Lighthouse」「Nimbus」「Prysmの4つのクライアントが主要クライアントとしてイーサリアムネットワークを支えています。


1つずつ簡単に見ていきましょう。


Prysm(Go実装)

Prysmは、プログラミング言語Goで実装されたクライアントです。

イーサリアム2.0のフルノードを備えており、ネットワークのコンセンサスに参加するための検証用クライアントが用意されています。


ライブラリにはGoogleのgRPCを、データベースにはKeyValue型のBoltDB、通信プロトコルにはProtocol Labsのlibp2pをそれぞれ採用しています。


Prysmはこちら:https://prysmaticlabs.com/


Trinity(Python実装)

Trinityは、プログラミング言語Pythonで実装されたクライアントです。

Prysmと同様、イーサリアム2.0のフルノードを備えているものの、2021年4月時点ではα版の提供となっており、ミッションクリティカルな場面での使用には適していません。


TrinityはEth1チェーンとEth2チェーンの両方に対応しています。


Trinityはこちら:https://trinity.ethereum.org/


Lighthouse(Rust実装)

Lighthouseは、プログラミング言語Rustで実装されたクライアントです。

処理速度とセキュリティを重視したイーサリアム2.0クライアントであり、Apache2.0でライセンスされています。


Lighthouseはこちら:https://lighthouse.sigmaprime.io/


Nimbus(Nim実装)

Nimbusは、プログラミング言語Nimで実装されたクライアントです。

Eth1チェーンとEth2チェーンの両方に対応している点や、フルノードではなくライトノードとして動かすことができる点が特徴になります。


Nimbusであれば、スマートフォンやラズベリーパイなどでイーサリアムネットワークに参加することが可能です。


Nimbusはこちら:https://nimbus.team/



クライアントを選択する場合は、基本的にはどのプログラミング言語に対応しているかを確認することから始めます。

いずれもオープンソースであるは前提となるため、用意されているドキュメントを読み込みGitHubを確認してください。


GitHubは開発者のためのツールになりますが、評価されているスターの数が一定の選定基準にはなります。


なお、Eth1クライアントとEth2クライアントは異なる点に注意が必要です。

Eth1チェーンに対応しているクライアントの中には、Eth2チェーンに対応していないクライアントが複数存在するため、そのクライアントがEth2チェーンに対応しているかどうかは必ず確認するようにしましょう。


基本的には、本レッスンで学んだクライアントを選択すれば問題ありません。


レッスン進捗の確認

レッスンの内容を理解したら、
「チェック」ボタンをクリックしましょう!

【レッスン⑦】 マルチクライアントステーキングとは

0%

0%

全てのレッスンが完了していません 全て完了にしてからテストを行いましょう!

下のボタンを押すとテストが始まります。