🇮🇹 "Quale funzione svolge uno Stake Pool in Cardano?"

:it: Traduzione italiana di " What function does a Stake Pool perform in Cardano?" scritto da @arielfavio.

Stake Pool: entità di rete che, tra le altre cose, è responsabile della produzione e della convalida dei blocchi. Puoi agire individualmente o come terza parte per conto di vari utenti della rete che scelgono di farlo.

Stake: quantità di ADA delegata a uno stake pool controllato da un utente o quantità di ADA che controlla uno stake pool.

Slot: Unità di tempo della rete Cardano che dura un secondo, all’interno di ogni Slot può esserci la possibilità di creare un blocco.

Slot Leader: Stake Pool a cui è stata assegnata la possibilità di creare un blocco per un particolare slot.

Funzione casuale verificata (VRF): funzione casuale verificata che viene utilizzata, tra le altre cose, per scoprire se sei stato scelto come slot leader per uno slot particolare.

Calcolo della firma slot ouroboros: I fattori che vengono presi in considerazione sono la chiave vrf, la % di stake attivo (sigma), il fattore di decentralizzazione d e un parametro chiamato nonce che è casuale.

Key Evolving Signature (KES): chiave di firma evolutiva, usata dagli Stake Pools per firmare i blocchi che producono.

Numero utilizzabile solo una volta (Nonce): numero utilizzabile una sola volta, è uno dei valori di input del VRF.

Proof of Stake : Proof of Stake. Algoritmo di consenso di una Blockchain, in Cardano si chiama Ouroboros.

In poche parole uno Stake Pool della rete Cardano è un partecipante all’algoritmo di consenso Proof of Stake, chiamato Ouroboros.

Durante la fase Shelley, la rete Cardano utilizzerà Ouroboros Praos. Dove le funzioni principali di uno Stake Pool sono:

(1)Forgiare nuovi blocchi; (2) Verificare nuovi blocchi; (3) Confermare transazioni.

  1. Per ogni Slot, che dura 1 secondo, lo Stake Pool utilizza il VRF per verificare se si tratta di uno Slot Leader. Questa funzione prende come valori di input: L’ID dello Slot, del Nonce e dei tasti VRF da firmare e genera un valore casuale come output. Se il valore di uscita è inferiore a una certa soglia, che è determinata dalla relativa puntata del pool di puntate, viene incoronato Leader dello slot per quel particolare slot. Più alta è la puntata di un pool, più è probabile che diventi uno Slot Leader.

  2. If a Stake Pool is assigned as Slot Leader, then it signs the block using the KES signature key, together with the output computed by the VRF, the proof that it was chosen as the Slot Leader, and the pending transactions from the network.

  3. Infine, questo nuovo blocco creato da detto Stake Pool viene trasmesso ad altri nodi della rete.

Poiché uno Stake Pool deve essere controllato ogni secondo se viene scelto come Slot Leader, è imperativo che gli Stake Pool siano online il 100% delle volte, per garantire che possano produrre un blocco se vengono scelti come Slot Leader.

Il valore Nonce utilizzato nel VRF viene utilizzato come valore seed per generare un numero casuale. Viene creato creando un hash con gli output generati dai primi ⅔ VRF dei blocchi dell’epoca precedente.

Se uno Stake Pool non sta falsificando blocchi, svolge comunque un ruolo all’interno della rete verificando i blocchi e confermando le transazioni.

  1. Lo Stake Pool utilizza il VRF per verificare se è stato scelto come Slot Leader per ogni Slot.
  2. Un nuovo blocco viene ricevuto dai nodi accoppiati al tuo.
  3. Lo Stake Pool verifica la prova VRF del blocco, utilizzando la chiave di verifica VRF pubblica dello Stake Pool corrispondente che ha firmato il blocco. Se valido, viene aggiunto alla blockchain locale.

Una proprietà interessante di Ouroboros Praos è che ogni Stake Pool cerca di determinare indipendentemente con il VRF se viene scelto o meno come Slot Leader. Il calendario di assegnazione della leadership è noto in anticipo e i pool sapranno chi è stato scelto come Slot Leader all’inizio dell’epoca.

Può anche accadere che, casualmente, due o più Stake Pool siano scelti dal protocollo come Slots Leader di un singolo Slot. Questo fenomeno è chiamato Battle of Slots. Le battaglie slot sono risolte dal VRF, il blocco con il valore di output più basso lanciato dal VRF è determinato come il vincitore di quello slot.

Il codice all’interno dei Cardano Nodes sviluppato da IOHK esegue tutte queste azioni, dopo che l’operatore dello Stake Pool ha configurato il programma per farlo funzionare.