zk-STARK

Avanzato
Esistono due tipi popolari di dimostrazioni a conoscenza zero (zk), talvolta indicati anche come protocolli zk - SNARK e STARK. Una dimostrazione a conoscenza zero è un metodo di verifica crittografica in base al quale una parte (il dimostratore) può dimostrare all'altra parte (il verificatore) che una determinata affermazione è vera senza la necessità di fornire alcuna informazione a supporto oltre al fatto che l'affermazione è effettivamente vera.
zk-STARK sta per "zero-knowledge scalable transparent arguments of knowledge." Gli zk-STARK sono stati concepiti da Eli-Ben Sasson, professore al Technion-Israel Institute of Technology. A differenza degli zk-SNARK, che dipendono da una configurazione iniziale fidata tra un dimostratore e un verificatore, gli zk-STARK non richiedono una configurazione iniziale fidata, poiché si basano su una crittografia più snella attraverso funzioni hash resistenti alle collisioni. Questo approccio elimina anche i presupposti numerici degli zk-SNARK, che sono computazionalmente costosi e teoricamente possono essere soggetti ad attacchi da parte di computer quantistici.
In termini semplici, le prove zk-STARK presentano una struttura più semplice in termini di assunzioni crittografiche. Tuttavia, questo comporta uno svantaggio significativo: le dimensioni delle prove sono elevate, di solito da 10 a 100 volte superiori a quelle degli zk-SNARK. Questa differenza nella dimensione dei dati li rende più costosi e può presentare limitazioni nell'utilizzo della tecnologia per l'invio di criptovalute e altre applicazioni.

I casi d'uso più comuni per le dimostrazioni a conoscenza zero sono quelli in cui sono essenziali sia la privacy che la sicurezza. Un esempio è l'autenticazione dell'identità. L'utilizzo di alcuni servizi online richiede di dimostrare la propria identità e ottenere il diritto per accedere a tali piattaforme. Spesso è necessario fornire informazioni personali come nome, email, data di nascita e altro.

Le dimostrazioni a conoscenza zero possono semplificare l'autenticazione sia per le piattaforme che per gli utenti. Una volta generata una zk-proof utilizzando input pubblici (dati che confermano l'appartenenza dell'utente alla piattaforma) e privati (i dettagli dell'utente), l'utente può semplicemente presentarla per autenticare la propria identità ogni volta che deve accedere al servizio. Questo migliora l'esperienza degli utenti e libera le organizzazioni dall'obbligo di memorizzare enormi quantità di informazioni personali.