O realinhamento
Um duelo tem três pools: A em ETH, B em ETH e A em B. Os preços deles podem divergir depois de uma negociação. Depois de cada negociação, na mesma transação, o hook tenta um realinhamento lucrativo. Ele pode ser pulado ou limitado pelo ETH disponível; não há garantia de que os preços coincidam exatamente.
Como funciona
Quando a diferença de preços dá a um ciclo triangular uma margem de lucro acima de 0,1% antes do dimensionamento, o hook pode negociar em volta do triângulo sem taxa. É um limite de lucro do ciclo, não uma garantia de que os preços de dois pools quaisquer fiquem a menos de 0,1% um do outro:
- se A ficou caro em ETH em comparação com o pool A/B, o hook compra B com ETH, troca por A no pool A/B e vende esse A por ETH;
- se foi B, o mesmo ao contrário.
Uma fórmula fechada dimensiona o loop lucrativo e depois o limita ao que o pool de ETH vendedor consegue pagar. Ela só mantém um loop que dê lucro. O lucro capturado vai para o pote da rodada. Uma tentativa que falha é revertida e pulada, então não bloqueia o swap do usuário, exceto por falta de gás: aí o swap reverte com ArbitrageStarved, para que ninguém possa pular o realinhamento enviando pouco gás. Um loop limitado ou pulado pode deixar uma diferença de preço.
O que isso significa para a divisão
A divisão e as rodadas só leem os dois pools de ETH. O preço A/B nunca conta diretamente. Uma troca via A/B só os afeta se o realinhamento de fato negociar nos pools de ETH. Se nenhum preço em ETH se mover, a troca não muda nem a divisão nem a média da rodada, e não ativa uma rodada que, de outra forma, estaria parada.
O que isso significa para os traders
O pool A/B tem um pouco de cada lado. Quando o realinhamento roda depois que um lado sobe, ele pode vender parte desse lado no pool de ETH dele e comprar um pouco do outro lado. Três efeitos possíveis:
Uma compra pode ser parcialmente compensada logo depois. Quando o realinhamento roda, ele pode vender parte do lado comprado e enviar o lucro capturado em ETH para o pote. Por isso, comprar e vender na sequência pode custar mais do que as taxas de swap. Estas medições internas ilustrativas usam os termos padrão, em um duelo novo e em um duelo em que um lado tem 97% da divisão (10 ETH comprados nele, nada no outro); os custos dependem do estado do pool e não são uma alíquota fixa:
| Comprar e vender na hora | Duelo novo | Em 97/3, na frente | Em 97/3, atrás |
|---|---|---|---|
| 0,1 ETH | cerca de 4% | cerca de 2% | cerca de 4% |
| 1 ETH | cerca de 5% | cerca de 3% | cerca de 12% |
| 5 ETH | cerca de 10% | cerca de 4% | cerca de 32% |
| 20 ETH | cerca de 22% | cerca de 7% | cerca de 61% |
No lado de trás, uma única compra grande custa mais. Enquanto o lado da frente subia, o realinhamento encheu o pool A/B com o lado de trás. Uma compra do lado de trás recebe esse estoque vendido de volta: quanto maior a compra de uma vez, mais dela vai para o pote. Várias compras menores, cada uma seguida do próprio realinhamento, custam menos do que uma única compra grande do mesmo total.
Os lados ficam acoplados quando o realinhamento roda. Uma compra de um lado também pode subir o outro, então uma virada pode custar mais do que a diferença em ETH sugere. Um realinhamento limitado ou pulado pode produzir um resultado diferente. Veja Quem lidera tem vantagem, não garantia.
Por padrão, o pool A/B começa com 2% de cada supply, a menor parte que os contratos permitem, para manter esse acoplamento leve. Uma parte inicial maior fortalece o acoplamento; o efeito depende do estado do pool e do tamanho da negociação.
Por que fazer isso no hook
Um realinhamento lucrativo tenta reduzir a diferença e envia o lucro capturado para o pote. Ele reduz as oportunidades de arbitragem, mas não as elimina: o loop pode ser limitado, pulado ou deixar uma diferença residual.