Cardano Foundation mostra come verificare una prova a conoscenza zero su Cardano

La prima puntata di una serie per sviluppatori in cinque parti mostra come costruire una prova Groth16 da 192 byte e verificarla in Aiken usando operazioni crittografiche già disponibili in Plutus V3.

By SongMarketCap

Updated:

Cardano News - Cardano Foundation mostra come verificare una prova a conoscenza zero su Cardano

Uno smart contract su Cardano può verificare se qualcuno conosce otto numeri che soddisfano un'equazione senza ricevere i numeri stessi. La Cardano Foundation usa questo esempio per introdurre la sua nuova serie sulle prove a conoscenza zero. Il primo tutorial segue il processo dalla scrittura dell'equazione come insieme di vincoli fino alla generazione della prova off chain e alla sua verifica in un test Aiken.

Otto numeri privati, un risultato pubblico

L'esempio raggruppa otto numeri in quattro coppie. Il dimostratore moltiplica i due numeri in ciascuna coppia e somma i quattro prodotti. La somma deve essere pari a 100. Quel risultato è pubblico, mentre gli otto numeri restano privati.

Il tutorial esprime il calcolo come cinque vincoli matematici. Quattro verificano i singoli prodotti e il quinto controlla che la loro somma corrisponda al risultato pubblico. Una prova valida stabilisce che il dimostratore conosce un insieme di numeri che soddisfa tali vincoli senza rivelare quale insieme ha usato.

Come Aiken verifica una prova Groth16 da 192 byte

Il tutorial genera la prova off chain. La prova Groth16 consiste in tre punti su curva ellittica che occupano 192 byte nel formato compresso BLS12-381 usato nell'esempio. Il verificatore controlla la prova rispetto agli input pubblici e a una chiave di verifica legata al circuito.

La procedura guidata si conclude con un test Aiken che usa le stesse operazioni BLS12-381 disponibili per gli script Plutus V3 su Cardano mainnet. Per rendere l'esempio riproducibile, il tutorial utilizza valori fissi e pubblicamente noti per la parte normalmente segreta del setup. In un setup Groth16 di produzione, chiunque conservi quei valori segreti di setup potrebbe falsificare delle prove.

Perché la verifica on chain è importante per Cardano

Gli sviluppatori Cardano possono integrare un verificatore Groth16 in uno smart contract Aiken utilizzando le operazioni Plutus V3 esistenti. Un'applicazione può generare la prova off chain, quindi passarla al contratto affinché il validatore possa decidere se una transazione soddisfa una condizione. La prova e gli eventuali input pubblici necessari sono disponibili al validatore, mentre i dati privati sottostanti possono rimanere off chain.

Per un'applicazione di credenziali, tale divisione determina ciò che un utente deve divulgare. Un contratto potrebbe verificare se il titolare di una credenziale soddisfa un requisito di età senza ricevere la sua data di nascita, a condizione che il circuito e la progettazione della credenziale impongano l'affermazione oggetto di prova.

[NEWSBREAK]

Cosa tratteranno le prossime quattro puntate

La seconda puntata mostrerà come accelerare la generazione delle prove e come funzionano le cerimonie di setup in produzione. Confronterà inoltre Groth16 con altri sistemi di prova ed esplorerà come le macchine virtuali a conoscenza zero possano dimostrare che un programma è stato eseguito correttamente senza richiedere agli sviluppatori di progettare un circuito a mano.

La terza puntata mostrerà come le prove di possesso della chiave possano essere collegate agli indirizzi Cardano. La quarta si concentrerà sulla divulgazione selettiva. In un esempio previsto, il titolare di una credenziale dimostra di avere almeno 21 anni senza rivelare la propria data di nascita o l'indirizzo blockchain.

L'ultima puntata esaminerà i sistemi di prova resistenti ai computer quantistici, concentrandosi su approcci basati su reticoli che potrebbero sostituire le ipotesi sulle curve ellittiche utilizzate in Groth16.