メインコンテンツへスキップ

ページの最終更新日時: 2024年4月1日

ダークシャーディング

ダンクシャーディングは、イーサリアムが真にスケーラブルなブロックチェーンになるうえで重要な役割を果たしています。しかし、そこに到達するには、複数のプロトコルをアップグレードする必要があります。 プロトダンクシャーディングは、ダンクシャーディングへの中間ステップです。 どちらもユーザーにとってレイヤー2でのトランザクションを可能な限り安価にすることを目的としています。また、イーサリアムを1秒間のトランザクション件数を10万件以上に拡大することを目指しています。

プロトダンクシャーディングとは

EIP-4844(opens in a new tab)として知られるプロトダンクシャーディングは、ロールアップがより安価なデータをブロックに追加する方法です。 この名称は、アイデアを提案した2名の研究者 (プロトラムダ氏とダンクラッド・フィースト氏)に由来しています。 現在のシステムでは、ロールアップはCALLDATAにトランザクションを投稿するため、ユーザートランザクションのコストを安くするには限界があります。 たとえロールアップがデータを必要とするのが短期間であっても、すべてのイーサリアムノードによって処理され、チェーン上にデータが永久に存在するため高価になってしまいます。 プロトダンクシャーディングでは、ブロックに送信、添付できるデータブロブを導入します。 これらのブロブ内のデータは、EVMにアクセスできず、一定期間 (1~3か月) が経過すると自動的に削除されます。 データブロブにより、ロールアップはデータをより安価に送信できるため、節約した費用をトランザクションのコストとして削減することができます。これにより、エンドユーザーはより安価にトランザクションを行うことができます。

ブロブデータの検証方法

ロールアップは、データブロブ内で実行されるトランザクションと、 データを示す「コミットメント」をイーサリアムに投稿します。 これは、多項式関数をデータに当てはめることによって行われます。 この関数は様々な点で値を求めることができます。 例えば、非常に単純な関数f(x) = 2x-1を定義したとして、この関数の点であるx = 1x = 2x = 3で値を求めると、結果は、1、3、5になります。 証明者は、同じ関数をデータに適用し、同じ点で値を求めます。 元のデータが変更された場合は、関数は同一ではなくなり、そのため各点で算出される値も同一ではなくなります。 実際には、コミットメントと証明は暗号関数でラップされているため、より複雑になっています。

KZGとは

KZGは、Kate-Zaverucha-Goldbergの頭文字で、これは3人の原作者(opens in a new tab)の名前を表しています。 データのブロブを小さな暗号「コミットメント」(opens in a new tab) まで縮小するスキームのことです。 ロールアップによって送信されたデータブロブは、ロールアップが不正な動作を行っていないか確認するために検証する必要があります。 そのためには、証明者がブロブ内のトランザクションを再実行して、コミットメントが正しいことを確認します。 これは、実行クライアントがマークルプルーフを使用してレイヤー1上のイーサリアムトランザクションの正当性をチェックする方法と、概念的には同じです。 KZGは、多項式をデータに当てはめる代替証明です。 コミットメントは、秘密になっている複数のデータ点で多項式を評価します。 証明者は、データに対して同じ多項式と同じ値で評価し、結果が同じであることを確認します。 これは、ゼロ知識技術と互換性のあるデータ検証方式であり、一部のロールアップやイーサリアムプロトコルの他の箇所で使用されています。

KZGセレモニーとは

KZGセレモニーは、イーサリアムコミュニティ全体から多くの人々が協力して生成する、データの検証に使用できる秘密のランダムな数字列を生成する方法です。 この数字列は、誰にも知られず、誰にも再現できないことが、非常に重要であり、 そのために、セレモニーに参加する各人は、前の参加者から文字列を受け取ります。 次に、ブラウザにマウスの動きを測定させるなどして、いくつかの新しいランダム値を作成します。それを以前の値と混ぜて、 次の参加者に送信し、送信後にローカルマシンからその値を破棄します。 セレモニーに参加する1人がこれを正直に行う限り、最終的な値が攻撃者に判明することはありません。 EIP-4844のKZGセレモニーは一般公開され、何万人もの人々がエントロピーを追加するために参加しました。 セレモニーを妨害するためには、参加者の100%が積極的に不正行為を行わなければなりません。 参加者の観点では、自分自身が正直であるとわかっていれば、その人自身がセレモニーの安全を確保したことがわかるので、他の人を信頼する必要はありません(参加者が個々に、N人中1人の正直な参加者の要件を満たしています) 。

ダンクシャーディングもプロトダンクシャーディングも、ブロックチェーンを複数の部分に分割しようとした従来の「シャーディング」モデルとは異なるものです。 シェアードチェーンは、すでにロードマップから削除されています。 代わりに、ダンクシャーディングが採用されており、ブロブ横断する分散データサンプリングを使うことで、イーサリアムをスケーリングします。 この方法ははるかに実装が容易であり、 「データシャーディング」と呼ばれることもあります。

ダンクシャーディングとは

ダンクシャーディングは、プロトダンクシャーディングで始まったロールアップスケーリングの完成版です。 ダンクシャーディングは、イーサリアムに大容量のスペースをもたらし、ロールアップのトランザクションデータを圧縮して保存できるようにします。 これにより、イーサリアムは数百ものロールアップを簡単にサポートでき、毎秒数百万のトランザクションを処理できるようになります。

この仕組みを説明すると、ブロックに添付されるブロブをプロトダンクシャーディングの1個から完全なダンクシャーディングである64個まで拡張する方法を導入することで機能します。 必要な残りの変更は、新しい大きなブロブを処理できるようにするためにコンセンサスクライアントの動作方法をすべて更新することです。 これらの変更の中には、ダンクシャーディングとは関係なく、別の目的のためにすでに計画されているものもあります。 例えば、ダンクシャーディングでは、提案者と作成者の分離が実装されている必要があります。 これは、さまざまなバリデータ間でブロックの作成とブロックの提案のタスクを分離するアップグレードです。 同様に、ダンクシャーディングにはデータ可用性のサンプリングが必要ですが、多くの履歴データを保存しない超軽量クライアント「ステートレスクライアント」の開発にも必要です。

現在の進行状況

完全なダンクシャーディングは、数年先を予定していますが、 プロトダンクシャーディングは、近日にリリースされます。 この記事の執筆時点(2023年2月)において、KZGセレモニーはまだ開催中であり、これまでに5万人以上の参加者を集めています。 プロトダンクシャーディングのEIP(opens in a new tab)は完成に近づいており、仕様も合意に至っています。現在、クライアントのテストが行われており、本番環境に導入するためのプロトタイプが実装されています。 次のステップは、公開テストネット上で変更を実装することです。 EIP 4844準備チェックリスト(opens in a new tab)を使うことで、最新の状況を把握することができます。

参考文献

この記事は役に立ちましたか?