← Nieuwste papers
💻 computer science

Malicious Code Detection in Smart Contracts via Opcode Vectorization

Dit artikel stelt een op machine learning gebaseerde aanpak voor voor het detecteren van kwaadaardige code in smart contracts door opcodes te classificeren en te vereenvoudigen, en vervolgens de effectiviteit van N-Gram en TF-IDF vectorisatiemethoden op zowel ruwe als bewerkte opcodes te vergelijken om de extractie van kenmerken voor classifier-training te optimaliseren.

Oorspronkelijke auteurs: Huanhuan Zou, Zongwei Li, Xiaoqi Li

Gepubliceerd 2026-02-03
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Huanhuan Zou, Zongwei Li, Xiaoqi Li

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je de blockchain voor als een gigantisch, publiek digitaal grootboek waar mensen "smart contracts" schrijven. Denk bij deze contracten niet aan juridische documenten, maar aan zelfwerkende verkoopautomaten. Je stopt er geld in, de machine controleert de regels, en als alles correct is, geeft hij je een snack. Als de code in de machine kapot is of een verborgen valstrik bevat (malafide code), kun je je geld kwijtraken, of kan de machine volledig crashen.

Dit artikel is als een team beveiligers dat probeert uit te zoeken hoe ze een kapotte of gemanipuleerde verkoopautomaat kunnen herkennen voordat er iemand letsel oploopt. Hier is hoe ze dat probeerden te doen, eenvoudig uitgelegd:

1. Het Probleem: Te veel talen

Smart contracts worden geschreven in code, maar de blockchain leest niet de "Engelse" versie (de broncode) die mensen schrijven. Het begrijpt alleen een zeer specifieke, robotachtige taal genaamd Opcodes.

  • De Analogie: Stel je voor dat het contract een recept is. Mensen lezen het recept in het Engels ("Voeg twee koppen bloem toe"). De blockchain begrijpt echter alleen een lijst met chemische commando's ("Meng ingrediënt A met ingrediënt B").
  • Het Probleem: Er zijn honderden van deze chemische commando's. Als je ze zomaar willekeurig opsomt, is het voor een computer moeilijk om het verschil te zien tussen een veilig recept en een vergiftigd recept.

2. De Oplossing: Groeperen en Tellen

De auteurs besloten een computer te leren hoe hij deze robotische commando's kan lezen door ze om te zetten in een eenvoudige lijst met getallen (vectoren). Dit deden ze in drie stappen:

  • Stap A: De Commando's Groeperen (Vereenvoudiging)
    In plaats van elk commando als uniek te behandelen, hebben ze vergelijkbare commando's bij elkaar gegroepeerd.

    • Analogie: Stel je voor dat je 32 verschillende soorten "Druk"-knoppen hebt (Push1, Push2... Push32). In plaats van 32 verschillende knoppen te onthouden, besloten de auteurs ze allemaal gewoon "Druk" te noemen. Dit deden ze ook voor andere groepen zoals "Spring" of "Rekenen". Dit verminderde de ruis en maakte de lijst korter en gemakkelijker te bestuderen.
  • Stap B: Kijken naar Paren (N-gram)
    Ze keken niet alleen naar losse commando's; ze keken naar paren van commando's die direct na elkaar komen.

    • Analogie: Als je het woord "Zout" in een recept ziet, is dat gebruikelijk. Maar als je "Zout" direct gevolgd ziet door "Vergif", dan is dat een rood vlaggetje. Ze keken naar deze paren (zoals "Druk" gevolgd door "Spring") om de flow van het contract te begrijpen.
  • Stap C: Belangrijkheid Afwegen (TF-IDF)
    Ze gebruikten een wiskundige truc om te bepalen welke paren daadwerkelijk belangrijk waren.

    • Analogie: Als bijna elk veilig recept het paar "Mixen dan Gieten" gebruikt, dan is dat paar niet bijzonder. Maar als een specifiek paar commando's alleen voorkomt in de "vergiftigde" recepten, dan is dat paar een enorme aanwijzing. Ze gaven hoge scores aan de zeldzame, verdachte paren en lage scores aan de veelvoorkomende paren.

3. Het Experiment: De Detectives Trainen

Zodra ze de contracten in deze genummerde lijsten hadden omgezet, voerden ze ze aan vijf verschillende "detective"-computers (Machine Learning-modellen zoals Decision Trees en Random Forests) om te zien of zij de slechte contracten konden herkennen.

  • Het Resultaat: Ze probeerden twee manieren om dit te doen.
    1. Methode 1: Alleen kijken naar de ruwe lijst van commando's.
    2. Methode 2: Kijken naar de vereenvoudigde paren en hun belangscores (de methode die hierboven wordt beschreven).
  • De Uitkomst: De tweede methode (kijken naar de paren) werkte iets beter voor één specifieke detective (de Decision Tree), maar over het algemeen waren de resultaten gemengd.

4. De Grote Hindernis: Niet Genoeg Slechte Voorbeelden

Het grootste probleem waarmee de auteurs te maken kregen, was niet de wiskunde, maar de data.

  • De Analogie: Stel je voor dat je een hond probeert te leren een wolf te herkennen. Je laat de hond 500 foto's van schapen zien, maar je hebt slechts 80 foto's van wolven.
  • De Realiteit: In de echte wereld zijn de meeste smart contracts veilig. Malafide contracten zijn zeldzaam. Omdat ze slechts een klein aantal "slechte" contracten hadden om te bestuderen, raakten de computermodellen in de war. Ze konden het patroon van een "wolf" niet leren omdat ze niet genoeg foto's van wolven hadden om te vergelijken met de foto's van schapen.

5. De Toekomst: Een Grotere Bibliothek Bouwen

De auteurs concluderen dat hoewel hun methode om de robotische taal van smart contracts naar een formaat te vertalen dat computers gemakkelijk kunnen vergelijken een goed idee is, ze meer data nodig hebben om te bewijzen dat het perfect werkt.

  • Wat ze van plan zijn te doen: Ze willen een robot (een web crawler) bouwen die automatisch duizenden contracten van het internet verzamelt om zo een veel grotere bibliotheek te creëren. Ze willen ook proberen de computer te leren met behulp van "ongelabelde" contracten (waarbij de computer zelf moet raden welke slecht zijn), omdat het vinden van zoveel bekende "slechte" contracten zo moeilijk is.

Samenvattend:
Het artikel stelt een slimme manier voor om de robotische taal van smart contracts te vertalen naar een formaat dat computers gemakkelijk kunnen vergelijken. Ze ontdekten dat het kijken naar paren van commando's helpt, maar ze liepen tegen een muur aan omdat er simpelweg te weinig voorbeelden van "slechte" contracten in de wereld zijn om hun systeem effectief te trainen. Ze hebben meer data nodig voordat hun beveiligingsbewaker volledig vertrouwd kan worden.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →