A Rust-to-Lean Verification Pipeline with AI Provers: An Experience Report
Questo articolo presenta una pipeline di verifica solida e verificata dal kernel che integra strumenti di estrazione da Rust a Lean, librerie crittografiche formali e dimostratori basati sull'intelligenza artificiale per generare con successo prove di correttezza verificate da macchina per codice crittografico Rust di produzione all'interno del progetto zkEVM della Ethereum Foundation.
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 di avere una fabbrica ad alto rischio che costruisce le chiavi digitali per un enorme caveau invisibile (una Zero-Knowledge Virtual Machine). Se anche un singolo ingranaggio minuscolo in questa fabbrica è leggermente storto, l'intera sicurezza del caveau è compromessa, e nessuno se ne accorgerà fino a quando non sarà troppo tardi.
Per anni, controllare questi ingranaggi è stato come assumere un team di meccanici esperti per ispezionare ogni singolo bullone a mano. È lento, costoso e si basa sul fatto che i meccanici non manchino nulla.
Questo documento descrive una nuova catena di montaggio automatizzata che fa tre cose:
- Traduce i progetti della fabbrica (scritti in un linguaggio complesso chiamato Rust) in un linguaggio matematico universale (Lean 4) che un computer può comprendere perfettamente.
- Fornisce uno standard d'oro pre-scritto e perfetto di come la macchina dovrebbe funzionare (utilizzando librerie chiamate ArkLib e CompPoly).
- Assiste un assistente AI super-intelligente (chiamato Aleph e Aristotle) per confrontare i progetti tradotti con lo standard d'oro e scrivere la prova che corrispondono.
Ecco come funziona il processo, utilizzando semplici analogie:
1. Il Traduttore (da Rust a Lean)
I progetti della fabbrica sono scritti in Rust, un linguaggio che gli ingegneri amano per costruire software veloce e sicuro. Tuttavia, i "giudici matematici" (il sistema Lean 4) non parlano Rust; parlano solo matematica pura.
Il documento utilizza strumenti chiamati Aeneas ed Hax come traduttori. Prendono il codice Rust e lo convertono in matematica "funzionale pura".
- L'Analogia: Immagina di prendere una ricetta scritta nello slang di uno chef (Rust) e tradurla in una formula chimica rigorosa, passo dopo passo (Lean). Il traduttore aggiunge anche "etichette di sicurezza" a ogni passaggio. Se un passaggio potrebbe fallire (come dividere per zero o rimanere senza ingredienti), la traduzione lo segnala chiaramente in modo che la matematica possa controllarlo.
2. Lo Standard d'Oro (Le Specifiche)
Non puoi provare che una macchina funziona a meno che tu non abbia una definizione di "funzionamento".
- L'Analogia: Pensa a ArkLib e CompPoly come al "Manuale Ufficiale" per la crittografia. Contengono definizioni perfette e astratte di come cose come "ripiegare un foglio di carta" (FRI folding) o "controllare un albero di Merkle" dovrebbero comportarsi matematicamente.
- L'obiettivo è dimostrare che il codice Rust tradotto (la macchina della fabbrica) fa esattamente ciò che il Manuale dice che dovrebbe fare, né più né meno.
3. Lo Scrittore di Prove AI (Il "Cervello")
Questa è la parte più entusiasmante. Una volta tradotto il codice e pronto il manuale, devi scrivere una prova che corrispondano. Tradizionalmente, un matematico umano doveva scrivere questa prova, il che è come risolvere un puzzle enorme e complesso.
Il documento introduce Prover AI (Aleph e Aristotle) per fare il lavoro pesante.
- L'Analogia: Immagina l'AI come un detective instancabile e super-veloce. Gli dai il progetto tradotto e il manuale, e dice: "Vedo la connessione! Ecco la prova".
- Controllo di Sicurezza Cruciale: L'AI non si limita a dire di avere ragione; scrive la prova in un linguaggio che il Kernel Lean (il giudice supremo) può leggere. Il Kernel controlla ogni singolo passaggio della logica dell'AI. Se l'AI indovina male, il Kernel la rifiuta. Quindi, l'AI può essere creativa, ma non può barare.
Cosa Hanno Effettivamente Fatto
Il team ha applicato questa pipeline a codice crittografico reale utilizzato nei progetti della Fondazione Ethereum (in particolare Plonky3 e RISC Zero).
- Il Successo: Hanno dimostrato con successo che parti specifiche del codice (come calcolare come ripiegare i dati o verificare se un albero è incluso correttamente) erano matematicamente perfette.
- Il Ruolo dell'AI: In un esempio specifico che coinvolgeva una funzione chiamata
compute_log_arity_for_round, l'AI (Aleph) ha scritto automaticamente due prove complesse che erano precedentemente bloccate (segnate come "sorry", ovvero "sappiamo che è vero, ma non l'abbiamo ancora provato"). - Il Ruolo dell'Umano: L'AI era ottima nel gestire puzzle logici, scenari "se-allora" e matematica di base. Tuttavia, aveva ancora bisogno degli umani per:
- Progettare la strategia complessiva (il "Manuale").
- Gestire cicli complessi (come trovare il modello giusto in una sequenza ripetitiva).
- Correggere errori di traduzione dove il codice Rust era troppo complicato per essere gestito dal traduttore.
Gli Intoppi (Lacune Ingegneristiche)
Il documento ammette che la catena di montaggio non è ancora perfetta.
- Disallineamento delle Versioni: I traduttori, i manuali e l'AI parlano tutti dialetti leggermente diversi del linguaggio matematico. Il team ha dovuto coordinarsi per mettere tutti sulla stessa versione.
- Limiti della Traduzione: Alcune funzionalità complesse di Rust (come i tipi generici o le librerie esterne) sono difficili da convertire per i traduttori. Il team ha dovuto riscrivere parte del codice in un "modello" più semplice solo affinché il traduttore potesse comprenderlo.
La Conclusione
Questo documento non afferma che l'AI ha sostituito gli ingegneri umani. Invece, mostra una pipeline in cui:
- Gli umani traducono il codice e fissano gli obiettivi.
- L'AI agisce come un potente assistente per scrivere le prove logiche e noiose.
- Un giudice computer rigoroso (il Kernel) verifica tutto per garantire la sicurezza.
Il risultato è un sistema funzionante che trasforma codice crittografico di produzione in prove matematicamente garantite e verificate dalla macchina, rendendo il "caveau invisibile" significativamente più sicuro.
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.