Los contratos inteligentes son códigos que se ejecutan automáticamente y constituyen la columna vertebral del ecosistema Web3. Los contratos inteligentes son los pilares fundamentales del ecosistema Web3, ya que mantienen un delicado equilibrio entre miles de millones en una red abierta. Hoy hablaremos del «front running», una de las vulnerabilidades más comunes que afectan a los contratos inteligentes. Este es un buen punto de partida si quieres aprender sobre Solidity y cómo auditar contratos inteligentes. Este artículo forma parte de una serie dedicada a la auditoría de contratos inteligentes en Solidity. La serie abordará las vulnerabilidades y los recursos que utilizan los auditores de contratos inteligentes.
¿Qué es el «frontrunning»?
El «frontrunning» consiste en aprovechar la información sobre transacciones pendientes para obtener beneficios a costa de otros.
Ataque «Fontrun»
Los operadores que utilizan mercados descentralizados (DEX) pueden ser vulnerables a este tipo concreto de ataque. El contrato inteligente del DEX depende de oráculos para obtener información sobre los precios, lo que puede retrasar las actualizaciones de los mismos. Como consecuencia, el estado del contrato inteligente puede verse alterado en función de las transacciones que figuran como pendientes.
Los atacantes suelen supervisar las transacciones pendientes de procesamiento y se centran en aquellas con comisiones de gas más bajas. Para ello, envían una transacción similar con una comisión de gas más alta, lo que desplaza la transacción original. De este modo, se aseguran de que su transacción se procese antes que las de los usuarios desprevenidos. Este cambio altera el estado del precio del contrato inteligente; el atacante consigue que su transacción se procese a un precio más bajo y, a continuación, vende a un precio más alto a los usuarios desprevenidos, lo que le permite beneficiarse de la diferencia provocada por el «frontrunner».

Solución Fontrun
Existen varios métodos que pueden ayudar a mitigar el riesgo de «frontrunning» en los contratos inteligentes:
Formato de contrato inteligente: emplear técnicas como los esquemas «commit-reveal» y las subastas secretas para mitigar el «front-running».
Deslizamiento: Establece un deslizamiento máximo bajo para evitar que los «front runners» se aprovechen de la orden. Un rango del 0,5 % al 2 % es adecuado para órdenes de mayor volumen. Un deslizamiento elevado favorece los ataques de los «front runners».
Libros de órdenes descentralizados: Al controlar el orden de las transacciones, es posible implementar libros de órdenes descentralizados que sean resistentes a la manipulación.
Fondos de liquidez: Minimiza el riesgo de manipulación utilizando fondos de liquidez de gran tamaño; los fondos más pequeños aumentan el riesgo.
Precio del gas: Pagar menos de lo debido por el gas te hace vulnerable a la explotación por «front-running», mientras que pagar de más incentiva a los mineros a validar las transacciones más rápidamente, lo que reduce el riesgo de explotación.
Capa 2: Utiliza soluciones de escalabilidad de capa 2, como los zk-Rollups, para realizar transacciones más rápidas, económicas y seguras.
En conclusión
El «frontrunning» supone un reto importante para los contratos inteligentes y las finanzas descentralizadas (DeFi). A medida que evoluciona la tecnología blockchain, los desarrolladores deben poner en marcha estrategias para proteger a los usuarios frente a este tipo de ataques. Por eso, las auditorías de contratos inteligentes, los programas de recompensa por errores y las revisiones son fundamentales en todas las fases del desarrollo. Aumentan el número de personas que buscan vulnerabilidades y reducen la probabilidad de que se pasen por alto vulnerabilidades críticas.
Cuídate.
Únete a AuditOne como auditor: https://www.auditone.io/auditors
Reserva tu consulta gratuita sobre seguridad:
Google Calendar: https://calendar.app.google/Ai15eyQhiV5c1pBXA
Telegram: https://t.me/m_ndr
Artículos relacionados:
Auditoría de un contrato de Solidity: Episodio 1 — Ataque de reentrada
Auditoría de un contrato de Solidity: Episodio 2 - Delegatecall
Auditoría de un contrato de Solidity: Episodio 3 - Análisis de seguridad
Auditoría de un contrato de Solidity: Episodio 4 — Pruebas
Auditoría de un contrato de Solidity: Episodio 5 - Herramientas de pruebas automatizadas
Auditoría de un contrato de Solidity: Episodio 7 — Documentación y elaboración de informes
Auditoría de un contrato de Solidity: Episodio 8 - Ventajas de la auditoría
.avif)

.png)






