弱い主観性
最終編集者: @HiroyukiNaito(opens in a new tab), 2023年8月15日
ブロックチェーンにおける主観性とは、現在の状態(ステート)に同意するために社会的な情報を信用することを指します。 ネットワーク上の他のピアから収集された情報に従って、複数の有効なフォークが選択されることがあります。 この逆は客観性で、すべてのノードがコード化されたルールを適用することによって必然的に同意し、有効なチェーンが1つだけ存在することを指します。 また、第三の状態として、弱い主観性と呼ばれるものがあります。 これは情報の最初のシードが社会的に取得された後、客観的に進むことができるチェーンを指します。
前提知識
このページを理解するには、まずプルーフ・オブ・ステークの基礎を理解している必要があります。
弱い主観性が解決する問題
過去の投票を数えることによって複数のフォークから正しいチェーンを選択するため、主観性はプルーフ・オブ・ステークのブロックチェーンに固有のものです。 それ故にブロックチェーンは、いくつかの攻撃ベクトルにさらされることになります。これには非常に早い段階でチェーンに参加したノードが、代替フォークを維持し、不正に利益を得るため、ずっと後に代替フォークをリリースする長距離型攻撃が含まれます。 あるいは、バリデータの33%がステークを引き出したにも関わらず、ブロック生成とアテステーション(証明)を続けた場合、正規チェーンと競合する代替フォークが生成される可能性があります。 新しいノードや長期間オフラインになっているノードは、攻撃しているバリデータが資金を引き出していることに気付かない可能性があるため、攻撃者はそれらのノードをだまして間違ったチェーンをたどらせることができます。 イーサリアムでは、メカニズムの主観的な側面を減らす制約を課すことで、これらの攻撃ベクトルを解決し、信頼の仮定を最小限にしています。
弱い主観性チェックポイント
弱い主観性は、「弱い主観性チェックポイント」を使って、プルーフ・オブ・ステークのイーサリアムに実装されています。 弱い主観性チェックポイントとは、ネットワーク上のすべてのノードが正規チェーンに属していることに同意するステートルートです。 ブロックチェーンの始まりの位置にいないことを除いて、始まりのブロックと同じ「普遍的な真実」としての目的を果たします。 フォーク・チョイス・アルゴリズムは、そのチェックポイントで定義されたブロックチェーンの状態が正しく、その時点以降のチェーンを独立して客観的に検証することを信頼します。 弱い主観性チェックポイント前のブロックは変えられないため、「戻り制限」として機能します。 メカニズム設計の一部として、単に長いフォークが無効であると定義することで、長距離型攻撃を弱体化させます。 バリデータの引き出し期間よりも、弱い主観性チェックポイントを短い間隔で区切ることにより、ステークが引き出される前に、チェーンをフォークするバリデータは、少なくともある程度のしきい額のスラッシングを受けるようにします。ステークが引き出されたバリデータによって、新規参加者が不正なフォークに騙されることはなくなります。
弱い主観性チェックポイントとファイナライズされたブロックの違い
ファイナライズされたブロックと弱い主観性チェックポイントは、イーサリアムノードで別物として扱われます。 ノードが2つの競合するファイナライズされたブロックを認識した場合、2つの間で迷います。どちらが正規のフォークであるかを自動的に判別する方法はありません。 これは、コンセンサス失敗の徴候です。 対照的に、ノードは弱い主観性チェックポイントと一致しないブロックを単純に拒否します。 ノードの観点では、弱い主観性チェックポイントは、絶対的な真実を意味し、ピアからの新しい情報によって損なわれることはありません。
どの程度「弱い」のか
イーサリアムのプルーフ・オブ・ステークの主観性の側面は、最新の状態(弱い主観性チェックポイント)の要件で、信頼できるソースから同期されます。 ブロックエクスプローラーや複数のノードなど、いくつかの独立した公開ソースとチェックできるため、不正な「弱い主観性チェックポイント」を取得してしまうリスクは非常に低いです。 しかし、どのようなソフトウェアアプリケーションであれ実行するには、ソフトウェアデベロッパーが、誠実なソフトウェアを作成したなど、ある程度の信頼が常に必要になります。
弱い主観性チェックポイントが、クライアントソフトウェアの一部として提供されることもあります。 攻撃者は、ソフトウェアのチェックポイントを破壊して、ソフトウェア自体も同様に簡単に不正なものにできると言えます。 この問題を回避する暗号経済的なルートはありませんが、複数の独立したクライアントチームを持ち、それぞれ異なる言語で同等のソフトウェアを開発し、全員が誠実なチェーンを維持することから利益を得ることで、イーサリアムの信頼できないデベロッパーの影響を最小限に抑えることができます。 ブロックエクスプローラーでは、弱い主観性チェックポイントや、他のソースから取得したチェックポイントを相互参照する方法を提供していることもあります。
最後に、他のノードからチェックポイントをリクエストすることができます。フルノードを実行している他のイーサリアムユーザーは、バリデータがブロックエクスプローラーからのデータに対し検証するチェックポイントを提供できます。 総じて、弱い主観性チェックポイントのプロバイダーを信頼することは、クライアントデベロッパーを信頼するのと同等の問題があると考えられます。 しかし、必要とされる総合的な信頼は低いです。 これらの考慮事項は、大多数のバリデータが共謀しブロックチェーンの代替フォークを作成するような非常にまれなイベントでのみ重要になるということに留意してください。 それ以外の状況では、選択できるイーサリアムチェーンは1つだけです。
参考文献
- Eth2における弱い主観性(opens in a new tab)
- Vitalik: 弱い主観性の利点(opens in a new tab)
- 弱い主観性(Tekuドキュメント)(opens in a new tab)
- Phase-0弱い主観性ガイド(opens in a new tab)
- イーサリアム2.0における弱い主観性の分析(opens in a new tab)