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

ページの最終更新日時: 2024年7月24日

ダンクシャーディング

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

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

EIP-4844(opens in a new tab)として知られるプロトダンクシャーディングは、ロールアップがより安価なデータをブロックに追加する方法です。 この名称は、アイデアを提案した2名の研究者 (プロトラムダ氏とダンクラッド・フィースト氏)に由来しています。 歴史的に、ロールアップはCALLDATAにトランザクションを投稿するため、ユーザートランザクションのコストを安くするには限界がありました。

たとえロールアップがデータを必要とするのが短期間であっても、すべてのイーサリアムノードによって処理され、チェーン上にデータが永久に存在するため高価になってしまいます。 プロトダンクシャーディングでは、ブロックに送信、添付できるデータブロブを導入します。 これらのブロブ内のデータは、EVMにアクセスできず、一定期間 (執筆時点において4096エポックに設定、すなわち約18日間) が経過すると自動的に削除されます。 データブロブにより、ロールアップはデータをより安価に送信できるため、節約した費用をトランザクションのコストとして削減することができます。これにより、エンドユーザーはより安価にトランザクションを行うことができます。

ブロブデータの検証方法

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

KZGとは

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

KZGセレモニーとは何だったのか?

KZGセレモニーは、Ethereumコミュニティの多くの人々が共同で秘密のランダムな数字の文字列を生成し、それをいくつかのデータの検証に使用できるようにする方法でした。 この数字列は、誰にも知られず、誰にも再現できないことが、非常に重要であり、 これを確実にするために、セレモニーに参加した各人は前の参加者から文字列を受け取りました。 その後、彼らは新しいランダムな値を生成して (例えば、ブラウザにマウスの動きを測定させることによって) 、それを前の値と混ぜ合わせました。 次に、彼らはその値を次の参加者に送り、自分のローカルマシンからはその値を削除しました。 セレモニーに参加する人の中で1人でもこれを正直に行った場合、最終的な値は攻撃者には知り得ないものになります。

EIP-4844 KZGセレモニーは公開されており、数万人の人々が参加して自分自身のエントロピー (ランダム性) を追加しました。 合計で14万以上の貢献があり、これは同種のセレモニーとして世界最大の規模となりました。 セレモニーを妨害するためには、参加者の100%が積極的に不正行為を行わなければなりません。 参加者の観点では、自分自身が正直であるとわかっていれば、その人自身がセレモニーの安全を確保したことがわかるので、他の人を信頼する必要はありません(参加者が個々に、N人中1人の正直な参加者の要件を満たしています) 。

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

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

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

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

現在の進行状況

完全なダンクシャーディングは、数年先を予定していますが、 一方で、KZGセレモニーは、14万以上のコントリビューションがありました。そして、プロトダンクシャーディングのEIP(opens in a new tab)は成熟しました。 この提案は、すべてのテストネットで完全に実装されました。そして、2024年3月にカンクン - デネブ (「デンクン」)ネットワーク・アップグレードでメインネットでもリリースされました。

参考文献

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