🔥Gate.io Bots estrategia comerciante plan de incentivos se lanza con fuerza!
🤖¡Crea estrategias de Bots de inmediato y comparte 10,900 USDT!
💰Más exposición oficial de tráfico, ayuda en la promoción de estrategias, ¡aumenta los ingresos!
🔗Detalles: https://www.gate.io/announcements/article/43944
Análisis completo del ataque MEV sandwich: de la ordenación a la cadena mortal del intercambio instantáneo.
Autor: Daii Fuente: mirror
El miércoles pasado (12 de marzo), un comerciante de criptomonedas fue víctima de un ataque MEV y perdió 215,000 dólares de una sola vez.
En pocas palabras, este usuario pretendía intercambiar 220,800 dólares en moneda estable USDC por un monto equivalente en USDT en el pool de Uniswap v3, pero solo recibió 5,272 USDT, lo que resultó en una evaporación instantánea de 215,700 dólares en solo unos segundos, como se muestra en la imagen a continuación.
La imagen de arriba es una captura de pantalla del registro en la cadena de esta transacción. La razón fundamental por la que ocurrió esta tragedia es que se sufrió un infame "ataque sándwich" (Sandwich Attack) en el mundo de las blockchains.
El primero en revelar el ataque MEV fue Michael (en la foto de arriba), explicando:
El contenido anterior contiene un error tipográfico; el robot de ataque MEV intercambia una gran cantidad de USDT, no USDC.
Sin embargo, después de leer su explicación y los informes de noticias, es posible que sigas confundido, porque hay demasiados términos nuevos, como ataque de sándwich (Sandwich Attack), adelantarse (front-ran the tx), restituir la liquidez (put back the liquidity), recompensar a un constructor de bloques (tipped a block builder), etc.
Hoy, tomaremos este ataque de MEV como ejemplo, desglosaremos todo el proceso y te llevaremos a explorar este oscuro mundo de MEV.
Primero, necesitamos explicar qué es MEV.
1. ¿Qué es MEV?
MEV, que originalmente se conocía como Valor Extraíble por Mineros (Miner Extractable Value), se refiere a las ganancias adicionales que los mineros pueden obtener al reordenar, insertar o excluir transacciones en los bloques de la blockchain. Esta operación puede llevar a que los usuarios comunes paguen costos más altos o obtengan precios de transacción menos favorables.
Con el cambio de redes blockchain como Ethereum del mecanismo de consenso de prueba de trabajo (Proof-of-Work, PoW) al mecanismo de consenso de prueba de participación (Proof-of-Stake, PoS), el poder de controlar el orden de las transacciones se ha trasladado de los mineros a los validadores. Por lo tanto, el término también ha evolucionado de "valor extraíble por mineros" (Miner Extractable Value) a "valor extraíble máximo" (Maximal Extractable Value).
A pesar de que el nombre ha cambiado, el concepto central de extraer valor manipulando el orden de las transacciones sigue siendo el mismo.
El contenido anterior es un poco técnico, solo necesitas recordar: la razón por la que existe el MEV es porque los mineros anteriores y los validadores actuales tienen el derecho de ordenar las transacciones en el pool de memoria (mempool). Este ordenamiento ocurre dentro de un bloque, y ahora Ethereum genera un bloque aproximadamente cada 11 segundos, lo que significa que cada 11 segundos se ejercerá este poder. Del mismo modo, este ataque de MEV también se logró a través del ordenamiento de los validadores.
Haz clic en este enlace y verás el contenido de las transacciones contenidas en el bloque número 22029771 relacionado con este ataque, como se muestra en la imagen a continuación.
Por favor, tenga en cuenta que las transacciones en las imágenes 1, 2 y 3 son el ataque MEV mencionado al principio de este artículo, y este orden ha sido organizado por el validador (bobTheBuilder). ¿Por qué puede ser así?
2. El principio de MEV
Para entender cómo funciona el MEV, primero necesitamos comprender cómo la blockchain registra y actualiza la información.
2.1 Mecanismo de actualización del estado de la cadena de bloques
La blockchain se puede ver como un libro de contabilidad en constante crecimiento que registra todas las transacciones realizadas. El estado de este libro de contabilidad, como el saldo de cada cuenta, la cantidad de tokens en las reservas de la piscina de transacciones de Uniswap, etc., está determinado por las transacciones anteriores.
Cuando se añade un nuevo bloque a la cadena de bloques, todas las transacciones contenidas en este bloque se ejecutan una por una según el orden en que aparecen en el bloque. Cada vez que se ejecuta una transacción, el estado global de la cadena de bloques cambia en consecuencia.
Es decir, no solo es importante el orden de los bloques, sino que también es importante el orden de las transacciones dentro del bloque. ¿Y cómo se decide el orden de las transacciones en el bloque?
2.2 Decisión del validador sobre el orden de las transacciones
Cuando un usuario inicia una transacción en la red blockchain, como esta transacción que convierte USDC a USDT a través de Uniswap, primero se transmite a los nodos de la red. Después de una verificación inicial, la transacción entra en un área llamada "mempool". El mempool es como una zona de espera donde las transacciones aún no han sido confirmadas y añadidas al siguiente bloque de la blockchain.
Los antiguos mineros (en sistemas PoW), ahora validadores (en sistemas PoS) tienen el derecho de seleccionar transacciones del pool de memoria y decidir el orden de estas transacciones en el siguiente bloque.
El orden de las transacciones en un bloque es crucial. Antes de que un bloque sea finalmente confirmado y añadido a la cadena de bloques, las transacciones en ese bloque se ejecutan en el orden determinado por el validador (por ejemplo, bobTheBuilder). Esto significa que si un bloque contiene múltiples transacciones que interactúan con el mismo grupo de transacciones, el orden de ejecución de estas transacciones afectará directamente el resultado de cada transacción.
Esta capacidad permite a los validadores priorizar transacciones específicas, retrasar o excluir otras transacciones, e incluso insertar sus propias transacciones para maximizar ganancias.
El orden de la transacción es igualmente importante; cualquier error pequeño puede hacer que el ataque no tenga éxito.
2.3 Ordenación de transacciones del ataque MEV
Primero entendamos brevemente las 3 transacciones relacionadas con el ataque MEV:
El validador del ataque MEV esta vez es bob-The-Builder.eth, quien se encarga de ordenar las transacciones en la secuencia 1, 2, 3. Por supuesto, bobTheBuilder no lo hace gratuitamente, ya que participó en este ordenamiento y obtuvo más de 100 ETH de ingresos, mientras que el iniciador del ataque MEV solo tuvo ingresos de 8000 dólares. Sus ingresos provienen de la segunda transacción de las víctimas.
En una palabra, el atacante (robot MEV) conspiró con el validador (bobTheBuilder), causando que la víctima de la segunda transacción perdiera 215,000 dólares, de los cuales el atacante obtuvo 8,000 dólares y el validador 200,000 dólares (más de 100 ETH).
El tipo de ataque que utilizan tiene un nombre muy visual: ataque de sándwich. A continuación, explicaremos transacción por transacción para que entiendas completamente cómo funciona el complejo ataque de sándwich de MEV.
3. Análisis completo de los ataques de sándwich
La razón por la que se llama ataque sándwich (Sandwich Attack) es porque las dos transacciones del atacante (Transacción 1 y Transacción 3) se colocan antes y después de la transacción de la víctima (Transacción 2), haciendo que todo el orden de las transacciones tenga una estructura similar a la de un sándwich (ver la imagen de arriba).
Las transacciones 1 y 3 tienen diferentes funciones. En términos simples, la transacción 1 se encarga de cometer el delito, mientras que la transacción 3 se encarga de recoger el botín. En concreto, el proceso completo es el siguiente:
3.1 Transacción 1, encargado de aumentar el precio de USDT
Haz clic en el enlace de la transacción número 1 en la imagen anterior, verás los detalles de la transacción número 1. El atacante aumentó el precio de USDT de manera muy directa, intercambiando 18.65 millones de USDC por todos los 17.58 millones de USDT que había dentro, ver la imagen a continuación.
En este punto, todo lo que queda en el fondo de liquidez es una gran cantidad de USDC y una pequeña cantidad de USDT. Si, según el informe de noticias, antes del ataque, Uniswap tenía alrededor de 19,8 millones de USDC y USDT en liquidez, después de la ejecución de la transacción 1, solo quedaban 2,22 millones de USDT en el pool (=1980-1758), y el saldo de USDC aumentó a unos 38,45 millones (=1980+1865).
En este momento, la tasa de cambio entre USDC y USDT en este grupo ya no es 1:1, sino 1:17. Esto significa que se necesitan 17 USDC para obtener 1 USDT, aunque esta tasa es solo aproximada, ya que este grupo es V3 y la liquidez no está distribuida de manera uniforme.
Hay un punto más que quiero decirte. En realidad, el atacante no utilizó de una sola vez 18.65 millones de USDC, el USDC utilizado fue de 1.09 millones, ni siquiera llega al 6%. ¿Cómo lo hizo? Lo explicaremos con más detalle una vez que terminemos de hablar sobre el ataque.
3.2 transacción 2, ejecutar 22 mil USDC por USDT
Haga clic en el enlace de la transacción 2 en la imagen anterior para ver la siguiente imagen.
! x3kBJKcYVyM44HJSUHuIxVQ1ScIutWsoZ6JuRvM7.png
Como se muestra en la imagen, la transacción 2 del víctima se vio afectada por la transacción 1, y solo recibió 5272 USDT por 220,000 USDC, perdiendo sin darse cuenta 170,000 USDT. ¿Por qué se dice que fue sin darse cuenta? Porque, si la víctima realizó la transacción a través de Uniswap, vería la siguiente interfaz al enviar la transacción.
A través de la imagen anterior, notarás que las víctimas deberían recibir al menos 220,000 que deberían estar garantizados. La razón por la cual las víctimas solo recibieron un poco más de 5,000 USDT es debido a un deslizamiento enorme, que alcanzó más del 90%. Sin embargo, Uniswap tiene un límite de deslizamiento máximo predeterminado del 5.5%, como se muestra en la imagen siguiente.
Es decir, si la víctima realizó la transacción a través de la interfaz de Uniswap, entonces debería recibir al menos 208381 USDT (= 220510 * 94.5%). Puede que te estés preguntando por qué en el registro de la blockchain anterior se indica que esta transacción se realizó en "Uniswap V3".
Porque la parte delantera y trasera de las transacciones en blockchain están separadas. Lo que se menciona arriba como «Uniswap V3» se refiere al fondo de USDC-USDT de Uniswap, el cual es público, y cualquier parte delantera de la transacción puede comerciar a través de este fondo.
También por esta razón, algunas personas sospechan que la víctima no es simple, no es una persona común, de lo contrario no habría un deslizamiento tan grande, podría ser un ataque de MEV para lavar dinero. Esto, lo discutiremos más adelante.
3.3 Transacción 3, cosecha + reparto
Haga clic en el enlace para ver los detalles de la transacción 3, como se muestra en la imagen de arriba. Hablaremos de las tres transacciones A, B y C.
Transacción A, restauró la liquidez en el fondo, intercambiando 17.32 millones de USDT por 18.60 millones de USDC;
Transacción B, preparación de la repartición, convertir parte de las ganancias——204,000 USDC a 105 ETH;
Transacción C, reparto de ganancias, pagar 100.558 ETH al validador bob-The-Builder.eth.
Con esto, termina el ataque sandwich.
Ahora voy a responder una pregunta muy importante mencionada anteriormente: ¿cómo logró el atacante llevar a cabo un ataque de 18 millones utilizando 1.09 millones de USDC?
4. ¿Cómo logró el atacante llevar a cabo un ataque de piscina de 18 millones de USDC?
La razón por la que el atacante pudo realizar un ataque de nivel de 18 millones de dólares utilizando solo 1.09 millones de USDC de capital es porque existe un mecanismo mágico y especial en el mundo de la blockchain: el intercambio relámpago (Flash Swap) de Uniswap V3.
4.1 ¿Qué es el intercambio relámpago (Flash Swap)?
En pocas palabras:
Uniswap permite este comportamiento de "recoger primero, pagar después" siempre que toda la operación se complete en la misma transacción. Tenga en cuenta que debe completarse en la misma transacción. Este diseño se hace para garantizar la seguridad de la plataforma Uniswap.
El propósito del diseño de intercambio relámpago es para realizar arbitraje en cadena de manera más efectiva, pero desgraciadamente ha sido utilizado por atacantes de MEV, convirtiéndose en una herramienta de manipulación del mercado.
4.2 ¿Cómo ayuda el intercambio relámpago?
A continuación, veamos la ilustración y comprendamos paso a paso cómo se llevó a cabo el intercambio relámpago de este ataque, como se muestra en la imagen a continuación.
Después de esta transacción (transacción 1), el saldo de la cuenta del atacante se redujo en 1,09 millones de USDC, ya que de los 18,64 millones de USDC devueltos a Uniswap, solo 17,55 millones de USDC se cambiaron desde Curve, y el resto, 1,09 millones de USDC, son fondos propios del atacante.
Deberías haber notado que esta transacción en realidad hizo que el atacante perdiera 1,09 millones. Sin embargo, la siguiente transacción 3, también a través del método de intercambio relámpago, no solo recuperó 1,09 millones de USDC, sino que además ganó más de 200 mil.
A continuación, analizaremos paso a paso los datos de la transacción 3.
Puede que te sorprenda por qué los atacantes están dispuestos a ceder hasta 200,000 dólares en ganancias a los validadores.
4.3 ¿Por qué dar una "propina" de 200,000 dólares?
En realidad, esto no es generosidad, sino una condición necesaria para el éxito del ataque MEV conocido como ataque de sándwich:
Por lo tanto, el atacante preferiría sacrificar la mayor parte de las ganancias para asegurar el éxito del ataque y reservar una parte de las ganancias para sí mismo.
Es importante señalar que los ataques MEV también tienen un costo; en los intercambios rápidos de Uniswap hay costos, y en las transacciones de Curve también hay costos. Sin embargo, debido a que las tarifas son bastante bajas, alrededor del 0.01 al 0.05%, en comparación con las ganancias de los ataques, son insignificantes.
Por último, un recordatorio: la defensa contra los ataques MEV es en realidad muy simple, solo necesitas: establecer una tolerancia al deslizamiento que no supere el 1%; ejecutar grandes transacciones en varias partes. Así que no tienes que dejar de operar en DEX (intercambios descentralizados) por miedo a esto.
Conclusión: Advertencias e inspiraciones del bosque oscuro
Este ataque MEV de 215,000 dólares es, sin duda, una cruel manifestación de la ley del "bosque oscuro" en el mundo blockchain. Revela vívidamente el complejo juego de aprovechamiento de las vulnerabilidades de los mecanismos para obtener beneficios en un entorno descentralizado y sin permisos.
Desde un nivel más alto, la aparición de MEV es una manifestación del efecto de espada de doble filo de la transparencia y programabilidad de la blockchain.
Esto no es simplemente un acto de hacking, sino una comprensión y utilización profunda de los mecanismos subyacentes de la blockchain, que pone a prueba la robustez del diseño del protocolo y desafía la conciencia de riesgo de los participantes.
Entender el MEV y reconocer sus riesgos es fundamental para navegar mejor en este mundo digital lleno de oportunidades, pero también de crisis ocultas. Recuerda, en el "bosque oscuro" de la blockchain, solo con el respeto a las reglas y la mejora de la cognición se puede evitar convertirse en la próxima presa devorada.
Este es también el efecto que quiero lograr a través de este artículo.