Clear Sky Science · it

DIVE: Un dataset multi-etichetta sulle vulnerabilità dei contratti intelligenti

· Torna all'indice

Perché i contratti digitali più sicuri sono importanti

Ogni giorno miliardi di dollari transitano tramite "smart contract" — porzioni di codice che eseguono automaticamente accordi su blockchain come Ethereum. Quando questi accordi digitali contengono errori nascosti, le conseguenze possono essere gravi: fondi bloccati, asset rubati e perdita di fiducia nei nuovi sistemi finanziari. Questo articolo presenta DIVE, un ampio dataset costruito con cura che aiuta i ricercatori a identificare e comprendere le debolezze nei contratti intelligenti in modo più affidabile, così che gli accordi digitali alla base di criptovalute e applicazioni decentralizzate possano diventare più sicuri per tutti.

Figure 1
Figure 1.

Come vivono e si evolvono i contratti digitali

I contratti intelligenti attraversano diverse fasi nel corso della loro vita. Iniziano come codice leggibile scritto dagli sviluppatori, poi vengono compilati in istruzioni comprensibili alla macchina e inviati in una transazione di deployment alla blockchain. Una volta accettato, un contratto ottiene un indirizzo permanente e il suo codice diventa immutabile, ma il suo stato interno può comunque evolvere man mano che gli utenti interagiscono con esso. In questo percorso emergono diversi tipi di dati — codice sorgente, bytecode, configurazioni e registri delle transazioni — che contengono indizi su possibili difetti. DIVE è costruito attorno a questa visione del ciclo di vita, raccogliendo caratteristiche sia prima del deployment (codice e configurazione) sia dopo il deployment (comportamento on-chain) per offrire un quadro più completo di ogni contratto.

Perché i dataset precedenti non bastavano

Le collezioni precedenti di contratti intelligenti hanno aiutato a lanciare approcci di machine learning per individuare vulnerabilità, ma presentavano limiti significativi. Molti includevano solo un numero ridotto di contratti, si concentravano su una finestra temporale ristretta o su specifiche versioni del compilatore, oppure catturavano un solo tipo di dato, come il codice sorgente o il bytecode, ma non entrambi. Alcuni trattavano le vulnerabilità come se potesse esservene solo una per contratto, nonostante i contratti reali contengano spesso più problemi contemporaneamente. Le etichette non erano sempre coerenti, perché studi diversi usavano schemi di nomenclatura differenti e si affidavano a uno o due strumenti senza uno standard comune. Tutto ciò rendeva difficile confrontare i risultati tra articoli o costruire rilevatori che si generalizzassero oltre un singolo studio.

Cosa contiene il dataset DIVE

DIVE raccoglie 22.330 contratti Ethereum reali, deployati tra il 2016 e il 2024 e coprendo le principali versioni del linguaggio Solidity. Ogni contratto è descritto tramite centinaia di caratteristiche. Prima del deployment, DIVE registra elementi come la versione del compilatore, le impostazioni di ottimizzazione, l'uso di librerie esterne, la struttura dell'interfaccia pubblica (funzioni ed eventi), misure di complessità del codice e pattern nelle istruzioni a basso livello usate per creare il contratto. Dopo il deployment, aggiunge informazioni dalla transazione di lancio — consumo di gas, valore inviato, tempistica e posizione all'interno del blocco — così come pattern di istruzioni del codice runtime del contratto. Questa doppia prospettiva permette ai ricercatori di studiare come le scelte di codifica e il comportamento on-chain siano entrambi correlati alla sicurezza.

Come vengono identificate le vulnerabilità

Per decidere quali contratti siano vulnerabili, DIVE non si affida a un unico strumento o a una semplice votazione di maggioranza. Esegue invece sei diversi strumenti di analisi, ciascuno con i propri punti di forza, e convoglia i loro risultati attraverso un framework standardizzato. Gli output degli strumenti sono mappati su otto categorie ben note della lista DASP Top 10, come vulnerabilità di reentrancy, controllo degli accessi rotto, errori aritmetici, rischi di denial-of-service, scarsa casualità, front running, manipolazione del tempo e chiamate a basso livello non verificate. Un meccanismo di voto «basato sulla potenza» decide poi, categoria per categoria, quanto fidarsi di ciascuno strumento. Inoltre, un secondo passo di validazione verifica se il problema segnalato è effettivamente supportato dal codice del contratto — per esempio confermando che un presunto bug aritmetico non sia già mitigato da controlli moderni del compilatore o da librerie di sicurezza. Questo controllo aggiuntivo elimina molti falsi allarmi, specialmente per gli avvertimenti relativi a denial-of-service e tempo.

Figure 2
Figure 2.

Come può essere usata questa risorsa

Poiché DIVE è multi-etichetta, un singolo contratto può essere associato a diversi tipi di vulnerabilità, riflettendo come i bug nel mondo reale tendano a raggrupparsi e interagire. Il dataset supporta un ampio spettro di studi: classificazione binaria e multi-classe, apprendimento multi-etichetta e multi-task, transfer learning tra versioni del compilatore o anni, e esperimenti che confrontano il valore delle informazioni pre-deployment rispetto a quelle post-deployment. Documenta anche quanto spesso diverse vulnerabilità compaiono insieme, rivelando che alcune, come reentrancy e problemi di controllo accessi, tendono a co-occorre, mentre altre sono più rare e isolate. Questi pattern incoraggiano metodi di apprendimento più avanzati che modellino le relazioni tra i tipi di bug, anziché trattare ciascuno in isolamento.

Cosa significa per gli utenti quotidiani

Per la maggior parte delle persone, i contratti intelligenti sono un’infrastruttura invisibile dietro app di trading, giochi, piattaforme di prestito e altri servizi blockchain. Il dataset DIVE non corregge direttamente le vulnerabilità, ma fornisce i dati dettagliati e ben etichettati necessari per addestrare e testare in modo equo strumenti di rilevamento più efficaci. Questi strumenti, a loro volta, possono aiutare gli sviluppatori a individuare i problemi prima e supportare gli auditor nel dare priorità alle revisioni. Poiché il framework è aperto e può essere rieseguito su nuovi contratti nel tempo, DIVE offre una base vivente per migliorare la sicurezza degli accordi digitali — riducendo il rischio che gli utenti quotidiani siano danneggiati da errori nascosti nel codice su cui fanno affidamento.

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

Parole chiave: sicurezza dei contratti intelligenti, Ethereum, vulnerabilità della blockchain, dataset per machine learning, DASP Top 10