🇮🇹 "Mithril: una blockchain più forte e leggera per una migliore efficienza"

:it: Traduzione italiana di " Mithril: a stronger and lighter blockchain for better efficiency
" scritto nel blog IOG

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


Mithril: una blockchain più forte e leggera per una migliore efficienza

Un nuovo protocollo sviluppato da IOHK agisce come uno schema di firma a soglia basato su stake che permette di sfruttare lo staking in modo trasparente, sicuro e leggero

img

Al Cardano Summit 2021, i ricercatori di IOHK Pyrros Chaidos e Roman Oliynykov hanno presentato il design e gli obiettivi di Mithril - un nuovo sforzo di ricerca e ingegneria portato avanti da IOHK. Mithril fornirà uno schema di firma a soglia basato su stake che può essere implementato come protocollo per risolvere la sincronizzazione della catena, il bootstrapping dello stato e i problemi di fiducia nelle applicazioni blockchain.

Mithril è il nome usato per un metallo fittizio nella Terra di Mezzo - un materiale malleabile, molto leggero nel peso ma forte come “triplo acciaio”, che non si appanna o si oscura. Così, il nome simboleggia la forza in termini di sicurezza e un approccio leggero per quanto riguarda il protocollo sviluppato.

Sfruttare lo staking per l’aggregazione delle firme

Iniziamo con alcune informazioni di base per capire i vantaggi di Mithril per lo sviluppo di soluzioni blockchain.

Cardano è una blockchain proof-of-stake, quindi l’algoritmo di consenso seleziona casualmente i nodi per diventare produttori di blocchi in base allo stake che detengono. Per alcuni messaggi o azioni, è importante che un particolare numero di parti interessate fornisca le loro firme crittografiche. Il protocollo di consenso determina come i singoli nodi valutano lo stato attuale del sistema ledger e ha tre responsabilità principali:

  • eseguire un controllo del leader e decidere se un blocco deve essere prodotto
  • gestire la selezione della catena
  • verificare i blocchi prodotti.

Per ottenere una maggiore scalabilità in un ambiente blockchain, è essenziale affrontare la complessità delle operazioni critiche che dipendono logaritmicamente dal numero di partecipanti. Ciò significa che più alto è il numero dei partecipanti (che si suppone siano numerosi), più complesso diventa aggregare in modo efficiente le loro firme. In uno scenario di base, per presumere una firma che parli per la maggior parte dei partecipanti, ogni partecipante deve firmare il messaggio individuale appropriato. Anche se questo è possibile, è inefficiente in termini di scalabilità e velocità.

Dato il tempo necessario per convalidare un particolare messaggio, e l’utilizzo di risorse durante la sincronizzazione della catena, è fondamentale fornire una soluzione che renda l’aggregazione di più firme veloce ed efficiente senza compromettere le caratteristiche di sicurezza.

Progettazione del protocollo Mithril

Mithril è un protocollo progettato per:

  • sfruttare lo stake per ottenere una maggiore efficienza
  • garantire una configurazione trasparente senza richiedere maggiori impostazioni di fiducia
  • sfruttare i compromessi tra dimensione ed efficienza, il che è garantito dal design modulare dei componenti.

Mithril funziona in un ambiente pubblico in cui i firmatari non hanno bisogno di interagire con altri firmatari per produrre una firma valida. L’aggregatore combina tutte le firme in una sola, e questo processo è logaritmico rispetto al numero di firme, il che si traduce in una performance sublineare per l’aggregazione di Mithril. Per esempio, se applicato a client di nodi completi come Daedalus, Mithril può aumentare la sincronizzazione dei dati dei nodi completi garantendo la velocità e diminuendo il consumo di risorse.

Per rappresentare una frazione significativa dello stake totale, Mithril utilizza l’impostazione della soglia basata sullo stake. Questo comportamento è diverso dall’impostazione standard in cui il numero dato di partecipanti è richiesto per convalidare un particolare messaggio. Nell’impostazione della soglia basata sulla partecipazione, il protocollo richiede una frazione dello stake totale per convalidare un dato messaggio per generare una firma corretta.

Mithril certifica anche il consenso in un ambiente senza fiducia. Ciò significa che non include alcun presupposto aggiuntivo di fiducia. È possibile ottenere la certificazione del consenso senza includere ulteriori presupposti, oltre a quelli già presenti nel proof-of-stake. Per esempio, può funzionare all’interno del wallet-as-a-service, e il client mobile userà il certificato ottenuto da un nodo Mithril. Con impostazioni di sicurezza avanzate, tale procedura è potenzialmente più efficiente della verifica della blockchain SPO.

Infine, per assicurare un veloce bootstrapping dello stato della catena, lo schema di firma permette ai diversi stakeholder di convalidare solo un determinato punto di controllo della catena. Gli stakeholder non hanno bisogno di passare attraverso l’intera storia delle transazioni del dato stato - hanno semplicemente bisogno di passare attraverso i punti di controllo per verificare che lo stake finale sia valido. Questo è vantaggioso per le applicazioni client leggere come i portafogli leggeri che hanno bisogno di lavorare velocemente senza una sincronizzazione completa della catena. Le firme Mithril possono essere utili anche per la verifica leggera del conteggio, o per il processo decisionale della governance delle criptovalute.

Come funziona

Mithril permette una firma multi-party tenendo un certo numero di lotterie individuali (M) e considerando un messaggio valido se è stato firmato da un certo numero di vincitori diversi (K) su queste lotterie. Ogni utente, quindi, tenta di firmare il messaggio e poi passa la sua firma attraverso quella che viene considerata una funzione di lotteria. Questa funzione permette ai singoli utenti di controllare se le loro firme sono eleggibili come vincitori della lotteria e di emettere quelle senza aspettare. Questo è diverso da un’impostazione standard, dove i leader degli slot devono aspettare che il loro slot sia attivo per partecipare. Una volta che ci sono firme di casi su diverse lotterie, esse possono essere aggregate in una singola firma Mithril.

Fasi

Il progetto di Mithril prevede tre fasi:

img

Figura 1. Fasi del funzionamento di Mithril

Impostazione dei parametri

Per impostare un protocollo Mithril, gli utenti devono

  • fissare l’impostazione del gruppo in cui avverrà la crittografia
  • selezionare l’intervallo di indici M, che è il numero di elezioni che si terranno
  • impostare la dimensione del quorum K, che è il numero di vincitori delle elezioni che devono firmare una firma perché questa sia accettata.

È anche importante fornire una stringa di riferimento per il sistema di prova. Questo è possibile in modo trasparente e non richiede alcun presupposto di alta fiducia.

Inizializzazione

Durante questa fase, gli utenti dovrebbero aggiornare la distribuzione dello stato. Questo permette ad ogni stakeholder di sapere di quale stake è in possesso. Poi, ogni stakeholder è responsabile della registrazione delle proprie chiavi. Questo può accadere sia dentro che fuori la catena.

Infine, gli utenti devono distribuire gli stake e comprimere le loro chiavi di prova, cosa che viene fatta usando l’albero di Merkle. Questa funzione permette alle firme Mithril di essere verificate contro un singolo hash che rappresenta quell’albero di Merkle. Così, la dimensione dello stato necessario per verificare una firma può essere mantenuta bassa.

Operazione

Mentre si lavora con la catena, gli utenti possono produrre, aggregare e verificare le firme Mithril. La produzione di firme comporta il tentativo degli utenti di verificare se la firma che hanno prodotto è effettivamente un vincitore in una delle lotterie tenute in parallelo. Se è vero, gli utenti trasmettono le loro firme. Se ci sono abbastanza firme che supportano un particolare messaggio su diverse lotterie, esse possono essere aggregate in una singola firma Mithril. Può quindi essere trasmessa e verificata da chiunque usando solo la stringa di riferimento per il sistema di prova e l’hash molto breve dell’albero di Merkle della distribuzione dei pali.

Per esempio, un singolo utente può creare una firma con Mithril come segue:

img

Figura 2. Creazione della firma Mithril

Per prima cosa, un utente controllerà la quantità di stake che possiede e la passerà attraverso una funzione di punteggio per ottenere la sua soglia di punteggio T. Poi, tenterà di produrre una firma candidata S. Per ogni indice, valuterà se la firma del candidato che ha prodotto è abbinata al messaggio che ha appena firmato. Il numero di indice della lotteria che stanno controllando dovrebbe anche produrre un valore di punteggio che è inferiore alla loro soglia T. Se questo è vero, allora la firma candidata che hanno prodotto ha effettivamente vinto la lotteria su quel particolare numero di indice. In caso contrario, faranno il prossimo tentativo.

Dopo aver provato tutti i possibili indici, gli utenti avranno potenzialmente uno o più indici per i quali la loro firma S è valida. Per ognuno di questi indici, possono produrre una firma individuale che consiste nella loro firma candidata, il numero di indice per il quale è valida, e la prova che verifica che il loro punteggio è coerente con lo stake registrato.

Architettura della rete

Implementando Mithril su Cardano, possiamo rappresentare l’interazione del software come segue:

img

Figura 3. Architettura della rete Mithril

Una rappresentazione di alto livello del software che circonda un operatore di stake pool (SPO) include la sua connessione alla rete peer-to-peer (P2P) di Cardano, la rete P2P del nodo Mithril, e il client Mithril collegato al nodo gestito da un SPO.

Il nodo Mithril della piattaforma SPO accede alla sua blockchain verificata nella memoria locale ed esegue il protocollo per produrre certificati Mithril che sono conservati nella memoria Mithril. I certificati Mithril prodotti possono essere sincronizzati in modo verificabile in tutta la rete. Così, l’SPO può condividere sia l’intera blockchain di Cardano che l’elenco dei certificati Mithril validi per essa. Quando il client Mithril si connette alla rete, richiede una lista di certificati Mithril e chiede solo la catena più lunga della blockchain di Cardano.

Anche diversi SPO possono partecipare a tale impostazione. Il client Mithril verificherà poi che i certificati confermino completamente la blockchain Cardano ottenuta. L’intera procedura è leggera e non richiederà il coinvolgimento di una significativa memoria di rete o di risorse computazionali. Inoltre, le procedure di Cardano full node sync e fast sync con Mithril non si escludono a vicenda - possono essere eseguite in parallelo. La sincronizzazione veloce con Mithril sarà successivamente confermata dalla sincronizzazione completa del nodo.

Casi d’uso

Diamo un’occhiata ai casi d’uso in cui l’applicabilità di Mithril è altamente vantaggiosa.

Mithril aumenta l’efficienza dei client del nodo completo o di applicazioni come Daedalus. Garantisce una sincronizzazione veloce e sicura dei dati del nodo completo, migliorando significativamente i tempi e le risorse richieste tra cui il calcolo, lo scambio di rete e lo storage locale, mantenendo garanzie di sicurezza di alto livello.

Mithril è applicabile anche a client leggeri e applicazioni mobili, garantendo un approccio senza fiducia. Un altro vantaggio significativo è l’utilizzo delle firme Mithril per l’esecuzione delle sidechain. La blockchain principale può connettersi a diverse sidechains che possono anche avere diversi protocolli di consenso. Mithril ha dei vantaggi nella verifica leggera dello stato della blockchain, e quindi i certificati possono convalidare lo stato attuale della blockchain specifica così come la correttezza dei trasferimenti avanti e indietro in modo sicuro.

Infine, le applicazioni di voto basate su stake e le soluzioni di governance possono utilizzare Mithril indipendentemente dalla complessità del protocollo di voto. Le firme Mithril possono essere utilizzate per una verifica sicura e leggera del conteggio. Questo è utile anche nella governance quando gli stakeholder passano attraverso un processo decisionale decentralizzato e forniscono il risultato finale in modo semplice e verificabile.

Implementazioni

Diverse aziende sono già interessate all’implementazione di Mithril nelle loro soluzioni blockchain. Galois, una società di R&S avanzata focalizzata su metodi formali, crittografia e hardware, implementerà il primo prototipo di Mithril basato sulla ricerca fatta da IOHK. Galois implementerà Mithril nel linguaggio di programmazione Rust grazie alle sue caratteristiche di prototipazione veloce. Hanno in programma di presentare prima firme più piccole con BulletProofs, poi seguite da implementazioni pronte per la produzione, e infine prove formali di correttezza.

Idyllic Vision è un’altra azienda focalizzata sulla costruzione di un protocollo di identità auto-sovrana basato su prove di conoscenza zero, un sistema di gestione delle credenziali per le organizzazioni e un portafoglio mobile per gli utenti finali che supporta l’interoperabilità tra diverse soluzioni di società. Stanno progettando di implementare la prova di concetto del nodo Mithril. Nei prossimi mesi, inizieranno con la creazione di un progetto di architettura della soluzione, definendo una serie di componenti di sistema che dovrebbero essere sviluppati e integrati organicamente nell’infrastruttura esistente. Questo include l’integrazione con la libreria di crittografia Mithril e il nodo Cardano, e uno strato di rete per la comunicazione tra i nodi. Il risultato di questa fase dovrebbe essere integrato in Cardano per permettere un veloce bootstrapping del nodo e il supporto per funzionalità extra come client leggeri come altri.

Per saperne di più, leggi il documento di ricerca di Mithril e guarda la presentazione del Cardano Summit.