Sari la conținutul principal

Motorul de consens PRISM

QoreChain integrează PRISM (Policy-driven Reinforcement-learning for Intelligent State Machines), un strat de optimizare prin învățare prin întărire, direct în stratul de consens prin modulul x/rlconsensus. PRISM observă metricile lanțului la fiecare N blocuri, rulează inferența printr-o rețea neuronală cu virgulă fixă și propune ajustări ale parametrilor de consens — toate în mod determinist, fără aritmetică cu virgulă mobilă în căile critice pentru consens.

Bucla de optimizare PRISM: observă starea lanțului, rulează inferența de politică, limitează și aplică modificările de parametri, apoi realimentează rezultatul.


Prezentare generală a arhitecturii

PRISM constă din patru componente:

  1. Observation Collector — Adună vectori de stare a lanțului cu 25 de dimensiuni la intervale configurabile.
  2. Policy Network (MLP) — Un perceptron multistrat nativ Go care mapează observațiile la acțiuni.
  3. Reward Computer — Evaluează calitatea modificărilor de parametri folosind o funcție ponderată multi-obiectiv.
  4. Circuit Breaker — Monitorizează sănătatea lanțului și revine la toți parametrii reglați de PRISM dacă se detectează instabilitate.

Toate componentele operează în cadrul ciclului de viață ABCI și produc ieșiri deterministe și verificabile pe toate nodurile de validare.


Rețeaua de politică

Rețeaua de politică este un perceptron multistrat (MLP) de tip feedforward, implementat în întregime în Go cu aritmetică cu virgulă fixă int64 (scalată cu 10^8).

Arhitectura rețelei

ProprietateValoare
Dimensiuni de intrare25
Straturi ascunse2
Dimensiunile straturilor ascunse256, 256
Dimensiuni de ieșire5
Activare (ascuns)ReLU
Activare (ieșire)tanh
Parametri totali73,733
Precizievirgulă fixă int64 (scalată cu 10^8)

Defalcarea numărului de 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

Aritmetică cu virgulă fixă

Toate calculele MLP folosesc valori int64 scalate cu FixedPointScale = 10^8. Aceasta elimină non-determinismul provenit din diferențele de rotunjire ale virgulei mobile IEEE 754 pe diferite platforme hardware.

  • Înmulțire: fixMul(a, b) = (a / SCALE) * b + (a % SCALE) * b / SCALE (împărțit pentru a preveni depășirea)
  • ReLU: relu(x) = max(0, x)
  • tanh: aproximantă Padé tanh(x) ~ x * (3*S - x^2) / (3*S + x^2) pentru |x| <= 2.5*SCALE, limitată la +/- SCALE în rest

Ponderile de politică sunt stocate on-chain ca un vector aplatizat []int64 și pot fi actualizate prin propunere de guvernanță.


Vectorul de observație

PRISM colectează un vector de observație cu 25 de dimensiuni la fiecare interval de observație (implicit: la fiecare 10 blocuri).

IndexDimensiuneDescriere
0block_utilizationGaz folosit în bloc / limita de gaz a blocului
1tx_countNumărul de tranzacții din bloc
2avg_tx_sizeDimensiunea medie a tranzacției în octeți
3block_timeTimpul de la blocul precedent (ms)
4block_time_deltaTimpul blocului minus timpul țintă al blocului (ms)
5gas_price_50thPrețul median al gazului
6gas_price_95thPrețul gazului la percentila 95
7mempool_sizeNumărul de tranzacții în așteptare
8mempool_bytesTotalul de octeți ai tranzacțiilor în așteptare
9validator_countNumărul de validatori activi
10validator_giniCoeficientul Gini al distribuției puterii validatorilor
11missed_block_ratioFracțiunea de validatori care au ratat semnarea
12avg_commit_latencyLatența medie a rundei de comitere (ms)
13max_commit_latencyLatența maximă a rundei de comitere (ms)
14precommit_ratioFracțiunea de precommit-uri primite
15failed_tx_ratioFracțiunea de tranzacții eșuate
16avg_gas_per_txGazul mediu consumat per tranzacție
17reward_per_validatorRecompensa medie per validator (uqor)
18slash_countNumărul de evenimente de slashing din fereastra de observație
19jail_countNumărul de evenimente de încarcerare din fereastra de observație
20inflation_rateRata de emisie curentă
21bonded_ratioToken-uri bondate / oferta totală
22reputation_meanScorul mediu de reputație al validatorilor activi
23reputation_stddevDeviația standard a scorurilor de reputație
24mev_estimateMEV extras estimat (euristic)

Toate valorile sunt stocate ca reprezentări string LegacyDec și convertite în virgulă fixă int64 înainte de inferență.


Spațiul de acțiuni

Ieșirea MLP este un vector de acțiuni cu 5 dimensiuni, în care fiecare dimensiune reprezintă o modificare propusă a unui parametru de consens. Activarea tanh constrânge ieșirile brute la [-1, 1], care sunt apoi scalate prin limite specifice modului.

IndexDimensiunea acțiuniiDescriere
0block_time_deltaModificarea propusă a timpului țintă al blocului (ms)
1gas_price_deltaModificarea propusă a prețului de bază al gazului
2validator_set_size_deltaModificarea propusă a dimensiunii țintă a setului de validatori (doar înregistrată, neaplicată)
3pool_weight_rpos_deltaModificarea propusă a ponderii de prioritate a grupului RPoS
4pool_weight_dpos_deltaModificarea propusă a ponderii de prioritate a grupului DPoS

Acțiunile sunt limitate la limitele maxime de modificare definite de modul PRISM curent înainte de aplicare.


Funcția de recompensă

Semnalul de recompensă evaluează cât de bine au îmbunătățit performanța lanțului modificările recente de parametri. Este calculat ca o sumă ponderată a cinci obiective:

R = 0.30 * delta_throughput
+ 0.25 * delta_finality
+ 0.20 * delta_decentralization
- 0.15 * mev_estimate
- 0.10 * failed_tx_ratio
ComponentăPondereDirecțieMetrică sursă
Throughput+0.30MaximizareModificarea utilizării blocului
Finalitate+0.25MaximizareModificarea raportului de precommit
Descentralizare+0.20MaximizareModificarea negativă a coeficientului Gini al validatorilor
MEV-0.15MinimizareEstimarea MEV curentă
Tranzacții eșuate-0.10MinimizareRaportul curent de tranzacții eșuate

Ponderile de recompensă sunt configurabile prin guvernanță și trebuie să însumeze exact 1.0.


Moduri PRISM

PRISM operează în unul dintre patru moduri, controlabil prin guvernanță:

ModIDModificare maxComportament
Shadow00%Doar observă și înregistrează recomandări. Niciun parametru nu este modificat. Acesta este modul implicit.
Conservative1+/- 10%Aplică modificări de parametri în limite stricte. Potrivit pentru implementarea live inițială.
Autonomous2+/- 25%Aplică modificări de parametri în limite mai largi. Pentru rețele mature cu politici validate.
Paused30%PRISM este complet inactiv. Nu se colectează observații și nu rulează nicio inferență.

Tranzițiile de mod necesită o propunere de guvernanță. Calea de implementare recomandată este: Shadow → Conservative → Autonomous.


Circuit Breaker

Circuit breaker-ul este un mecanism de siguranță care monitorizează sănătatea lanțului și revine automat la toți parametrii reglați de PRISM dacă se detectează instabilitate.

Logica de detecție

Circuit breaker-ul evaluează ultimele 50 de blocuri (configurabil prin circuit_breaker_window):

  1. Calcularea diferențelor de timp ale blocurilor — Pentru fiecare pereche consecutivă de marcaje temporale ale blocurilor, calculează diferența de timp a blocului.
  2. Clasificarea blocurilor sănătoase — Un bloc este considerat sănătos dacă diferența sa este pozitivă și se încadrează în 2x timpul țintă al blocului.
  3. Calcularea fracțiunii sănătoase — Calculează fracțiunea sănătoasă = blocuri sănătoase / total diferențe.

Condiția de declanșare

Dacă fracțiunea sănătoasă scade sub prag (implicit: 50%), circuit breaker-ul se declanșează.

Răspunsul

Când este declanșat, circuit breaker-ul:

  1. Revine la toți parametrii aplicați de PRISM (timpul blocului, prețul gazului, ponderile grupurilor) la valorile lor implicite.
  2. Suspendă PRISM (setează CircuitBreakerActive = true).
  3. Șterge politica din memorie pentru a forța o reîncărcare proaspătă.
  4. Emite un eveniment circuit_breaker_triggered.

Circuit breaker-ul se dezactivează automat când fracțiunea sănătoasă revine peste prag la evaluările ulterioare.


Funcții consultative pentru rollup-uri

PRISM oferă funcții consultative pentru optimizarea parametrilor de rollup:

  • SuggestRollupProfile — Analizează condițiile curente ale lanțului și sugerează parametri optimi de configurare a rollup-ului (timpul blocului, limita de gaz, frecvența de decontare).
  • OptimizeRollupGas — Recomandă ajustări ale prețului gazului pentru tranzacțiile de decontare a rollup-ului pe baza tiparelor de congestie ale lanțului principal.

Aceste funcții sunt doar informaționale și nu modifică starea lanțului.


Bibliotecă de matematică deterministă

Toate calculele PRISM folosesc pachetul mathutil, care oferă alternative deterministe la matematica standard cu virgulă mobilă:

FuncțieDescriereMetodă
IntegerSqrt(x)RadicalMetoda lui Newton pe LegacyDec, convergență în 100 de iterații
TaylorLn1PlusX(x)Logaritm natural ln(1+x)Reducerea argumentului + serie Taylor cu 15 termeni
ExpApprox(x)Exponențială e^xSerie Taylor cu 12 termeni
SigmoidApprox(x)Sigmoid 1/(1+e^-x)ExpApprox cu simetrie pentru intrări negative
ReputationMultiplier(r)Mapează [0,1] la [0.5,2.0]Sigmoid cu scală și decalaj

Toate funcțiile operează pe valori cosmossdk.io/math.LegacyDec, asigurând rezultate identice pe toate platformele hardware și versiunile compilatorului Go.


Parametri

ParametruTipImplicitDescriere
enabledbooltrueActivează PRISM
observation_intervaluint6410Blocuri între colectările de observații
agent_modePrismMode0 (Shadow)Modul de operare curent
max_change_conservativeLegacyDec0.10Modificarea maximă a parametrilor în modul Conservative
max_change_autonomousLegacyDec0.25Modificarea maximă a parametrilor în modul Autonomous
circuit_breaker_windowuint6450Numărul de blocuri recente monitorizate de circuit breaker
circuit_breaker_thresholdLegacyDec0.50Fracțiunea minimă de blocuri sănătoase înainte de declanșare
default_block_time_msint645000Timpul țintă implicit al blocului (ms)
default_base_gas_priceLegacyDec100Prețul de bază implicit al gazului
default_validator_set_sizeuint64100Dimensiunea țintă implicită a setului de validatori
reward_weight_throughputLegacyDec0.30Ponderea de recompensă pentru îmbunătățirea throughput-ului
reward_weight_finalityLegacyDec0.25Ponderea de recompensă pentru îmbunătățirea finalității
reward_weight_decentralizationLegacyDec0.20Ponderea de recompensă pentru îmbunătățirea descentralizării
reward_weight_mevLegacyDec0.15Ponderea de penalizare pentru extragerea MEV
reward_weight_failed_txsLegacyDec0.10Ponderea de penalizare pentru tranzacțiile eșuate

Resurse conexe

  • Mecanismul de consens — stratul de consens pe care PRISM îl optimizează.
  • AI Engine — serviciile și endpoint-urile AI on-chain mai ample.
  • Tokenomics — cum semnalele RL alimentează recompensele și ajustările de parametri.