Saltar al contenido principal

Motor de Consenso PRISM

QoreChain integra PRISM (Policy-driven Reinforcement-learning for Intelligent State Machines), una capa de optimización por aprendizaje por refuerzo, directamente en la capa de consenso a través del módulo x/rlconsensus. PRISM observa las métricas de la cadena cada N bloques, ejecuta inferencia mediante una red neuronal de punto fijo y propone ajustes de parámetros de consenso — todo de forma determinista, sin aritmética de punto flotante en las rutas críticas para el consenso.

El bucle de optimización de PRISM: observa el estado de la cadena, ejecuta la inferencia de la política, restringe y aplica los cambios de parámetros, y luego retroalimenta el resultado.


Descripción General de la Arquitectura

PRISM consta de cuatro componentes:

  1. Observation Collector — Recopila vectores de estado de la cadena de 25 dimensiones a intervalos configurables.
  2. Policy Network (MLP) — Un perceptrón multicapa nativo de Go que mapea observaciones a acciones.
  3. Reward Computer — Evalúa la calidad de los cambios de parámetros mediante una función multiobjetivo ponderada.
  4. Circuit Breaker — Supervisa la salud de la cadena y revierte todos los parámetros ajustados por PRISM si se detecta inestabilidad.

Todos los componentes operan dentro del ciclo de vida ABCI y producen salidas deterministas y verificables en todos los nodos validadores.


Red de Política

La red de política es un perceptrón multicapa (MLP) feedforward implementado enteramente en Go con aritmética de punto fijo int64 (escalada por 10^8).

Arquitectura de la Red

PropiedadValor
Dimensiones de entrada25
Capas ocultas2
Tamaños de capas ocultas256, 256
Dimensiones de salida5
Activación (oculta)ReLU
Activación (salida)tanh
Parámetros totales73,733
Precisiónpunto fijo int64 (escalada por 10^8)

Desglose del Recuento de Parámetros

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

Aritmética de Punto Fijo

Todos los cálculos del MLP usan valores int64 escalados por FixedPointScale = 10^8. Esto elimina el no determinismo derivado de las diferencias de redondeo de punto flotante IEEE 754 entre plataformas de hardware.

  • Multiplicación: fixMul(a, b) = (a / SCALE) * b + (a % SCALE) * b / SCALE (dividido para evitar el desbordamiento)
  • ReLU: relu(x) = max(0, x)
  • tanh: Aproximante de Padé tanh(x) ~ x * (3*S - x^2) / (3*S + x^2) para |x| <= 2.5*SCALE, restringido a +/- SCALE en caso contrario

Los pesos de la política se almacenan on-chain como un vector []int64 aplanado y pueden actualizarse mediante propuesta de gobernanza.


Vector de Observación

PRISM recopila un vector de observación de 25 dimensiones en cada intervalo de observación (por defecto: cada 10 bloques).

ÍndiceDimensiónDescripción
0block_utilizationGas de bloque usado / límite de gas de bloque
1tx_countNúmero de transacciones en el bloque
2avg_tx_sizeTamaño medio de transacción en bytes
3block_timeTiempo desde el bloque anterior (ms)
4block_time_deltaTiempo de bloque menos tiempo de bloque objetivo (ms)
5gas_price_50thPrecio de gas mediano
6gas_price_95thPrecio de gas del percentil 95
7mempool_sizeNúmero de transacciones pendientes
8mempool_bytesTotal de bytes de transacciones pendientes
9validator_countRecuento de validadores activos
10validator_giniCoeficiente de Gini de la distribución de poder de los validadores
11missed_block_ratioFracción de validadores que no firmaron
12avg_commit_latencyLatencia media de la ronda de commit (ms)
13max_commit_latencyLatencia máxima de la ronda de commit (ms)
14precommit_ratioFracción de precommits recibidos
15failed_tx_ratioFracción de transacciones fallidas
16avg_gas_per_txGas medio consumido por transacción
17reward_per_validatorRecompensa media por validador (uqor)
18slash_countNúmero de eventos de slashing en la ventana de observación
19jail_countNúmero de eventos de jail en la ventana de observación
20inflation_rateTasa de emisión actual
21bonded_ratioTokens vinculados / suministro total
22reputation_meanPuntuación de reputación media entre los validadores activos
23reputation_stddevDesviación estándar de las puntuaciones de reputación
24mev_estimateMEV extraído estimado (heurístico)

Todos los valores se almacenan como representaciones de cadena LegacyDec y se convierten a punto fijo int64 antes de la inferencia.


Espacio de Acción

La salida del MLP es un vector de acción de 5 dimensiones, donde cada dimensión representa un cambio propuesto a un parámetro de consenso. La activación tanh restringe las salidas en bruto a [-1, 1], que luego se escalan por límites específicos del modo.

ÍndiceDimensión de AcciónDescripción
0block_time_deltaCambio propuesto al tiempo de bloque objetivo (ms)
1gas_price_deltaCambio propuesto al precio de gas base
2validator_set_size_deltaCambio propuesto al tamaño objetivo del conjunto de validadores (solo registrado, no aplicado)
3pool_weight_rpos_deltaCambio propuesto al peso de prioridad del pool RPoS
4pool_weight_dpos_deltaCambio propuesto al peso de prioridad del pool DPoS

Las acciones se restringen a los límites máximos de cambio definidos por el modo PRISM actual antes de su aplicación.


Función de Recompensa

La señal de recompensa evalúa qué tan bien los cambios recientes de parámetros mejoraron el rendimiento de la cadena. Se calcula como una suma ponderada de cinco objetivos:

R = 0.30 * delta_throughput
+ 0.25 * delta_finality
+ 0.20 * delta_decentralization
- 0.15 * mev_estimate
- 0.10 * failed_tx_ratio
ComponentePesoDirecciónMétrica de Origen
Rendimiento+0.30MaximizarCambio en la utilización del bloque
Finalidad+0.25MaximizarCambio en el ratio de precommit
Descentralización+0.20MaximizarCambio negativo en el coeficiente de Gini de los validadores
MEV-0.15MinimizarEstimación de MEV actual
Transacciones Fallidas-0.10MinimizarRatio de transacciones fallidas actual

Los pesos de recompensa son configurables por gobernanza y deben sumar exactamente 1.0.


Modos de PRISM

PRISM opera en uno de cuatro modos, controlables mediante gobernanza:

ModoIDCambio Máx.Comportamiento
Shadow00%Solo observa y registra recomendaciones. No se cambian parámetros. Este es el modo por defecto.
Conservative1+/- 10%Aplica cambios de parámetros dentro de límites estrictos. Adecuado para el despliegue inicial en vivo.
Autonomous2+/- 25%Aplica cambios de parámetros dentro de límites más amplios. Para redes maduras con políticas validadas.
Paused30%PRISM está completamente inactivo. No se recopilan observaciones ni se ejecuta inferencia.

Las transiciones de modo requieren una propuesta de gobernanza. La ruta de despliegue recomendada es: Shadow → Conservative → Autonomous.


Circuit Breaker

El circuit breaker es un mecanismo de seguridad que supervisa la salud de la cadena y revierte automáticamente todos los parámetros ajustados por PRISM si se detecta inestabilidad.

Lógica de Detección

El circuit breaker evalúa los últimos 50 bloques (configurable mediante circuit_breaker_window):

  1. Calcular deltas de tiempo de bloque — Para cada par consecutivo de marcas de tiempo de bloque, calcula el delta de tiempo de bloque.
  2. Clasificar bloques sanos — Un bloque se considera sano si su delta es positivo y está dentro de 2x el tiempo de bloque objetivo.
  3. Calcular la fracción sana — Calcula la fracción sana = bloques sanos / deltas totales.

Condición de Activación

Si la fracción sana cae por debajo del umbral (por defecto: 50%), el circuit breaker se activa.

Respuesta

Cuando se activa, el circuit breaker:

  1. Revierte todos los parámetros aplicados por PRISM (tiempo de bloque, precio de gas, pesos de pool) a sus valores por defecto.
  2. Pausa PRISM (establece CircuitBreakerActive = true).
  3. Limpia la política en memoria para forzar una recarga nueva.
  4. Emite un evento circuit_breaker_triggered.

El circuit breaker se restablece automáticamente cuando la fracción sana se recupera por encima del umbral en evaluaciones posteriores.


Funciones de Asesoramiento de Rollup

PRISM proporciona funciones de asesoramiento para la optimización de parámetros de rollup:

  • SuggestRollupProfile — Analiza las condiciones actuales de la cadena y sugiere parámetros óptimos de configuración de rollup (tiempo de bloque, límite de gas, frecuencia de liquidación).
  • OptimizeRollupGas — Recomienda ajustes de precios de gas para las transacciones de liquidación de rollup según los patrones de congestión de la cadena principal.

Estas funciones son solo informativas y no modifican el estado de la cadena.


Biblioteca de Matemática Determinista

Todos los cálculos de PRISM usan el paquete mathutil, que proporciona alternativas deterministas a la matemática estándar de punto flotante:

FunciónDescripciónMétodo
IntegerSqrt(x)Raíz cuadradaMétodo de Newton sobre LegacyDec, convergencia de 100 iteraciones
TaylorLn1PlusX(x)Logaritmo natural ln(1+x)Reducción de argumento + serie de Taylor de 15 términos
ExpApprox(x)Exponencial e^xSerie de Taylor de 12 términos
SigmoidApprox(x)Sigmoide 1/(1+e^-x)ExpApprox con simetría para entradas negativas
ReputationMultiplier(r)Mapea [0,1] a [0.5,2.0]Sigmoide con escala y desplazamiento

Todas las funciones operan sobre valores cosmossdk.io/math.LegacyDec, garantizando resultados idénticos en todas las plataformas de hardware y versiones del compilador de Go.


Parámetros

ParámetroTipoPor DefectoDescripción
enabledbooltrueHabilita PRISM
observation_intervaluint6410Bloques entre recopilaciones de observación
agent_modePrismMode0 (Shadow)Modo de operación actual
max_change_conservativeLegacyDec0.10Cambio máximo de parámetro en modo Conservative
max_change_autonomousLegacyDec0.25Cambio máximo de parámetro en modo Autonomous
circuit_breaker_windowuint6450Número de bloques recientes supervisados por el circuit breaker
circuit_breaker_thresholdLegacyDec0.50Fracción mínima de bloques sanos antes de la activación
default_block_time_msint645000Tiempo de bloque objetivo por defecto (ms)
default_base_gas_priceLegacyDec100Precio de gas base por defecto
default_validator_set_sizeuint64100Tamaño objetivo del conjunto de validadores por defecto
reward_weight_throughputLegacyDec0.30Peso de recompensa por mejora de rendimiento
reward_weight_finalityLegacyDec0.25Peso de recompensa por mejora de finalidad
reward_weight_decentralizationLegacyDec0.20Peso de recompensa por mejora de descentralización
reward_weight_mevLegacyDec0.15Peso de penalización por extracción de MEV
reward_weight_failed_txsLegacyDec0.10Peso de penalización por transacciones fallidas

Relacionado

  • Mecanismo de Consenso — la capa de consenso que PRISM optimiza.
  • Motor de IA — los servicios y endpoints de IA on-chain más amplios.
  • Tokenómica — cómo las señales de RL alimentan los ajustes de recompensa y parámetros.