← Últimos artículos
💻 computer science

Chiral Analysis of Smart Contracts: Detecting Vulnerabilities from Relational Inconsistencies Across Business Paths

Este artículo introduce el "análisis quiral", un modelo de análisis estático relacional implementado en la herramienta ChiralDetector que detecta vulnerabilidades en contratos inteligentes mediante la identificación de inconsistencias entre rutas de negocio semánticamente emparejadas, descubriendo eficazmente errores lógicos complejos que los analizadores tradicionales de una sola función pasan por alto.

Autores originales: Yue Xue

Publicado 2026-07-21
📖 7 min de lectura🧠 Análisis profundo

Autores originales: Yue Xue

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

El dilema del detective: Cuando el código miente por omisión

Imagine que es un detective intentando resolver un misterio en una ciudad bulliciosa. Normalmente, busca una prueba irrefutable: una ventana rota, una huella de barro o una nota sospechosa. En el mundo del código informático, específicamente en los "smart contracts" (contratos inteligentes) que se ejecutan en las blockchains, las herramientas de seguridad tradicionales actúan como este detective. Escanean el código línea por línea, buscando errores obvios como la falta de una cerradura en una puerta o un error matemático en un cálculo. Estas herramientas son excelentes para encontrar errores "locales", del tipo que ocurren en una sola habitación.

Pero, ¿qué pasa si el crimen no está en la habitación en absoluto? ¿Qué pasa si el misterio es que la puerta principal está cerrada, pero la puerta trasera está abierta de par en par, y se suponía que las dos puertas formaban parte del mismo sistema de seguridad? En informática, esto se llama un problema "relacional". No se trata de una pieza rota; se trata de dos piezas que deberían coincidir pero no lo hacen. Este artículo explora una nueva forma de detectar estos errores sigilosos comparando pares de rutas de código, tratándolos como imágenes especulares que deben reflejar la misma verdad. Si una ruta dice "detenerse" y la otra dice "avanzar", el sistema está roto, incluso si tanto "detenerse" como "avanzar" parecen perfectamente bien por sí solos.

El artículo: Análisis quiral y la prueba del espejo

Este artículo presenta un nuevo y astuto método llamado Análisis Quiral. La palabra "quiral" proviene de la química y describe objetos que son imágenes especulares entre sí pero que no pueden apilarse perfectamente uno sobre otro (como su mano izquierda y su mano derecha). En el mundo de los contratos inteligentes, los autores proponen que muchas operaciones comerciales vienen en pares: una transacción "individual" y una transacción "por lote", una "compra" y una "venta", o un "previsualización" de un precio y la "ejecución" de ese precio. Estos pares son los gemelos quirales del código.

La idea central es simple pero poderosa: tratar estos pares como si se estuvieran revisando la tarea el uno al otro. Si un usuario compra un artículo, el código debería cobrarle una comisión. Si ese mismo usuario vende el artículo más tarde, el código debería manejar el dinero de una manera que tenga sentido con la compra original. Si la ruta de "compra" cobra una comisión en dólares, pero la ruta de "venta" accidentalmente reembolsa en una moneda diferente, o si la versión "por lote" olvida reembolsar el dinero que la versión "individual" devuelve, existe un error. El artículo sostiene que estos errores son invisibles para los escáneres estándar porque cada línea de código individual parece correcta. El error solo aparece cuando sostienes las dos rutas frente al espejo y ves que no coinciden.

Para encontrar estos errores invisibles, los autores construyeron una herramienta prototipo llamada ChiralDetector. Piense en esta herramienta como un pasante superinteligente que tiene una descripción de puesto específica. Primero, lee todo el código base y mapea cada posible "ruta de negocio" (como trazar cada ruta que un cliente puede tomar en una tienda). Luego, utiliza un "clasificador estático" (un conjunto de reglas simples) para adivinar qué rutas podrían ser gemelos quirales. Por ejemplo, podría buscar una función llamada buy (comprar) y otra llamada sell (vender) que afecten a la misma cuenta bancaria.

Una vez que tiene una lista de posibles gemelos, llama al peso pesado: un Modelo de Lenguaje Grande (LLM, por sus siglas en inglés), que es un tipo de IA que entiende el lenguaje humano y el código. La IA no solo busca errores; actúa como un lógico. Se pregunta: "Si estas dos rutas son supposed a ser espejos, ¿qué reglas deberían seguir?". Verifica siete dimensiones específicas:

  1. Guardas (Guards): ¿Ambas rutas verificaron las mismas contraseñas o permisos?
  2. Actores (Actors): ¿La misma persona pagó y recibió dinero en ambos casos?
  3. Estado (State): ¿Ambas rutas actualizaron la base de datos de la misma manera?
  4. Valor (Value): ¿Manejaron las comisiones y los reembolsos de manera consistente?
  5. Orden (Order): ¿Hicieron las cosas en la misma secuencia?
  6. Fallo (Failure): Si algo sale mal, ¿ambas rutas fallan o se recuperan de la misma manera?
  7. Externo (External): ¿Confiaron en las mismas fuentes externas?

Si la IA encuentra una discrepancia, no grita "¡Error!" inmediatamente. Pasa el hallazgo a un "validador estricto". Este validador es un editor escéptico que intenta demostrar que la IA está equivocada. Pregunta: "¿Es esto realmente un error, o es solo una decisión de diseño?". Finalmente, la herramienta agrupa los hallazgos similares para que, en lugar de reportar 100 errores diminutos, reporte la única causa raíz importante.

Los resultados: Encontrando los fallos ocultos

Los autores probaron este sistema en un proyecto del mundo real llamado Protocolo Phi. Los resultados sugieren que este enfoque funciona, aunque todavía es un trabajo en progreso.

Esto fue lo que sucedió en su experimento:

  • La herramienta comenzó analizando 3,217 pares de rutas de código.
  • Después de filtrar los que claramente no estaban relacionados, mantuvo 1,643 pares para investigar profundamente.
  • El detector de IA encontró 201 problemas potenciales (una mezcla de candidatos "sospechosos" y "confirmados").
  • Después de agrupar informes similares y eliminar duplicados, esto se redujo a 101 grupos.
  • Un validador estricto redujo esto aún más a 44 positivos confirmados.
  • Finalmente, tras una revisión de las causas raíz por parte de un experto humano, el equipo identificó 13 problemas únicos y efectivos.

Estos 13 problemas eran del tipo que las herramientas estándar pasan por alto. Por ejemplo:

  • La confusión de la "Prueba": Un sistema permitía reutilizar una prueba de propiedad para un artículo diferente porque las rutas de "compra" y "reclamación" no vinculaban la prueba al artículo específico correctamente.
  • La confusión de la Comisión: Una parte del sistema calculaba las comisiones en "puntos básicos" (una unidad de porcentaje), mientras que otra parte trataba el mismo número como "wei" (una unidad de moneda minúscula), lo que provocaba errores financieros masivos.
  • La trampa del Reembolso: Cuando un usuario pagaba de más, la ruta de transacción "individual" reembolsaba el dinero al usuario, pero la ruta de transacción "por lote" accidentalmente enviaba el reembolso a un contrato intermedio, dejando al usuario sin nada.

Los autores sugieren que este método es particularmente bueno para detectar errores de "lógica de negocio" —errores en cómo el sistema piensa sobre el dinero y las reglas— más que simples errores tipográficos. Observan que el proceso no es perfecto; generó mucho "ruido" (falsas alarmas) que tuvo que ser limpiado, y depende de que la IA sea lo suficientemente inteligente como para detectar la relación. Sin embargo, el hecho de que encontrara 13 problemas distintos y de alto impacto que otras herramientas pasaron por alto sugiere que mirar el código a través del lente de los "pares quirales" es una nueva dirección prometedora.

El artículo concluye que, si bien esto no es una varita mágica que resuelve todos los problemas de seguridad, ofrece una forma estructurada de encontrar los errores que se esconden en los espacios entre las líneas de código. Al tratar las rutas de código como imágenes especulares, finalmente podemos ver las grietas que aparecen cuando el reflejo no coincide con el objeto.

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