Towards Automated Formal Verification of zkEVMs Using LLM-Guided Constraint Synthesis
Het artikel introduceert VeriSynth, een nieuw framework dat een hybride LLM-SMT-pipeline gebruikt om automatisch uitvoerbare verificatiemodellen te synthetiseren uit Rust zkEVM-code, waarbij een foutdetectiegraad van meer dan 90% wordt bereikt door de beperkingen van handmatige specificatie en LLM-hallucinaties te overwinnen.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je het internet voor als een gigantisch, wereldwijd digitaal grootboek waar iedereen elke transactie kan zien, maar niemand de controle erover heeft. Dit is de wereld van blockchain, en de bekendste bewoner is Ethereum. Om dit systeem sneller en goedkoper te maken, hebben ontwikkelaars "Layer-2"-netwerken gebouwd die het zware werk buiten het hoofdscherm afhandelen, en alleen de eindresultaten aan het hoofdnetwerk laten zien. Om te bewijzen dat deze resultaten buiten het scherm eerlijk zijn zonder de geheime details te onthullen, gebruiken ze een magische truc genaamd een "Zero-Knowledge Proof". Denk aan een tovenaar die je een vergrendelde doos laat zien en bewijst, zonder de doos te openen, dat de schat erin precies is wat hij beloofde.
Maar hier is de crux: voor de magie om te werken, moet het spreukenboek van de tovenaar (de computercode) perfect zijn. Als de tovenaar een kleine fout maakt in de spreuk — zoals het verkeerde bedrag aan goud tellen of vergeten de kaart bij te werken — kan de doos er nog steeds vergrendeld en geldig uitzien, zelfs als hij leeg is of vol met nepgeld zit. Dit is een nachtmerrie voor de veiligheid. Om dit te voorkomen, gebruiken experts "formele verificatie", een methode waarbij een superstrenge robot-wiskundige het spreukenboek regel voor regel controleert om te garanderen dat de logica foutloos is. Het schrijven van de instructies voor deze robot is echter ongelooflijk moeilijk, alsof je probeert een complexe handleiding van een videogame, geschreven in een geheime taal, te vertalen naar een wiskundeboek dat de robot kan lezen.
Hier komt een nieuwe tool genaamd VeriSynth in beeld. De onderzoekers achter deze tool realiseerden zich dat hoewel Kunstmatige Intelligentie (AI) geweldig is in het schrijven van code, het ook gevoelig is voor "hallucinaties" — het verzinnen van feiten die echt lijken maar onjuist zijn. Daarom vroegen ze de AI niet simpelweg om de bugs te vinden. In plaats daarvan bouwden ze een team waarin de AI fungeert als een creatieve vertaler die de rommelige, geheime code omzet in een concept voor de robot-wiskundige, en de robot fungeert als de strenge rechter die zegt: "Ja, dit is correct," of "Nee, dit is onzin, probeer het opnieuw."
Het Probleem: De Stille Bug
In de wereld van Zero-Knowledge Ethereum Virtual Machines (zkEVM's) wordt de code die de boel draaiende houdt geschreven in een taal genaamd Rust. Het is krachtig maar lastig. Soms schrijft een ontwikkelaar per ongeluk een regel code die de gas (de vergoeding voor een transactie) verkeerd telt, of vergeet een geheugenslot bij te werken. Als dit gebeurt, kan het systeem een "geldig" bewijs genereren voor een transactie die eigenlijk defect is. Het is alsof een bankmedewerker je per ongeluk $100 geeft in plaats van $10, maar het bonnetje zegt dat alles perfect is. Omdat het bewijs er geldig uitziet, blijft de fout onopgemerkt, wat de beveiliging van het hele systeem stilletjes ondermijnt.
De gebruikelijke manier om dit op te lossen is door mensen gedetailleerde testgevallen te laten schrijven, in de hoop dat ze elke mogelijke fout opvangen. Maar mensen worden moe, en ze kunnen niet elk vreemd scenario bedenken dat een computer tegen kan komen. Een andere aanpak is het gebruik van Large Language Models (LLM's) — dezelfde soort AI die essays of code schrijft — om de bugs te vinden. Maar het artikel betoogt dat het vragen aan een AI om simpelweg "naar bugs te zoeken" onbetrouwbaar is. De AI kan vermoeden dat de bug er is terwijl die er niet is, of hem volledig missen, omdat het de strikte, wiskundige zekerheid mist die nodig is voor veiligheid.
De Oplossing: Een Team van Vertaler en Rechter
De auteurs van dit artikel, Shichen Huang en zijn team, creëerden een framework genaamd VeriSynth. Ze behandelen het probleem als een hoogwaardig spelletje "Telefoontje" waarbij de boodschap perfect moet zijn.
- De Vertaler (De LLM): Eerst breekt het systeem de complexe Rust-code af in kleine, hanteerbare stukjes, zoals het scheiden van een grote puzzel in individuele onderdelen. Vervolgens vraagt het een AI om elk stukje te vertalen naar een "verificatiemodel". Dit is niet zoma van een beschrijving; het is een reeks strikte wiskundige regels (geschreven in een taal genaamd Python/Z3) die de robot-wiskundige precies vertellen hoe de code zou moeten werken.
- De Referentielibrari: Om de AI te voorkomen dat hij dingen verzint, geeft VeriSynth hem een "spiekbriefje" van eerder geverifieerde voorbeelden. Het is alsof je de AI een foto laat zien van een correct samengestelde Lego-set voordat je hem vraat een nieuwe te bouwen, zodat hij weet hoe de onderdelen eruit moeten zien.
- De Rechter (De SMT Solver): Dit is het belangrijkste deel. De vertaling van de AI wordt nooit direct vertrouwd. Het wordt overhandigd aan een superstrenge robot-wiskundige (een SMT solver). De robot controleert de vertaling tegen de regels. Als de vertaling een syntactische fout, een ontbrekend onderdeel of een logische tegenstrijdigheid bevat, wijst de robot deze af.
- De Auto-Repair: Als de robot de vertaling afwijst, zegt hij niet alleen "falen". Hij stuurt een specifieke foutmelding terug naar de AI: "Je hebt de verkeerde grootte gebruikt voor dit getal," of "Je bent vergeten dit geheugen bij te werken." De AI probeert vervolgens de fout te herstellen en stuurt het opnieuw terug. Deze lus gaat door totdat de robot tevreden is.
Wat Ze Vonden
Het team heeft VeriSynth getest op een aangepaste "buggy" dataset die ze zelf hadden gebouwd, met daarin 95 verschillende voorbeelden van code met verborgen fouten. Deze fouten varieerden van eenvoudige rekenfouten tot complexe problemen met hoe het systeem oproepen tussen verschillende programma's afhandelt.
De resultaten waren opvallend:
- VeriSynth vond 87 van de 95 bugs, wat een detectiegraad van 91,6% opleverde.
- In contrast hiermee: als ze de AI simpelweg vroegen om de bugs te vinden zonder de strikte robot-rechter, vond het slechts 44 bugs (46,3%).
- Zelfs als ze de AI lieten chatten met de robot en het opnieuw probeerden (een "conversationele" aanpak), vond het slechts 58 bugs (61,1%).
Het paper vergeleek VeriSynth ook met de real-world testmethoden die worden gebruikt door een groot project genaamd Scroll. Het team van Scroll had hun eigen set tests geschreven om bugs te vangen. Hun tests vingen 55 van de 95 bugs. VeriSynth ving er 87, wat betekent dat het 32 extra bugs vond die de door mensen geschreven tests misten.
Waarom Het Er Toe Doet
De onderzoekers benadrukken dat dit niet gaat over het vervangen van menselijke ontwikkelaars of het zeggen dat AI perfect is. In plaats daarvan gaat het erom AI te gebruiken als een krachtige tool om het zware werk van de vertaling te doen, terwijl een strikte, onblikbare robot de uiteindelijke autoriteit blijft. De "auto-repair" functie was het meest cruciale onderdeel; zonder deze functie daalde het succespercentage van het systeem naar 66,3%, wat bewijst dat het vermogen om eigen fouten te herstellen is wat het systeem laat werken.
De studie suggereert dat door de creativiteit van AI te combineren met de strikte logica van wiskundige solvers, we een vangnet voor de toekomst van blockchain kunnen bouwen dat veel sterker is dan wat mensen alleen kunnen bouwen. Het is een herinnering dat in de wereld van digitale beveiliging de beste verdediging een team is waar de creatieve geest voorstelt, en de strikte logica beslist.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.