LibScan: Smart Contract Library Misuse Detection with Iterative Feedback and Static Verification
Dit paper introduceert LibScan, een automatisch detectieframework dat grote taalmodellen en statische codeanalyse combineert met een iteratief feedbackmechanisme om library-misbruik in slimme contracten met een nauwkeurigheid van 85,15% te identificeren, wat aanzienlijk beter presteert dan bestaande tools.
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
LibScan: De Slimme Boekhouder voor Digitale Verdragen
Stel je voor dat de blockchain (de technologie achter crypto) een enorme, openbare markt is. Op deze markt schrijven mensen Slimme Verdragen (Smart Contracts). Dit zijn geen papieren contracten, maar computerprogramma's die geld automatisch verplaatsen als aan bepaalde voorwaarden wordt voldaan. Omdat deze verdragen eenmaal op de markt zijn geplaatst, niet meer veranderd kunnen worden, is het cruciaal dat ze perfect werken. Een klein foutje kan leiden tot het verlies van miljoenen euro's.
Om deze verdragen te bouwen, gebruiken ontwikkelaars vaak bibliotheken. Denk hierbij aan gereedschapskisten met kant-en-klare functies (zoals een 'veilige rekenmachine' of een 'veilige overdrachtsmodule'). In plaats van alles zelf uit te vinden, pakken ze deze gereedschappen erbij.
Het Probleem: De Verkeerde Gereedschapskist
Het probleem is dat ontwikkelaars deze gereedschappen soms verkeerd gebruiken. Ze denken misschien: "Ik gebruik deze knop om een deur te openen," terwijl de knop eigenlijk bedoeld is om een raam te sluiten. Of ze gebruiken een gereedschap dat niet meer veilig is, terwijl er een nieuwere, veiligere versie bestaat.
In de wereld van slimme verdragen noemen we dit misbruik van bibliotheken. Bestaande computersystemen die op zoek gaan naar fouten, zijn vaak te dom om dit te zien. Ze zoeken alleen naar bekende patronen (zoals "is er een rood lampje?" of "ontbreekt er een puntkomma?"). Ze begrijpen niet waarom de ontwikkelaar iets heeft gedaan of wat de bedoeling was. Ze missen dus de subtiele, maar dodelijke fouten.
De Oplossing: LibScan
De auteurs van dit paper hebben LibScan bedacht. Dit is een nieuw, slim systeem dat twee dingen combineert om fouten te vinden:
De Slimme AI (De "Verstandige Boekhouder"):
Dit is een kunstmatige intelligentie (een Large Language Model of LLM) die geleerd heeft om de bedoeling van de code te begrijpen. Het leest het contract alsof het een verhaal is. Het kan zeggen: "Hé, deze ontwikkelaar probeert een veiligheidscheck te doen, maar hij heeft de verkeerde functie gebruikt."- Het Probleem met AI: Soms droomt een AI (dit noemen we 'hallucineren'). Het kan denken dat er een fout is waar geen fout is, of het kan een fout missen omdat het te veel "in gedachten" verdwaalt.
De Strenge Controleur (De "Static Verificatie"):
Dit is een traditioneel computerprogramma dat heel streng en precies kijkt naar de structuur van de code. Het telt letters, kijkt naar de volgorde en controleert of de regels exact worden nageleefd. Het is niet slim over de bedoeling, maar wel heel goed in het vinden van exacte afwijkingen.
Hoe werkt LibScan samen? (De Creatieve Analogie)
Stel je voor dat je een zeer complexe puzzel moet oplossen.
- De AI is de expert die de puzzelstukjes bekijkt en zegt: "Ik denk dat dit stukje hier hoort, omdat het past bij het plaatje dat we zien."
- De Controleur is de meetlat die zegt: "Nee, dit stukje past niet, want de randen zijn niet recht."
In het verleden werkten deze twee apart. LibScan laat ze samenwerken in een cyclus van feedback:
- De AI kijkt eerst naar het contract en zegt: "Ik zie hier een fout."
- De Controleur checkt dit: "Is dit echt een fout volgens de regels?"
- Als ze het oneens zijn, geeft de Controleur feedback aan de AI: "Je dacht dat dit een fout was, maar kijk nog eens goed, dit is juist."
- De AI denkt na over die feedback, past zijn redenering aan en kijkt opnieuw.
Dit proces herhaalt zich een paar keer (zoals een gesprek tussen twee detectives die een zaak oplossen) totdat ze het eens zijn. Hierdoor wordt de AI slimmer en minder foutgevoelig.
Wat hebben ze ontdekt?
De onderzoekers hebben 8 soorten "verkeerd gebruik" geïdentificeerd, zoals:
- Het gebruiken van een gereedschap voor een taak waar het niet voor gemaakt is.
- Het vergeten om te controleren of een gereedschap wel goed werkt.
- Het gebruiken van een oude, onveilige versie van een gereedschap terwijl er een nieuwe is.
De Resultaten
Ze hebben LibScan getest op 662 echte, bestaande slimme verdragen.
- Hoe goed was het? LibScan vond in 85% van de gevallen de juiste fouten.
- Vergelijking: Bestaande tools (zoals Slither) haalden maar ongeveer 62%, en andere AI-tools haalden rond de 69%.
Conclusie
LibScan is als een super-team van een creatieve denker (de AI) en een strenge controleur (de code-checker). Door samen te werken en elkaar te corrigeren, vinden ze fouten die anders onzichtbaar zouden blijven. Dit helpt ontwikkelaars om veiliger geld te verplaatsen op de blockchain en voorkomt dat miljoenen euro's verloren gaan door kleine, maar dodelijke foutjes in de code.
Kortom: LibScan zorgt ervoor dat de "gereedschapskist" van de blockchain niet alleen goed wordt gebruikt, maar ook veilig blijft.
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.