🇮🇹 "Capire i certificati di Cardan"

:it: Traduzione italiana di Understanding Cardano Certificates

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


Capire i certificati di Cardano


La partecipazione si basa su certificati memorizzati nella blockchain. Gli operatori di pool (SPO) devono registrare il proprio pool tramite certificati. Gli staker devono creare certificati per delegare i diritti di staking ai pool scelti. Alla base di tutto questo ci sono le chiavi crittografiche. Venite a immergervi nel mondo dei certificati Cardano.

Produzione di blocchi

Nella rete Cardano, solo l’entità che possiede monete ADA può produrre blocchi. ADA è una risorsa scarsa su cui si basano la decentralizzazione e la sicurezza della rete. Ogni entità che vuole produrre blocchi nella rete Cardano deve gestire un nodo Cardano e registrarlo come pool attraverso un certificato. Tutti i proprietari di ADA, compresi gli operatori dei pool, possono delegare le monete ADA (diritti di staking) al pool scelto, per il quale devono anche creare un certificato e inviarlo alla blockchain.

Nessuna entità centrale controlla questi processi. Chiunque può diventare proprietario di monete ADA o registrarsi come operatore di pool senza l’autorizzazione di terzi. Chiunque può delegare ADA a un pool scelto.

Per comprendere correttamente i certificati e il funzionamento della produzione di blocchi, è necessario conoscere la struttura degli indirizzi.

Cardano utilizza una struttura di indirizzi unica che consente di separare il diritto di spendere le monete dalla delega dei diritti di staking. Gli indirizzi di pagamento di Shelley sono costituiti da due parti: credenziali di pagamento (che definiscono come i fondi possono essere spesi da un determinato indirizzo) e un riferimento a un indirizzo di stake.

L’indirizzo di stake definisce se gli ADA sugli indirizzi di pagamento saranno utilizzati per lo staking e in che modo. L’indirizzo di stake consente l’esercizio dei diritti di staking attraverso le credenziali (chiave di staking o hash di uno script).

Esistono coppie di chiavi dedicate per entrambi, ossia una coppia di chiavi per l’indirizzo di spesa e una coppia di chiavi per l’indirizzo di staking.

Nell’immagine sottostante si può vedere l’indirizzo di pagamento di Shelley. UTxO e credenziali sono memorizzati nella parte sinistra denominata Fondi. Le credenziali definiscono la possibilità di spendere i fondi attraverso una chiave di firma o uno script. Nella parte destra, denominata Riferimento indirizzo di stake, si trova il riferimento all’indirizzo di stake.


L’indirizzo di stake viene utilizzato come input per creare il certificato di delega. Si noti il collegamento tra l’indirizzo di pagamento e il riferimento all’indirizzo di stake. Il numero di ADA sugli indirizzi può cambiare (l’utente dell’indirizzo può acquistare altre monete ADA o spenderle), oppure l’utente può creare più nuovi indirizzi che fanno riferimento allo stesso indirizzo di stake.

Il riferimento è alle credenziali, cioè alla chiave di staking (o all’hash dello script) che può essere utilizzata per delegare le monete ADA dalla sezione fondi. In alternativa, può fare riferimento a un certificato contenente le credenziali o a Null. Un valore Null significa che i fondi non possono essere delegati (cioè utilizzati per lo staking).

Si noti che l’indirizzo di stake contiene un account non basato su UTxO in cui il sistema accumula ricompense per lo staking. Il proprietario della chiave di staking (o dello script) ha il controllo sui premi di staking e può ritirarli. Sia gli staker che gli operatori di pool utilizzano un meccanismo simile per delegare ADA a un pool.

Tutte le monete ADA (rispettivamente gli indirizzi di stake) che sono state delegate a un pool sono incluse nello stake totale di quel pool nell’elezione dello slot leader. Il numero di blocchi che i pool possono coniare per ogni epoca (quante volte vengono eletti come slot leader) dipende dalla dimensione dello stake totale. L’ammontare della ricompensa dipende dal numero di blocchi che il pool conia (i leader degli slot possono perdere uno slot e non creare un blocco per qualche motivo). Se lo stake totale è basso, può accadere che il pool non conia nemmeno un blocco. In questo caso, il gestore non riceverà alcuna ricompensa.

Quando l’operatore del pool crea un certificato di registrazione, oltre ad altri parametri (di cui parleremo più avanti), definisce una ricompensa per sé (ricompensa fissa e margine). Questo influenzerà l’importo della ricompensa per i delegatori (stakers). Le ricompense sono distribuite automaticamente dal protocollo Cardano. Gli operatori del pool non hanno alcun controllo sulla distribuzione delle ricompense di staking ai conti di ricompensa. Come già detto, solo chi detiene la chiave di staking può ritirare le ricompense dal conto reward.

Certificati

In questa sezione ci concentreremo sui certificati. Per semplicità, non tratteremo la possibilità di delegare i diritti di staking attraverso gli script. Durante le spiegazioni, considereremo solo una coppia di chiavi. Una chiave di firma (una chiave privata che il proprietario deve mantenere segreta) e una chiave di verifica (una chiave pubblica che può essere pubblicata). Nelle immagini, la chiave di firma sarà mostrata in rosso e la chiave di verifica in verde. Le chiavi di verifica sono per lo più utilizzate in forma di hash. Non ne parleremo nelle immagini. Si può pensare alla forma hashed come a un’altra rappresentazione dello stesso valore (una stringa diventa un’altra stringa, sempre uguale quando viene ripetuta).

L’immagine seguente mostra il controllo dell’utente sui fondi di spesa e la delega dei diritti di staking attraverso le chiavi di firma. Una chiave di spesa di verifica viene utilizzata per creare un indirizzo di spesa. Per spendere i fondi dall’indirizzo, è necessaria una corrispondente chiave di spesa di firma. La chiave di verifica per le puntate viene utilizzata per generare l’indirizzo di stake. La chiave di firma per lo staking è necessaria per delegare i diritti di staking (monete ADA) e anche per ritirare i premi di staking dal conto premi. Gli utenti mantengono segrete le chiavi di firma (idealmente in un cold storage, ad esempio su portafogli Trezor o Ledger HW). Gli indirizzi della blockchain sono pubblici.


Per utilizzare le monete ADA per la produzione di blocchi, è necessario registrare gli indirizzi di stake e delegarli ai pool. Ciò avviene attraverso la creazione di certificati che vengono successivamente inviati alla rete attraverso le transazioni. Tutti i certificati sono memorizzati nella blockchain, cioè sono pubblicamente disponibili a tutti i partecipanti.

I certificati sono validi finchÊ non vengono sovrascritti dal proprietario della chiave di firma o finchÊ non scadono. In caso di scadenza, il certificato può essere rinnovato. Questo riguarda solo un tipo di certificato che deve essere rinnovato dagli operatori del pool. I certificati utilizzati dai normali staker sono validi per sempre fino a quando non vengono sovrascritti (de-registrazione).

Di seguito è riportato un elenco di tutti i certificati che possono essere creati e memorizzati nella blockchain di Cardano.

  • Certificato di registrazione dell’indirizzo di stake
  • Certificato di de-registrazione dell’indirizzo di stake
  • Certificato di delega
  • Certificato di registrazione dello stake pool
  • Certificato di ritiro dello Stake Pool
  • Certificato della chiave operativa

Gli staker (cioè anche gli operatori dei pool) utilizzano solo i certificati relativi alla registrazione degli indirizzi di stake e alla delega. Gli operatori dei pool devono registrare il pool attraverso il certificato e rinnovare regolarmente la sua capacità di coniare blocchi, sempre attraverso il certificato.

Certificati Staker

Per delegare le monete ADA a un pool, è necessario utilizzare due certificati: Un certificato di registrazione dell’indirizzo di stake e un certificato di delega. È possibile cancellare la registrazione di un indirizzo di stake attraverso un certificato di cancellazione dell’indirizzo di stake.

Nell’immagine sottostante, si può vedere come l’utente crea certificati di indirizzo di stake per più indirizzi di pagamento (sono tutti associati allo stesso indirizzo di stake). Per la registrazione è necessario possedere la chiave di firma dello stake. Questo processo è simile sia per gli staker che per gli operatori di pool.


I certificati di registrazione e de-registrazione devono contenere un indirizzo di stake e le credenziali (chiave di verifica). Quando si registrano gli indirizzi di stake, viene creato un conto di ricompensa. Il conto ricompensa viene cancellato quando l’indirizzo di stake viene de-registrato. Non è necessario un testimone per registrare un indirizzo di stake, a differenza della de-registrazione.

Una volta registrati, gli indirizzi di stake possono essere delegati a un pool.

L’utente (nell’immagine è Alice) può trasferire i diritti di stake di un determinato indirizzo di stake a un pool di stake creando un certificato di delega e inviandolo alla blockchain di Cardano. Il certificato di delega contiene un indirizzo di stake associato agli indirizzi di pagamento e una chiave di verifica del pool di stake (ID), che è l’identificatore del pool a cui devono essere delegate le monete ADA.

Nell’immagine si vede l’operatore del pool (Bob) che possiede la chiave di firma che rappresenta la proprietà del pool. Alice ha trovato l’ID del pool in base al nome nel portafoglio. Cioè, in base al nome scelto da Alice, il portafoglio ha inserito l’ID corrispondente nel certificato.

Il certificato di registrazione dell’indirizzo di stake è necessario solo quando uno staker vuole registrare un nuovo indirizzo di stake sulla blockchain, operazione che si effettua una sola volta. Un certificato di delega è sempre necessario quando uno staker vuole delegare o ridelegare il proprio stake a uno stake pool di sua scelta.

Aggiungiamo che gli utenti non devono creare certificati manualmente e i portafogli li aiutano in questo. Basta scegliere uno dei pool offerti dal portafoglio e firmare la transazione. La transazione contiene un certificato che, dopo essere stato incluso nel blocco, entrerĂ  a far parte della blockchain.

Certificati dell’operatore del pool

L’operatore del pool deve creare diverse coppie di chiavi necessarie per la registrazione del pool.

  • Coppia di chiavi della stake pool (“cold key”)
  • Coppia di chiavi KES (Key-Evolving Signature) (chiave calda)
  • Coppia di chiavi VRF (Verification Random Function) (chiave calda)
  • Coppia di chiavi dell’indirizzo di stake (chiave fredda)

Una coppia di chiavi del pool di stake viene utilizzata per l’identificazione del pool (chiave di verifica), la firma dei certificati per la registrazione (e il ritiro) del pool e la delega (trasferimento) dei diritti per una chiave KES in un certificato di chiave operativa. Ne parleremo più avanti.

La chiave KES di firma viene utilizzata per firmare i blocchi coniati dal nodo. La chiave KES di verifica viene utilizzata per la convalida dei blocchi da parte di altri nodi.

La chiave VRF di firma viene utilizzata da un nodo per scoprire se è diventato il leader dello slot in un determinato slot. Su tutti i nodi del pool, in ogni slot ha luogo una lotteria privata, in cui uno o piÚ nodi ottengono il diritto di coniare un blocco. La chiave VRF di verifica viene utilizzata dagli altri nodi per verificare le prove VRF inserite nei blocchi appena coniati. Ogni nodo può verificare che il proponente del nuovo blocco abbia effettivamente vinto la lotteria VRF nel determinato slot.

L’operatore del pool possiede anche le chiavi di staking del suo indirizzo di stake, utilizzato come indirizzo di ricompensa per il pool registrato.

La coppia di chiavi piÚ importante è quella del pool di stake perchÊ identifica il pool e i certificati per la registrazione del pool (ritiro) e i certificati delle chiavi operative devono essere firmati attraverso la chiave di firma.

Se le chiavi di firma memorizzate dal nodo nell’hot storage sono compromesse, la chiave del pool di firma può essere utilizzata per creare nuovi certificati che invalidano quelli precedenti. L’operatore del pool ha il pieno controllo sul pool se è l’unico proprietario della chiave del pool di stake. Per questo motivo è essenziale che la chiave del pool di firma sia conservata a freddo.

L’immagine seguente mostra la registrazione del pool. Il gestore del pool (Bob) ha creato 4 coppie di chiavi: Chiavi del pool di pali, chiavi KES, chiavi VRF e chiavi dell’indirizzo di stake. La chiave di verifica del pool di pali viene utilizzata per identificare il pool e anche come uno degli input per creare un certificato di registrazione del pool. Inoltre, nel certificato vengono inseriti la chiave VRF di verifica, la chiave dell’indirizzo di stake di verifica (indirizzo di ricompensa), un elenco di altri indirizzi di stake dell’operatore, i parametri che definiscono la ricompensa per l’operatore (quota fissa e margine) e gli indirizzi IP o DNS di tutti i nodi relay.

Opzionalmente, nel certificato possono essere inseriti un URL e un hash del contenuto dell’URL per ulteriori metadati sul pool. Questi dati vengono visualizzati nei portafogli per gli utenti che cercano un pool a cui delegare ADA. Se non vengono forniti l’URL e l’hash del contenuto, il pool di stake non sarà elencato nei portafogli (può essere un pool privato).

Il certificato deve essere firmato dalla chiave dello stake pool firmatario. Questo è il passo piÚ importante nella creazione di un certificato, in quanto solo il proprietario della chiave può farlo.


Si noti che le chiavi KES e VRF sono presenti nell’hot storage del nodo. Il nodo ha bisogno delle chiavi per poter produrre blocchi (sorteggio VRF e firma dei blocchi).

Nel certificato può essere inserito un elenco di indirizzi di stake controllati dall’operatore del pool. Se questi indirizzi sono delegati allo stesso pool che è registrato attraverso il certificato di delega, ADA conterà come pegno dell’operatore (skin in the game dell’operatore). L’inserimento degli indirizzi di stake nel certificato non è sufficiente per delegare le monete ADA. L’operatore del pool deve creare un certificato di delega e inviarlo alla rete, analogamente a quanto fanno gli staker. Durante la distribuzione delle ricompense, queste non saranno versate sui conti di questi indirizzi di stake, ma sul conto dell’indirizzo di stake (indirizzo di ricompensa) dell’operatore del pool. Nella figura, questo indirizzo di stake (indirizzo di ricompensa) corrisponde alla chiave dell’indirizzo di staking. Si noti che anche la chiave di firma è memorizzata nel cold storage. Questa chiave viene utilizzata dall’operatore per prelevare le ricompense dal conto.

Si noti che la chiave KES non è stata inserita in questo certificato.

Il certificato di ritiro del pool di pali contiene solo la chiave (ID) del pool di pali di verifica e il numero dell’epoca a partire dalla quale il pool dovrebbe smettere di produrre blocchi e quindi ritirarsi.

Quando l’operatore del pool invia alla rete il certificato di registrazione del pool, il pool è registrato, ma non può ancora iniziare a produrre blocchi. L’operatore deve inviare un altro certificato, quello della chiave operativa.

Per ottenere la massima sicurezza delle chiavi, è necessario che l’operatore segua la disposizione delle chiavi calde e fredde. Questo riduce significativamente il rischio associato all’esposizione delle chiavi sul nodo (chiavi KES e VRF nell’hot storage).

L’operatore conserva sempre la chiave del pool di stake di firma nel cold storage (fuori da Internet) e la utilizza a intervalli regolari per firmare un nuovo certificato di chiave operativa. La chiave del pool di stake di firma viene utilizzata per trasferire il diritto di firma alla chiave KES (detta anche chiave operativa), che è conservata nell’hot storage del nodo e viene utilizzata per firmare i nuovi blocchi. Se la chiave KES a caldo viene compromessa, l’operatore può creare immediatamente un nuovo certificato di chiave operativa (con un numero di contatore più alto), invalidando così quello precedente.

La chiave KES di firma scade a intervalli regolari, in particolare dopo 90 giorni. L’operatore del pool deve sempre creare un nuovo certificato di chiave operativa, firmarlo con la chiave di firma del pool di stake e inviarlo alla rete.

La vecchia chiave KES di firma sarà utilizzata per generare una nuova chiave KES. La vecchia chiave KES viene successivamente cancellata. Questo protegge l’immutabilità della storia della blockchain. La chiave KES può essere utilizzata solo per firmare blocchi in un determinato periodo di tempo. La chiave KES di verifica inserita nel certificato del pool di stake di registro rimane la stessa (non è necessario cambiarla quando si crea una nuova chiave KES di firma).

Il certificato di chiave operativa contiene uno slot a partire dal quale sarà valido per 90 giorni (periodo KES), la chiave KES di verifica, la chiave stake pool di verifica (ID) e il numero del contatore. Il numero del contatore è un valore che indica quante volte è stato rinnovato il certificato della chiave operativa. Questo valore viene incrementato ogni volta che viene creato un nuovo certificato di chiave operativa. Questo invalida immediatamente il vecchio certificato (con un numero di contatore inferiore).

Nell’immagine sottostante, si può vedere come l’operatore del pool abbia creato un certificato di chiave operativa, che consente al nodo di coniare nuovi blocchi per 90 giorni attraverso la chiave KES di firma rinnovata. Si noti che il certificato della chiave operativa deve essere firmato dalla chiave del pool di stake di firma.


Una volta che la rete raggiunge lo slot specificato nel certificato della chiave operativa, il pool può essere eletto come leader dello slot e coniare un nuovo blocco. Il blocco sarà firmato con una chiave KES valida. Tutti gli altri nodi della rete possono facilmente verificare la firma attraverso la chiave KES di verifica, inclusa nel certificato di registrazione del pool di stake.

Conclusione

Tutti i partecipanti sono in grado di trovare tutte le informazioni sulla distribuzione di ADA sugli indirizzi di pagamento, sugli indirizzi di stake, sulle deleghe ai pool e sui pool dai dati on-chain. Grazie ai certificati e alle prove crittografiche contenute nelle intestazioni dei blocchi, tutti possono convalidare i blocchi e verificare che siano stati coniati e firmati correttamente (firmati con una chiave KES valida per il periodo KES indicato) dai nodi che sono effettivamente diventati gli slot leader negli slot indicati.

La sicurezza e la decentralizzazione di Cardano si basano sulla proprietà delle chiavi di firma e dei certificati che sono pubblicamente disponibili a tutti attraverso la blockchain. Chiunque possieda monete ADA può essenzialmente decentralizzare Cardano, in quanto ha il controllo diretto su chi produrrà i blocchi. I titolari di ADA possono utilizzare i certificati per registrare pool e delegare loro le monete ADA senza dover ottenere l’autorizzazione di terzi.