🇮🇹 "Rilascio di un calcolatore di ricompense open source"

:it: Traduzione italiana di “Releasing an open source rewards calculation

Traduzione italiana a cura di Lordwotton di RIOT Stake Pools. Se apprezzi queste traduzioni, per favore valuta di supportare il mio lavoro delegando i tuoi ada a RIOT :pray: entra nel nostro gruppo Telegram


Nel protocollo proof-of-stake (PoS) di Cardano - Ouroboros - i delegatori e gli stake pool operator (SPO) ricevono ricompense quando contribuiscono alla sicurezza della rete. Le specifiche del ledger di Cardano delineano le formule per calcolare queste ricompense. Tenendo presente questo aspetto e come parte degli sforzi della Cardano Foundation per la resilienza operativa della rete, abbiamo reso disponibile un calcolatore delle ricompense indipendente dai nodi. Il progetto intende realizzare un mezzo per eseguire e convalidare il calcolo delle ricompense che sia indipendente da una singola implementazione. Inoltre, si propone di fornire una documentazione completa relativa alla tesoreria, alle riserve e alle ricompense del pool di Cardano.

Essendo un repository open source sotto licenza MIT, l’iniziativa approfondisce anche l’impegno della Fondazione verso la maturità dell’open source e mira a raccogliere contributi dall’ecosistema in generale. Infine, il calcolatore può servire anche come strumento educativo, ad esempio in relazione al modo in cui le modifiche dei parametri del protocollo potrebbero avere un impatto sul flusso dei fondi. In definitiva, aumenta la trasparenza e migliora la resilienza operativa.

Rafforzare la resilienza operativa con l’open source

La blockchain di Cardano offre diverse caratteristiche uniche e attentamente valutate. Una di queste è che gli Ada in stake rimangono nei portafogli degli utenti, consentendo il trasferimento ad altri portafogli in qualsiasi momento. Se da un lato questa funzionalità ha dei vantaggi, dall’altro presenta delle sfide nell’implementazione dei calcoli delle ricompense. Ciò richiede l’uso di istantanee per il calcolo delle ricompense, come indicato nelle specifiche del libro mastro.

Il processo inizia con il calcolo delle nuove riserve, delle commissioni, del monte ricompense totale e della tesoreria. Successivamente, i premi del pool vengono determinati in base al monte premi totale. Le ricompense del pool sono utilizzate per calcolare le ricompense dei delegatori e degli operatori delle stake pool. A causa del requisito dei calcoli basati sulle istantanee, può accadere che un stake account non sia più registrato dopo aver scattato un’istantanea. Lo stake account non può quindi ricevere le ricompense dopo il completamento del calcolo e ha bisogno di regole personalizzate per gestire queste situazioni speciali.

Queste regole sono naturalmente distribuite nella base di codice, poiché il processo di calcolo stesso è distribuito nel tempo. Il repository cardano-ledger aggrega la maggior parte della logica di business, insieme alla relativa documentazione. Alcuni componenti aggiuntivi necessari per questo processo si trovano nel cardano-node stesso o nel repository ouroboros-network.

Il codice viene eseguito utilizzando uno scheduler basato su slot, che può risultare difficile da leggere e seguire per chi non ha familiarità con la base di codice. Sebbene siano state introdotte alcune ottimizzazioni per migliorare le prestazioni del calcolo, queste possono rendere il codice meno semplice da capire. Il calcolatore delle ricompense open source mira ad affrontare queste sfide mantenendo le solide caratteristiche native della rete Cardano.

Il meccanismo delle ricompense di Cardano

Le specifiche del ledger di Cardano includono molteplici equazioni che definiscono collettivamente il flusso di ada alla fine di ogni epoca. Ogni nodo calcola in modo indipendente le ricompense per ogni epoca in modo distribuito e ogni potenziale ricompensa viene poi distribuita in base al meccanismo di consenso. In particolare, nessuna entità completa questo calcolo né può trattenere le ricompense. Le ricompense ada sono calcolate ogni epoca e derivano dall’interazione di due fonti: le commissioni di transazione e l’espansione monetaria.

  • Commissioni di transazione: Alla fine di ogni epoca il valore del piatto delle commissioni (la somma di tutte le commissioni di transazione di quell’epoca) va a finire nel piatto delle ricompense totali.
  • Espansione monetaria: Oltre alle commissioni di transazione, una percentuale fissa della riserva viene versata nello stesso monte ricompense.

Il monte ricompense totale viene quindi diviso in due parti. La prima parte va alla tesoreria, mentre la seconda costituisce il monte ricompense degli stake pool. In particolare, le riserve menzionate sono iniziate con circa 14 miliardi di ada e sono diminuite gradualmente.

Contemporaneamente, un altro computo calcola la ricompensa delle pool, utilizzando i parametri delle pool che, insieme alle prestazioni apparenti delle stesse, determinano le ricompense delle singole stake pool. Il valore risultante costituisce la base per il calcolo delle ricompense del delegante e dell’operatore. È importante notare che tutti questi calcoli dipendono dai parametri del protocollo. Il calcolo delle ricompense è parte integrante dell’ecosistema blockchain di Cardano, per cui è fondamentale informare le persone sul suo funzionamento. Questa conoscenza consente alle persone di scegliere una stake pool che si adatta alla loro visione e ai loro valori.

Come il calcolo delle ricompense migliora la trasparenza

La tesoreria, le riserve, le ricompense, i depositi e le commissioni - spesso indicate come ada-pot - si sommano fino alla disponibilità massima di 45 miliardi di ada. Sebbene chiunque possa esaminare i numeri degli ada-pot su Cardano blockchain explorers e su Cardano DB Sync, queste piattaforme sono in grado di fornire solo l’output finale dei calcoli, senza che siano disponibili i dati sottostanti per confermare come sono stati calcolati. Sebbene questi calcoli esistano nel codice Haskell del nodo e dei repository del libro mastro, essi impiegano un’implementazione complessa e altamente distribuita delle formule.

Per questo motivo, la Fondazione ha iniziato a perseguire un calcolo della ricompensa indipendente dal nodo che implementa le formule delineate nelle specifiche del ledger Cardano e serve come risorsa di documentazione per gestire i casi limite in cui la formula specificata non si allinea con l’implementazione effettiva. Ad esempio, in un caso, un bug nell’implementazione del nodo ha fatto sì che il proprietario di un pool che gestiva due pool diversi ma con lo stesso indirizzo di rewards ricevesse ricompense per un solo stake pool. In questo caso, la correzione del bug ha portato all’emissione di ricompense aggiuntive dalla tesoreria ai proprietari dei pool.

Sebbene questi interventi manuali siano completamente in linea con le specifiche del protocollo e registrati in modo trasparente tramite i cosiddetti certificati MIR (Move Instantaneous Rewards), gli ada-pot calcolati per quella epoca sarebbero errati. In particolare, se si calcolasse il valore del tesoro con la formula semplice per quest’epoca, risulterebbe evidente che non corrisponde all’effettiva quantità di ada detenuta. In breve, senza la conoscenza di tali eventi straordinari, la discrepanza tra la formula e il valore del tesoro si rivelerebbe difficile da rintracciare e ci sarebbero meno fondi nel tesoro di quanto indicato dalla formula.

Vantaggi dell’open sourcing dell’implementazione della formula

Il calcolo delle ricompense era originariamente integrato in LedgerSync, la pipeline di dati basata su Java sviluppata per fornire al nuovo Cardano explorer della Cardano Foundation i dati della blockchain di Cardano. Tuttavia, il team di ingegneri della Fondazione si è presto reso conto che districarsi tra i molteplici componenti coinvolti nei diversi aspetti del calcolo si sarebbe rivelato piuttosto complesso. La diversità dei dati di input, che includono specifiche, post di blog, discussioni di forum e documentazione della comunità autogestita, significa che raccogliere le informazioni necessarie da varie fonti per comprendere in modo esaustivo il flusso di ada diventa particolarmente dispendioso in termini di tempo.

L’open sourcing del calcolo delle ricompense, invece, può consentire l’ispezione, la revisione e la verifica pubblica dell’algoritmo e del codice utilizzato per determinare le modalità di distribuzione delle ricompense. Questo approccio aiuta anche a costruire la fiducia nell’infrastruttura di Cardano, in quanto serve come archivio che include un grafico interattivo che spiega il flusso di ada alla fine di un’epoca, oltre a rapporti che evidenziano le differenze tra la formula e il valore effettivo.

Inoltre, è un modo utile per educare le persone sul sistema di tesoreria decentralizzato di Cardano e contribuisce a fornire approfondimenti sull’uso delle commissioni di transazione. Essendo un archivio open source, il calcolo delle ricompense coinvolge ulteriormente la comunità, spingendo tutti a contribuire con quanta più documentazione possibile. Inoltre, fornisce uno strumento per l’abilitazione tecnica, in quanto espone un’API che consente agli utenti di calcolare valori attualmente disponibili solo con Cardano DB Sync, uno strumento Haskell di IOG per il crawling dei dati dei nodi e per renderli accessibili in un database PostgreSQL.

Lavorare per la trasparenza del calcolo delle ricompense

Come discusso nel precedente esempio di caso limite, l’utilizzo della formula per l’epoca successiva per calcolare, ad esempio, il valore della tesoreria, a volte non produce risultati accurati. Questa dinamica può verificarsi quando si trasferiscono fondi per pagare una proposta di Project Catalyst o, ad esempio, quando si utilizza un certificato MIR per compensare le ricompense del pool perse a causa di un bug. Sebbene siano registrati in modo trasparente sulla blockchain di Cardano attraverso il meccanismo dei certificati MIR, tali casi limite non sono sempre documentati pubblicamente in modo dettagliato, il che porta a una mancanza di contesto storico e quindi compromette in modo significativo la trasparenza, che a sua volta si traduce in incertezza e diminuzione della fiducia. La creazione di una documentazione adeguata può evitare tutto ciò, consentendo revisioni e verifiche future e miglioramenti alla documentazione, rafforzando così la credibilità e la resilienza operativa di Cardano.

Il lavoro della Fondazione è iniziato con l’implementazione della formula e la documentazione dei casi limite, ma alcune incognite devono ancora essere affrontate. Ad esempio, è necessario tenere conto dei primi fondi Catalyst o dei certificati MIR prima dell’epoca 271, poiché non hanno metadati allegati. Attraverso l’open sourcing di questa formula, la Fondazione spera di collaborare con i membri della comunità per stabilire una soluzione indipendente dalle fonti di dati. Attualmente, disponiamo di un provider di dati Koios e di un provider di dati per file JSON statici, che servono dati aggregati. Inoltre, un indicizzatore di scopo - potenzialmente basato su Yaci-Store, un’implementazione del datastore di Cardano basata su Java - sarebbe utile per garantire la massima trasparenza nel calcolo delle ricompense.

Questa iniziativa riguarda anche il valore della tesoreria, che Cardano utilizza per finanziare lo sviluppo decentralizzato dell’ecosistema, le ricompense delle pool e le commissioni di transazione. Di conseguenza, ha un impatto diretto su aspetti che ogni utente di Cardano dovrebbe avere a cuore, tra cui la distribuzione delle ricompense nell’ecosistema di cui fa parte. Allo stesso tempo, tutti i collaboratori, sia che condividano codice che informazioni, svolgono un ruolo importante nel portare maggiore fiducia e trasparenza all’ecosistema, migliorando così le condizioni per una maggiore adozione della blockchain.

Decifrare il calcolo

La Fondazione genera un rapporto ad ogni nuova versione del repository. Abbiamo aggiunto come parametro la differenza media assoluta tra il calcolo e il valore effettivo del tesoro e, insieme alla comunità, speriamo di ottenere una riduzione di questo valore nel tempo.

I contributi a questo repository non si limitano al solo codice; le persone possono aggiungere dati, link, documentazione e approfondimenti sulle differenze sostanziali osservate in alcune epoche. Il repository stesso segue un approccio test-driven, quindi ha senso iniziare a creare dei test, come quelli relativi a specifiche ricompense di pool in specifiche epoche. La Fondazione ha creato il report solo per la tesoreria, ma vediamo il potenziale per introdurre questo tipo di report per gli altri costituenti degli ada-pot, nonché report dettagliati su stake pool selezionate e sulle ricompense dei membri in futuro.

Nella maggior parte dei casi, il valore del tesoro è mediamente superiore di circa 3.500 ada rispetto a quanto previsto dalla formula. La regola di raccolta dei pool indirizza i depositi dei pool non reclamabili - come quando una pool si ritira e l’indirizzo di stake associato è già stato cancellato - verso la tesoreria. Inoltre, ogni pool può guadagnare un valore massimo di ada per ogni epoca. La tesoreria indirizza anche l’eventuale differenza tra il valore calcolato dalla formula e il valore massimo. Queste modifiche all’attuale implementazione dovrebbero ridurre la differenza media assoluta.

La Fondazione ha già ottenuto un certo successo nell’affrontare i fondamenti del calcolo e nell’individuare le spiegazioni per alcune di queste discrepanze. Sarebbe tuttavia utile disporre di una documentazione completa per ogni transazione in uscita dalla tesoreria.

I prossimi passi prevedono anche l’implementazione della regola del Pool Reap, nonché l’aggiunta di ricompense limitate alla tesoreria, l’incorporazione dei certificati MIR e l’indirizzamento delle ricompense non reclamate alle riserve. Inoltre, mentre attualmente ad ogni nuova epoca si ripristina un valore noto per evitare errori di inoltro dalle epoche precedenti, in futuro sarebbe utile avere un consumo mirato per le tasse, le pool ritirate, gli stake account deregistrati, gli aggiornamenti dei pool e altro ancora. Questa struttura consentirebbe di effettuare calcoli dinamici sulla base del calcolo precedente.

Se, tuttavia, c’è un’altra incognita nel calcolo, che porta a una disparità tra il calcolo e i valori effettivi, si potrebbe completare un esame approfondito dell’implementazione Haskell nei repository cardano-node e cardano-ledger. Questo scenario avrebbe lo scopo di identificare le modifiche che spiegano le discrepanze, esplorando la cronologia dei commit e le discussioni sui problemi.

In futuro, la Fondazione intende utilizzare i rapporti e i grafici interattivi provenienti da questo repository per spiegare la tokenomics ada alle autorità di regolamentazione, alle imprese e alle istituzioni. A settembre abbiamo incontrato anche i team di Koios CNTools per presentare loro il repository e raccogliere i primi feedback. Hanno accolto con favore l’iniziativa e l’idea di implementare e documentare il calcolo della ricompensa e hanno notato che altri sviluppatori avrebbero portato questa implementazione di riferimento Java in altri linguaggi, fornendo un valore aggiuntivo.

Un approccio open source arricchisce sempre l’ecosistema, offrendo vantaggi reciproci a tutte le parti coinvolte, favorendo al contempo la trasparenza e migliorando la probabilità di un’adozione diffusa della tecnologia blockchain. La Cardano Foundation, pertanto, intende continuare ad aprire repository e soluzioni con l’obiettivo di promuovere la maturità open source di Cardano.