Clear Sky Science · pl

DIVE: Zbiór danych wieloetykietowych dotyczący podatności w inteligentnych kontraktach

· Powrót do spisu

Dlaczego bezpieczniejsze cyfrowe umowy mają znaczenie

Codziennie przez „inteligentne kontrakty” przepływają miliardy dolarów — fragmenty kodu, które automatycznie realizują transakcje na łańcuchach bloków, takich jak Ethereum. Gdy te cyfrowe umowy zawierają ukryte błędy, konsekwencje mogą być poważne: zamrożone środki, skradzione aktywa i utrata zaufania do nowych systemów finansowych. Ten artykuł przedstawia DIVE, duży, starannie zbudowany zbiór danych, który pomaga badaczom wykrywać i analizować słabości w inteligentnych kontraktach w sposób bardziej wiarygodny, aby cyfrowe umowy leżące u podstaw kryptowalut i zdecentralizowanych aplikacji stały się bezpieczniejsze dla wszystkich.

Figure 1
Figure 1.

Jak żyją i zmieniają się cyfrowe kontrakty

Inteligentne kontrakty przechodzą przez kilka etapów w swoim cyklu życia. Zaczynają jako czytelny kod źródłowy napisany przez programistów, następnie są kompilowane do instrukcji zrozumiałych dla maszyn i wysyłane w transakcji wdrożeniowej do łańcucha bloków. Po zaakceptowaniu kontrakt otrzymuje stały adres, a jego kod staje się niezmienny, choć jego wewnętrzny stan nadal może ewoluować w miarę interakcji użytkowników. W trakcie tej podróży pojawiają się różne rodzaje danych — kod źródłowy, bajtkod, ustawienia i zapisy transakcji — które wszystkie zawierają wskazówki o możliwych wadach. DIVE opiera się na tej perspektywie cyklu życia, zbierając cechy zarówno sprzed wdrożenia (kod i konfiguracja), jak i po wdrożeniu (zachowanie on-chain), aby dać pełniejszy obraz każdego kontraktu.

Dlaczego starsze zbiory danych były niewystarczające

Wcześniejsze kolekcje inteligentnych kontraktów pomogły zapoczątkować podejścia uczenia maszynowego do wykrywania podatności, ale miały poważne ograniczenia. Wiele z nich zawierało tylko niewielką liczbę kontraktów, koncentrowało się na wąskim przedziale czasowym lub konkretnych wersjach kompilatora, albo rejestrowało tylko jeden rodzaj danych, na przykład kod źródłowy lub bajtkod, a nie oba. Niektóre traktowały podatności tak, jakby w jednym kontrakcie mogła występować tylko jedna kategoria problemu, choć w rzeczywistości kontrakty często zawierają kilka błędów jednocześnie. Etykiety nie zawsze były spójne, ponieważ różne badania używały różnych schematów nazewnictwa i polegały na jednym lub dwóch narzędziach bez wspólnego standardu. Wszystko to utrudniało porównywanie wyników między publikacjami i budowanie detektorów, które uogólniają poza pojedyncze badanie.

Co zawiera zestaw danych DIVE

DIVE gromadzi 22 330 rzeczywistych kontraktów Ethereum, wdrożonych między 2016 a 2024 rokiem i obejmujących główne wersje języka Solidity. Każdy kontrakt jest opisany setkami cech. Przed wdrożeniem DIVE zapisuje elementy takie jak wersja kompilatora, ustawienia optymalizacji, użycie zewnętrznych bibliotek, struktura interfejsu publicznego (funkcje i zdarzenia), miary złożoności kodu oraz wzorce niskopoziomowych instrukcji używanych do stworzenia kontraktu. Po wdrożeniu dodaje informacje z transakcji uruchamiającej — zużycie gazu, wysłana wartość, czas i pozycja w bloku — oraz wzorce instrukcji z kodu wykonywalnego kontraktu. Taka podwójna perspektywa pozwala badaczom badać, jak decyzje programistyczne i zachowanie on-chain łącznie odnoszą się do bezpieczeństwa.

Jak identyfikowane są podatności

Aby zdecydować, które kontrakty są podatne, DIVE nie polega na pojedynczym narzędziu ani prostym głosowaniu większościowym. Zamiast tego uruchamia sześć różnych narzędzi analitycznych, z których każde ma swoje mocne strony, i przepuszcza ich wyniki przez znormalizowane ramy. Wyjścia narzędzi są mapowane na osiem dobrze znanych kategorii z listy DASP Top 10, takie jak podatność na reentrancy, naruszenia kontroli dostępu, błędy arytmetyczne, ryzyko odmowy usługi, słaba losowość, front running, manipulacja czasem i niekontrolowane wywołania niskiego poziomu. Następnie schemat głosowania „oparty na sile” decyduje, narazie dla każdej kategorii, jak bardzo ufać poszczególnym narzędziom. Na to nakłada się drugi etap walidacji, który sprawdza, czy zgłoszony problem jest rzeczywiście poparty przez kod kontraktu — na przykład przez potwierdzenie, że rzekomy błąd arytmetyczny nie jest już chroniony przez nowoczesne zabezpieczenia kompilatora lub biblioteki bezpieczeństwa. Dodatkowa kontrola eliminuje wiele fałszywych alarmów, szczególnie w przypadku ostrzeżeń związanych z odmową usługi i problemami związanymi z czasem.

Figure 2
Figure 2.

Jak można wykorzystać to źródło

Ponieważ DIVE jest wieloetykietowy, pojedynczy kontrakt może być oznaczony kilkoma typami podatności, co odzwierciedla, jak błędy w świecie rzeczywistym grupują się i wzajemnie oddziałują. Zbiór danych wspiera szeroki wachlarz badań: klasyfikację binarną i wieloklasową, uczenie wieloetykietowe i wielozadaniowe, transfer między wersjami kompilatora lub latami, a także eksperymenty porównujące wartość informacji przed wdrożeniem i po nim. Dokumentuje też, jak często różne podatności pojawiają się razem, ujawniając, że niektóre, takie jak reentrancy i problemy z kontrolą dostępu, mają tendencję do współwystępowania, podczas gdy inne są rzadsze i bardziej odizolowane. Te wzorce zachęcają do stosowania zaawansowanych metod uczenia, które modelują relacje między typami błędów, zamiast traktować każdy osobno.

Co to oznacza dla codziennych użytkowników

Dla większości osób inteligentne kontrakty są niewidzialną infrastrukturą stojącą za aplikacjami handlowymi, grami, platformami pożyczkowymi i innymi usługami blockchain. Zbiór danych DIVE nie usuwa podatności bezpośrednio, ale dostarcza szczegółowych, dobrze oznakowanych danych potrzebnych do trenowania i rzetelnego testowania mocniejszych narzędzi wykrywających. Te narzędzia z kolei mogą pomóc programistom wykrywać problemy wcześniej i pomóc audytorom w priorytetyzacji przeglądów. Ponieważ ramy są otwarte i mogą być uruchamiane ponownie na nowych kontraktach w czasie, DIVE oferuje żywą podstawę do poprawy bezpieczeństwa cyfrowych umów — zmniejszając ryzyko, że codzienni użytkownicy ucierpią z powodu ukrytych błędów w kodzie, na którym polegają.

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

Słowa kluczowe: bezpieczeństwo inteligentnych kontraktów, Ethereum, podatności w łańcuchu bloków, zbiór danych dla uczenia maszynowego, DASP Top 10