← Últimos artículos
💻 computer science

Identifying and Characterizing Semantic Clones of Solidity Functions

Este artículo presenta una metodología escalable para identificar clones semánticos en contratos inteligentes de Solidity mediante el análisis de código y comentarios, logrando alta precisión y exhaustividad mientras explora alternativas de diseño estructural y aprovecha los Modelos de Lenguaje Grandes para cerrar las brechas de documentación en el código sin comentarios.

Autores originales: Ermanno Francesco Sannini, Francesco Salzano, Simone Scalabrino, Rocco Oliveto, Remo Pareschi, Corrado Aaron Visaggio, Andrea Di Sorbo

Publicado 2026-04-30
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Ermanno Francesco Sannini, Francesco Salzano, Simone Scalabrino, Rocco Oliveto, Remo Pareschi, Corrado Aaron Visaggio, Andrea Di Sorbo

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 el mundo de los Contratos Inteligentes (los acuerdos digitales que se ejecutan en blockchains como Ethereum) como una biblioteca pública masiva. Una vez que un libro (un contrato) se escribe y se coloca en la estantería, nunca puede ser borrado ni modificado. Como los libros son públicos, los escritores a menudo copian y pegan secciones de otros libros para ahorrar tiempo. Esto se llama "clonación".

La mayoría de las veces, copiar es fácil de detectar. Si copias un párrafo palabra por palabra, es obvio. Pero, ¿qué pasa si alguien reescribe un párrafo usando palabras completamente diferentes, cambia la estructura de la oración y sustituye algunos sinónimos, pero el significado permanece exactamente igual? En el mundo de la programación, esto se llama un Clon Semántico (o un clon de Tipo-4).

Este artículo trata sobre construir un mejor "bibliotecario" para encontrar estas copias ocultas y reescritas en Solidity (el lenguaje utilizado para escribir estos contratos), porque copiar una lógica defectuosa puede propagar vulnerabilidades de seguridad tan fácilmente como copiar una lógica correcta.

Aquí tienes un desglose de su trabajo utilizando analogías simples:

1. El Problema: La Trampa de la "Receta Reescrita"

Imagina a dos chefs escribiendo recetas para un "Pastel de Chocolate".

  • Chef A escribe: "Mezcla harina, azúcar y huevos. Hornea a 350°F."
  • Chef B escribe: "Combina los ingredientes secos con los húmedos. Coloca en el horno a 175°C."

Para una computadora que busca coincidencias exactas, estas parecen totalmente diferentes. Pero para un humano, son la misma receta. En el mundo de la blockchain, si la receta del Chef A tiene un defecto oculto (como olvidar verificar si el horno está caliente), y el Chef B copia la idea sin notar el defecto, toda la cocina está en peligro.

Los autores descubrieron que las herramientas existentes son como robots que solo buscan coincidencias exactas de palabras. Ellos pasan por alto estas "recetas reescritas".

2. La Solución: Leyendo las "Notas del Chef"

Los investigadores se dieron cuenta de que, aunque el código (los ingredientes y los pasos) pueda parecer diferente, los comentarios (las notas que el chef escribió sobre la receta) a menudo explican la intención de maneras muy similares.

  • La Analogía: Piensa en el código como las acciones y en los comentarios como la voz en off que explica qué están haciendo las acciones.
  • El Método: Construyeron un sistema que compara dos cosas:
    1. El Código: Verifican si el código es diferente (baja similitud).
    2. Los Comentarios: Verifican si las descripciones escritas son muy similares (alta similitud).

Si el código parece diferente pero la voz en off suena igual, lo marcan como un "Clon Semántico".

3. Los Resultados: Un Detective de Alta Precisión

Probaron este método en un conjunto masivo de datos de casi 300,000 contratos inteligentes modernos.

  • La Tasa de Éxito: Cuando verificaron manualmente una muestra de 1,155 pares, su método fue correcto el 59% de las veces en general.
  • El Bonus del "Mismo Nombre": Si las funciones tenían el mismo nombre (como que ambas se llamaran transfer), la precisión saltó al 84%.
  • La Red de Seguridad: También verificaron si se les había escapado alguno. Descubrieron que solo se les escapó aproximadamente el 3% de los clones reales (una tasa de "recall" del 97%).

Descubrieron que estas "recetas reescritas" no son solo accidentes; a menudo son decisiones de diseño. Los desarrolladores las reescriben para hacer el código más seguro, para ahorrar "gas" (la tarifa pagada para ejecutar el contrato) o para organizar mejor el código.

4. El Desafío: La Biblioteca "Silenciosa"

Un problema importante que encontraron es que el 75% de estas funciones no tiene comentarios en absoluto. Es como tener una biblioteca donde tres cuartas partes de los libros no tienen títulos ni resúmenes. Sin comentarios, su método de "voz en off" no puede funcionar.

5. La Solución: El "Escriba IA" (LLMs)

Para resolver el problema de la "biblioteca silenciosa", utilizaron Modelos de Lenguaje Grandes (IA) para actuar como un escriba.

  • La Analogía: Si un libro no tiene resumen, pidieron a la IA que leyera el código y escribiera un resumen para él.
  • El Experimento: Alimentaron a la IA con el código, le pidieron que escribiera una descripción y luego usaron su sistema para comparar las descripciones escritas por la IA.
  • El Resultado: Incluso sin notas escritas por humanos, los resúmenes generados por la IA les permitieron encontrar correctamente el 75% de los clones ocultos.

También probaron diferentes "prompts" (instrucciones para la IA). Descubrieron que pedirle a la IA un resumen simple y directo funcionaba mejor que pedir un informe complejo y estructurado. Los informes complejos añadían demasiada "relleno" que confundía al sistema, mientras que los resúmenes simples mantenían el enfoque en el significado central.

6. Por Qué Esto Importa

Los autores concluyen que esto no se trata solo de encontrar duplicados; se trata de encontrar alternativas.

  • Si eres un desarrollador que construye un contrato seguro, no solo quieres una forma de hacer algo. Quieres ver todas las diferentes formas en que otras personas han resuelto el mismo problema.
  • Al encontrar estos clones semánticos, los desarrolladores pueden comparar diferentes "recetas reescritas" para ver cuál es más segura, más barata o más eficiente antes de construir la suya propia.

En resumen: El artículo presenta una nueva forma de encontrar "gemelos ocultos" en el código comparando la intención (comentarios) en lugar de solo la sintaxis (código). Cuando faltan comentarios, utilizan la IA para escribirlos, descubriendo con éxito alternativas de diseño ocultas que podrían ayudar a hacer los contratos de blockchain más seguros y eficientes.

¿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 →