No início de 2023, não pude deixar de me perguntar se ainda existiam oportunidades de arbitragem triangular com base em flash loan no PancakeSwap. Com mais de 1,2 milhão de pools, acreditava-se que, com a abordagem e a análise corretas, seria possível encontrar negócios lucrativos. No entanto, a realidade acabou sendo diferente do esperado, e por alguns motivos surpreendentes. Se você estiver interessado em buscar flash loan e arbitragem cíclica em geral e, particularmente, no PancakeSwap, continue lendo... isso poderá ajudá-lo a evitar becos sem saída e economizar um tempo valioso.
Esta primeira parte se concentra em uma análise estática das pools do PancakeSwap e nos ciclos de arbitragem triangulares que podem ser criados. A segunda parte aborda questões de implementação prática e dinâmica de mercado e integra as visões estática e dinâmica para chegar a uma conclusão.
Flash Loans e arbitragem triangular
Presumo que o leitor tenha alguma familiaridade com flash loan e seu uso em arbitragem triangular, e esteja mais interessado em encontrar oportunidades adequadas no PancakeSwap. Para uma introdução boa e sólida ao flash loan com muita utilidade prática, recomendo de todo o coração o curso da CryptoWizards Shaun McDonogh na Udemy "Crypto Trading Execution with Flash Loans, Web3 and Hardhat" (sem afiliação).
Mas, apenas para manter este texto de certa forma autônomo, aqui estão algumas breves "descrições" do flash loan e da arbitragem triangular.
Um flash loan é um tipo de empréstimo sem garantia implementado em um contrato inteligente, por exemplo, no Solidity, que permite que os usuários tomem emprestado criptomoedas sem qualquer garantia, desde que o empréstimo seja pago na mesma transação. A arbitragem triangular, por outro lado, é uma estratégia de negociação que aproveita as diferenças de preço entre três ativos diferentes para gerar lucros. A arbitragem triangular faz parte de uma família maior de arbitragem cíclica, na qual qualquer número de ativos pode estar envolvido. A atomicidade das transações de blockchain torna a combinação de flash loan e arbitragem triangular (ou cíclica de forma mais geral) muito atraente.
Fig 1: Arbitragem Triangular com Flash Loan
Por exemplo, na etapa (0), pegar emprestado o WBNB da pool WBNB-USDT, depois troque o WBNB por CAKE (1), CAKE por BUSD (2), BUSD de volta para o WBNB. Reembolsar o flash loan na etapa (3) e embolsar o restante como lucro (4). Dada a magia da blockchain, tudo isso pode ser feito na mesma transação, com risco zero e capital inicial zero [isso não é bem correto, pois ainda há vários riscos, mas não o "risco de preço". Entretanto, é comum, embora infeliz, ainda se falar em "risco zero". Teremos que analisar alguns desses riscos adicionais, não relacionados ao preço, na segunda parte deste artigo, quando considerarmos as questões de implementação].
PancakeSwap
Devido aos altos preços do gás na Ethereum, em vez de considerar o Uniswap, a análise se concentra no PancakeSwap, que usa o protocolo UniswapV2 na cadeia BSC.
Na época da análise (janeiro de 2023), havia 1.241.705 pools no PancakeSwap envolvendo 372.921 tokens exclusivos. Cada pool permite a troca de um token por outro. [O termo "pool" e "par" são usados de forma intercambiável aqui. Ambos podem ser considerados como referentes a uma instância específica do contrato PanakePair.sol].
Com um pouco de matemática, pode-se facilmente deduzir que há 25.499,342.116.760 maneiras de selecionar uma tupla de 3 elementos em um conjunto de 372 .921 tokens e, portanto, há o mesmo número de ciclos teóricos de tamanho 3 para arbitragem triangular. Como existem apenas 1.241.705 pools, isso significa que nem todos os ciclos teóricos de tamanho 3 são possíveis e, portanto, precisamos identificar quais ciclos estão disponíveis para nós na prática.
Outro aspecto a ser considerado é que qualquer pessoa pode criar facilmente uma pool no PancakeSwap. Portanto, há um grande número de pools abandonados ou que são uma espécie de armadilha, que também precisam ser filtrados.
Pools
Para identificar quais pools podem formar um ciclo de arbitragem triangular viável, um primeiro ponto a ser percebido é que os tokens envolvidos em um ciclo viável devem fazer parte de pelo menos duas pools. Por exemplo, o token AgaveInu só aparece em uma única pool junto com o WBNB [AgaveInu/WBNB]. Assim, uma vez que trocamos WBNB por AgaveInu, a única outra troca possível é de volta para WBNB. As pools com esses tokens "sem saída" podem, portanto, ser ignoradas. Como se vê, dos 372.921 tokens, há apenas 7.796 tokens que estão incluídos em duas ou mais pools. Todos os outros tokens, incríveis 365.125 deles, são "sem saída".
Filtrando todos os pares do PancakeSwap para esses 7.796 tokens, restam 17.510 pools que são potencialmente relevantes para os ciclos de arbitragem.
Essas pools ainda contêm pares sem oferta ou com liquidez muito baixa. Mas queremos muita liquidez, pois baixa liquidez significa alto impacto no preço durante a negociação e, portanto, chances mínimas de que a negociação triangular seja lucrativa. Colocando mais algumas restrições leves, mas justificáveis, sobre o fornecimento de tokens disponíveis e a liquidez das pools, chegamos a um conjunto de 16.757 pools para a próxima etapa da análise.
Rede
Agora, 16.757 pools ainda é um número bastante grande. A visualização da rede dessas pools não tem apenas valor de curiosidade, mas também pode sugerir algumas estruturas ocultas interessantes.
Fig 2: rede de token PancakeSwap. Nós / vértices = tokens, arestas = pools
No diagrama de rede da figura 2, cada linha ou borda corresponde a uma das 16.757 pools e os vértices ou nós nas extremidades de cada linha representam os tokens da pool.
O layout da rede foi desenhado com base no algoritmo Force Atlas do Gephi. Esse algoritmo afasta os nós que têm muitas conexões (os chamados hubs) uns dos outros, enquanto aproxima os nós que estão conectados a esses hubs, formando assim "comunidades". Assim, podemos ver imediatamente que as PancakePools são dominados por quatro tokens, que são, sem surpresa, WBNB, USDT, BUSD e CAKE. Há alguns tokens, como ETH, USDC ou, o que talvez seja um pouco surpreendente, SAFEMOON, que também são fundamentais para as pools do PancakeSwap, embora em um grau muito menor do que os quatro "grandes". Portanto, é justo supor, e de fato é o caso, que a grande maioria dos possíveis ciclos de arbitragem triangular incluirá pelo menos uma das moedas mencionadas acima.
Deixarei a interpretação das estruturas refinadas do diagrama para, talvez, outro artigo, e incluirei aqui, por enquanto, apenas uma ampliação de uma das áreas intrigantes como um teaser.
Fig 3: Comunidades de token (bordas removidas)
Ciclos
Portanto, agora identificamos 16.757 pools, das quais precisamos encontrar ciclos de tamanho 3 que permitiriam a arbitragem triangular. Isso inclui basicamente pegar uma pool, identificar seus tokens, por exemplo, WBNB e CAKE, encontrar uma segunda pool que envolva um dos tokens, por exemplo, o par CAKE-BUSD, e verificar se o ciclo pode ser fechado, ou seja, se há uma pool com BUSD e WBNB como seus tokens. Em caso afirmativo, encontramos um ciclo adequado para arbitragem triangular.
Existem muitas bibliotecas de algoritmos de gráficos excelentes que implementam métodos muito eficientes para encontrar esse conjunto de ciclos. Usando o excelente pacote NetworkX do Python, um total de 10.279 ciclos exclusivos podem ser construídos com as 16.757 pools do PancakeSwap. Isso inclui 261 ciclos de tamanho 4 ou mais, incluindo, por exemplo, o ciclo ULC -> ZIL -> GodCoin -> LINK -> CCA -> POOCOIN -> DAI e de volta ao ULC.
Para encerrar esta primeira parte da história, vamos dar uma breve olhada em algumas estatísticas. Os números confirmam o que o diagrama de rede apresentado acima indica: WBNB, BUSD, USDT e Cake são fundamentais para a maioria dos ciclos de arbitragem triangular. Todos eles aparecem em mais de 1.000 ciclos cada, com o BUSD ocupando o primeiro lugar com 7.334 ciclos.
Há 10 tokens adicionais, que fazem parte de pelo menos 100 e até 1000 ciclos. São eles: ETH, BTCB, USDC, SAFEMOON, DOGE, XBN, DAI BabyDoge, ADA, B.
Depois, há 1.719 tokens que aparecem em qualquer lugar entre 2 e 10 ciclos, mas a maior parte dos 4.417 tokens aparece em um e somente um ciclo. Lembre-se, porém, de que, para fazer parte de um ciclo, um token precisa estar contido em pelo menos duas pools. Portanto, temos 4.417 tokens que fazem parte de exatamente duas pools, e nada mais. Tomemos como exemplo o FPUPPY. Esse token aparece junto com WBNB e BUSD e forma um único ciclo triangular da seguinte forma: WBNB -> FPUPPY -> BUSD e de volta ao WBNB.
Por fim, há 147 ciclos que não contêm nenhuma das moedas principais. Entre eles, encontramos alguns de aparência bastante estranha, como a família "Bot", BOT9->BOT5->BOT12, BOT11->BOT7->BOT12, ou ciclos como YHJB->ZHXY->HZTB
Conclusão e perspectivas
Chegamos ao fim do que uma análise estática pode revelar sobre os possíveis ciclos de arbitragem do PancakeSwap. A rigor, poderíamos continuar com uma análise de contrato de cada token e acrescentá-la à análise estática, mas deixamos isso de lado por enquanto. No entanto, algumas conclusões interessantes podem ser tiradas:
De um total de mais de 1,2 milhão de pools e mais de um trilhão de ciclos triangulares teoricamente possíveis, acabamos com um pouco menos de 10.000 ciclos viáveis (excluindo ciclos de tamanho maior que 3) em que podem ser encontradas oportunidades de arbitragem triangular. Esses ciclos são dominados por WBNB, BUSD, USDT e Cake, o que significa que qualquer grande movimento em qualquer uma dessas moedas poderia apresentar uma oportunidade de arbitragem em milhares de ciclos. No entanto, mais da metade desses ciclos contém tokens que não são "diversificados" entre as pools, mas que só aparecem em alguns delas. Isso pode implicar em baixa liquidez e mercados obsoletos. Analisaremos isso na próxima parte desta história.
Também na segunda parte, teremos que analisar o seguinte, entre outros:
- Considerações sobre a infraestrutura: quais são os requisitos de sistema necessários para ter expectativas razoáveis de sucesso com a arbitragem triangular no PancakeSwap?
- Monitoramento de eventos: como podemos nos certificar de que sempre temos as informações mais recentes do mercado para poder reconhecer e aproveitar as oportunidades de arbitragem antes dos concorrentes?
- Valor da arbitragem: uma vez que uma oportunidade de arbitragem tenha sido identificada, qual é o valor ideal de negociação, considerando a oscilação de preço?
- Custo do gás: qual é a implicação dos preços do gás nos lucros realizáveis combinados com considerações sobre a ordem das transações e o MEV?
Se você achou essas informações úteis ou tem algum outro comentário ou feedback, deixe uma linha na seção de comentários.
As doações são muito bem-vindas para : 0xE17083697160dAA6c9a80Ae558cdE2D323F783Dc
Artigo escrito por PVK . A versão original pode ser encontrada aqui. Traduzido e adaptado por Dimitris Calixto.
Latest comments (0)