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.