Traduzione italiana di “Undestanding Mithril”
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 entra nel nostro gruppo Telegram
Capire Mithril
Mithril è in funzione sulla mainnet di Cardano. Spieghiamo come funziona Mithril e a cosa serve.
Non fidarti, verifica
Uno dei principi fondamentali della decentralizzazione è l’assenza di una terza parte di cui l’utente, in quanto partecipante al sistema, deve fidarsi. Invece di fidarvi, avete la possibilità di verificare tutte le informazioni e quindi di ottenere un’unica versione della verità. Ciò che è vero per voi in un dato momento è vero anche per tutti gli altri partecipanti al sistema.
Se si vuole essere un partecipante a pieno titolo alla rete blockchain, è necessario gestire un proprio nodo completo che consenta di verificare la storia di tutte le transazioni. Le persone non sono disposte a gestire il proprio nodo completo e non è nemmeno possibile farlo sui dispositivi mobili. L’esecuzione di un nodo completo richiede molte risorse. Inoltre, richiede tempo e determinate competenze tecnologiche.
Il problema è stato parzialmente risolto dai cosiddetti nodi leggeri, che memorizzano solo le intestazioni dei blocchi (una sorta di riepilogo delle transazioni di ciascun blocco) anziché i blocchi interi. Ciò ha ridotto i requisiti di archiviazione, potenza di elaborazione e larghezza di banda. Tuttavia, lo svantaggio è che il nodo leggero non può verificare le transazioni indipendentemente dal nodo completo. I nodi leggeri dipendono inoltre dai nodi completi per trasmettere le loro transazioni alla rete e ricevere aggiornamenti sullo stato della blockchain.
I nodi leggeri sono in grado di verificare le transazioni senza i nodi completi solo se dispongono di una fonte affidabile di informazioni, come una prova crittografica o un punto di controllo affidabile. Ad esempio, alcuni nodi leggeri utilizzano il protocollo SPV (Simplified Payment Verification), che consente loro di verificare le transazioni richiedendo una prova di inclusione ai nodi completi. La prova di inclusione è una sequenza di intestazioni di blocco che collegano la transazione al blocco più recente. Il nodo light può quindi verificare la prova con le proprie intestazioni di blocco e confermare che la transazione è valida e confermata dalla rete.
Esistono alcuni portafogli leggeri che non sono nodi leggeri e comunicano solo tramite protocolli proprietari con i server. Di solito si tratta di portafogli online o di portafogli custodiali che conservano le chiavi private sui loro server e gestiscono le transazioni per conto dell’utente. Questi portafogli non interagiscono direttamente con la blockchain, ma si affidano ai propri server per farlo.
Anche se si utilizzano portafogli hardware Trezor o Ledger nel modo consueto, si dipende da server di terze parti che sono collegati ai nodi completi delle singole blockchain.
La dipendenza da terzi è contraria agli ideali della decentralizzazione, in quanto comporta un rischio potenziale di censura delle transazioni, di raccolta dei dati, di fuga di informazioni private o addirittura di blocco dell’account.
È ingenuo aspettarsi che le persone gestiscano nodi completi grazie alla decentralizzazione. È necessario creare una soluzione tecnologica che offra tutti i vantaggi di un nodo completo e che sia in grado di funzionare comodamente su un telefono cellulare.
Mithril consentirà la creazione di client leggeri e applicazioni DeFi prive di fiducia, completamente indipendenti da terzi in termini di capacità di verificare efficacemente i dati sul proprio dispositivo. Inoltre, consente un avvio rapido dei nodi e una sincronizzazione sicura dei dati, una votazione decentralizzata basata sulla distribuzione delle quote (governance on-chain), una gestione efficiente della sidechain, facilita lo sviluppo di una blockchain più scalabile, ecc.
Schema di firma multipla basata su stake (STM)
Mithril è essenzialmente uno schema di firma che consente alla rete Cardano di generare certificati crittografici. Questi certificati sono una prova facilmente verificabile che è stata creata (firmata crittograficamente) dai partecipanti che possiedono la quantità richiesta di stake (monete).
Si può pensare a un certificato come a un messaggio che più partecipanti (titolari di ADA) accettano e convalidano attivamente il messaggio con le loro firme (digitali) per dichiarare pubblicamente il loro accordo. I partecipanti possono essenzialmente confermare qualsiasi informazione con le loro firme. Uno degli usi concreti può essere la creazione regolare di istantanee con lo stato della blockchain.
Non è necessario che tutte le parti interessate confermino il messaggio. Invece, ogni volta che deve essere generato un nuovo certificato, viene selezionato un insieme casuale di partecipanti e un sottoinsieme sufficiente di questi partecipanti è tenuto a firmarlo. Analogamente al leader dello slot, che ha il diritto di produrre un nuovo blocco in un determinato slot, i partecipanti a Mithril sono estratti a sorte.
Il sistema STM (Stake-based threshold multi-signature) è un tipo di schema di firma a soglia (TSS) che rispetta la distribuzione della posta in gioco (monete) nella rete blockchain. Il TSS è un sistema che consente di generare un’unica firma digitale basata sulle firme di più firmatari.
Si tratta di un concetto simile a quello dello schema K-of-N a firma multipla. In questo schema, ad esempio, 5 partecipanti possiedono una chiave privata che può essere utilizzata per firmare un messaggio. Se un messaggio è firmato solo da 3 partecipanti, è considerato valido (3 di 5).
Lo schema STM si differenzia dallo schema K-of-N in quanto il numero di partecipanti che possono firmare il certificato è determinato in base al numero di partecipanti registrati (firmatari) e alla loro partecipazione.
Se si conosce il funzionamento di una normale firma digitale, che si utilizza, ad esempio, quando si crea una transazione su blockchain, è facile comprendere i principi di base del funzionamento dell’STM.
L’STM è un tipo di protocollo di firma digitale che consente a un gruppo di parti di firmare collettivamente un messaggio (creare un certificato) senza rivelare le proprie chiavi private individuali. La firma digitale è un modo per dimostrare l’autenticità e l’integrità di un messaggio. Una firma digitale viene solitamente generata applicando una funzione matematica al messaggio e alla chiave privata del firmatario. La chiave privata è un’informazione segreta che solo il firmatario conosce, mentre la chiave pubblica è un’informazione correlata che chiunque può utilizzare per verificare la firma.
Nota: l’immagine sottostante sarà meglio compresa quando si leggerà il ruolo dei partecipanti alla rete Mithril nella prossima sezione.
L’STM funziona dividendo la chiave privata in diverse quote e distribuendole tra le varie parti in base allo stake (monete ADA). Ciascuna parte può quindi utilizzare la propria quota per generare una firma parziale sul messaggio, senza conoscere la chiave privata completa. Le firme parziali possono poi essere combinate (dall’aggregatore) per produrre una firma valida, indistinguibile da quella generata dalla chiave privata completa. Il vantaggio di questo approccio è che aumenta la sicurezza e la resilienza del processo di firma, poiché nessuna singola parte può firmare o compromettere la chiave privata.
Trattandosi di uno schema di firma a soglia, è necessario che il quorum richiesto di firmatari partecipi alla firma del certificato. In caso contrario, non è possibile produrre un nuovo certificato, il che non è un problema, in quanto può essere fatto nel turno successivo con un diverso insieme di firmatari selezionati a caso.
I firmatari agiscono indipendentemente l’uno dall’altro e ogni singola firma può essere verificata. Le singole firme vengono aggregate ed è possibile produrre un nuovo certificato se è stata raggiunta la soglia richiesta. La firma aggregata può essere verificata rispetto a una chiave pubblica globale che rappresenta l’insieme degli stakeholder.
La generazione dei certificati Mithril è regolata da diversi parametri. Il parametro “m” definisce il numero di lotterie che un singolo partecipante può firmare. Il parametro “k” definisce il numero di firme necessarie per produrre un certificato valido. Il parametro “φ” definisce la casualità del sistema che influenza la possibilità di vincere la lotteria e di firmare il certificato.
Creare un certificato Mithril
Sono definiti diversi ruoli che partecipano alla creazione di un certificato Mithril.
Il Mithril signer è un nodo che opera in modo trasparente sui nodi SPO Cardano. Lavora insieme all’aggregatore Mithril. Il Mithril signer genera una nuova coppia di chiavi Mithril per ogni epoca e le firma con chiavi KES. Le chiavi di verifica (chiavi pubbliche) vengono poi trasmesse a tutti gli altri firmatari della rete Mithril. Il nodo firmatario verifica regolarmente le istantanee dell’intero stato della blockchain Cardano e firma queste istantanee utilizzando la chiave privata Mithril.
L’aggregatore Mithril è un nodo privo di fiducia responsabile di orchestrare le attività dei nodi firmatari Mithril. Il nodo aggregatore controlla la creazione di un nuovo certificato Mithril. A tal fine, l’aggregatore deve collaborare con i nodi firmatari e coordinarli. Tutti i firmatari in un determinato round firmano l’intero stato della blockchain di Cardano (snapshot) e inviano le firme all’aggregatore. Alcuni firmatari potrebbero non essere in grado di inviare una firma (interruzione, attacco, ecc.). Una volta che l’aggregatore riceve un numero sufficiente di firme, può creare un certificato Mithril basato sulla combinazione di tutte le firme (la combinazione delle firme parziali crea una firma equivalente come se fosse un certificato firmato con una chiave privata).
L’aggregatore di nodi archivia tutte le istantanee e i certificati associati. I client possono ottenere queste informazioni dal nodo aggregatore e lavorare con esse, ad esempio avviando rapidamente il nodo.
Il client può ottenere istantanee e verificarle tramite certificati, poiché utilizza le stesse primitive crittografiche Mithril dei firmatari e degli aggregatori. Il client può verificare rapidamente l’autenticità dei dati, cioè l’integrità della blockchain.
Nell’immagine sottostante si possono vedere i singoli passaggi che portano alla creazione di un certificato Mithril. Si tratta di una forma semplificata, poiché il processo è un po’ più complesso e comporta più passaggi per tutti i partecipanti. Nell’immagine c’è un solo firmatario per chiarezza, ma in realtà ce ne sono molti di più.
È necessario rendersi conto che l’intero processo di generazione dei certificati si svolge in singole fasi.
Nella prima fase, detta di costituzione, i nodi si accordano sui parametri Mithil e su un gruppo di firmatari.
Nella seconda fase, le chiavi vengono registrate in tutti i nodi firmatari. Una chiave di verifica dell’aggregazione viene creata sulla base di tutte le registrazioni in un determinato momento.
La terza fase è detta operativa e si svolge in cicli. L’inizio di ogni nuovo ciclo è segnalato da un messaggio. Si verifica un’istantanea del set UTXO e ci si aspetta che i firmatari firmino il messaggio. Ogni firmatario controlla individualmente se è idoneo a firmare il messaggio. Per ogni firma valida, crea una prova contenente la firma del messaggio, la chiave di verifica, la posta in gioco e i percorsi della parte nell’albero di Merkle.
Il nodo aggregatore verifica le firme di tutti i firmatari. Più firme possono essere aggregate per formare un certificato. Se si raggiunge un quorum, è possibile produrre una firma aggregata da tutte le firme individuali. Il nodo produce una prova utilizzando le chiavi aggregate, il messaggio e il vettore delle prove individuali di ciascuna parte.
Le singole firme vengono trasmesse a tutte le parti della rete. È importante perché ogni parte può produrre i certificati in modo indipendente. In particolare, non si richiede che la parte che esegue l’aggregazione abbia una conoscenza specifica, né si presume che sia onesta. Si può dire che qualsiasi terza parte che abbia accesso alle singole firme può eseguire l’aggregazione delle firme. In altre parole, tutti i firmatari, o qualsiasi altro nodo, possono diventare il nodo aggregatore.
Il potenziale della tecnologia Mithril
Mithril rappresenta una primitiva molto utile e potenzialmente interessante per tutte le blockchain esistenti. Associando le chiavi STM ai conti delle singole criptovalute, è possibile per i proprietari delle monete partecipare alla certificazione di qualsiasi messaggio in modo collettivo e completamente decentralizzato.
Attraverso i parametri, è possibile definire facilmente una soglia (1/2 o 2/3) che deve essere raggiunta per dimostrare crittograficamente che il gruppo richiesto (stake) approva il messaggio. I firmatari possono firmare il messaggio individualmente e pubblicare la firma attraverso la blockchain. Questo è molto utile per la governance on-chain. Anche nel caso di Bitcoin, sarebbe possibile per i titolari di BTC ratificare, ad esempio, un aggiornamento del software.
Mithril può essere utilizzato per produrre regolarmente snapshot, ovvero archiviare lo stato della blockchain di Cardano. Ciò consentirà un avvio molto rapido di un nodo, poiché non è necessario scaricare l’intera blockchain e verificare tutte le singole transazioni nella cronologia. È sufficiente che il client scarichi tutti gli snapshot insieme ai certificati e li verifichi. Questo è possibile in un tempo relativamente breve (minuti) e subito dopo il nodo può verificare le transazioni e i blocchi più recenti. In altre parole, si tratta di un client leggero che non dipende dalla comunicazione con un nodo completo. Grazie a Mithril, un client leggero può avere la stessa sicurezza di un nodo completo e i requisiti di risorse saranno così bassi che sarà possibile eseguire un client leggero su un telefono cellulare.
Un altro importante utilizzo delle primitive crittografiche Mithril è quello delle sidechain, in quanto il trasferimento di asset tra reti sarà significativamente più semplice grazie alla possibilità di verificare rapidamente l’ultimo stato globale.
Come abbiamo già detto, Mithril è una tecnologia adatta per la governance on-chain, in quanto è facile organizzare le votazioni in base alla proprietà delle monete. Le votazioni non possono essere manipolate in alcun modo da terzi e non si può impedire a nessuno di votare, in quanto ogni client leggero sarà completamente indipendente da terzi. Tutti i risultati delle votazioni saranno memorizzati in modo trasparente sulla blockchain e tutti potranno convalidarli.
Mithril sarà un importante tassello per Ouroboros Leios (Input endorsers), in quanto attraverso i certificati sarà possibile pre-preparare (pre-validare) i blocchi prima della loro inclusione finale nella blockchain.
Conclusione
Mithril può essere visto come un grande passo avanti per la decentralizzazione, dato che gran parte degli utenti si affida ancora a terzi. Le persone vogliono avere transazioni veloci ed economiche sul proprio cellulare e questo non è possibile nella maggior parte dei casi senza interagire con un nodo completo in esecuzione su un altro dispositivo. La maggior parte delle persone non vuole e non sarà mai disposta a gestire un proprio nodo completo. Mithril consentirà una comunicazione Peer-to-Peer priva di fiducia dal telefono cellulare. In altre parole, il telefono può comunicare solo con la rete Cardano e avere la sicurezza di un nodo completo.