Solidity corrige un error del optimizador Yul que afecta a las versiones 0.8.19–0.8.37
Solidity ha corregido en la versión 0.8.38 un error de baja gravedad del optimizador Yul. El error afecta a los contratos compilados con el optimizador Yul activado en Solidity 0.8.19–0.8.37. En determinadas condiciones, un registro de seguimiento obsoleto puede hacer que el optimizador Yul trate dos ubicaciones de memoria o almacenamiento como distintas cuando, en realidad, se solapan. Esto puede hacer que un contrato devuelva un valor desactualizado o pierda una escritura necesaria.
Daniel Boye informó del problema y, posteriormente, Surya Prakash Akula demostró que podía darse en código Solidity convencional, sin ensamblador en línea. Los contratos compilados con `--via-ir` podrían verse afectados de forma generalizada; con la canalización predeterminada de ensamblador EVM, la exposición es más limitada. El error no puede producirse si el optimizador Yul está desactivado.
El análisis de Solidity de aproximadamente 283.000 compilaciones verificadas con `via-ir` y 607.000 compilaciones de ensamblador EVM no detectó diferencias en el bytecode al comparar las compilaciones con y sin la corrección. El equipo señala que esto sugiere que el error es poco frecuente, pero no garantiza que ningún contrato desplegado se vea afectado. Los desarrolladores deberían actualizar a Solidity 0.8.38 o posterior y evaluar los contratos desplegados compilados con versiones afectadas. Para los traders, se trata de una alerta específica sobre la fiabilidad de los contratos inteligentes, no de indicios de una perturbación generalizada de la red Ethereum o del mercado.
Neutral
El anuncio es un aviso de seguridad y de actualización para desarrolladores, no una prueba de que se haya producido una explotación, una interrupción de la red o una pérdida de fondos. Solidity califica el fallo como de gravedad baja y afirma que, tras analizar casi 890.000 compilaciones verificadas, no encontró diferencias de bytecode entre las compilaciones con la corrección y sin ella. Además, el problema requiere condiciones específicas relacionadas con el optimizador y la reasignación de direcciones, lo que limita su posible alcance. Estos datos hacen improbable que tenga un efecto inmediato y generalizado en ETH o en los precios del mercado cripto en su conjunto.
A corto plazo, los operadores podrían estar atentos a las comunicaciones de proyectos que utilicen Solidity 0.8.19–0.8.37, especialmente si se compilaron con el optimizador Yul o con `--via-ir`. Si un protocolo de uso extendido informa de contratos desplegados vulnerables o de pérdidas por explotación, la confianza podría debilitarse y provocar ventas de tokens de proyectos concretos o un aumento temporal de la volatilidad. El artículo no informa de ningún incidente de este tipo, por lo que no está justificada una interpretación bajista generalizada.
A largo plazo, la corrección incluida en Solidity 0.8.38 y los pasos de verificación recomendados deberían reducir la exposición a medida que los equipos actualicen y prueben los despliegues afectados. Como ocurre con otras divulgaciones de vulnerabilidades de compiladores, las principales señales de mercado son la confirmación de una explotación, el TVL de los protocolos afectados, las pausas de emergencia y las medidas correctivas de los proyectos, no la mera existencia de un problema del compilador que ya tiene solución. En conjunto, la noticia es neutral para la dirección del mercado, aunque resulta pertinente para el seguimiento de los riesgos de los contratos inteligentes.