El panorama financiero descentralizado ofrece muchas oportunidades, pero también puede ser propenso a varios tipos de ataques.
Las vulnerabilidades de los contratos inteligentes son una preocupación constante: los delincuentes se aprovechan de las vulnerabilidades en el código DeFi, lo que lleva a ataques de préstamos instantáneos, tirones de alfombras y, más recientemente, ataques sándwich.
Si aún no ha oído hablar de los ataques sándwich, es posible que no esté solo, ya que no son un ataque tan popular como, por ejemplo, un tirón de alfombra. Pero los ataques sándwich pueden causar situaciones bastante problemáticas en DeFi, lo suficiente como para que el cofundador de Ethereum, Vitalik Buterin, nos advirtiera sobre ellos en 2018.
Cuando se trata de los muchos vectores de ataque en la tecnología, es crucial comprender el concepto básico de un ataque y las posibles ramificaciones. Un ataque sándwich, dirigido principalmente a protocolos y plataformas DeFi, puede tener consecuencias significativas y dar lugar a una manipulación del mercado.
El concepto de ataque sándwich
En esencia, un ataque sándwich es una forma de ejecución inicial que se dirige principalmente a protocolos y servicios financieros descentralizados.
En un ataque sándwich, un comerciante infame busca una transacción pendiente en la red de su elección, por ejemplo, Ethereum. El emparedado se produce al realizar un pedido justo antes del intercambio y otro inmediatamente después. En esencia, el atacante se ejecutará al frente y al revés simultáneamente, con la transacción pendiente original intercalada en el medio.
El propósito de colocar estos dos pedidos y las transacciones pendientes circundantes es manipular los precios de los activos. Primero, el culpable comprará el activo al que el usuario está cambiando, por ejemplo, usando LINK para intercambiar a ETH, con su conocimiento del aumento de precio de ETH. Luego, el culpable comprará ETH por un precio más bajo para permitir que la víctima compre a un valor más alto. El atacante luego venderá ETH a un precio más alto.
El emparejamiento de transacciones afecta la cantidad de ETH que recibirá el usuario inicial. A medida que el culpable logró completar el pedido al precio deseado, la próxima operación tendrá un costo más alto. Esa secuencia hace que el precio de ETH aumente, lo que permite al culpable embolsarse una ganancia al hacer frente y respaldar a un comerciante y crear un aumento de precio artificial.
Varios factores a considerar en los ataques tipo sándwich
El método de ataque sándwich (como se explicó anteriormente) hace que este tipo de ataque suene sencillo. En realidad, quizás sea demasiado fácil realizar este tipo de ataque. Incluso si el beneficio es pequeño, se puede utilizar este método repetidamente sin repercusiones. Sin embargo, un comerciante malintencionado debe estar bien preparado para realizar un ataque sándwich. Hay muchas complejidades en las finanzas descentralizadas a considerar que pueden afectar las posibilidades de éxito.
La mayoría de los ataques sándwich se realizarán a través de soluciones automáticas de creación de mercado o AMM. Los ejemplos notables incluyen Uniswap, PancakeSwap, Sushi y otros. A través de sus algoritmos de precios, la liquidez siempre tiene una gran demanda y las operaciones se ejecutan continuamente. Sin embargo, no puede olvidarse del aspecto del deslizamiento de precios, que ocurre cuando el volumen y la liquidez de un activo cambian.
Los operadores también enfrentan un precio de ejecución esperado, un precio de ejecución real y una tasa de deslizamiento inesperada. Estas facetas pueden afectar las tasas a las que se negocia y la cantidad de activo Y que reciben a cambio del activo X. Las transacciones de blockchain pueden tardar algún tiempo en ejecutarse y los tipos de cambio entre activos pueden fluctuar enormemente, lo que da como resultado un deslizamiento de precios más inesperado.
Un ataque sándwich: dos escenarios posibles
Teniendo en cuenta todo lo anterior, un mal actor puede realizar un ataque sándwich de dos formas.
Tomador de liquidez vs tomador
No es extraño ver a diferentes tomadores de liquidez atacarse entre sí.
Por ejemplo, si un tomador de mercado habitual tiene una transacción de AMM pendiente en la cadena de bloques, el culpable puede emitir transacciones posteriores, de ejecución inicial y posterior, para obtener ganancias financieras. Como el grupo de liquidez y el par de activos tienen tres transacciones pendientes, los mineros decidirán cuál se aprueba primero.
Si el culpable paga un costo de transacción más alto que el otro individuo, existe una mayor posibilidad de que la transacción maliciosa se detecte primero. No es un resultado garantizado, sino simplemente una ilustración de lo fácil que puede ser intentar un ataque sándwich.
Proveedor de liquidez vs tomador
Un proveedor de liquidez puede atacar a un tomador de liquidez de una manera muy similar. La configuración inicial sigue siendo idéntica, aunque el mal actor deberá realizar tres acciones esta vez.
Primero, eliminan la liquidez, como método de ejecución inicial, para aumentar el deslizamiento de la víctima. En segundo lugar, vuelven a agregar liquidez, retrocediendo para restablecer el saldo inicial del grupo. En tercer lugar, intercambian el activo Y por X para restaurar el saldo de activos de X como estaba antes del ataque.
Retirar la liquidez de uno antes de que se realice la transacción de la víctima niega la tarifa de comisión por esa transacción. Normalmente, los proveedores de liquidez ganan una pequeña tarifa por la actividad que ocurre en su grupo de elección: asegurarse de que no se otorgue la comisión puede causar un daño financiero a cualquier comprador, aunque a costa de la propia comisión.
¿Vale la pena el trabajo de los ataques tipo sándwich?
A pesar de los claros incentivos económicos para el ataque sándwich, es posible que no siempre valga la pena hacerlo. El costo de realizar estas transacciones para otros comerciantes, tanto al principio como al final, a menudo superará la ganancia financiera para los atacantes, especialmente cuando se usa la red Ethereum, que registra los costos de transacción (por acción) con bastante regularidad.
Sin embargo, un ataque sándwich puede ser un ataque rentable si la comisión obtenida por el “comportamiento normal” y el costo de transacción para un ataque sándwich es menor que el monto de intercambio de la víctima.
El advenimiento del comercio descentralizado a través de creadores de mercado automatizados sigue representando un riesgo para cualquiera que utilice estos servicios. Un ataque de sándwich puede ocurrir en cualquier momento. A medida que DeFi atraiga a más y más personas, habrá más oportunidades para que los culpables ataquen. Eso no significa que habrá más ataques sándwich (exitosos) en el futuro, pero es algo a tener en cuenta.
Cómo protegerse contra los ataques de sándwich
Para los AMM, es crucial desarrollar contramedidas capaces de proteger a los usuarios de ataques sándwich. Por ejemplo, la plataforma de 1 pulgada introdujo un nuevo tipo de orden conocido como “transacciones flashbot”, que no son visibles en el mempool ya que nunca se transmiten a él. En cambio, la plataforma de 1 pulgada tiene una conexión directa con mineros confiables para que las transacciones sean visibles después están minadas.
Hasta la fecha, esa parece ser la única forma en que los usuarios pueden protegerse contra un ataque tipo sándwich. Sin embargo, no está claro si otros AMM forjarán asociaciones con mineros para incluir transacciones sin transmitirlas al mempool. Es posible que se encuentren otras soluciones en el futuro, aunque es probable que eso lleve algún tiempo.