O que é um sandwich attack em crypto e como se proteger?

O que é um sandwich attack em crypto?
Um sandwich attack é uma forma de manipulação de mercado dentro da DeFi e especialmente em exchanges descentralizadas (DEX’s). O atacante executa o seu ataque sobre transações já visíveis, mas ainda não executadas, na mempool (uma espécie de sala de espera digital para transações crypto) de uma blockchain.
O ataque é chamado de “sandwich” porque a transação da vítima fica presa entre duas transações do atacante: uma antes e outra depois da ordem original.
Sandwich attacks ocorrem principalmente em plataformas descentralizadas, porque ali as transações são visíveis antes de serem executadas e incluídas de forma definitiva em um bloco. Isso permite que atacantes procurem oportunidades de manipulação dentro de Automated Market Makers (AMM’s) que funcionam com liquidity pools e precificação algorítmica, como Uniswap e PancakeSwap.
Em essência, um sandwich attack é uma forma de Maximal Extractable Value (MEV), em que produtores de blocos ou bots tentam extrair valor adicional das transações ao manipular estrategicamente a ordem das mesmas.
Pontos principais
- Um sandwich attack é uma forma de manipulação de mercado dentro da DeFi em que um atacante explora transações visíveis na mempool para obter lucro.
- O ataque funciona ao inserir uma grande ordem de um trader entre duas transações próprias: uma antes (front-run) e outra depois (back-run) da ordem original.
- O lucro do atacante vem diretamente do slippage adicional sofrido pela vítima, fazendo com que ela receba um preço pior do que o esperado.
- Sandwich attacks aumentam os custos efetivos de trading, reduzem a eficiência das exchanges descentralizadas e podem prejudicar a confiança na DeFi.
- Embora o risco em DEX’s não possa ser completamente eliminado, traders podem se proteger melhor reduzindo sua slippage tolerance, dividindo grandes ordens, escolhendo pools com alta liquidez ou operando por meio de plataformas centralizadas.
Como funciona um sandwich attack?
Um sandwich attack funciona procurando primeiro uma transação grande, que tenha grande impacto e, portanto, um slippage mais elevado, na mempool (a fila de transações ainda não confirmadas) e explorando-a ao colocar imediatamente uma transação com gas fees mais altas, dando prioridade ao atacante. Após a execução da ordem da vítima, que comprou ou vendeu a um preço pior, o atacante coloca uma segunda transação na direção oposta. Funciona da seguinte forma:
1. Detecção de uma transação grande
Um atacante (normalmente um bot automatizado) monitora a mempool e detecta uma grande ordem de compra ou venda em um DEX. Grandes ordens geralmente causam um impacto significativo no preço (slippage) dentro de um liquidity pool.
2. Transação de front-running
O atacante coloca imediatamente sua própria transação com gas fees mais altas para que seja executada antes da transação da vítima.
- No caso de uma grande ordem de compra, o atacante compra primeiro o mesmo token, fazendo o preço subir.
- No caso de uma grande ordem de venda, o atacante vende primeiro, fazendo o preço cair.
3. Transação de back-running
Depois que a transação da vítima é executada a um preço pior, o atacante executa uma segunda transação na direção oposta:
- Após um front-run de compra, o atacante vende ao preço agora mais alto.
- Após um front-run de venda, o atacante recompra a um preço mais baixo.
Dessa forma, o atacante obtém lucro quase sem risco, enquanto a vítima recebe um preço de execução pior do que o esperado.
O lucro do atacante vem diretamente do slippage adicional sofrido pela vítima.
Exemplo: Suponha que o pool de ETH/USDT na Uniswap contenha 1.000 ETH e 2.000.000 USDT, o que corresponde a um preço de aproximadamente 2.000 USDT por ETH. Um trader deseja comprar 100 ETH em uma única transação. Um bot MEV identifica essa grande ordem na mempool antes de sua execução. O bot compra primeiro, por exemplo, 50 ETH e paga gas fees mais altas para que sua transação seja processada antes. Isso faz com que o preço do ETH no pool aumente. Em seguida, a ordem da vítima é executada a esse preço mais alto, fazendo com que ela pague mais USDT do que o esperado.
Imediatamente depois, o bot vende seus 50 ETH de volta ao pool ao preço agora ainda mais elevado, que foi impulsionado em parte pela grande compra da vítima. O atacante lucra com a diferença de preço, enquanto os custos adicionais recaem sobre a vítima na forma de maior slippage.
Qual é o impacto de um sandwich attack?
O impacto de um sandwich attack é que as vítimas executam sua transação a um preço pior do que o inicialmente desejado, enquanto o atacante lucra com a diferença de preço. Na prática, sandwich attacks levam a custos efetivos de trading mais elevados para usuários individuais e reduzem a eficiência das exchanges descentralizadas.
Sandwich attacks geram impacto adicional no preço (slippage) para traders, resultando em custos efetivos de transação mais altos e uma execução menos favorável, especialmente em transações grandes ou em ambientes com baixa liquidez. Isso muitas vezes só fica claro posteriormente, quando o preço final da transação acaba sendo mais alto no caso de uma compra ou mais baixo no caso de uma venda do que o esperado. Além disso, sandwich attacks têm um impacto negativo na imagem da DeFi. Graças à estrutura aberta e à transparência das transações, esses ataques são possíveis, e traders honestos frequentemente acabam arcando com as consequências.
Como se proteger contra sandwich attacks?
Sandwich attacks continuam sendo um ponto sensível no mercado crypto, especialmente dentro dos protocolos DeFi. No entanto, existem várias maneiras de reduzir a probabilidade de se tornar vítima de um sandwich attack:
- Reduza sua slippage tolerance
Ao definir uma slippage tolerance baixa, você limita o quanto de variação de preço está disposto a aceitar. Se o preço for manipulado em excesso, sua transação falhará em vez de ser executada a um preço significativamente pior. Tenha em mente que uma tolerância muito baixa, especialmente em pares com baixa liquidez, pode fazer com que sua transação falhe com mais frequência. - Evite colocar grandes ordens de mercado de uma só vez
Dividir grandes transações em partes menores reduz o impacto visível no preço e torna você menos atraente para bots MEV. - Use DEX’s com proteção contra MEV
Algumas plataformas oferecem proteção contra front-running e sandwich attacks por meio de roteamento privado de transações ou mecanismos especiais de ordens. - Opere em pools com alta liquidez
Quanto maior a liquidez, menor o impacto no preço de transações individuais e menos lucrativo se torna um sandwich attack. - Use limit orders quando disponíveis
Com limit orders, você define o preço máximo de compra ou o preço mínimo de venda, protegendo-se contra execução a um preço pior do que o previamente estabelecido. - Opere por meio de plataformas centralizadas (CEX’s)
Em exchanges centralizadas como a Finst, as ordens são processadas por meio de um livro de ordens interno e as transações não são visíveis antecipadamente em uma mempool pública. Assim, o mecanismo clássico de sandwich attacks, como ocorre em DEX’s baseados em AMM, não se aplica.
Considerações finais
Um sandwich attack mostra como a transparência das blockchains públicas pode ser tanto uma força quanto uma vulnerabilidade. Ao explorar estrategicamente transações visíveis na mempool, atacantes podem lucrar quase sem risco com o impacto no preço causado por outros traders. Isso resulta em custos efetivos de trading mais elevados, mais slippage e uma estrutura de mercado menos eficiente dentro da DeFi.
Embora sandwich attacks ocorram principalmente em exchanges descentralizadas baseadas em AMM, os usuários podem reduzir significativamente o risco ao gerenciar de forma consciente as configurações de slippage, o tamanho das ordens e a liquidez. Além disso, alguns DEX’s oferecem proteção adicional contra MEV, e plataformas de trading centralizadas representam uma alternativa onde o mecanismo clássico de sandwich não se aplica. Compreender como esses ataques funcionam é, portanto, essencial para qualquer pessoa ativa no mercado crypto.