Clear Sky Science · nl

DIVE: Een multi-label dataset voor kwetsbaarheden in smart contracts

· Terug naar het overzicht

Waarom veiligere digitale overeenkomsten ertoe doen

Elke dag bewegen miljarden dollars via "smart contracts" — stukjes code die transacties automatisch uitvoeren op blockchains zoals Ethereum. Wanneer deze digitale overeenkomsten verborgen fouten bevatten, kunnen de gevolgen ernstig zijn: bevroren tegoeden, gestolen middelen en verlies van vertrouwen in nieuwe financiële systemen. Dit artikel introduceert DIVE, een grote, zorgvuldig samengestelde dataset die onderzoekers helpt zwakheden in smart contracts betrouwbaarder te vinden en te begrijpen, zodat de digitale overeenkomsten waarop cryptocurrencies en gedecentraliseerde apps steunen veiliger worden voor iedereen.

Figure 1
Figure 1.

Hoe digitale contracten bestaan en veranderen

Smart contracts doorlopen verschillende fasen in hun levenscyclus. Ze beginnen als leesbare broncode geschreven door ontwikkelaars, worden vervolgens gecompileerd naar machinevriendelijke instructies en in een deploy-transactie naar de blockchain gestuurd. Zodra een contract geaccepteerd is, krijgt het een permanent adres en wordt de code onveranderlijk, maar de interne staat kan nog steeds evolueren naarmate mensen ermee interacteren. Gedurende deze reis verschijnen verschillende soorten data — broncode, bytecode, instellingen en transactierecords — die allemaal aanwijzingen bevatten over mogelijke fouten. DIVE is opgebouwd rond dit lifecycle-perspectief en verzamelt features zowel van voor deployment (code en configuratie) als van na deployment (on-chain gedrag) om een vollediger beeld van elk contract te geven.

Waarom oudere datasets tekortschoten

Vroegere verzamelingen van smart contracts hielpen machine-learningbenaderingen voor het opsporen van kwetsbaarheden op gang, maar hadden aanzienlijke beperkingen. Veel datasets bevatten slechts kleine aantallen contracten, hielden zich bezig met een smalle tijdsperiode of specifieke compiler-versies, of legden slechts één type data vast, zoals broncode of bytecode, maar niet beide. Sommige datasets gingen ervan uit dat er per contract slechts één soort kwetsbaarheid kon voorkomen, terwijl echte contracten vaak meerdere problemen tegelijk bevatten. Labels waren niet altijd consistent, omdat verschillende studies verschillende naamgevingsschema’s gebruikten en vertrouwden op één of twee tools zonder gemeenschappelijke standaard. Dit alles maakte het moeilijk om resultaten tussen papers te vergelijken of detectors te bouwen die goed generaliseren buiten één enkele studie.

Wat de DIVE-dataset bevat

DIVE verzamelt 22.330 echte Ethereum-contracten, gedeployed tussen 2016 en 2024 en verdeeld over de belangrijkste versies van de programmeertaal Solidity. Elk contract wordt beschreven met honderden features. Voor deployment registreert DIVE items zoals compiler-versie, optimalisatie-instellingen, gebruik van externe libraries, de structuur van de publieke interface (functies en events), metingen van codecomplexiteit en patronen in de laag-niveau instructies die worden gebruikt om het contract te maken. Na deployment voegt het informatie uit de lanceringstransactie toe — gasverbruik, verstuurde waarde, timing en positie binnen het block — evenals instructiepatronen uit de runtime-code van het contract. Dit dubbele perspectief stelt onderzoekers in staat te bestuderen hoe codekeuzes en on-chain gedrag beide samenhangen met beveiliging.

Hoe kwetsbaarheden worden geïdentificeerd

Om te bepalen welke contracten kwetsbaar zijn, vertrouwt DIVE niet op één enkele tool of een simpele meerderheid. In plaats daarvan draait het zes verschillende analysetools, elk met eigen sterke punten, en stroomlijnt hun bevindingen via een gestandaardiseerd kader. Tool-uitvoer wordt gemapt naar acht goed bekende categorieën uit de DASP Top 10-lijst, zoals reentrancy-fouten, gebroken toegangscontrole, rekenkundige fouten, denial-of-service-risico’s, slechte randomisatie, front running, tijdmanipulatie en ongecontroleerde low-level calls. Een "power-based" stemschema bepaalt vervolgens, per categorie, hoeveel vertrouwen aan elke tool wordt gegeven. Daarbovenop controleert een tweede validatiestap of het aangemerkte probleem daadwerkelijk door de code van het contract wordt ondersteund — bijvoorbeeld door te bevestigen dat een verondersteld rekenkundig foutje niet al is afgedekt door moderne compilerchecks of veiligheidsbibliotheken. Deze extra toetsing verwijdert veel valse alarmen, vooral voor waarschuwingen over denial-of-service en tijdsgerelateerde problemen.

Figure 2
Figure 2.

Hoe deze bron kan worden gebruikt

Omdat DIVE multi-label is, kan één contract met meerdere kwetsbaarheidstypen worden getagd, wat weerspiegelt hoe bugs in de echte wereld clusteren en op elkaar inwerken. De dataset ondersteunt een breed scala aan studies: binaire en multi-class classificatie, multi-label en multi-task learning, transfer learning over compiler-versies of jaren heen, en experimenten die de waarde van pre-deployment versus post-deployment informatie vergelijken. Hij documenteert ook hoe vaak verschillende kwetsbaarheden samen voorkomen, en laat zien dat sommige, zoals reentrancy en toegangscontroleproblemen, de neiging hebben samen op te treden, terwijl andere zeldzamer en meer geïsoleerd zijn. Deze patronen stimuleren geavanceerdere leermethoden die relaties tussen bugtypes modelleren in plaats van elk afzonderlijk te behandelen.

Wat dit betekent voor dagelijkse gebruikers

Voor de meeste mensen zijn smart contracts onzichtbare infrastructuur achter handelsapps, games, leenplatforms en andere blockchain-diensten. De DIVE-dataset verhelpt niet direct kwetsbaarheden, maar levert de gedetailleerde, goed gelabelde data die nodig is om sterkere detectietools te trainen en eerlijk te testen. Die tools kunnen op hun beurt ontwikkelaars helpen problemen eerder te vinden en auditors helpen prioriteit te geven aan hun reviews. Doordat het kader open is en herhaaldelijk kan worden uitgevoerd op nieuwe contracten in de loop van de tijd, biedt DIVE een levend fundament om de veiligheid van digitale overeenkomsten te verbeteren — waardoor het risico dat dagelijkse gebruikers door verborgen fouten in de code worden benadeeld, wordt verkleind.

Bronvermelding: 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

Trefwoorden: smart contract beveiliging, Ethereum, blockchain kwetsbaarheden, machine learning dataset, DASP Top 10