Blog de AuditOne
Auditoría de un contrato de Solidity: Episodio 6 - Frontrunning

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

En este artículo
Autor
Daniel Francis
Responsable sénior de producto
¡Comparte esto con tu comunidad!
xtelegramlinkedin
Artículos recientes

¿Buscas más contenido interesante?

Descubre nuestra comunidad
Discord
x
Twitter
Medium
LinkedIn
YouTube