【保存版】本当は難しくない?シャーディングってなんだろう。
こんにちは、 CryptoGamesの高橋です。
TCGVerseの会社です。
今回は、こちらの動画を元に、シャーディングについて解説していきます。
ETH2からの解説になりますので、もしシャーディングについてだけで良いという場合には、第9章から見てみてください。
1 Ethereum2.0(ETH2)の目的
ETH2.0の目的は次の3つです。
① スケーリング(容量を大きくし、速度遅延、ガス代問題に対応)
② セキュリティ向上
③ 持続可能性
では、この目的を一つずつ見ていきましょう。
2 目的1 スケーラビリティ
現在のイーサリアムの処理速度は1秒あたり15トランザクションです。15TPSとも言います。(Transactions Per Second)
これを1,000TPSに上げるのが目的です。
あれ?100,000TPSじゃかなったっけ?と思った方、いい点だと思います。
後ほど出てきますが、ETH2と「ロールアップ」を組み合わせることで100,000TPSを目指しています。
3 目的2 セキュリティ向上
現在、マイニングの方法(ブロックの作り方)としてPoW(プルーフオブワーク)という方式を採用しています。
ちなみに、どのようにブロックを作るかということを「コンセンサスモデル」と言います。
計算によって、一番早く答えを導き出したマイナー(計算してブロックを作る人)がブロックを作ることができます。
この計算速度について全体の過半数(51%)を支配してしまった場合、不正にブロックを作ることができるようになってしまいます。
現在、この脅威が内在しています。
4 目的3 持続可能性
現在のPoW(プルーフオブワーク)というコンセンサスモデルは大量の計算が必要になります。
大量の計算を行うために、大量の電力が消費されています。
このコンセンサスモデルをPoS(プルーフオブステーク)に変えることで、電力消費を抑制します。
5 セレニティとは?(=ETH2)
これらの一連の変更は「セレニティ」と呼ばれています。名前を聞いたことがある方も多いかもしれません。
ただ、別名がEthereum2.0、ETH2であり、この名前で多く呼ばれるようになりました。
ちなみにこれらの3つはローンチ前から議論されていました。
6 コンセンサスモデルの変更(PoW⇨PoS)
現在のPoW(プルーフオブワーク)は競争によってブロックを作成します。
そのため、計算をする人であるマイナーや大量の電力が必要となります。
PoSではブロックを作るのはマイナーではなく、バリデータ(トランザクションの検証者)になります。
ETHを預ける量であるステーキング量と期間に応じてブロック生成率が変わります。
7 PoSの不正防止メカニズム(スラッシング)
まず、バリデータになるためには一定量のETHを預ける(ステーキングする)必要がありました。
万一、51%攻撃の実行に関与した場合、この預けたETHの一部が失われてしまうメカニズムが組まれています。
このメカニズムをスラッシングと言います。
8 PoSによる3つの効果
第6章の電力消費の削減による持続可能性、第7章での不正防止メカニズムによるセキュリティの向上について見てきました。
では、PoSによるスケーラビリティについても見ていきましょう。
こちらはPoSによる
① 51%攻撃のリスクの削減
② ノードに求められる性能の低下(計算が必要なくなる)
の帰結として、シャーディングを実装できるというところにつながります。
では、シャーディングについて見てみましょう。
9 シャーディングとは
シャーディングはもともとブロックチェーンの用語ではなく、データサイエンスにおける用語です。
データベースを小さく分割したものを「シャード」と呼び、このようにデータベースを複数のデータセットに分割することを「シャーディング」と呼びます。
10 ETH2におけるシャーディングとは?
ETH2におけるシャーディングも全く同じで、チェーンを分割することです。これだけだと思います。
ちなみに64個のチェーンに分割します。
11 シャーディングの効果
シャーディングによってチェーンが分割されたため、それぞれのノードが扱うデータが小さくなります。
これにより、こんな効果があります。
① 扱うデータが小さくなる
② ノードは高性能でなくても大丈夫
③ 多くの人が参加できる
④ ③で分散化が進むので、不正をしにくくなる
12 ETH2におけるシャーディングの特徴
このシャーディングのチェーンにおける大きな特徴が
① トランザクション
② スマートコントラクト
を処理しないということです。
13 なぜシャードチェーンではトランザクションを実行しないの?
なぜ、シャードチェーンでトランザクションやスマートコントラクトの処理を行わないのか。
それは「ロールアップ」があるため、行う必要がないからです。
詳しくはこちらをご確認ください。
簡単には、メインのチェーンの外である、レイヤ2と呼ばれる場所でトランザクションを実施し、メインチェーンにデータを書き込みます。
この手法があるからこそ、あえて、メインチェーンでトランザクションを実行する必要がないのです。
このように、シャーディングとロールアップを組み合わせることで、100,000TPSが可能になります。
そのため、シャーディングがどこまでできるようになるかは議論が分かれています。
今回は、以上になります。
またどこかの機会で、ビーコンチェーンなどについても触れたいと思います。