← Últimos artículos
💻 computer science

Malicious Code Detection in Smart Contracts via Opcode Vectorization

Este artículo propone un enfoque basado en aprendizaje automático para detectar código malicioso en contratos inteligentes mediante la clasificación y simplificación de opcodes, comparando luego la efectividad de los métodos de vectorización N-Gram y TF-IDF tanto en opcodes brutos como procesados para optimizar la extracción de características para el entrenamiento del clasificador.

Autores originales: Huanhuan Zou, Zongwei Li, Xiaoqi Li

Publicado 2026-02-03
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Huanhuan Zou, Zongwei Li, Xiaoqi Li

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina la blockchain como un libro de contabilidad digital gigante y público donde la gente escribe "contratos inteligentes". Piensa en estos contratos no como documentos legales, sino como máquinas expendedoras que funcionan solas. Introduces dinero, la máquina verifica las reglas y, si todo es correcto, te entrega un aperitivo. Si el código dentro de la máquina está roto o tiene una trampa oculta (código malicioso), podrías perder tu dinero, o la máquina podría colapsar por completo.

Este artículo es como un equipo de guardias de seguridad tratando de averiguar cómo detectar una máquina expendedora rota o amañada antes de que alguien salga herido. Así es como intentaron hacerlo, explicado de forma sencilla:

1. El Problema: Demasiados lenguajes

Los contratos inteligentes se escriben en código, pero la blockchain no lee la versión en "inglés" (el código fuente) que escriben los humanos. Solo entiende un lenguaje muy específico y robótico llamado Opcodes.

  • La Analogía: Imagina que el contrato es una receta. Los humanos leen la receta en inglés ("Añadir dos tazas de harina"). La blockchain, sin embargo, solo entiende una lista de comandos químicos ("Mezclar ingrediente A con ingrediente B").
  • El Problema: Hay cientos de estos comandos químicos. Si simplemente los enumeras al azar, es difícil para una computadora distinguir entre una receta segura y una envenenada.

2. La Solución: Agrupar y Contar

Los autores decidieron enseñar a una computadora a leer estos comandos robóticos convirtiéndolos en una lista simple de números (vectores). Lo hicieron en tres pasos:

  • Paso A: Agrupar los Comandos (Simplificación)
    En lugar de tratar cada comando como único, agruparon los similares.

    • Analogía: Imagina que tienes 32 tipos diferentes de botones de "Presionar" (Presionar1, Presionar2... Presionar32). En lugar de recordar 32 botones diferentes, los autores decidieron llamarlos todos simplemente "Presionar". Hicieron esto para otros grupos como "Saltar" o "Matemáticas". Esto redujo el ruido y hizo que la lista fuera más corta y fácil de estudiar.
  • Paso B: Mirar Parejas (N-Gram)
    No solo miraron comandos individuales; miraron parejas de comandos que ocurren uno al lado del otro.

    • Analogía: Si ves la palabra "Sal" en una receta, es común. Pero si ves "Sal" seguida inmediatamente de "Veneno", eso es una señal de alerta. Observaron estas parejas (como "Presionar" luego "Saltar") para entender el flujo del contrato.
  • Paso C: Pesar la Importancia (TF-IDF)
    Utilizaron un truco matemático para determinar qué parejas eran realmente importantes.

    • Analogía: Si casi todas las recetas seguras usan la pareja "Mezclar luego Verter", esa pareja no es muy especial. Pero si una pareja específica de comandos solo aparece en las recetas "envenenadas", esa pareja es una pista enorme. Le dieron puntuaciones altas a las parejas raras y sospechosas, y puntuaciones bajas a las comunes.

3. El Experimento: Entrenando a los Detectives

Una vez que convirtieron los contratos en estas listas numeradas, los introdujeron en cinco "detectives" computacionales diferentes (modelos de Aprendizaje Automático como Árboles de Decisión y Bosques Aleatorios) para ver si podían detectar los contratos malos.

  • El Resultado: Probaron dos formas de hacer esto.
    1. Método 1: Solo mirar la lista bruta de comandos.
    2. Método 2: Mirar las parejas simplificadas y sus puntuaciones de importancia (el método descrito anteriormente).
  • El Resultado Final: El segundo método (mirar las parejas) funcionó ligeramente mejor para un detective específico (el Árbol de Decisión), pero en general, los resultados fueron mixtos.

4. El Gran Obstáculo: No hay suficientes ejemplos malos

El mayor problema que enfrentaron los autores no fue la matemática; fue los datos.

  • La Analogía: Imagina que estás tratando de enseñar a un perro a reconocer a un lobo. Le muestras 500 fotos de ovejas, pero solo tienes 80 fotos de lobos.
  • La Realidad: En el mundo real, la mayoría de los contratos inteligentes son seguros. Los maliciosos son raros. Debido a que solo tenían una cantidad minúscula de contratos "malos" para estudiar, los modelos de la computadora se confundieron. No pudieron aprender el patrón de un "lobo" porque no tenían suficientes fotos de lobos para comparar contra las ovejas.

5. El Futuro: Construir una Biblioteca más Grande

Los autores concluyen que, si bien su método de traducir el código robótico a números es una buena idea, necesitan más datos para demostrar que funciona perfectamente.

  • Lo que planean hacer después: Quieren construir un robot (un rastreador web) para recolectar automáticamente miles de contratos de internet para crear una biblioteca mucho más grande. También quieren intentar enseñar a la computadora usando contratos "no etiquetados" (donde la computadora tiene que adivinar por sí misma cuáles son malos) porque encontrar tantos contratos conocidos como "malos" es muy difícil.

En Resumen:
El artículo propone una forma ingeniosa de traducir el lenguaje robótico de los contratos inteligentes a un formato que las computadoras puedan comparar fácilmente. Encontraron que mirar las parejas de comandos ayuda, pero se toparon con un muro porque simplemente hay muy pocos ejemplos de contratos "malos" en el mundo para entrenar su sistema de manera efectiva. Necesitan más datos antes de que su guardia de seguridad pueda ser totalmente confiable.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →