Cómo evitar los bots de BlockChain que se llevan tus beneficios: Protección MEV
En el mundo de DeFi (Finanzas Descentralizadas), existe la preocupación constante de ser estafado a la hora de realizar una transacción de gran valor. Esto se debe a que tu transacción viaja a una “memory pool” pública momentos antes de ser incluida en la cadena de bloques.
Esta pool está siendo monitoreada 24/7 por bots que tratarán de enviar transacciones con más y menos prioridad, en fracciones de segundo, para alterar el orden en el que se incluyen en la cadena con el objetivo de obtener un beneficio económico. En el pasado os contamos como uno de estos MEV Bots, el famoso 0xBad sufrió un robo de 1,45 Millones de dórales en Ehtereum.
Figura 1: Cómo evitar los bots de BlockChain que
se llevan tus beneficios: Protección MEV
Esta pool está siendo monitoreada 24/7 por bots que tratarán de enviar transacciones con más y menos prioridad, en fracciones de segundo, para alterar el orden en el que se incluyen en la cadena con el objetivo de obtener un beneficio económico. En el pasado os contamos como uno de estos MEV Bots, el famoso 0xBad sufrió un robo de 1,45 Millones de dórales en Ehtereum.
Aquel fue uno de los ataques de Hacking de SmartContracts que podemos tener en la Web3, y por lo que merece la pena que os empapéis el libro de Hacking Web3: Challenge Accepted! que han publicado nuestros compañeros Chema Garabito, Pablo González, Yaiza Rubio, Leif Ferreira, Chema Alonso en 0xWord.
¿Qué es MEV y qué tipos existen?
MEV (Máximo Valor Extraíble) se refiere al máximo valor económico generado a través de la alteración de las transacciones a la hora de incluirlas en un nuevo bloque. Estas oportunidades se dan entre la creación de un bloque y el siguiente y son aprovechadas por los “Searchers”
Para alterar el orden de las transacciones se primero se monitorea la mempool con un script como este:
¿Qué es MEV y qué tipos existen?
MEV (Máximo Valor Extraíble) se refiere al máximo valor económico generado a través de la alteración de las transacciones a la hora de incluirlas en un nuevo bloque. Estas oportunidades se dan entre la creación de un bloque y el siguiente y son aprovechadas por los “Searchers”
Para alterar el orden de las transacciones se primero se monitorea la mempool con un script como este:
``` import { ethers } from "ethers"; async function main() { const provider = new ethers.providers.WebSocketProvider( `wss://ethereum.publicnode.com` ); provider.on("pending", async (tx) => { console.log(tx); const txInfo = await provider.getTransaction(tx); console.log(txInfo) }); } main(); ```Obteniendo las transacciones que están pendientes de incluirse en la cadena de bloques.
Figura 4: Captura de transacción en la mempool
Estos bots simularán en un entorno de prueba estas transacciones y si podrán obtener beneficios realizándolas desde su propia dirección. Para ello realizan desde copiar el “data” y subir la transacción con un mayor “gasPrice” para ser incluidos antes en la cadena de bloques, hasta operaciones mucho más complejas como los flashloans, dónde se toman préstamos de cantidades enormes para corregir el mercado y obtener cantidades generalmente pequeñas.
Según si la transacción del bot se coloca antes (frontrunning) o después (backrunning) de la transacción víctima y la intención de esta, conocemos tres tipos de ataques:
1.- Arbitraje: este es un backrun que se coloca para la corrección de mercados descentralizados. Aquí vemos como un bot se aprovecha de las diferencias en dos pools distintas de liquidez para obtener un beneficio mientras iguala los precios en los mercados.
2.- Sandwich: Este se compone de un frontrun más un backrun. Suelen aprovecharse de una oportunidad que ha encontrado otro usuario o del slippage (deslizamiento) que permitan al intercambiar en un DEX. Estos son malos para la red ya que empeoran la experiencia de usuario.
En el siguiente gráfico observamos como una persona quería comprar el token BIDEN con su WETH y no habrá fijado un slipagge muy cerrado por lo que un bot ha comprado el token antes que él, aumentando su precio en el mercado. Más tarde él ha comprado el token por ese precio más elevado y subiéndolo aún más. Finalmente, el bot ha devuelto la cantidad comprada cuando el precio estaba más alto obteniendo un beneficio.
Figura 7: Ataque sandwich a dirección que cambiaba
WETH por BIDEN en Uniswapv2
Además del intercambio injusto que ha recibido nuestra víctima, al aumentar el número de transacciones se aumenta el precio del gas por transacción y se congestiona la red por lo que es perjudicial para el ecosistema.
3.- Liquidación: Backrun parecido al arbitraje pero liquidando posiciones en préstamos descentralizados. Son los menos comunes. Estos se dan cuando el valor de un préstamo que se ha dejado como fianza, baja por debajo del umbral establecido y el contrato automáticamente lo pone a la venta para que cualquiera pueda comprar el token a un precio un poco por encima del que está en el mercado, para que el contrato no pierda liquidez.
Cuándo y Cómo Protegernos
La idea es evitar todas los posibles frontruns que nos puedan afectar, sean de sandwich o no. Por lo tanto, los momentos adecuados para protegernos del MEV serían:
- Al intercambiar en un DEX.
- Si intentamos un white hack del cual vayamos a extraer valor.
- Cuando vayamos a retirar fondos de un contrato que no tenga protección de permisión como un owner o address concreta.
- Transacciones de alto valor
Figura 6: Logo de la empresa Flashbots
Hoy en día, la empresa líder en el mercado es Flashbots, que ofrece este tipo de nodos privados en los que te prometen que tus transacciones no van a ser frontruneadas. Por contraparte, utilizar estos servicios puede aumentar el coste de tu transacción dependiendo de la tarifa escogida y, por lo general, tardará más en incluirse en la cadena de BlockChain, ya que habrá que esperar a los nodos de flashbots minen el próximo bloque. Aquí tenéis un vídeo tutorial de como implementar un Protect RPC Endpoint en la wallet de MetaMask.
Otra buena práctica que se recomienda a la hora de realizar intercambios descentralizados es especificar y limitar el slippage. Para ello se recomienda interactuar con DEX seguros y actuales que incorporan mayor personalización y seguridad on-chain.
Si quieres recibir el valor esperado en tus transacciones en la cadena de BlockChain y no encontrarte con sustos, a veces, es mejor utilizar un nodo privado al que enviar tus transacciones a utilizar los públicos dónde podrás ser víctima de este tipo de bots.
Para completar tu aprendizaje, este libro es un buen complemento para tu entrada en el mundo Web3, pero nuestra recomendación es que te leas también el libro dedicado a "Bitcoin: La tecnología Blockchain y su investigación" de Yaiza Rubio y Félix Brezo que profundiza en las arquitecturas utilizadas en BlockChain que pueden suponer interesantes fuentes de información para ciber-investigadores. Recuerda que si quieres aprender de estas tecnologías, tienes Bit2Me Academy, que es una plataforma online para aprender de Web3, BitCoin, Tokenomics o Ethereum con cursos gratuitos.
Figura 8: Slippage intercambiando en Uniswap
Si quieres recibir el valor esperado en tus transacciones en la cadena de BlockChain y no encontrarte con sustos, a veces, es mejor utilizar un nodo privado al que enviar tus transacciones a utilizar los públicos dónde podrás ser víctima de este tipo de bots.
Figura 9: Libro dedicado a "Bitcoin: La tecnología Blockchain y su investigación" de Yaiza Rubio y Félix Brezo |
Para completar tu aprendizaje, este libro es un buen complemento para tu entrada en el mundo Web3, pero nuestra recomendación es que te leas también el libro dedicado a "Bitcoin: La tecnología Blockchain y su investigación" de Yaiza Rubio y Félix Brezo que profundiza en las arquitecturas utilizadas en BlockChain que pueden suponer interesantes fuentes de información para ciber-investigadores. Recuerda que si quieres aprender de estas tecnologías, tienes Bit2Me Academy, que es una plataforma online para aprender de Web3, BitCoin, Tokenomics o Ethereum con cursos gratuitos.
Más artículos de Web3, Blockchain & SmartContracts
- Blockchain & SmartContracts: Una serie para aprender
- BlockChain & SmartContrats: Primer SmartContract con Solidity
- Blockchain & SmartContracts: Cómo probar y desplegar un SmartContract en Ethereum
- WWW, Web 1.0, Web 2.0, Web 3.0, Web3 y ¿Web 4.0?
- Metaverso, multiverso y las tierras digitales en que vivimos en forma de avatar
- Los Fan Tokens vs. las Criptomonedas y los NFTs: Level 101
- Tokenomics: Las criptomonedas y las "Proof-of-work": Level 101
- Los NFTs y el registro mundial de los dueños de activos digitales en el Metaverso
- BitCoin: Blockchain y su investigación
- Hacking Web3: Challenge Accepted!
- Criptomonedas & Ciberestafas: Valor y Peligro en la Web3
- BlockChain & SmartContrats: El Internet descentralizado y el almacenamiento off-chain en IPFS
- Reentrancy Attack: Cómo te roban criptomonedas por un bug en tu SmartContract
- BlockChain & SmartContract: Bugs que pueden dejar tu SmartContrat "fuera de juego"
- Blockchain & SmartContracts: Patrones y buenas prácticas de seguridad
- Blockchain & SmartContracts: Herramientas de Auditoría de Seguridad de SmartContracts
- BlockChain & SmartContracts: Ataque de phishing a tx.origin y robo de criptomonedas
- BlockChain & SmartContracts: Ataques de Ice Phishing
- Blockchain & SmartContracts: Herramientas de análisis dinámico
- ZIION: Una distribución Linux para auditar SmartContracts (& BlockChain)
- Dominios Web3 en Etherenum Name Service y la trazabilizad de las transacciones Blockchain
- BlockChain & SmartContracts: Actualizar SmartContracts como los grandes protocolos
- Jumping level up (from) web2 (to) web3: Vulnerabilities & SCAMs - SmartContracts
- 20 millones (Euros) en Tokens de Optimism perdidos por no saber cómo funcionan los Wallets Multifirma
- BlockChain & SmartContracts: Cómo crear una DApp de la Web3 con Python (y Flask)
- Pentesting SmartContracts: From Web2.0 to Web3
- Tokenomics 101: Una explicación con gráficos
- Read-Only Reentrancy Attack: $220k robados y otros +$100M en riesgo
- Como utilizar ChatGPT para encontrar bugs en SmartContracts
- BlockChain & SmartContracts: Nuevas áreas profesionales relacionadas con la Web3
- Las voces de Satoshi: Un canal para estar al día en Web3, Blockchain, Criptos & IA
- BlockChain & SmartContracts: Nuevas áreas profesionales relacionadas con la Web3
- Bit2Me Academy: Una plataforma online para aprender de Web3, BitCoin, Tokenomics o Ethereum con cursos gratuitos
- Level_Up!: Una plataforma para aprender a hacer pentesting en Web3 (SmartContracts & BlockChain ) a través de retos hacking
- Level_Up!: Web3 Security WarGames para los amantes del Challenge Based Learning
- Level_up!: WriteUp del Reto Questions para comenzar el pentesting en la Web3
- Level_Up! Deny_to_me Challenge activado en la plataforma Level_up! de retos hacking Web3
- Level_Up!: WriteUp del Ownership Challenge para hacer pentesting en Web3
- Nuevo reto Hacking Web3 de Level_UP! -> Forensic Ouch!
- Level_Up!: WriteUp del reto "Safeguarding" para hacer pentesting en Web3
- Reto Web3 en Level_Up! "Replay_me": La importancia de una correcta validación de firmas
- Level_Up! Configuración paso a paso de la plataforma de pentesting en Web3
- Level_Up! Consigue tus NFTs mientras cuando supera retos Web3
- Telefónica validará nodos de la cadena BlockChain de Celo
- Latch Web3: Un pestillo de seguridad para SmartContract
- Level_Up!: El WriteUp del reto "Origin" y un nuevo reto "Guess my number"
- CrazyToolBox: Una herramienta multifunción de utilidades Web3
- Level_Up!: El WriteUp del reto "ReLottery" y un nuevo reto de agosto llamado “Pay Me!”
- WriteUp: Reto Overworld y nuevo reto DEX Knowledge disponible en Level_Up!
- WriteUp del Reto Hacking Web3 Blockchain Tour & Nuevo Reto Gas Knowledge en Level_Up!
- WriteUp del Reto Hacking Web3 "Snippet Delegated" & Nuevo Reto "Send to me" en Level_Up!
- Una comparativa de Seguridad, Transparencia, Privacidad y Cumplimiento Regulatorio en Exchangers Web3
No hay comentarios:
Publicar un comentario