Passa al contenuto principale

PRISM Consensus Engine

QoreChain incorpora PRISM (Policy-driven Reinforcement-learning for Intelligent State Machines), un livello di ottimizzazione tramite apprendimento per rinforzo, direttamente nel livello di consenso tramite il modulo x/rlconsensus. PRISM osserva le metriche della chain ogni N blocchi, esegue l'inferenza attraverso una rete neurale a virgola fissa e propone aggiustamenti dei parametri di consenso — il tutto in modo deterministico, senza aritmetica in virgola mobile nei percorsi critici per il consenso.

Il ciclo di ottimizzazione di PRISM: osserva lo stato della chain, esegue l'inferenza della policy, limita e applica le modifiche dei parametri, quindi retroaziona il risultato.


Panoramica dell'architettura

PRISM è composto da quattro componenti:

  1. Observation Collector — Raccoglie vettori di stato della chain a 25 dimensioni a intervalli configurabili.
  2. Policy Network (MLP) — Un percettrone multistrato nativo in Go che mappa le osservazioni sulle azioni.
  3. Reward Computer — Valuta la qualità delle modifiche dei parametri utilizzando una funzione multi-obiettivo ponderata.
  4. Circuit Breaker — Monitora la salute della chain e ripristina tutti i parametri regolati da PRISM se viene rilevata instabilità.

Tutti i componenti operano all'interno del ciclo di vita ABCI e producono output deterministici e verificabili su tutti i nodi validatori.


Policy Network

La policy network è un percettrone multistrato (MLP) feedforward implementato interamente in Go con aritmetica a virgola fissa int64 (scalata di 10^8).

Architettura della rete

ProprietàValore
Dimensioni di input25
Strati nascosti2
Dimensioni degli strati nascosti256, 256
Dimensioni di output5
Attivazione (nascosti)ReLU
Attivazione (output)tanh
Parametri totali73.733
Precisionevirgola fissa int64 (scalata di 10^8)

Suddivisione del conteggio dei parametri

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

Aritmetica a virgola fissa

Tutti i calcoli dell'MLP utilizzano valori int64 scalati di FixedPointScale = 10^8. Ciò elimina il non determinismo derivante dalle differenze di arrotondamento in virgola mobile IEEE 754 tra le diverse piattaforme hardware.

  • Moltiplicazione: fixMul(a, b) = (a / SCALE) * b + (a % SCALE) * b / SCALE (suddivisa per prevenire l'overflow)
  • ReLU: relu(x) = max(0, x)
  • tanh: Approssimante di Padé tanh(x) ~ x * (3*S - x^2) / (3*S + x^2) per |x| <= 2.5*SCALE, altrimenti limitato a +/- SCALE

I pesi della policy sono memorizzati on-chain come vettore []int64 appiattito e possono essere aggiornati tramite proposta di governance.


Vettore di osservazione

PRISM raccoglie un vettore di osservazione a 25 dimensioni a ogni intervallo di osservazione (predefinito: ogni 10 blocchi).

IndiceDimensioneDescrizione
0block_utilizationGas del blocco utilizzato / limite di gas del blocco
1tx_countNumero di transazioni nel blocco
2avg_tx_sizeDimensione media delle transazioni in byte
3block_timeTempo trascorso dal blocco precedente (ms)
4block_time_deltaBlock time meno il block time obiettivo (ms)
5gas_price_50thPrezzo del gas mediano
6gas_price_95thPrezzo del gas al 95° percentile
7mempool_sizeNumero di transazioni in attesa
8mempool_bytesByte totali delle transazioni in attesa
9validator_countConteggio dei validatori attivi
10validator_giniCoefficiente di Gini della distribuzione del potere dei validatori
11missed_block_ratioFrazione di validatori che hanno mancato la firma
12avg_commit_latencyLatenza media del round di commit (ms)
13max_commit_latencyLatenza massima del round di commit (ms)
14precommit_ratioFrazione di precommit ricevuti
15failed_tx_ratioFrazione di transazioni fallite
16avg_gas_per_txGas medio consumato per transazione
17reward_per_validatorRicompensa media per validatore (uqor)
18slash_countNumero di eventi di slashing nella finestra di osservazione
19jail_countNumero di eventi di jail nella finestra di osservazione
20inflation_rateTasso di emissione attuale
21bonded_ratioToken bonded / fornitura totale
22reputation_meanPunteggio di reputazione medio tra i validatori attivi
23reputation_stddevDeviazione standard dei punteggi di reputazione
24mev_estimateMEV stimato estratto (euristica)

Tutti i valori sono memorizzati come rappresentazioni stringa LegacyDec e convertiti in virgola fissa int64 prima dell'inferenza.


Spazio delle azioni

L'output dell'MLP è un vettore di azioni a 5 dimensioni, in cui ogni dimensione rappresenta una modifica proposta a un parametro di consenso. L'attivazione tanh vincola gli output grezzi a [-1, 1], che vengono poi scalati in base ai limiti specifici della modalità.

IndiceDimensione dell'azioneDescrizione
0block_time_deltaModifica proposta al block time obiettivo (ms)
1gas_price_deltaModifica proposta al prezzo base del gas
2validator_set_size_deltaModifica proposta alla dimensione obiettivo dell'insieme dei validatori (solo registrata, non applicata)
3pool_weight_rpos_deltaModifica proposta al peso di priorità del pool RPoS
4pool_weight_dpos_deltaModifica proposta al peso di priorità del pool DPoS

Le azioni vengono limitate ai limiti di modifica massimi definiti dalla modalità PRISM corrente prima dell'applicazione.


Funzione di ricompensa

Il segnale di ricompensa valuta quanto bene le recenti modifiche dei parametri hanno migliorato le prestazioni della chain. Viene calcolato come somma ponderata di cinque obiettivi:

R = 0.30 * delta_throughput
+ 0.25 * delta_finality
+ 0.20 * delta_decentralization
- 0.15 * mev_estimate
- 0.10 * failed_tx_ratio
ComponentePesoDirezioneMetrica di origine
Throughput+0.30MassimizzaVariazione nell'utilizzo del blocco
Finalità+0.25MassimizzaVariazione nel rapporto di precommit
Decentralizzazione+0.20MassimizzaVariazione negativa nel coefficiente di Gini dei validatori
MEV-0.15MinimizzaStima MEV attuale
Transazioni fallite-0.10MinimizzaRapporto attuale di transazioni fallite

I pesi della ricompensa sono configurabili dalla governance e devono sommare esattamente a 1.0.


Modalità PRISM

PRISM opera in una di quattro modalità, controllabili tramite la governance:

ModalitàIDModifica maxComportamento
Shadow00%Osserva e registra solo le raccomandazioni. Nessun parametro viene modificato. Questa è la modalità predefinita.
Conservative1+/- 10%Applica modifiche dei parametri entro limiti stretti. Adatta per il deployment live iniziale.
Autonomous2+/- 25%Applica modifiche dei parametri entro limiti più ampi. Per reti mature con policy validate.
Paused30%PRISM è completamente inattivo. Non vengono raccolte osservazioni e non viene eseguita alcuna inferenza.

Le transizioni di modalità richiedono una proposta di governance. Il percorso di deployment consigliato è: Shadow → Conservative → Autonomous.


Circuit Breaker

Il circuit breaker è un meccanismo di sicurezza che monitora la salute della chain e ripristina automaticamente tutti i parametri regolati da PRISM se viene rilevata instabilità.

Logica di rilevamento

Il circuit breaker valuta gli ultimi 50 blocchi (configurabile tramite circuit_breaker_window):

  1. Calcola i delta del block time — Per ogni coppia consecutiva di timestamp dei blocchi, calcola il delta del block time.
  2. Classifica i blocchi sani — Un blocco è considerato sano se il suo delta è positivo ed entro 2 volte il block time obiettivo.
  3. Calcola la frazione sana — Calcola la frazione sana = blocchi sani / delta totali.

Condizione di attivazione

Se la frazione sana scende al di sotto della soglia (predefinito: 50%), il circuit breaker si attiva.

Risposta

Quando attivato, il circuit breaker:

  1. Ripristina tutti i parametri applicati da PRISM (block time, prezzo del gas, pesi dei pool) ai loro valori predefiniti.
  2. Mette in pausa PRISM (imposta CircuitBreakerActive = true).
  3. Cancella la policy in memoria per forzare un nuovo ricaricamento.
  4. Emette un evento circuit_breaker_triggered.

Il circuit breaker si annulla automaticamente quando la frazione sana risale al di sopra della soglia nelle valutazioni successive.


Funzioni di consulenza per i rollup

PRISM fornisce funzioni di consulenza per l'ottimizzazione dei parametri dei rollup:

  • SuggestRollupProfile — Analizza le condizioni attuali della chain e suggerisce i parametri di configurazione ottimali del rollup (block time, limite di gas, frequenza di settlement).
  • OptimizeRollupGas — Raccomanda aggiustamenti del prezzo del gas per le transazioni di settlement dei rollup in base ai pattern di congestione della chain principale.

Queste funzioni sono solo informative e non modificano lo stato della chain.


Libreria matematica deterministica

Tutti i calcoli di PRISM utilizzano il package mathutil, che fornisce alternative deterministiche alla matematica standard in virgola mobile:

FunzioneDescrizioneMetodo
IntegerSqrt(x)Radice quadrataMetodo di Newton su LegacyDec, convergenza a 100 iterazioni
TaylorLn1PlusX(x)Logaritmo naturale ln(1+x)Riduzione dell'argomento + serie di Taylor a 15 termini
ExpApprox(x)Esponenziale e^xSerie di Taylor a 12 termini
SigmoidApprox(x)Sigmoide 1/(1+e^-x)ExpApprox con simmetria per input negativi
ReputationMultiplier(r)Mappa [0,1] su [0.5,2.0]Sigmoide con scala e offset

Tutte le funzioni operano su valori cosmossdk.io/math.LegacyDec, garantendo risultati identici su tutte le piattaforme hardware e versioni del compilatore Go.


Parametri

ParametroTipoPredefinitoDescrizione
enabledbooltrueAbilita PRISM
observation_intervaluint6410Blocchi tra le raccolte di osservazioni
agent_modePrismMode0 (Shadow)Modalità operativa attuale
max_change_conservativeLegacyDec0.10Modifica massima dei parametri in modalità Conservative
max_change_autonomousLegacyDec0.25Modifica massima dei parametri in modalità Autonomous
circuit_breaker_windowuint6450Numero di blocchi recenti monitorati dal circuit breaker
circuit_breaker_thresholdLegacyDec0.50Frazione minima di blocchi sani prima dell'attivazione
default_block_time_msint645000Block time obiettivo predefinito (ms)
default_base_gas_priceLegacyDec100Prezzo base del gas predefinito
default_validator_set_sizeuint64100Dimensione obiettivo predefinita dell'insieme dei validatori
reward_weight_throughputLegacyDec0.30Peso della ricompensa per il miglioramento del throughput
reward_weight_finalityLegacyDec0.25Peso della ricompensa per il miglioramento della finalità
reward_weight_decentralizationLegacyDec0.20Peso della ricompensa per il miglioramento della decentralizzazione
reward_weight_mevLegacyDec0.15Peso della penalità per l'estrazione di MEV
reward_weight_failed_txsLegacyDec0.10Peso della penalità per le transazioni fallite

Correlati

  • Meccanismo di Consenso — il livello di consenso che PRISM ottimizza.
  • AI Engine — i più ampi servizi ed endpoint AI on-chain.
  • Tokenomics — come i segnali RL alimentano gli aggiustamenti delle ricompense e dei parametri.