Eth2 Core Teams Online Workshop: Sharding Design編
#LayerX_Newsletter 2020-2-12
リンク集: https://hackmd.io/@hww/workshop_feb_2021
TL;DR:
Eth2コアチームにおいて、主にリサーチサイドの進捗を、開発チーム含めた全体に共有するWorkshopが開催された
例によって、資料や動画が公開されているので、勉強になる
主なトピックは、「(新たな)sharding design」と「Eth1とEth2のマージ」
今回は、このうちのSharding Designについて、Workshopの資料を参照しながら、大雑把に概要を解説します
Sharding design
Workshop資料
Eth2 sharding design by Vitalik
Introduction to KZG (Kate) commitments How to hash polynomials by Dankrad
あまり知られていないですが、実はEth2のシャーディングの設計は、この数ヶ月(beacon chainのリリース以降)で大きく変わってます
まず、最初に導入されるshardingは"data sharding"と言われ、単にデータを乗っけられるだけです。
スマートコントラクトはないです。
FAQ: 何に使うの?→ Rollupのデータ置き場に使います
https://gyazo.com/603839f18955311150e5838719ff6731
シャードブロックはデータ乗っけるだけなので、シャードごとにハッシュチェーンで順番づけする必要はないです
Beacon chainに参照された順に、全体の順番があるだけです
なので、「シャードチェーン」みたいな概念はないです
Data shardingは、見方を変えれば、セキュリティを落とさないよう色々な工夫のされた、big blockみたいなものでもあります
セキュリティを落とさない工夫というのは、シャーディングでは各シャードにvalidatorが分割して割り当てられる (committee) ので、普通のブロックチェーン(全部のvalidatorが一つのブロックチェーンをみる)に比べて、何も工夫しなければ、シャードの数だけセキュリティが落ちてしまうので、それをどうにかしようということです
基本的に、data availabilityをまもるのが肝です
要は、ブロックのデータが隠されずにちゃんとみんなの手元に届くことです
これさえ担保されていれば、ブロックのフォーマットが間違ってたりしても、間違っていることをみんな検証できるので、問題は起きないです
Data availabilityのための仕組みの一つ目は、attestation + committee shufflingです
各シャードに割り当てられたvalidatorは、そのシャードのブロックが問題なければ署名 (attestation) して、一定以上署名が集まればよしとする、というものです
攻撃者が特定のシャードに集まらないよう、committeeは定期的にランダムでシャッフルされます
https://gyazo.com/7bacaf30bce4dc438a1c50d1c1276fbd
Data availabilityのための仕組みの一つ目は、erasure coding + random samplingです
雑に言えば、erasure codingによって、ブロックを、元データの二倍のサイズに拡張して、そのうち半分のサイズが集まれば(どの箇所をとっても)元データが復元できるようになります
cipepser.icon 誤り訂正符号みたいな感じですかね?
https://gyazo.com/14b07ae3447217a4bf3c41731167942c
シャードブロックは分割(下図のchunk)され、前述のcommitee (下図のhorizonal subnet) とは別に、chunkごとに割り振られたvalidator (下図のvertical subnet) が、data availabilityをチェック(要するに、ダウンロードしてみる)します
https://gyazo.com/ac06e8c08288cc4e7eceb759388d7379
ちなみに、Eth2 data sharingでは、Polynomial commitmentという暗号プリミティブが導入されます
ここまで述べた、シャードブロックに乗せるデータについて、通常のブロックチェーンにおけるMerkle treeの代わりみたいな役割を担います
Merkle treeと違って、前述のerasure codingが正しく行われていることを保証できる、というのがポイントです
詳細は割愛しますが、今回のWorkshopでも取り上げられていました。Dankradの資料をご覧ください!
Polynomial commitmentは、他にもstateless clientなど色々なアプリケーションがあって、期待の暗号プリミティブです!
https://gyazo.com/4353b60c5cd5ced14183f36ae793167c
おしまいです。