Weak statelessnessは、ステートの仕様を変更することでブロック生成者以外のノードがステートを持たずに検証を行えるようになる方法のことです。これが実装されることで、クライアントにステートを持たない「ステートレスクライアント」が実現して、ノードのディスク要件はさらに引き下がることになります。
Witnessについては、ブロックの中に含まれている必要があります。このような性質から、ブロック生成者についてはWitnessを作成するためにステートをすべて保存しておく必要があります。
もちろん理想的なのは、ブロック生成者を含めたすべてのノードがステートを保存する必要がないような「強い」ステートレス性です。これは「Strong statelessness」と呼ばれています。しかし、Strong statelessnessを実現するためにはノードのネットワーク要件を引き上げなくてはならないことや、スマートコントラクトとのトランザクションが困難になるなどといった技術的なトレードオフが存在します。このため、現時点ではWeak statelessnessの実現に焦点が置かれています。
PBSによってブロック提案者とブロック生成者を別のエンティティに分けることで、ブロック生成者のハードウェア要件のみを引き上げて、他のノードにおけるハードウェア要件についてはステートレスになる分だけ引き下げることができるようになります。
これは、ブロック生成者がブロックの中身を検閲するなどといった攻撃を行っても、これを検証するバリデーターサイドが分散化されていれば攻撃への耐性が保たれるためです。攻撃が行われる可能性を減らすことも重要ですが、それ以上に重要なのは攻撃が行われた際に正しいものとして承認されないようにすることです。Ethereumが目指す分散化は、「ブロック生成者の分散化」ではなく「バリデーターノードの分散化」なのです。
次回はWeak statelessnessを実現するための要素のうち、まだ詳しく解説していない「Verkle Trees」について見ていきたいと思います。
※ニュースレターを無料購読していただくと、毎週月曜日の17:00にイーサリアム技術解説シリーズを含む最新のニュースレターをお届けいたします。
過去のイーサリアム技術解説
アカウント・アブストラクション(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回)