Clear Sky Science · sv
DIVE: En dataset med flera etiketter för sårbarheter i smarta kontrakt
Varför säkrare digitala avtal är viktiga
Varje dag rör sig miljardbelopp genom ”smarta kontrakt” — kodstycken som automatiskt genomför avtal på blockkedjor som Ethereum. När dessa digitala avtal innehåller dolda fel kan konsekvenserna bli allvarliga: frysta medel, stulna tillgångar och minskat förtroende för nya finansiella system. Denna artikel presenterar DIVE, en stor och omsorgsfullt uppbyggd dataset som hjälper forskare att upptäcka och förstå svagheter i smarta kontrakt på ett mer pålitligt sätt, så att de digitala avtal som ligger till grund för kryptovalutor och decentraliserade appar kan bli säkrare för alla.

Hur digitala kontrakt lever och förändras
Smarta kontrakt går igenom flera skeden under sin livstid. De börjar som läsbar källkod skriven av utvecklare, kompileras sedan till maskinvänliga instruktioner och skickas i en deploy-transaktion till blockkedjan. När de väl accepteras får kontraktet en permanent adress och dess kod blir oföränderlig, men dess interna tillstånd kan fortsatt utvecklas när användare interagerar med det. Längs denna resa uppstår olika slags data — källkod, bytekod, inställningar och transaktionsloggar — som alla innehåller ledtrådar om möjliga brister. DIVE är byggd kring denna livscykelbild och samlar egenskaper både före distribution (kod och konfiguration) och efter distribution (on-chain beteende) för att ge en mer heltäckande bild av varje kontrakt.
Varför äldre dataset inte räckte till
Tidigare samlingar av smarta kontrakt hjälpte till att få igång maskininlärningsmetoder för att hitta sårbarheter, men de hade betydande begränsningar. Många innehöll bara ett litet antal kontrakt, fokuserade på ett snävt tidsfönster eller specifika kompilerversioner, eller fångade bara en typ av data, som källkod eller bytekod, men inte båda. Några antog att varje kontrakt bara kunde ha en typ av sårbarhet, trots att verkliga kontrakt ofta innehåller flera problem samtidigt. Etiketter var inte alltid konsekventa eftersom olika studier använde olika namngivningsscheman och förlitade sig på en eller två verktyg utan en gemensam standard. Allt detta gjorde det svårt att jämföra resultat mellan artiklar eller att bygga detektorer som generaliserar väl bortom en enskild studie.
Vad DIVE-datasetet innehåller
DIVE samlar 22 330 verkliga Ethereum-kontrakt, distribuerade mellan 2016 och 2024 och täckande de stora versionerna av programspråket Solidity. Varje kontrakt beskrivs genom hundratals egenskaper. Före distribution registrerar DIVE saker som kompilatorversion, optimeringsinställningar, användning av externa bibliotek, strukturen i det publika gränssnittet (funktioner och events), mätningar av kodkomplexitet och mönster i de lågnivåinstruktioner som används för att skapa kontraktet. Efter distribution läggs information från lanseringstransaktionen till — gasförbrukning, skickat värde, tidpunkt och position i blocket — samt instruktionmönster från kontraktets körkod. Denna dubbla vy låter forskare studera hur kodval och on-chain beteende båda relaterar till säkerhet.
Hur sårbarheter identifieras
För att avgöra vilka kontrakt som är sårbara förlitar sig DIVE inte på ett enda verktyg eller en enkel majoritetsomröstning. Istället körs sex olika analysverktyg, var och en med sina styrkor, och deras fynd matas genom ett standardiserat ramverk. Verktygens utdata mappas till åtta välkända kategorier från DASP Top 10-listan, såsom reentrancy, bristfällig åtkomstkontroll, aritmetiska fel, denial-of-service-risker, dålig slumpmässighet, front running, tidsmanipulation och okontrollerade lågnivåanrop. Ett ”styrkebaserat” röstningsschema avgör sedan, kategori för kategori, hur mycket förtroende som ska ges varje verktyg. Utöver detta kontrollerar ett andra valideringssteg om det flaggade problemet faktiskt stöds av kontraktets kod — till exempel genom att bekräfta att en påstådd aritmetisk bugg inte redan är skyddad av moderna kompilatorkontroller eller säkerhetsbibliotek. Denna extra granskning tar bort många falsklarm, särskilt för varningar om denial-of-service och tidsrelaterade problem.

Hur denna resurs kan användas
Eftersom DIVE är multi-etikett kan ett enda kontrakt ha flera sårbarhetstyper märkta, vilket speglar hur verkliga buggar klustrar och samverkar. Datasets stöder ett brett spektrum av studier: binär och flerkklassklassificering, multilabel- och multitask-inlärning, transferinlärning över kompilatorversioner eller år, samt experiment som jämför värdet av information före distribution mot efter distribution. Det dokumenterar också hur ofta olika sårbarheter förekommer tillsammans, och visar att vissa, som reentrancy och åtkomstkontrollsproblem, tenderar att samförekomma, medan andra är mer sällsynta och isolerade. Dessa mönster uppmuntrar mer avancerade inlärningsmetoder som modellerar relationer mellan bugtyper istället för att behandla varje typ separat.
Vad detta betyder för vanliga användare
För de flesta är smarta kontrakt osynlig infrastruktur bakom handelsappar, spel, utlåningsplattformar och andra blockkedjetjänster. DIVE-datasetet åtgärdar inte sårbarheter direkt, men det tillhandahåller de detaljerade, väletiketterade data som behövs för att träna och rättvist testa kraftfullare detektionsverktyg. Dessa verktyg kan i sin tur hjälpa utvecklare att hitta problem tidigare och hjälpa revisorer att prioritera sina granskningar. Eftersom ramverket är öppet och kan köras om på nya kontrakt över tid erbjuder DIVE en levande grund för att förbättra säkerheten i digitala avtal — vilket minskar risken att vanliga användare skadas av dolda fel i den kod de förlitar sig på.
Citering: Alsunaidi, S.J., Aljamaan, H. & Hammoudeh, M. DIVE: A Multi-Label Smart Contract Vulnerability Dataset. Sci Data 13, 664 (2026). https://doi.org/10.1038/s41597-026-07025-5
Nyckelord: säkerhet för smarta kontrakt, Ethereum, blockkedjesårbarheter, maskininlärningsdataset, DASP Top 10