← Ultimi articoli
💻 computer science

Towards Automated Formal Verification of zkEVMs Using LLM-Guided Constraint Synthesis

Il documento introduce VeriSynth, un framework innovativo che sfrutta una pipeline ibrida LLM-SMT per sintetizzare automaticamente modelli di verifica eseguibili da codice Rust zkEVM, raggiungendo tassi di rilevamento dei bug superiori al 90% superando i limiti della specifica manuale e delle allucinazioni degli LLM.

Autori originali: Shichen Huang, Zhenghe Jiang, Yi Jiang, Ling-I Wu, Jingyang Li, Guoqiang Li

Pubblicato 2026-07-23
📖 6 min di lettura🧠 Approfondimento

Autori originali: Shichen Huang, Zhenghe Jiang, Yi Jiang, Ling-I Wu, Jingyang Li, Guoqiang Li

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Immagina Internet come un enorme registro digitale globale dove tutti possono vedere ogni transazione, ma nessuno la controlla singolarmente. Questo è il mondo della blockchain, e il suo residente più famoso è Ethereum. Per rendere questo sistema più veloce ed economico, gli sviluppatori hanno costruito reti "Layer-2" che svolgono il lavoro pesante fuori scena, mostrando alla rete principale solo i risultati finali. Per dimostrare che questi risultati off-screen siano onesti senza rivelare i dettagli segreti, utilizzano un trucco magico chiamato "Zero-Knowledge Proof" (Prova a Conoscenza Zero). Immaginalo come un mago che ti mostra una scatola chiusa e dimostra, senza aprirla, che il tesoro all'interno è esattamente ciò che ha promesso.

Ma ecco il problema: affinché la magia funzioni, il libro degli incantesimi del mago (il codice informatico) deve essere perfetto. Se il mago commette un piccolo errore nell'incantesimo — come contare il numero sbagliato di monete d'oro o dimenticare di aggiornare la mappa — la scatola potrebbe sembrare ancora chiusa e valida, anche se è vuota o piena di monete false. Questo è un incubo per la sicurezza. Per impedire ciò, gli esperti utilizzano la "verifica formale", un metodo in cui un robot matematico super rigoroso controlla il libro degli incantesimi riga per riga per garantire che la logica sia impeccabile. Tuttavia, scrivere le istruzioni per questo robot è incredibilmente difficile, come cercare di tradurre un complesso manuale di un videogioco scritto in un linguaggio segreto in un libro di testo di matematica che il robot possa leggere.

È qui che entra in gioco un nuovo strumento chiamato VeriSynth. I ricercatori dietro di esso hanno capito che, sebbene l'Intelligenza Artificiale (IA) sia brava a scrivere codice, è anche soggetta alle "allucinazioni" — ovvero a inventare fatti che sembrano reali ma sono errati. Così, non hanno solo chiesto all'IA di trovare i bug. Inve al, hanno costruito un team in cui l'IA agisce come un traduttore creativo, trasformando il codice disordinato e segreto in una bozza per il robot matematico, e il robot agisce come un giudice severo che dice: "Sì, questo è corretto" o "No, questo è un non-sense, riprova".

Il Problema: Il Bug Silenzioso

Nel mondo delle zkEVM (Ethereum Virtual Machines a conoscenza zero), il codice che gestisce tutto è scritto in un linguaggio chiamato Rust. È potente ma complicato. A volte, uno sviluppatore potrebbe accidentalmente scrivere una riga di codice che conta male il gas (la commissione per una transazione), o dimenticare di aggiornare uno slot di memoria. Se ciò accade, il sistema potrebbe generare una prova "valida" per una transazione che è in realtà guasta. È come un cassiere di banca che accidentalmente ti dà 100 dollari invece di 10, ma la ricevuta dice che tutto è perfetto. Poiché la prova sembra valida, l'errore passa inosservato, rompendo silenziosamente la sicurezza dell'intero sistema.

Il modo consueto per risolvere questo problema è far scrivere agli umani casi di test dettagliati, sperando che colgano ogni possibile errore. Ma gli umani si stancano e non possono immaginare ogni scenario strano che un computer potrebbe incontrare. Un altro approccio è utilizzare i Large Language Models (LLM) — lo stesso tipo di IA che scrive saggi o codice — per trovare i bug. Ma l'articolo sostiene che chiedere a un'IA di "cercare semplicemente i bug" sia inaffidabile. L'IA potrebbe ipotizzare che il bug sia presente quando non lo è, o mancarlo del tutto, perché manca della stretta certezza matematica necessaria per la sicurezza.

La Soluzione: Un Team di Traduttore e Giudice

Gli autori di questo articolo, Shichen Huang e il suo team, hanno creato un framework chiamato VeriSynth. Trattano il problema come un gioco di "Telefono Senza Fili" ad alta posta in gioco, dove il messaggio deve essere perfetto.

  1. Il Traduttore (L'LLM): Per prima cosa, il sistema scompone il complesso codice Rust in piccoli pezzi gestibili, come separare un enorme puzzle in singoli pezzi. Successivamente, chiede a un'IA di tradurre ogni pezzo in un "modello di verifica". Questo non è solo una descrizione; è un insieme di regole matematiche rigorose (scritte in un linguaggio chiamato Python/Z3) che dicono al robot matematico esattamente come dovrebbe comportarsi il codice.
  2. La Libreria di Riferimento: Per impedire all'IA di inventare cose, VeriSynth le fornisce un "foglietto illustrativo" di esempi precedentemente verificati. È come mostrare all'IA l'immagine di un set Lego correttamente assemblato prima di chiederle di costruirne uno nuovo, in modo che sappia come devono apparire i pezzi.
  3. Il Giudice (L'SMT Solver): Questa è la parte più importante. La traduzione dell'IA non viene mai accettata immediatamente. Viene consegnata a un robot matematico super rigoroso (un risolutore SMT). Il robot controlla la traduzione rispetto alle regole. Se la tradzione presenta un errore di sintassi, un pezzo mancante o una contraddizione logica, il robot la rifiuta.
  4. L'Auto-Riparazione: Se il robot rifiuta la traduzione, non si limita a dire "fallito". Invia un messaggio di errore specifico all'IA: "Hai usato la dimensione sbagliata per questo numero" o "Hai dimenticato di aggiornare la memoria". L'IA prova quindi a correggere l'errore e lo rimanda indietro. Questo ciclo continua finché il robot non è soddisfatto.

Cosa Hanno Scoperto

Il team ha testato Verisynth su un dataset "buggy" personalizzato che hanno costruito, contenente 95 diversi esempi di codice con errori nascosti. Questi errori spaziavano da semplici errori matematici a problemi complessi su come il sistema gestisce le chiamate tra diversi programmi.

I risultati sono stati sorprendenti:

  • VeriSynth ha trovato 87 su 95 bug, raggiungendo un tasso di rilevamento del 91,6%.
  • Al contrario, se avessero solo chiesto all'IA di trovare i bug senza il rigoroso giudice robotico, avrebbe trovato solo 44 bug (46,3%).
  • Anche se avessero lasciato che l'IA dialogasse con il robot e riprovasse (un approccio "conversazionale"), avrebbe trovato solo 58 bug (61,1%).

L'articolo ha anche confrontato VeriSynth con i metodi di test del mondo reale utilizzati da un importante progetto chiamato Scroll. Il team di Scroll aveva scritto i propri set di test per catturare i bug. I loro test hanno catturato 55 dei 95 bug. VeriSynth ne ha catturati 87, il che significa che ha trovato 32 bug aggiuntivi che i test scritti dagli umani avevano mancato.

Perché È Importante

I ricercatori sottolineano che questo non serve a sostituire gli sviluppatori umani o a dire che l'IA è perfetta. Si tratta invece di usare l'IA come uno strumento potente per fare il lavoro pesante della traduzione, mantenendo un robot rigoroso e implacabile come autorità finale. La funzione di "auto-riparazione" è stata la parte più critica; senza di essa, il tasso di successo del sistema sarebbe sceso al 66,3%, dimostrando che la capacità di correggere i propri errori è ciò che rende il sistema efficace.

Lo studio suggerisce che combinando la creatività dell'IA con la logica rigorosa dei risolutori matematici, possiamo costruire una rete di sicurezza per il futuro della blockchain che sia molto più forte di quella che gli umani possono costruire da soli. È un promemoria del fatto che, nel mondo della sicurezza digitale, la migliore difesa è un team dove la mente creativa propone e la logica rigorosa decide.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →