第3回となる今回は、いよいよEthereumの最終目標のひとつであるダンクシャーディング(Danksharding)について見ていきたいと思います。
前回解説したプロトダンクシャーディング(Proto-Danksharding)が導入されたことによって、レイヤー2のガス代は大幅に減少しました。しかし、まだ十分な水準のスケーラビリティが実現されたとはいえません。Ethereumはレイヤー2と合わせて100,000 TPS(Transaction Per Second:1秒間あたりトランザクション処理数)の処理能力を実現することを目指していますが、プロトダンクシャーディングの実装だけではこの100,000 TPSは実現されていないためです。
100,000 TPSを実現するための技術として、プロトダンクシャーディングをさらに発展させたものがダンクシャーディングです。blobなどの基本的な仕組みはプロトダンクシャーディングと全く同じですが、大きく異なる点がひとつ存在します。それは、1ブロックあたりに含めることができるblobの数です。
プロトダンクシャーディングでは、1ブロックあたりに含めることができるblobは6個までに制限されています。ダンクシャーディングでは、このblobの上限が64個まで増加することになります。1ブロックあたりのblobの数が増えることで、1秒間あたりに保存できるトランザクションの数が増えて、TPSの向上を図ることができます。
一方で、保存できるトランザクションの数が増えても、トランザクションデータの検証を行うスピードが追い付かなければ、結局のところTPSを向上させることができなくなってしまいます。検証を行うスピードを上げるために、検証を行うバリデータノードのハードウェア要件を上げるという方法もあります。しかし、この方法を用いる場合、バリデータになることができるユーザーが減少して、ネットワークの分散化が損なわれてしまうといったデメリットがあります。
このような課題を解決するために、ダンクシャーディングには以下の2つの技術が含まれています。
- Proposer-Builder Separation(PBS)
- Data Availability Sampling(DAS)
まずはProposer-Builder Separation(PBS)から見ていきましょう。PBSは、ブロック提案者(Proposer)とブロック生成者(Builder)を別のエンティティに分ける技術です。
現在のEthereumは、ブロック提案者がブロックに含まれるトランザクションデータの検証を行った上で、ブロックの生成から提案まですべて行うような仕組みとなっています。また、ブロック提案者は全バリデータの中からランダムに選ばれるような仕組みとなっています。
ダンクシャーディングによりblobの数を64個に増やす場合、ブロックの生成を行うノードだけは、64個すべてのblobをダウンロードして検証を行う必要があると考えられています。現行の仕組みのままだと、すべてのバリデータがブロックの生成を行う可能性を持っているため、バリデータノードのハードウェア要件を引き上げざるを得なくなってしまいます。
こうした課題を解決するために考案されたのがPBSです。PBSによってブロック提案者とブロック生成者を別のエンティティに分けることで、ブロック生成者のハードウェア要件のみを引き上げて、バリデータのハードウェア要件については据え置くことができるようになります。
バリデータには、提案されたブロックの有効性について、合意するかどうかの投票を行うアテステーションという役割もあります。blobが増える場合でも、ハードウェア要件を引き上げることなくアテステーションを行うことはできるのでしょうか。
ここで必要となってくるのが、2つ目の技術であるData Availability Sampling(DAS)です。DASは、すべてのblobをダウンロードすることなく、すべてのblobが検証可能な状態であることを証明する技術です。
DASを用いることによって、バリデータはblobの一部データのみをダウンロードするだけで、ブロックの有効性を確認してアテステーションを行うことができるようになります。
前回のプロトダンクシャーディングの解説において、blobの圧縮にはKZG Commitmentと呼ばれる手法が用いられていると取り上げました。実は、このKZG CommitmentはDASと非常に相性がいい圧縮方法になっています。このような点からも、プロトダンクシャーディングはダンクシャーディングへのアップグレードを見越して設計された技術であることが読み取れます。
また、PBSとDASについてはConsensus Layerのみの変更で実装することができるため、ダンクシャーディングへのアップグレードコストはかなり少ないものとなっています。PBSとDASの仕様はまだ固まっていませんが、今後数年での実装が期待されています。Ethereumが100,000 TPSを実現する未来も、そう遠くないかもしれません。
過去のイーサリアム技術解説
アカウント・アブストラクション(AA)特集
・ウォレットのUXを向上させる、Account Abstractionとその近況(第1回)
・ウォレットのUXを向上させる、Account Abstractionとその近況(第2回)
・ウォレットのUXを向上させる、Account Abstractionとその近況(第3回)
・ウォレットのUXを向上させる、Account Abstractionとその近況(第4回)
ダンクシャーディング特集
・レイヤー2のガス代を減少させる、ダンクシャーディングとData Availability(第1回)
・レイヤー2のガス代を減少させる、ダンクシャーディングとData Availability(第2回)
・レイヤー2のガス代を減少させる、ダンクシャーディングとData Availability(第3回)
ステートレスクライアント特集
・Ethereumにおける真の分散化を目指す、ステートレスクライアントとVerkle Trees(第1回)