← Neueste Arbeiten
💻 computer science

An empirical analysis of vulnerability detection tools for solidity smart contracts

Dieser Artikel bewertet empirisch 20 automatisierte Schwachstellenerkennungswerkzeuge und eine auf einem LLM basierende Methode anhand eines neu veröffentlichten, manuell annotierten Datensatzes von 2.182 Solidity-Smart-Contracts, wobei erhebliche Unterschiede in der Genauigkeit der Werkzeuge aufgedeckt werden und gezeigt wird, dass die Kombination eines bestimmten Satzes von drei Werkzeugen bis zu 76,78 % der Schwachstellen in unter einer Minute erkennen kann.

Ursprüngliche Autoren: Francesco Salzano, Cosmo Kevin Antenucci, Simone Scalabrino, Giovanni Rosa, Rocco Oliveto, Remo Pareschi

Veröffentlicht 2026-05-19
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Francesco Salzano, Cosmo Kevin Antenucci, Simone Scalabrino, Giovanni Rosa, Rocco Oliveto, Remo Pareschi

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stellen Sie sich die Welt der Blockchain als einen riesigen, öffentlichen digitalen Marktplatz vor. Auf diesem Marktplatz nutzen Menschen Smart Contracts, um automatisierte Geschäftsabschlüsse durchzuführen – ähnlich wie ein Getränkeautomat, der automatisch einen Snack auswirft, wenn Sie den richtigen Betrag an Münzen einwerfen, nur eben für Millionenbeträge. Diese Verträge werden in einer Sprache namens Solidity geschrieben.

Das Problem ist, dass wenn sich ein winziger Riss in der Logik des Getränkeautomaten befindet, ein Dieb das gesamte darin befindliche Geld stehlen könnte. Da diese Verträge öffentlich sind und oft enorme Geldsummen halten, ist das Aufspüren dieser „Risse" (Schwachstellen) von entscheidender Bedeutung.

Dieses Papier ist im Wesentlichen ein riesiges Zeugnis für die Werkzeuge, die Menschen verwenden, um diese Risse zu finden. Hier ist, was die Forscher getan haben, einfach erklärt:

1. Der „Goldstandard"-Testdatensatz

Stellen Sie sich vor, Sie möchten testen, wie gut eine Gruppe von Metalldetektoren darin ist, vergrabene Schätze zu finden. Sie können den Metalldetektoren nicht einfach vertrauen, dass sie Schätze finden und ihrem Wort glauben; Sie benötigen einen Test, bei dem Sie genau wissen, wo der Schatz versteckt ist.

  • Der alte Weg: Frühere Studien verwendeten oft Testdatensätze, bei denen die „Schätze"-Standorte von anderen Metalldetektoren erraten wurden. Das ist so, als würde man einen Metalldetektor bitten, eine Münze zu finden, und dann einen zweiten Metalldetektor bitten, dies zu bestätigen. Wenn der erste falsch liegt, stimmt der zweite möglicherweise einfach dem Fehler zu.
  • Der neue Weg: Die Forscher in diesem Papier erstellten einen brandneuen, riesigen Testdatensatz. Sie nahmen 2.182 echte Smart Contracts und ließen drei menschliche Experten diese Zeile für Zeile manuell durchgehen, um Fehler zu finden. Sie markierten die genaue Codezeile, in der das Problem lag. Denken Sie daran wie an einen Lehrer, der einen Stapel Prüfungen mit einem roten Stift korrigiert und die spezifische falsche Antwort markiert, anstatt nur zu sagen „diese ganze Prüfung ist falsch".

2. Testen der „Metalldetektoren" (Die Werkzeuge)

Die Forscher nahmen 19 verschiedene automatisierte Tools (die „Metalldetektoren") und setzten sie gegen ihren neuen, menschlich bewerteten Testdatensatz an. Sie testeten auch ein Large Language Model (LLM), das wie eine KI ist, die Millionen von Büchern gelesen hat und versucht, basierend auf Mustern zu erraten, wo die Fehler liegen.

Die Ergebnisse waren überraschend:

  • Kein einzelner Held: Kein einzelnes Tool fand alle Fehler. Es ist wie ein Arzt, der hervorragend darin ist, Knochenbrüche zu diagnostizieren, aber schrecklich darin, Infektionen zu erkennen.
  • Das „Arithmetik"-Problem: Einige Tools waren erstaunlich gut darin, Rechenfehler zu finden (wie ein Taschenrechner, der 2+2 addiert und 5 herausbekommt), aber nutzlos beim Finden anderer Arten von Fehlern.
  • Das „Fehlalarm"-Problem: Viele Tools waren zu paranoid. Sie schrien „GEFAHR!" bei sicherem Code, was zu vielen Fehlalarmen (False Positives) führte. Dies macht sie für Entwickler unangenehm zu verwenden, da sie jeden einzelnen Alarm manuell überprüfen müssen.
  • Die KI (ChatGPT)-Überraschung: Die KI schnitt bei einfachen, lehrbuchhaften Beispielen für Fehler (wie bei einer Übungsklausur) recht gut ab. Als sie jedoch an echten, komplexen Verträgen getestet wurde, brach die Leistung der KI ein. Es war wie ein Schüler, der die Übungsklausur mit Bestnoten bestand, aber bei der echten Prüfung durchfiel, weil die echten Fragen unübersichtlicher und komplexer waren. Die Forscher vermuten, dass die KI die Antworten der Übungsklausur „auswendig gelernt" hatte, da diese Beispiele so häufig online zu finden sind.

3. Die „Traumteam"-Lösung

Da kein einzelnes Tool perfekt ist, fragten sich die Forscher: Was wäre, wenn wir sie kombinieren?

Sie gruppierten die Tools basierend darauf, wofür sie gut waren, und wählten die besten drei aus, um zusammenzuarbeiten:

  1. Conkas (Der Mathematik-Experte)
  2. Slither (Der Allrounder, der schnell ist und in vielen Bereichen gut ist)
  3. Smartcheck (Der Spezialist für Denial-of-Service-Angriffe)

Das Ergebnis: Durch die Verwendung nur dieser drei Tools zusammen fanden sie 76,78 % aller bekannten Fehler. Noch besser: Das Ausführen aller drei dauerte im Durchschnitt weniger als eine Minute. Es ist wie ein Team aus drei Spezialisten, die die blinden Flecken des anderen abdecken und das Problem schneller lösen können als jede einzelne Person.

4. Warum „Zeile für Zeile" wichtig ist

Die Forscher fragten auch Entwickler, welche Art von Fehlerberichten sie tatsächlich wollen.

  • Dateiebene: „Es gibt einen Fehler in dieser Datei." (Zu vage, wie zu sagen „Es gibt ein Leck im Haus", ohne zu sagen, in welchem Raum).
  • Funktionsebene: „Es gibt einen Fehler in dieser Funktion." (Besser, aber immer noch vage).
  • Zeilenebene: „Es gibt einen Fehler in Zeile 42." (Perfekt).

Die Umfrage zeigte, dass Entwickler Berichte auf Zeilenebene eindeutig bevorzugen, da sie ihnen genau sagen, wo sie den Patch anbringen müssen. Dieses Papier bietet den größten Datensatz dieser Art mit diesem spezifischen, hochpräzisen Detaillierungsgrad.

Zusammenfassung

  • Das Problem: Automatisierte Tools zum Finden von Smart-Contract-Fehlern sind oft unzuverlässig, voller Fehlalarme oder übersehen echte Fehler.
  • Die Lösung: Die Forscher erstellten einen riesigen, menschlich verifizierten „Lösungsschlüssel", um diese Tools ordnungsgemäß zu testen.
  • Die Entdeckung: KI-Tools haben Schwierigkeiten mit der Komplexität der realen Welt, und kein einzelnes Tool funktioniert für alles.
  • Die Lösung: Eine spezifische Kombination aus drei bestehenden Tools funktioniert am besten und findet die meisten Fehler in kürzester Zeit.
  • Das Geschenk: Sie haben ihren riesigen, menschlich verifizierten Datensatz der Öffentlichkeit zur Verfügung gestellt, damit andere in Zukunft bessere Tools entwickeln können.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →