Não são permitidos sanduíches — como evitar ataques MEV em AMMs

Esta é uma continuação da minha postagem inicial sobre como o Carbon (e as grandes taxas virtuais inerentes a uma posição do Carbon’y) tornam impossíveis ataques MEV do tipo sanduíche, e as postagens subsequentes de Mark que quantificaram isso e analisaram o que essas fórmulas implicam. Esta postagem é mais um estilo de notas de laboratório que trabalha com algumas das fórmulas do artigo mais recente de Mark e as discute mais detalhadamente.

Fundo

As principais fórmulas com as quais estamos trabalhando aqui são

do artigo 1, e

do artigo 2.

Antes de prosseguirmos nessas equações, quero reservar um momento para definir os símbolos usados, pois isso ajudará muito na compreensão das fórmulas

  • Q é o lucro que um invasor obtém com um ataque sanduíche baseado nos outros parâmetros abaixo, e

  • Δxₐ é o tamanho da negociação inicial que leva a este valor específico de Q. Os parâmetros de negociação são

  • Δxᵤ que representa o tamanho da negociação do usuário em termos de token,

  • x, que representa o tamanho do pool nas mesmas unidades que o Δx (tamanho virtual no caso de pools alavancados, mas esta análise ignora as implicações da liquidez alavancada) e, o mais importante,

  • δ representa a taxa percentual do pool (em termos decimais, por exemplo, 10 pb = 0,001)

A equação chave que veremos aqui é a segunda equação acima. É obtido a partir do primeiro derivando primeiro em relação a Δxₐ e, em seguida, exigindo que a derivada de Q em relação a Δxₐ desapareça em Δxₐ=0. Esta condição garante que Δxₐ=0 seja ótimo para o potencial atacante sanduíche, ou seja, não há lucro de arbitragem.

Simplificando a fórmula

Vemos que a fórmula acima, tal como está escrita, consiste em três termos, sendo os dois primeiros triviais porque produzem soluções que não são financeiramente interessantes. Um desses termos mostra que um pool vazio (x=0) não permite ataques sanduíche, e a outra solução tem um valor excessivamente grande de Δxᵤ e pode, portanto, ser descartada. Ficamos, portanto, com a parte operacional da equação, que é a seguinte

Parafraseando o que Mark discute em seu artigo, a condição acima não deveria ser uma igualdade, mas uma desigualdade, porque é claro que os invasores nunca se envolverão em transações com prejuízo. Portanto

  • δ é realmente inf δ, pois qualquer taxa> δ também evitará o sanduíche

  • Δxᵤ é realmente sup Δxᵤ, pois qualquer negociação <Δxᵤ também evitará o sanduíche, e

  • x é realmente inf x, pois qualquer liquidez do pool >x também evitará o sanduíche

Mark em seu artigo resolveu a equação acima para δ, Δxᵤ ex, produzindo as seguintes fórmulas

Para nós, a primeira das três fórmulas acima é a mais interessante – ela indica quão grande deve ser a taxa para uma determinada negociação, para que os ataques sanduíche não façam mais sentido. Eu reescrevi-o ligeiramente na nova notação, indicando que as condições sem possibilidade de sanduíche são válidas para este nível de taxa δ e acima

Esta fórmula parece decepcionantemente complexa, mas felizmente tem uma boa assintótica para grandes valores de r=x/Δxᵤ (também conhecidas como pequenas negociações):

No gráfico abaixo, a linha vermelha é a curva real, a linha azul é a lei de potência assintótica 1/r, e a linha verde é a assintótica (massivamente) melhorada 2/2r+3

(veja aqui a calculadora desmos subjacente)

Embora r=x/Δxᵤ funcione melhor para as fórmulas, financeiramente a quantidade mais intuitiva é o tamanho da negociação normalizada pela liquidez 1/r = Δxᵤ/x. É importante ter em mente que esta é também a derrapagem percentual, ou seja, o valor pelo qual uma negociação de tamanho Δx empurra negativamente o preço de um pool de tamanho x.

Portanto, encontramos o seguinte e importante resultado:

Níveis mínimos de taxas para que as negociações não possam ser atacadas

As pequenas negociações (1% do tamanho do pool ou menos) não podem ser atacadas por ataques sanduíche se o nível de taxas for maior que o slippage (que também é o tamanho da negociação normalizada pela liquidez), ou seja, δ>Δxᵤ/x. Para negociações um pouco maiores — até cerca de 10% de derrapagem — a aproximação δ>2/(2r+3) funciona bem e, além disso, a fórmula completa [2] acima deve ser usada.

Tamanho máximo de negociação que não pode ser atacado

Da mesma forma, podemos considerar o tamanho máximo de negociação viável como uma função do nível de taxas que não pode ser atacado em sanduíche. Começamos com a equação [3] do artigo 2 acima, mas dividimos ambos os lados por x e por δ. Lembramos que Δxᵤ/x é o tamanho da negociação (normalizado pela liquidez) e, portanto, o novo LHS da equação Δxᵤ/xδ é o tamanho da negociação normalizada (também: derrapagem) dividido por taxas.

Traçamos o RHS da equação acima abaixo

(veja este gráfico no desmos)

A forma de interpretar o gráfico acima é a seguinte: para um determinado nível de taxas (aqui 0,2 = taxas de 20%), qual é o tamanho máximo da negociação normalizada como percentagem das taxas? Para valores pequenos para pequenos, este número é unitário, ou seja, para taxas pequenas, o tamanho máximo da negociação normalizada não-sanduíche é igual ao nível das taxas. Se as taxas forem maiores, o possível tamanho da negociação aumentará desproporcionalmente. Por exemplo, com taxas de 20%, o tamanho da negociação pode ser de 20%*1,4=28% do tamanho do pool antes de ser intercambiável.

Devemos notar, no entanto, que este aumento no tamanho das negociações só acontece para níveis de taxas bastante elevados. Abaixo, uma visão um pouco mais razoável neste gráfico com níveis de taxas de até 5%, onde a melhoria é linear em cerca de 5% para cada 3% de taxas e, portanto, abaixo de 10% a um nível de taxas de 5%, ou seja, não é particularmente significativo quando comparado a um valor base de 100% (e definitivamente não com taxas de 1%).

-

Não são permitidos sanduíches — como prevenir ataques MEV foi publicado originalmente no CarbonDeFi no Medium, onde as pessoas continuam a conversa destacando e respondendo a esta história.