O ataque, em números
O JIT opera em escala e é fortemente automatizado: a medição acima atribui a maioria dos bundles a um punhado de bots searcher, e cerca de 52.700 chegaram por relays privados, invisíveis no mempool público até aterrarem. Os LP passivos de pools partilhados competem com uma infraestrutura que não conseguem ver.
Como se desenrola um bundle JIT
- 1
Detetar um swap grande
Um bot vigia as transações pendentes à procura de um swap grande a caminho de um AMM com pool e depois calcula exatamente para onde esse swap vai mover o preço.
- 2
Inserir liquidez primeiro
No mesmo bloco, mesmo antes do swap, o bot cria uma posição estreita nesse preço, pelo que por um instante detém a maior parte da liquidez ativa do pool.
- 3
Sair com a taxa
Imediatamente após o swap, queima a posição e sai com uma grande parte da taxa, diluindo os LP cuja liquidez esteve no pool o tempo todo. O próprio swap não sai prejudicado e, em média, até é executado a um preço ligeiramente melhor. Na Aqua a sequência nem pode começar: nenhuma liquidez externa pode ser inserida na sua posição.
Porque é que as posições Aqua não podem ser interceptadas
Num AMM com pool, as taxas são partilhadas entre quem estiver no pool no momento da taxa, incluindo um bot que chegou no mesmo bloco, imediatamente antes do swap. Uma posição Aqua tem um único dono: as suas taxas não são partilhadas com outros LPs e nenhuma liquidez externa pode juntar-se-lhe. O momento da taxa não é partilhado, por isso não há nada para interceptar. Que riscos permanecem para os LP da Aqua.