メインコンテンツまでスキップ

PRISM コンセンサスエンジン

QoreChain は、強化学習による最適化レイヤーである PRISM(Policy-driven Reinforcement-learning for Intelligent State Machines)を、x/rlconsensus モジュールを介してコンセンサスレイヤーに直接組み込んでいます。PRISM は N ブロックごとにチェーンのメトリクスを観測し、固定小数点ニューラルネットワークを通じて推論を実行し、コンセンサスパラメータの調整を提案します。これらはすべて決定論的に行われ、コンセンサスに不可欠な経路で浮動小数点演算を使用しません。

PRISM 最適化ループ: チェーンの状態を観測し、ポリシー推論を実行し、パラメータ変更をクランプして適用し、その結果をフィードバックします。


アーキテクチャ概要

PRISM は 4 つのコンポーネントで構成されています:

  1. Observation Collector(観測コレクター)— 設定可能な間隔で 25 次元のチェーン状態ベクトルを収集します。
  2. Policy Network (MLP)(ポリシーネットワーク)— 観測をアクションにマッピングする Go ネイティブの多層パーセプトロンです。
  3. Reward Computer(報酬計算機)— 重み付き多目的関数を用いてパラメータ変更の品質を評価します。
  4. Circuit Breaker(サーキットブレーカー)— チェーンの健全性を監視し、不安定性が検出された場合にすべての PRISM 調整済みパラメータを元に戻します。

すべてのコンポーネントは ABCI ライフサイクル内で動作し、すべてのバリデーターノードにわたって決定論的で検証可能な出力を生成します。


ポリシーネットワーク

ポリシーネットワークは、int64 固定小数点演算(10^8 でスケーリング)を用いて Go で完全に実装されたフィードフォワード多層パーセプトロン(MLP)です。

ネットワークアーキテクチャ

プロパティ
入力次元数25
隠れ層2
隠れ層のサイズ256, 256
出力次元数5
活性化関数(隠れ層)ReLU
活性化関数(出力層)tanh
総パラメータ数73,733
精度int64 固定小数点(10^8 でスケーリング)

パラメータ数の内訳

Layer 1: 25 * 256 + 256 = 6,656 (input -> hidden_1)
Layer 2: 256 * 256 + 256 = 65,792 (hidden_1 -> hidden_2)
Layer 3: 256 * 5 + 5 = 1,285 (hidden_2 -> output)
Total: 73,733

固定小数点演算

すべての MLP 計算は、FixedPointScale = 10^8 でスケーリングされた int64 値を使用します。これにより、ハードウェアプラットフォーム間での IEEE 754 浮動小数点丸めの差異による非決定性が排除されます。

  • 乗算: fixMul(a, b) = (a / SCALE) * b + (a % SCALE) * b / SCALE(オーバーフローを防ぐために分割)
  • ReLU: relu(x) = max(0, x)
  • tanh: |x| <= 2.5*SCALE に対してパデ近似 tanh(x) ~ x * (3*S - x^2) / (3*S + x^2)、それ以外の場合は +/- SCALE にクランプ

ポリシーの重みは、フラット化された []int64 ベクトルとしてオンチェーンに保存され、ガバナンス提案を通じて更新できます。


観測ベクトル

PRISM は、各観測間隔(デフォルト: 10 ブロックごと)で 25 次元の観測ベクトルを収集します。

インデックス次元説明
0block_utilizationブロックで使用されたガス / ブロックのガス上限
1tx_countブロック内のトランザクション数
2avg_tx_sizeトランザクションの平均サイズ(バイト)
3block_time前のブロックからの経過時間(ms)
4block_time_deltaブロックタイムから目標ブロックタイムを引いた値(ms)
5gas_price_50thガス価格の中央値
6gas_price_95th95 パーセンタイルのガス価格
7mempool_size保留中のトランザクション数
8mempool_bytes保留中のトランザクションの総バイト数
9validator_countアクティブなバリデーター数
10validator_giniバリデーターパワー分布のジニ係数
11missed_block_ratio署名を逃したバリデーターの割合
12avg_commit_latency平均コミットラウンドレイテンシ(ms)
13max_commit_latency最大コミットラウンドレイテンシ(ms)
14precommit_ratio受信したプリコミットの割合
15failed_tx_ratio失敗したトランザクションの割合
16avg_gas_per_txトランザクションあたりの平均ガス消費量
17reward_per_validatorバリデーターあたりの平均報酬(uqor)
18slash_count観測ウィンドウ内のスラッシングイベント数
19jail_count観測ウィンドウ内の収監(jail)イベント数
20inflation_rate現在の発行率
21bonded_ratioボンドされたトークン / 総供給量
22reputation_meanアクティブなバリデーター全体の平均評判スコア
23reputation_stddev評判スコアの標準偏差
24mev_estimate抽出された MEV の推定値(ヒューリスティック)

すべての値は LegacyDec 文字列表現として保存され、推論前に int64 固定小数点に変換されます。


アクション空間

MLP の出力は 5 次元のアクションベクトルであり、各次元はコンセンサスパラメータへの変更提案を表します。tanh 活性化関数は生の出力を [-1, 1] に制約し、その後モード固有の境界によってスケーリングされます。

インデックスアクション次元説明
0block_time_delta目標ブロックタイムへの変更提案(ms)
1gas_price_deltaベースガス価格への変更提案
2validator_set_size_delta目標バリデーターセットサイズへの変更提案(ログのみ、適用されない)
3pool_weight_rpos_deltaRPoS プール優先度の重みへの変更提案
4pool_weight_dpos_deltaDPoS プール優先度の重みへの変更提案

アクションは、適用前に現在の PRISM モードで定義された最大変更境界にクランプされます。


報酬関数

報酬シグナルは、最近のパラメータ変更がチェーンのパフォーマンスをどの程度改善したかを評価します。これは 5 つの目的の重み付き合計として計算されます:

R = 0.30 * delta_throughput
+ 0.25 * delta_finality
+ 0.20 * delta_decentralization
- 0.15 * mev_estimate
- 0.10 * failed_tx_ratio
コンポーネント重み方向ソースメトリクス
スループット+0.30最大化ブロック利用率の変化
ファイナリティ+0.25最大化プリコミット率の変化
分散性+0.20最大化バリデータージニ係数の負の変化
MEV-0.15最小化現在の MEV 推定値
失敗トランザクション-0.10最小化現在の失敗トランザクション率

報酬の重みはガバナンスで設定可能であり、合計が正確に 1.0 にならなければなりません。


PRISM モード

PRISM は、ガバナンスで制御可能な 4 つのモードのいずれかで動作します:

モードID最大変更動作
Shadow00%観測と推奨事項のログ記録のみ。パラメータは変更されません。これがデフォルトモードです。
Conservative1+/- 10%厳密な境界内でパラメータ変更を適用します。初期の本番デプロイに適しています。
Autonomous2+/- 25%より広い境界内でパラメータ変更を適用します。検証済みのポリシーを持つ成熟したネットワーク向け。
Paused30%PRISM は完全にアイドル状態です。観測は収集されず、推論も実行されません。

モードの移行にはガバナンス提案が必要です。推奨されるデプロイ経路は: Shadow → Conservative → Autonomous です。


サーキットブレーカー

サーキットブレーカーは、チェーンの健全性を監視し、不安定性が検出された場合にすべての PRISM 調整済みパラメータを自動的に元に戻す安全メカニズムです。

検出ロジック

サーキットブレーカーは直近の 50 ブロックcircuit_breaker_window で設定可能)を評価します:

  1. ブロックタイムのデルタを計算 — 連続する各ブロックタイムスタンプのペアについて、ブロックタイムのデルタを計算します。
  2. 健全なブロックを分類 — ブロックは、そのデルタが正であり、目標ブロックタイムの 2 倍以内であれば健全とみなされます。
  3. 健全な割合を計算健全な割合 = 健全なブロック数 / 総デルタ数を計算します。

トリガー条件

健全な割合がしきい値(デフォルト: 50%)を下回ると、サーキットブレーカーがトリガーされます。

応答

トリガーされると、サーキットブレーカーは:

  1. すべての PRISM 適用済みパラメータ(ブロックタイム、ガス価格、プールの重み)をデフォルト値に戻します
  2. PRISM を一時停止します(CircuitBreakerActive = true に設定)。
  3. 新しいリロードを強制するため、メモリ内のポリシーをクリアします。
  4. circuit_breaker_triggered イベントを発行します。

サーキットブレーカーは、その後の評価で健全な割合がしきい値を上回って回復すると、自動的に解除されます。


ロールアップアドバイザリー関数

PRISM は、ロールアップパラメータ最適化のためのアドバイザリー関数を提供します:

  • SuggestRollupProfile — 現在のチェーン状態を分析し、最適なロールアップ設定パラメータ(ブロックタイム、ガス上限、決済頻度)を提案します。
  • OptimizeRollupGas — メインチェーンの混雑パターンに基づいて、ロールアップ決済トランザクションのガス価格調整を推奨します。

これらの関数は情報提供のみを目的としており、チェーンの状態を変更しません。


決定論的数学ライブラリ

すべての PRISM 計算は、標準の浮動小数点数学に代わる決定論的な代替手段を提供する mathutil パッケージを使用します:

関数説明メソッド
IntegerSqrt(x)平方根LegacyDec 上でのニュートン法、100 回反復で収束
TaylorLn1PlusX(x)自然対数 ln(1+x)引数縮小 + 15 項テイラー級数
ExpApprox(x)指数 e^x12 項テイラー級数
SigmoidApprox(x)シグモイド 1/(1+e^-x)負の入力に対する対称性を持つ ExpApprox
ReputationMultiplier(r)[0,1] を [0.5,2.0] にマップスケールとオフセットを持つシグモイド

すべての関数は cosmossdk.io/math.LegacyDec 値で動作し、すべてのハードウェアプラットフォームおよび Go コンパイラバージョンにわたって同一の結果を保証します。


パラメータ

パラメータデフォルト説明
enabledbooltruePRISM を有効化
observation_intervaluint6410観測収集間のブロック数
agent_modePrismMode0 (Shadow)現在の動作モード
max_change_conservativeLegacyDec0.10Conservative モードでの最大パラメータ変更
max_change_autonomousLegacyDec0.25Autonomous モードでの最大パラメータ変更
circuit_breaker_windowuint6450サーキットブレーカーが監視する直近のブロック数
circuit_breaker_thresholdLegacyDec0.50トリガー前の最小健全ブロック割合
default_block_time_msint645000デフォルトの目標ブロックタイム(ms)
default_base_gas_priceLegacyDec100デフォルトのベースガス価格
default_validator_set_sizeuint64100デフォルトの目標バリデーターセットサイズ
reward_weight_throughputLegacyDec0.30スループット改善の報酬重み
reward_weight_finalityLegacyDec0.25ファイナリティ改善の報酬重み
reward_weight_decentralizationLegacyDec0.20分散性改善の報酬重み
reward_weight_mevLegacyDec0.15MEV 抽出のペナルティ重み
reward_weight_failed_txsLegacyDec0.10失敗トランザクションのペナルティ重み

関連項目

  • Consensus Mechanism — PRISM が最適化するコンセンサスレイヤー。
  • AI Engine — より広範なオンチェーン AI サービスとエンドポイント。
  • Tokenomics — RL シグナルが報酬とパラメータ調整にどのように供給されるか。