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

ページの最終更新日: 2026年2月16日

ダンクシャーディング

ダンクシャーディングは、イーサリアムが真にスケーラブルなブロックチェーンになるための方法ですが、そこに至るにはいくつかのプロトコルのアップグレードが必要です。 プロトダンクシャーディングは、そこに至るまでの中間ステップです。 どちらもユーザーにとってレイヤー2でのトランザクションを可能な限り安価にし、イーサリアムを毎秒10万件以上のトランザクションにスケールさせることを目的としています。

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

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

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

ロールアップは、トランザクションをオフチェーンでバッチ処理し、その結果をイーサリアムに投稿することでイーサリアムをスケールする方法です。 ロールアップは、基本的にデータと実行確認の2つの要素で構成されています。 データは、イーサリアムに投稿される状態変更を生成するためにロールアップによって処理されている、トランザクションの完全なシーケンスです。 実行確認では、正直なアクターである証明者が、提案された状態変更が正しいことを確認するために、トランザクションを再度実行します。 実行チェックを行うためには、トランザクションデータが十分長い間利用可能であり、誰でもダウンロードして確認できるようになっている必要があります。 実行確認により、証明者は、ロールアップシーケンサーが行った不正行為を特定でき、異議申立をすることができます。 ただし、このトランザクションデータを永久的に保存する必要はありません。

ロールアップは、トランザクションデータのコミットメントをオンチェーンに投稿し、実際のデータをデータブロブで利用可能にします。 証明者はコミットメントが有効であることを確認したり、間違っていると思われるデータに異議を唱えることができます。 ノードレベルでは、データブロブはコンセンサスクライアントに保持されます。 コンセンサスクライアントは、データを確認し、それがネットワーク全体に伝播したことを証明します。 データが永久的に保持される場合、これらのクライアントの容量が大きくなり、ノードの実行に大量のハードウェアが必要になる可能性があります その代わりに、データは18日ごとにノードから自動的に削除されます。 コンセンサスクライアントのアテステーションは、証明者がデータを十分に検証する機会があったことを示しています。 実際のデータは、ロールアップオペレーター、ユーザー、またはその他によってオフチェーンに保存できます。

ブロブデータの検証方法

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

KZGとは

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

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

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

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

ロールアップがブロブ内にデータを投稿する際、オンチェーンに投稿する「コミットメント」を提供します。 このコミットメントは、特定の点でデータに適合する多項式を評価した結果です。 この点は、KZGセレモニーで生成された乱数によって定義され、 証明者はデータを検証するために同じ点で多項式を評価できます。同じ値になった場合、データは正しいということになります。

コミットメントに使用されるランダムな位置を誰かが知っている場合、その特定の点に適合する新しい多項式(すなわち「コリジョン」)を生成することは容易です。 つまり、ブロブにデータを追加または削除しても、有効な証拠を提供できてしまうのです。 これを防ぐために、秘密の位置をそのまま提供する代わりに、楕円曲線を使用して暗号化された「ブラックボックス」でラップされた位置を証明者に提供します。 こうした値は、元の値をリバースエンジニアリングできないように値を効果的にスクランブルしますが、いくつかの巧妙な代数的操作により、証明者と検証者はそれらが表す点で多項式を評価することができます。

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

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

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

提案者と作成者を分離することで、個々の検証者が32MBのブロブデータに対して、コストのかかるコミットメントや証明を生成するのを防ぐことができます。 提案者と作成者の分離をしないと、自宅でステーキングをしている端末に過度の負担がかかり、より強力なハードウェアへの投資が必要となります。その結果、分散化に悪影響を及ぼします。 代わりに、専門のブロック作成者が、このコストのかかる計算作業を担当します。 そして、ブロック作成者は、ブロック提案者にブロックを提供してブロードキャストします。 ブロック提案者は、最も収益性の高いブロックを選択するだけです。 誰でも、安価かつ迅速にブロブを検証できます。つまり、通常のバリデータであれば、ブロック作成者が誠実な行動をしているかどうかをチェックできます。 この仕組みにより、分散化を犠牲にすることなく、大きなブロブを処理することができます。 不正なブロック作成者を簡単にネットワークから排除してスラッシュすることができます。ブロック作成自体が収益性の高い活動であるため、不正なブロック作成者の代わりに、他の候補者が参加することになります。

データ可用性サンプリングは、バリデータがブロブデータを迅速かつ効率的に検証するために必要です。 データ可用性サンプリングによって、バリデータは、ブロブデータが利用可能であり、正しくコミットされていることを確認できます。 具体的には、バリデータは、いくつかのデータ点をランダムにサンプリングして、そのデータがきちんと保存されていることを確認します。つまり、ブロブ全体をチェックする必要はありません。 データが欠落していた場合、すぐに特定してそのブロブを拒否することができます。

現在の進捗

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

参考リンク

ページの最終更新: 2026年2月16日

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