ジャバ・ザ・ハットリ
Published on

イーサリアム2.0のシャードチェーンの解説

Authors
  • avatar
    ジャバ・ザ・ハットリ

今年から来年にかけて次々にリリースされる予定のイーサリアム 2.0 の技術と内容を理解しておくことは、次世代ブロックチェーンの方向性を把握する上で欠かせない。それぞれキーになる技術があって、全てはある日にドカっとリリースされるのではなく、ジワーっと徐々にリリースされる。

イーサリアム 2.0 のリリース計画やロードマップはちょくちょく変わる。リリース時期が変更になったとしても 2.0 の機能の中で最も目立っていて、人々の期待を集めているのはシャードチェーンだろう。シャードチェーンの詳細を調べていくうちに「これは美しいデザインだなー」と感心したので、ブログに書いた。

どんな初心者の方にも分かりやすく、かつ技術的理解が深まる説明にしました。

image
もくじ

現状のイーサリアムの課題

現状のイーサリアムはその人気からネットワークが巨大化し、トランザクションの処理にコストがかかりすぎてしまっている。よく言われる「ガス代が高い」というやつ。値段だけじゃなく時間もかかる。

どんなブロックチェーンでもその正当性を確保するためにネットワークに無数に存在するノードが検証している。ただ全てのノードが全てのトランザクションを検証していたのでは時間とコストがかかってしまう。これが現在のイーサリアムがかかえている問題になっている。

例えて言えば、学校の生徒全員が提出した宿題をその学校の先生全員で何回もチェックしている状態。

image

シャーディングの基本

シャーディングとは大ざっぱに言えばタスクを分けて、ぞれぞれのノードが並列で処理すること。先程の学校の宿題の例で言えば、算数の宿題は算数の先生が、物理の宿題は物理の先生が、音楽の宿題は音楽の先生がチェックする仕組み。こうすることで原理的には高速での並列処理が可能になる。

image

シャーディングの問題点

そのままシンプルにシャーディングを実装してしまうと仮に処理が速くなったとしても、セキュリティが極端にもろくなる。よく言われる 51%攻撃の格好の的になる。

51%攻撃とはそのネットワーク全体の処理能力の 51%以上のパワーでもって攻撃すること。

あなたがお城の主だったとする。敵から身を守るためにお城の周りにデカい城壁を作りました、と。その城壁を打ち破るには敵の兵隊が 51 人全員で攻撃してこないと破ることはできない。

image

ある日、あなたはシャーディングを思いついて、お城を 50 箇所に分けた。当然、そのお城の城壁も 1/50 になった。そうなると敵からすると 1 人か2人だけ居れば余裕で攻撃できる城になったことを意味する。

image

シャーディングのセキュリティ面の弱点はまさにこれ。単純に分けただけだと、セキュリティがもろくなり過ぎてブロックチェーンとして機能しなくなる。


イーサリアム 2.0 のシャーディング

セキュリティをがっちり守ったイーサリアムのシャーディングの例。

正当性を評価するバリデータ・ノードが 10000 個あるとする。評価しなければならないブロックが 100 個。全てのバリデーションノードは単体だけで次のブロックセットが出る前に 100 ブロックを全部評価する処理能力は持っていない。

イーサリアムはバリデータ・ノードをランダムにシャッフルしたシャッフルリストを作る。そこから最初の 100 バリデータを抜き出し、1 つ目のブロックの検証に割り当てる。次の 100 バリデータを 2 つ目のブロック検証へと割り当て、それを繰り返す。

各バリデータは検証が正常に終わったら署名を発行する。100 ブロック ×100 バリデータの署名なので全部で 10000 個の署名ができあがる。原理的に 10000 個の署名の確認は 100 ブロックの検証よりもかなり少ないコンピュータパワーしか必要としない。

これが高速かつセキュアーにトランザクションが処理されるシャーディングの仕組み。

image

なぜセキュアなのか?

これがなぜセキュアなのか、は自分で攻撃してやろうと考えるとよく分かる。

あなたはイーサリアムを攻撃してひと儲けしようと考えている。しかも最近シャーディングなるものがリリースされて、検証するべきブロックが  100 分割された。今までは 51%攻撃のためにたくさんのコンピュータパワーが必要だったが、今ではその 1/100 で済みそうだ、と。

それで悪さをするバリデーション・ノードを 60 個ほど仕込んであなたもイーサリアムのプラットフォームに参加した。「よし!これで大金が手に入る!」と思ったのになんかおかしい。

せっかく 60 個も用意したバリデーション・ノードは毎回シャフルされて、シャッフルリストに載せられ、ブロック検証する際には 100 個集められた正常ノード達の中のひとつになってしまっている。1 対 99 では勝ち目は無い。自分の 60 個のノードがぐっと1箇所に集まって共同で検証作業をしてくれれば 60 対 40 となり、こちらの意のままなのに。シャッフルされるからそれができない!

となる。

これがシャーディングをしても、51%攻撃への耐性が劣化しない原理。

image

(本当のイーサリアムのシャーディングはもっと凝ってるので、分かりやすく説明するために省いた部分がめっちゃあります)


まとめ

シャーディングが本格的にリリースされるのは早くても 2022 年、遅ければ 2023 年以降になる。この技術はブロックチェーンの未来を見ている人にとって大きな意味を持つ。

これからのイーサリアムがどうなるのか?はテクノロジー次第だからだ。「値段は上がりますか?下がりますか?」そんな質問だけでは絶対に分からないだろう。

特に YouTube が顕著なのだが、ブロックチェーン技術の説明があまりにも雑で「技術文化が育たないのでは」と危惧している。シャードチェーンにしても「分けて処理することです」で終わると、この技術の最も美しい部分である「それでもセキュリティを損なわない理由」がまったく分からないままになる。

過剰な技術用語を使うことなく、誰にでも分かる容易な説明でかつ技術的ポイントをおさえたブログを目指している。

イーサリアムを始めとする今のブロックチェーン業界には世界有数の頭のいい人達が集まっている。彼らから出てくるアイデアや実装方法を調べていくと、とにかく刺激的で面白い。このブログでは「仮想通貨を売買して儲けるのもいいけど、技術に目を向けるとその何倍も面白いですよ」というのを発信したい。

これからも暗号通貨とブロックチェーンについていろいろとブログを書くつもりです。ツイッターでも情報発信してます。ぜひフォローしてください。

ジャバ・ザ・ハットリのツイッターアカウント

Ethereum 公式サイトのシャードチェーン説明

関連記事