Vuoi andare più nel dettaglio riguardo la sicurezza del mondo crypto e blockchain? Questa guida sul Multi-Party Computation ti spiegherà tutto!
Nel mondo della crittografia e della sicurezza informatica, esiste un sottile equilibrio tra la condivisione di informazioni sufficienti per una collaborazione produttiva e la protezione dei dettagli sensibili per garantire la privacy.
Questa sfida diventa particolarmente cruciale quando più parti, ognuna delle quali detiene dati privati e riservati, devono eseguire calcoli congiuntamente senza compromettere la sicurezza dei propri dati individuali. Una soluzione innovativa a questo dilemma è il Multi-Party Computation (MPC).
Table of Contents
Il Multi-Party Computation (MPC) è una tecnica crittografica avanzata. Il suo obiettivo principale è consentire a più entità di eseguire operazioni crittografiche. Nel frattempo, viene preservata la riservatezza dei singoli input e ne viene impedita la divulgazione a terze parti non autorizzate.
Questi sono solo alcuni esempi della miriade di applicazioni del Multi-Party Computation, che sottolineano le sue capacità ad ampio raggio in vari campi.
Considera tre persone: Mario, Angelo ed Elena. Ognuno di loro ricopre ruoli identici in diverse aziende e sono curiosi di conoscere lo stipendio medio per il loro titolo di lavoro. Tuttavia, nessuno di loro è a suo agio nel rivelare i propri stipendi esatti.
Sappiamo che lo stipendio di Mario è di $ 60.000, quello di Angelo è di $ 70.000 e quello di Elena è di $ 80.000. Pertanto, lo stipendio medio è di $ 70.000.
Ogni input è nascosto utilizzando una funzione crittografica. In questo scenario, rappresentiamo ogni stipendio come la somma di tre valori diversi (è inteso da ciascun membro che il proprio stipendio deve essere espresso come la somma di tre componenti appunto). Mentre ci potrebbe essere un numero infinito di possibilità, per esempio, consideriamo quanto segue:
Ogni partecipante condivide solo due delle tre quote di stipendio con gli altri, assicurandosi di non rivelare completamente i propri redditi individuali:
Ogni individuo combina la sua parte di stipendio con gli altri che ha ricevuto. Quindi, Mario ha -$10.000, Angelo ha $250.000 ed Elena ha -$30.000. Se condividono questi totali tra loro, possono facilmente calcolare il totale ($ 210.000) e, dividendolo per 3, ottengono lo stipendio medio, che è di $ 70.000. Hanno raggiunto il loro obiettivo senza rivelare i dettagli personali dello stipendio.
Questo concetto trova applicazioni significative nel regno della tecnologia crypto e blockchain. Ad esempio, consente a più entità di firmare transazioni senza rivelare le proprie chiavi private individuali. Anche se questo potrebbe sembrare simile alle configurazioni dei multi-sig wallet , MPC offre numerosi miglioramenti e vantaggi.
Allora come funziona? Dato un segreto “s”, l’MPC abilita la divisione di questo segreto in “n” parti e le distribuisce tra gli “n” partecipanti coinvolti nel calcolo. Applicare questo concetto alla sfera crittografica significherebbe che la chiave privata del portafoglio è disseminata tra vari membri e, di conseguenza, su più dispositivi. Questa pratica fornisce un ulteriore livello di sicurezza alla custodia della chiave privata.
Quali sono i vantaggi di un portafoglio che utilizza il Multi-Party Computation?
Da qui in poi si va sul tecnico, ma basta leggere con attenzione e puoi capire tutto!
Mentre i portafogli MPC e le configurazioni di portafogli multi-sig hanno alcuni obiettivi comuni, i portafogli MPC offrono diversi vantaggi unici:
I frammenti di chiave privata condivisi tra i membri possono essere regolarmente aggiornati o aggiornati manualmente, fornendo una solida protezione a lungo termine contro gli attacchi (ad esempio, ogni stipendio potrebbe essere suddiviso in un diverso insieme di tre addendi a tempo indeterminato). Inoltre, è possibile utilizzare le chiavi una sola volta o farle scadere dopo un certo periodo.
Grazie alla funzione di aggiornamento appena descritta, è facile adattare un portafoglio MPC ai cambiamenti nell’appartenenza. Un semplice aggiornamento dei frammenti di chiave può trasformare un portafoglio MPC da una configurazione k/n a una configurazione j/m, mantenendo lo stesso segreto (la chiave privata del portafoglio) e quindi lo stesso indirizzo del portafoglio derivato dalla chiave pubblica.
A differenza dei portafogli multi-sig, che vengono creati e distribuiti su una rete specifica e hanno una compatibilità limitata con poche chain selezionate a causa della firma on-chain, i portafogli MPC mirano a gestire l’intero processo di costruzione della chiave privata condivisa off-chain. Il protocollo MPC specifico può utilizzare vari meccanismi crittografici (come ECDSA, EdDSA, firme Schnorr, ecc.), rendendo l’MPC compatibile con un’ampia gamma di blockchain.
Nel caso in cui un membro perda il proprio frammento di chiave, alcuni portafogli MPC dispongono di meccanismi di ripristino. Ad esempio, tutti i fondi potrebbero essere trasferiti a un indirizzo dedicato per evitare perdite permanenti. In alternativa, grazie a Threshold Signature Schemes, le transazioni possono ancora essere firmate solo con una parte dei frammenti chiave. Avere tutte le condivisioni non è un prerequisito.
In una configurazione multi-sig, ogni membro firma e approva una transazione on-chain, mentre nei Multi-Party Computation wallet i frammenti vengono prima assemblati e quindi viene condotta una singola transazione on-chain.
Poiché multi-sig opera on-chain, gli indirizzi dei membri del portafoglio sono esposti a potenziali aggressori. MPC rivela solo un indirizzo finale sulla chain, mantenendo riservate tutte le operazioni precedenti.
Alcune implementazioni del portafoglio MPC consentono al proprietario di imporre limiti alle transazioni di ciascun membro del portafoglio (ad esempio, limitando la quantità di token che possono trasferire).
I portafogli MPC si basano su una tecnologia di calcolo multipartitico e utilizzano diversi concetti crittografici che vale la pena comprendere.
Analogamente ai sistemi multi-sig, le configurazioni basate su MPC possono generare firme valide anche se non tutti i frammenti di chiave vengono raccolti da tutti i membri del portafoglio. È sufficiente un minimo specifico, dipendente dalla configurazione scelta. Ciò è reso possibile da alcuni schemi di soglia crittografica, tra cui:
Lo Shamir Secret Sharing Scheme (SSSS) è una forma di condivisione segreta che sfrutta la crittografia omomorfica. Questo tipo di crittografia consente operazioni su dati crittografati senza la necessità di decrittografia.
All’interno di questo schema, un ruolo chiamato “Dealer” è incaricato di generare il segreto (chiave privata) e di distribuirne i frammenti agli “n” membri del portafoglio MPC. Quando una transazione deve essere firmata, tutti i frammenti necessari devono essere restituiti al Dealer in modo che possa ricostruire la chiave privata accurata per la firma.
Questo sistema consente al Dealer di firmare una transazione, generando una firma valida, utilizzando una chiave privata ricostruita con un set minimo di k pezzi sul totale n ricevuto dai membri del portafoglio, dove “k < n.” Questo numero minimo è noto come soglia. Se dai membri vengono raccolti solo frammenti k-1 (sotto la soglia), è impossibile rivelare alcun segreto, anche parzialmente.
Uno svantaggio notevole con lo Shamir Secret Sharing Scheme (SSSS) è il rischio posto durante la generazione e la firma della chiave, dove l’intera chiave privata è gestita dal Dealer. Ciò si traduce in un single point of failure. Quindi, come si può riassemblare la chiave privata partendo solo da una manciata di frammenti?
L’SSSS dipende dall’interpolazione polinomiale di Lagrange. Questo strumento matematico consente la ricostruzione di una curva polinomiale (di grado k-1) che interseca l’insieme minimo dato di punti dati (k) e predice il valore negli spazi tra punti noti.
Dimostriamolo con un esempio. Supponiamo che il codice segreto sia S = 65 e puntiamo a ricostruire il segreto con k < n azioni dove k = 2 e n = 10.
Se visualizziamo S come un punto sull’asse y di un grafico, le sue coordinate sarebbero S = (0,65). Seguendo questo:
Introduciamo un punto casuale R nello spazio. Ci sarà solo una linea che interseca S e R. Etichettiamo questa linea come “linea segreta”.
La “linea segreta” contiene infiniti punti. Indichiamo questi punti come “quote segrete” e distribuiamo una “quota segreta” a ciascuno degli n = 10 membri, escluso il punto S. Questa distribuzione può avvenire in vari modi, a seconda dell’implementazione: il Dealer potrebbe stabilire una comunicazione privata canale con ciascun partecipante o trasmettere una versione crittografata del segreto a tutti (solo il destinatario corretto sarà in grado di decrittografare e leggere la condivisione segreta). Tuttavia, è essenziale che queste condivisioni chiave rimangano riservate tra il Dealer e il destinatario.
Possiamo identificare la “linea segreta” (e quindi S semplicemente intersecando con l’asse y) con due qualsiasi dei segreti dati (punti su quella linea). In questo modo, abbiamo bisogno di qualsiasi k = 2 delle azioni su n = 10.
Questo processo può essere ridimensionato a un sistema k < n dove k = 3,4,5 e così via. Ad esempio, se k = 3, la “linea segreta” sarà una “curva segreta di 2 gradi” (k-1 = 2). Se riusciamo a recuperare solo due azioni segrete, non possiamo recuperare la “curva segreta” e quindi il segreto: abbiamo bisogno di almeno k = 3 punti (azioni).
SSSS codifica il “segreto” (la chiave privata del portafoglio) come termine di grado zero di un polinomio. Quindi crea quote chiave dalla curva e le “distribuisce” ai vari membri. Come accennato, per avere un valore di stima corretto nel gap, abbiamo bisogno di un insieme minimo di punti dati k, con k <= n.
Una moltitudine di varianti sono scaturite dalla Shamir Secret Sharing, e Verifiable Secret Sharing (VSS) ne è un esempio. Il VSS opera con l’obiettivo centrale di garantire che le azioni dannose non vengano diffuse dal Dealer. Ciò è facilitato attraverso un sistema in cui i partecipanti convalidano il pezzo che hanno ricevuto.
Una versione frequentemente implementata di VSS è l’algoritmo Feldman VSS. Questo metodo è progettato per confermare che ogni partecipante riceve una quota segreta dal Dealer che è coerente con il resto.
Il protocollo VSS si svolge in due fasi:
Nel caso in cui un destinatario riceva un’azione errata, può sollevare un reclamo a cui deve rispondere l’Operatore. Se il rivenditore non riesce a risolvere il problema, viene considerato dannoso e successivamente rimosso dal protocollo. Ciò avvia una fase di controversia.
In alcuni casi, un rivenditore onesto potrebbe dover affrontare un reclamo sollevato da un membro disonesto. Durante questa fase, ciascuna delle parti deve convincere le altre della propria onestà. Ciò sottolinea il ruolo fondamentale svolto dalla fiducia e dalla verifica all’interno del protocollo Verifiable Secret Sharing (VSS).
Il Threshold Signature Scheme (TSS) è emerso come uno sviluppo significativo dallo Shamir Secret Sharing Scheme (SSSS). Mentre l’SSSS e la sua variante, VSS, coinvolgono un’entità Dealer che conosce il segreto completo durante la generazione della condivisione della chiave e può ricostruire il segreto per firmare le transazioni, il TSS introduce un miglioramento significativo: il segreto totale non si trova mai in un unico posto. Non c’è più un’unica entità Dealer in possesso della piena conoscenza del segreto o in grado di recuperarlo durante la firma.
Questa innovazione è raggiunta attraverso due caratteristiche fondamentali:
Pertanto, il TSS garantisce che il segreto totale non risieda mai con una singola entità in nessun momento. Non ci sono condivisioni di chiavi trasferite e la chiave privata completa non viene mai completamente ricostruita. Ciò si traduce in un sistema più sicuro e distribuito per la condivisione delle chiavi e la firma delle transazioni.
Una preoccupazione cruciale all’interno di una rete MPC è il phishing, in cui un utente malintenzionato manipola i membri del portafoglio per rivelare la loro condivisione della chiave privata. Sottolinea la necessità di gestire le informazioni riservate in modo sicuro. Proprio come è imperativo per i portafogli archiviare in modo sicuro e non divulgare mai la chiave privata, i membri MPC dovrebbero archiviare le loro condivisioni di chiavi private in un ambiente sicuro e affidabile. Qualsiasi archiviazione di condivisioni chiave su dispositivi vulnerabili potrebbe potenzialmente portare a conseguenze irreversibili.
Ciò è particolarmente critico nei sistemi MPC in cui sono richieste condivisioni chiave “n / n” per la firma delle transazioni e la soglia minima è uguale al numero di membri del portafoglio. La perdita anche di una sola azione chiave comporterebbe l’impossibilità di gestire i fondi. Qui, i membri potrebbero trovare conforto nel mantenere i backup dei dati sensibili.
Tuttavia, l’aumento delle copie di backup non è necessariamente correlato a una maggiore sicurezza. Maggiore è il numero di copie di informazioni riservate, maggiore è la potenziale superficie di attacco.
Esiste un ulteriore compromesso all’interno dei sistemi MPC tra sicurezza e prestazioni. I portafogli basati su MPC autenticano le condivisioni delle chiavi o le firme parziali utilizzando vari algoritmi e meccanismi. All’aumentare del numero di membri della rete MPC, aumentano anche le iterazioni di un algoritmo specifico, ad esempio durante la generazione della chiave o la ricostruzione totale della firma. Ciò significa che avere meno membri può rendere il sistema più suscettibile al rischio.
Ad esempio, un malintenzionato che prende di mira un portafoglio MPC con solo tre membri dovrebbe solo compromettere tre dispositivi/membri per recuperare le condivisioni chiave. Al contrario, una base di membri più ampia (come 30) potrebbe ridurre la velocità e le prestazioni a causa dei tempi di attesa per i cicli di protocollo, requisiti di potenza di calcolo elevati, latenza di comunicazione e altro ancora.
Anche il canale di comunicazione merita attenzione. Poiché la tecnologia MPC si basa su una rete di firmatari connessi a Internet, potrebbe essere vulnerabile ad attacchi man-in-the-middle o di spoofing avviati da entità dannose. Inoltre, nelle implementazioni MPC che richiedono l’attività simultanea dei membri co-firmatari, un hacker potrebbe eseguire un attacco denial-of-service per interrompere l’intera rete MPC.
Si consideri uno scenario in cui sono necessari tre membri e un minimo di tre firme parziali per autorizzare una transazione. Un utente malintenzionato potrebbe costringere uno o più dei cofirmatari a disconnettersi dalla rete, rendendo impossibile il completamento della transazione.
Un altro potenziale vettore di attacco in alcuni sistemi MPC è il cosiddetto “Forget and Forgive Attack”, rilevante per implementazioni specifiche prive di controlli rigorosi durante l’aggiornamento delle condivisioni chiave.
L’MPC consente di aggiornare le condivisioni di chiavi segrete mantenendo la stessa chiave privata totale e, quindi, la chiave pubblica. Nonostante questo processo sia ripetibile all’infinito, le condivisioni di chiavi appena generate devono consentire la creazione della stessa chiave privata precedente in modo che la chiave pubblica corrisponda a quella vecchia. In caso contrario, il processo viene interrotto.
Il problema sorge in alcune implementazioni MPC quando le entità non attendono il completamento del processo prima di cancellare la loro vecchia condivisione di chiavi. Essi controlla semplicemente la validità della nuova condivisione utilizzando VSS, consentendo potenzialmente a un hacker di distribuire condivisioni di chiavi appena generate a un sottoinsieme dei membri MPC, aggirando i loro meccanismi di controllo.
L’obiettivo è fare in modo che un sottoinsieme di entità lo rifiuti e altri lo accettino, portando a un mix di condivisioni chiave vecchie e nuove che non si sommano più per emettere una firma valida. Per contrastare questo problema, le parti dovrebbero attendere il “risultato” finale prima di eliminare la loro vecchia condivisione di chiavi, possibilmente implementando meccanismi di comunicazione back-channel tra entità.
La tecnologia MPC segna un notevole passo avanti nella sicurezza delle operazioni che coinvolgono segreti condivisi tra più parti. Ciò è particolarmente pertinente nella fiorente sfera crittografica, in cui un numero crescente di aziende e organizzazioni nel dominio Web3 richiede una gestione patrimoniale condivisa tra varie entità.
SE SEI ARRIVATO FINO ALLA FINE DELL’ARTICOLO, COMPLIMENTI, NON ERA FACILE!
Cosa succede al prezzo dei BTP quando i tassi di interesse oscillano? E quali opportunità…
Ci sarà uno stravolgimento totale del check-in in aeroporto rispetto a come lo conoscevamo. Chi…
Gli utenti Apple che sono appena passati a iPhone 16 potranno constatarlo con i loro…
Anche per il mese di ottobre vi sono cambiamenti nella numerazione della televisione: la lista…
Dal momento che stanno diventando sempre più interessanti gli investimenti in criptovalute, ecco i migliori…
Occasione importante per il nuovo iPhone16, il prezzo vantaggioso del nuovo dispositivo. Da sfruttare al…