「RPCの幻想」:Web3エージェントのためのビザンチン耐故障性設計

Dev.to / 2026/5/7

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisIndustry & Market Moves

要点

  • この記事は、Lirixが取引ペイロードやエージェントの推論をサニタイズできるとしても、Web3のAIエージェントにとって本質的なリスクは信頼できないRPCノードだと主張しています。
  • RPCノードが古い、遅れている、厳しいレート制限を受ける、あるいはシビル攻撃や悪意ある汚染により改変された状態データを返す可能性がある点が強調されています。
  • エージェントが誤ったブロックチェーン状態を受け取ると、数学的には正しくても金融的に致命的な取引を実行し得るため、特にDeFiでは即時の損失につながると述べています。
  • 「Truth Consensus Engine」と呼ばれるLirixのLayer 4の仕組みとして、非同期BFT(ビザンチン耐故障)原則と強力なサーキットブレーカーにより現実(reality)を数学的に担保する方法が提示されています。
  • Web2で許容される平均化や中央値への信頼といった手法は、Web3の実行では安全ではなく「絶対的で決定論的な真実」が必要だと論じています。

トランザクションのペイロードがLirixアーキテクチャのレイヤー3を生き延びる頃には、暗号学的に完全無欠です。AIのハルシネーションは檻に閉じ込められています。ネストされたMulticallsはほどかれています。悪意あるプロキシ・コントラクトは物理的にX線撮影されています。

そのペイロードは数学的に正しい。けれど今、私たちが直面しているのは、はるかに暗いインフラストラクチャ上の問題です:そもそもブロックチェーンのノード自体が、あなたに嘘をついているとしたら?

Web3において、Remote Procedure Call(RPC)ノードは実行のアキレス腱です。同期が崩れます。チェーンの先端(tip)に遅れます。攻撃的なレート制限の影響を受けます。最悪のシナリオでは、Sybil攻撃を受けたり、悪意をもって汚染されて、改変された状態データを提供されます。

古い、あるいは改ざんされたブロックチェーン状態をAIエージェントに渡してしまうと、エージェントは誤った現実に基づいて、数学的に完璧なトランザクションを実行してしまいます。分散型金融(DeFi)では、誤った現実に基づいて実行すれば、即座に財務上の損失が発生します。

標準的なエージェントのフレームワークは、単一のRPCプロバイダを盲目的に信頼します。より「高度」なセットアップでは、リクエストを分散するためにラウンドロビンのロードバランサを使うかもしれません。

高リスクな金融環境では、これら2つのアーキテクチャはいずれもエンジニアリング上の失敗です。 Lirixのレイヤー4(The Truth Consensus Engine)が、非同期のByzantine Fault Tolerance(BFT)の原理と、容赦ないサーキットブレーカーによって、どのように現実を数学的に強制するかを示します。

「平均」の誤謬

Web2の分散システムでは、最終的整合性は許容されます。3つのマイクロサービスがわずかに異なるキャッシュデータを報告しているなら、平均を取ったり、中央値を信頼したり、単に同期するのを待てるかもしれません。

Web3の実行では、ブロック高(block height)の平均を取るのは金融的なサボタージュです。「中央値」のブロックチェーン状態に基づいて、高頻度のDEXスワップや清算ボットを実行することはできません。必要なのは、絶対で、決定論的な真実です。

LirixがAI生成のペイロードを実行する準備をすると、sync_reconcile()アルゴリズムを起動します。単一ノードをポーリングする代わりに、Lirixは、設定行列内のすべての適格なRPCノードに対して、並行的で非同期なリクエスト群を解き放ちます。

それはすべてのノードから報告されたブロック高を収集し、発散(divergence)を計算します:spread = max(height) - min(height)

スプレッドのギロチン

Lirixの中核の奥深くに、物理的な境界があります:BLOCK_HEIGHT_SPREAD_THRESHOLD = 2

最高に報告しているノードと、最低に報告しているノードの間のスプレッドが2ブロックより大きい場合、Lirixは「どのノードが正しいのか」を推測しようとはしません。プライマリプロバイダへフォールバックもしません。クラスタ全体の状態を汚染されているものとして扱います。

そして物理的に接続を切断し、RPCUnavailableExceptionを投げます。

アーキテクチャ原則:フェイル・クローズ。 システム全体を停止してでも、AIエージェントが砕けて信頼できない現実に対してトランザクションを実行することを許すよりは、チャンスを逃すことを選びます。

呼吸するサーキットブレーカー

敵対的なネットワークは現実のものですが、それは同時に動的でもあります。たった1回のネットワークの「つかえ」後に永久デッドロックしてしまうシステムは、実運用では実質的に役に立ちません。

稼働時間(アップタイム)を犠牲にせず敵対的な環境に対処するため、LirixはBreathing Circuit Breaker(呼吸するサーキットブレーカー)を導入します。これは、柔らかく減衰していく確率モデルではなく、冷酷で決定論的な状態機械です。

  • 3ストライク・ルール: RPCエンドポイントがHTTP 429(レート制限)を返す、または接続を落とした場合、そのノードにストライクが入ります。failures >= 3になった瞬間にサーキットはOPENにトリップします。そのノードは即座に切り離され、クォーラムから追放されます。

  • ハードなクールダウン: ネットワークをスパムする「半オープン」の推測ゲームや、確率的なリトライはありません。ノードは厳密で、時間でロックされたクールダウン期間に強制的に入れられます。

  • 復活: クールダウンが終了すると、ノードは一旦、ポーリング行列に戻ることを条件付きで許可されます。成功するリクエストが1つあるだけで、失敗カウンタが即座にゼロにリセットされ、サーキットはCLOSEDへとスナップバックします。

これにより、非常に強靭なインフラストラクチャ層が構築されます。Lirixは遅延しているノードを動的に切り離し、健全なノードを復活させることで、人手のDevOps対応やアラートなしでも、汚れのないクォーラムを維持します。

話は安い。コードを見せろ。

私たちはRPCを信頼しませんし、あなたもホワイトペーパーを信頼すべきではありません。ブロック高のスプレッドを計算し、侵害されたクラスタでギロチンを落とすための、まさにそのPythonロジックを示します。

しきい値を超えたら絶対に進めない、という拒否の徹底に注目してください:

# Core logic extracted from Layer 4: RPCManager.sync_reconcile()

HEALTH_SPREAD_THRESHOLD: int = 2
CIRCUIT_FAILURE_THRESHOLD: int = 3

def _verify_cluster_health(self, heights: Dict[str, int]) -> int:
    """
    RPCノードのBFTクォーラムを評価します。
    発散が2を超えていれば、ネットワークは断ち切られた現実になっています。
    """
    values = list(heights.values())
    spread = max(values) - min(values)

返却形式: {"translated": "翻訳されたHTML"}if spread > self.HEALTH_SPREAD_THRESHOLD:
        # クラスタが汚染されています。ギロチンを落とします。
        raise RPCUnavailableException(
            human_readable_reason=(
                "RPCノードのブロック高が許容しきい値を超えて分岐しています。 "
                "クラスタの状態を汚染されたものとして扱います(フェイルクローズ)。"
            ),
            context={
                "layer": "L4",
                "spread": spread, 
                "threshold": self.HEALTH_SPREAD_THRESHOLD
            }
        )

    # コンセンサスが得られました。異論のない最高ブロックを返します。
    return max(values)

実行フローがレイヤー4の外へ出る時点で、AIのペイロードは単に構造的に安全なだけではありません。数学的に検証され、暗号によって合意された現実に結び付けられています。

次は?

ペイロードはクリーンです。ブロックチェーンの状態は絶対的な真実として検証済みです。あとは最終リハーサルです。

完璧なペイロードと完璧なデータが揃っていても、トランザクションがスマートコントラクト自身の中に隠されたロジック爆弾や大規模なスリッページを引き起こしたらどうでしょうか?

このアーキテクチャ連載の次のパートでは、シャドウオラクル(レイヤー5)を解き放ちます。 LirixがゼロガスEVMサンドボックスをどう立ち上げ、並行する現実でトランザクションを実行し、08c379a0のような生の16進リバー トコードを自然言語に翻訳してAIに自己修正を強制するのかを明らかにします。

実行チャンバーの準備は整いました。エンジニアリングの道のりをフォローして購読してください。

#web3 #ai #security #ethereum #developers #python #langchain #autogen #pydantic #devops