Chiral Analysis of Smart Contracts: Detecting Vulnerabilities from Relational Inconsistencies Across Business Paths
Dit artikel introduceert "chirale analyse", een relationeel statisch analysemodel geïmplementeerd in de ChiralDetector-tool dat kwetsbaarheden in smart contracts detecteert door inconsistenties tussen semantisch gekoppelde bedrijfspaden te identificeren, waardoor complexe logische fouten effectief worden blootgelegd die traditionele single-function analyzers missen.
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
Het Dilemma van de Detective: Wanneer Code Liegt door Weglating
Stel je voor dat je een detective bent die een mysterie probeert op te lossen in een bruisende stad. Normaal gesproken zoek je naar een "smoking gun": een gebroken raam, een modderige voetafdruk of een verdacht briefje. In de wereld van computercode, specif Kind aan de "smart contracts" die op blockchains draaien, fungeren traditionele beveiligingsinstrumenten als deze detective. Ze scannen de code regel voor regel, op zoek naar overduidelijke fouten zoals een ontbrekend slot op een deur of een rekenfout in een berekening. Deze tools zijn geweldig in het vinden van "lokale" bugs—het soort dat plaatsvindt in één enkele kamer.
Maar wat als de misdaad niet in de kamer zelf plaatsvindt? Wat als het mysterie is dat de voordeur op slot zit, maar de achterdeur wagenwijd openstaat, en die twee deuren eigenlijk deel moesten uitmaken van hetzelfde beveiligingssysteem? In de informatica wordt dit een "relationeel" probleem genoemd. Het gaat niet om één kapot onderdeel; het gaat om twee onderdelen die met elkaar zouden moeten overeenstemmen, maar dat niet doen. Dit artikel verkent een nieuwe manier om deze sluipende bugs te vangen door paren codepaden te vergelijken, waarbij ze worden behandeld als spiegelbeelden die dezelfde waarheid moeten weerspiegelen. Als het ene pad "stop" zegt en het andere "ga", dan is het systeem defect, zelfs als zowel "stop" als "go" op zichzelf perfect lijken te zijn.
Het Papier: Chirale Analyse en de Spiegeltest
Dit artikel introduceert een slimme nieuwe methode genaamd Chirale Analyse. Het woord "chiraal" komt uit de chemie en beschrijft objecten die elkaars spiegelbeeld zijn, maar niet perfect op elkaar gestapeld kunnen worden (zoals je linker- en rechterhand). In de wereld van smart contracts stellen de auteurs voor dat veel zakelijke operaties in paren komen: een "enkelvoudige" transactie en een "batch"-transactie, een "koop" en een "verkoop", of een "preview" van een prijs en de "uitvoering" van die prijs. Deze paren zijn de chirale tweelingen van de code.
Het kernidee is eenvoudig maar krachtig: behandel deze paren alsof ze elkaars huiswerk controleren. Als een gebruiker een item koopt, moet de code een vergoeding in rekening brengen. Als diezelfde gebruiker het item later verkoopt, moet de code het geld op een manier afhandelen die logisch is in relatie tot de oorspronkelijke aankoop. Als het "koop"-pad een vergoeding in dollars rekent, maar het "verkoop"-pad per ongeluk terugbetaalt in een andere valuta, of als de "batch"-versie vergeet geld terug te geven dat de "enkelvoudige" versie wel teruggeeft, dan is er een bug. De auteurs stellen dat deze bugs onzichtbaar zijn voor standaard scanners omdat elke individuele regel code correct lijkt. De fout wordt pas zichtbaar wanneer je de twee paden tegen de spiegel houdt en ziet dat ze niet overeenkomen.
Om deze onzichtbare fouten te vinden, hebben de auteurs een prototype-tool gebouwd genaamd ChiralDetector. Denk aan deze tool als een superintelligente stagiair met een specifieke functiebeschrijving. Eerst leest het de volledige codebase en brengt elk mogelijk "zakelijk pad" in kaart (zoals het traceren van elke route die een klant door een winkel kan nemen). Vervolgens gebruikt het een "statische ranker"—een set eenvoudige regels—om te raden welke paden chirale tweelingen zouden kunnen zijn. Het kijkt bijvoorbeeld naar een functie genaamd buy en een andere genaamd sell die dezelfde bankrekening aanraken.
Zodra het een lijst heeft van potentiële tweelingen, roept het de zware artillerie op: een Large Language Model (LLM), een type AI dat menselijke taal en code begrijpt. De AI zoekt niet alleen naar fouten; het fungeert als een logicus. Het vraagt: "Als deze twee paden elkaars spiegelbeeld zouden moeten zijn, welke regels zouden ze dan moeten volgen?" Het controleert zeven specifieke dimensies:
- Guards (Beveiligingen): Controleerden beide paden dezelfde wachtwoorden of machtigingen?
- Actors (Actoren): Betaalde en ontving dezelfde persoon in beide gevallen geld?
- State (Toestand): Updateten beide paden de database op dezelfde manier?
- Value (Waarde): Handelden ze consistent met betrekking tot kosten en terugbetalingen?
- Order (Volgorde): Deden ze de dingen in dezelfde sequentie?
- Failure (Falen): Als er iets misgaat, crashen of herstellen beide paden dan op dezelfde manier?
- External (Extern): Vertrouwden ze op dezelfde externe bronnen?
Als de AI een mismatch vindt, schreeuwt hij niet direct "Bug!". In plaats daarvan geeft hij de bevinding door aan een "strikte validator". Deze validator is een sceptische redacteur die probeert de AI te weerleggen. Hij vraagt: "Is dit echt een bug, of is het gewoon een ontwerpkeuze?" Ten slotte groepeert de tool vergelijkbare bevindingen, zodat er in plaats van 100 kleine fouten één grote hoofdoorzaak wordt gerapporteerd.
De Resultaten: Het Vinden van de Verborgen Glitches
De auteurs hebben dit systeem getest op een echt project genaamd het Phi protocol. De resultaten suggereren dat deze aanpak werkt, hoewel het nog steeds een werk in uitvoering is.
Dit is wat er gebeurde in hun experiment:
- De tool begon met het bekijken van 3.217 paren codepaden.
- Na het filteren van de paren die duidelijk niet gerelateerd waren, hield het 1.643 paren over om diepgaand te onderzoeken.
- De AI-detector vond 201 potentiële problemen (een mix van "verdachte" en "bevestigde" kandidaten).
- Na het groeperen van vergelijkbare rapporten en het verwijderen van duplicaten, kromp dit tot 101 groepen.
- Een strikte validator bracht dit verder terug naar 44 bevestigde positieven.
- Ten slotte identificeerde het team, na beoordeling door een menselijke expert, 13 unieke, effectieve problemen.
Deze 13 problemen waren het soort zaken dat standaardtools misten. Bijvoorbeeld:
- De "Bewijs" Verwarring: Een systeem stond toe dat een bewijs van eigendom werd hergebruikt voor een ander item, omdat de "koop"- en "claim"-paden het bewijs niet correct aan het specifieke item koppelden.
- De Kostenverwarring: Een deel van het systeem berekende kosten in "basispunten" (een eenheid van percentage), terwijl een ander deel hetzelfde getal behandelde als "wei" (een minuscule eenheid van valuta), wat leidde tot enorme financiële fouten.
- De Terugbetalingsval: Wanneer een gebruiker te veel betaalde, betaalde het "enkelvoudige" handelspad het geld terug aan de gebruiker, maar het "batch"-handelspad stuurde het geld per ongeluk naar een tussenliggend contract, waardoor de gebruiker met lege handen achterbleef.
De auteurs suggereren dat deze methode bijzonder goed is in het vangen van "business logic" bugs—fouten in hoe het systeem over geld en regels denkt—in plaats van eenvoudige typefouten. Ze merken op dat het proces niet perfect is; het genereerde veel "ruis" (vals alarm) die opgeruimd moest worden, en het vertrouwt erop dat de AI slim genoeg is om de relatie te herkennen. Echter, het feit dat het 13 duidelijke, impactvolle problemen vond die andere tools misten, suggereert dat het bekijken van code door de lens van "chirale paren" een veelbelovende nieuwe richting is.
Het artikel concludeert dat hoewel dit geen toverstaf is die elk beveiligingsprobleem oplost, het een gestructureerde manier biedt om de bugs te vinden die zich verbergen in de ruimtes tussen de regels code. Door codepaden als spiegelbeelden te behandelt, kunnen we eindelijk de barsten zien die ontstaan wanneer de reflectie niet overeenkomt met het object.
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.