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.