Um market maker automatizado não aceita lances e ofertas de compradores e vendedores. Ele define o preço de uma negociação com base em um pool de dois tokens usando uma fórmula — mais comumente a fórmula do produto constante, x*y=k, conforme documentado pelos desenvolvedores da Uniswap. A proporção de reservas do pool define o preço antes da negociação, mas como a própria negociação altera essa proporção, o preço efetivamente pago é pior do que o preço inicialmente cotado sempre que a negociação não for mínima em relação ao pool.
O que o pool e a fórmula estão fazendo
Um pool de liquidez é um contrato inteligente que detém reservas de dois tokens — por exemplo, ETH e USDC — que qualquer pessoa pode negociar diretamente, segundo o blog do Uniswap. Os provedores de liquidez depositam ambos os tokens em valor igual para abastecer o pool e definir o valor inicial de uma constante, k, que é o produto das quantidades das duas reservas, conforme o blog do Uniswap. A partir desse ponto, cada troca deve manter x vezes y igual a esse mesmo k. A documentação de desenvolvedor do Uniswap descreve k como um invariante que deve permanecer constante ou aumentar após cada negociação. Como os dois saldos de reserva precisam continuar se multiplicando para o mesmo número, retirar um token do pool significa que o outro precisa aumentar para compensar, e essa mudança na proporção é o que move o preço.
Fazendo a aritmética: comprando 1 ETH de um pool de 10 ETH / 20.000 USDC
O blog do Uniswap apresenta um exemplo prático. Comece com um pool de 10 ETH e 20.000 USDC. A constante é 10 vezes 20.000, ou 200.000. Neste ponto inicial, o pool implica um preço à vista de 1 ETH por 2.000 USDC.
Agora, um trader compra 1 ETH. A reserva de ETH do pool cai para 9. Para manter a constante em 200.000, a reserva de USDC precisa aumentar para 200.000 dividido por 9, ou seja, aproximadamente 22.222,22 USDC, conforme o cálculo próprio do blog da Uniswap. Portanto, o trader inseriu 22.222,22 menos 20.000, ou 2.222,22 USDC, para obter aquele 1 ETH. Seu preço efetivo para o ETH comprado é de 2.222,22 USDC — não os 2.000 USDC que o pool estava cotando antes da negociação.
Essa diferença, 2.222,22 USDC em relação a uma cotação inicial de 2.000 USDC, é chamada de derrapagem. Não é uma taxa nem um mau funcionamento; é a fórmula fazendo exatamente o que deve fazer, repreçando o pool à medida que as reservas mudam. O blog da Uniswap observa que operações maiores em relação ao tamanho do pool causam mais derrapagem, enquanto um pool mais profundo absorve a mesma operação com uma menor variação de preço. O mesmo ponto é feito na documentação para desenvolvedores da Uniswap, que descreve esse efeito como impacto de preço: operações maiores em relação à profundidade do pool movem o preço mais, e operações menores são executadas mais próximas ao preço spot atual.
O blog do Uniswap também oferece uma explicação mais simples para o varejo do mesmo mecanismo: um usuário que troca USDC no valor de $100 por ETH vê uma taxa calculada em tempo real pela fórmula do produto constante, e o contrato inteligente retira o USDC e devolve o ETH em uma única transação, reequilibrando o pool à medida que avança.
Onde a fórmula simples deixa de se aplicar
A aritmética x*y=k acima descreve um pool no estilo Uniswap v2, onde a liquidez está distribuída em toda a faixa de preço possível. A documentação dos desenvolvedores da Uniswap afirma que, nas versões v3 e v4, a fórmula se aplica apenas dentro da faixa de preço escolhida por cada provedor de liquidez — um design chamado liquidez concentrada. Na v3, a posição de um provedor nessa faixa é representada como um token não fungível ERC-721 por meio de um contrato chamado NonfungiblePositionManager; na v4, as posições são rastreadas por meio de um PositionManager usando ERC-6909 para contabilidade interna, conforme a mesma documentação. A consequência prática é que dois pools negociando o mesmo par, em versões diferentes da Uniswap ou com faixas de liquidez distintas escolhidas por seus provedores, não moverão o preço na mesma quantidade para uma negociação idêntica, mesmo que ambos sejam descritos como executando a fórmula de produto constante.
Uniswap e Balancer pertencem a uma família mais ampla que um artigo de 2020 de Guillermo Angeris e Tarun Chitra chama de market makers de função constante, ou CFMMs — market makers automatizados cuja regra de precificação é alguma função fixa das reservas do pool, das quais x*y=k é um exemplo. O mesmo artigo observa que nem todo par de ativos deve ser precificado com essa curva específica. Stablecoins, que são atreladas a aproximadamente US$ 1, mas flutuam em uma faixa estreita em torno desse valor, são precificadas de forma mais eficiente com uma curva mais plana próximo ao atrelamento, para que as taxas de negociação permaneçam baixas quando o par estiver próximo a US$ 1 e aumentem à medida que se afasta — uma abordagem que o artigo atribui ao design StableSwap da Curve. A ideia subjacente é a mesma da Uniswap — reservas e um preço invariante definido — mas a forma da curva, e portanto a aritmética que um negociador teria que seguir, é diferente.
Quão grande esse mercado tem sido
O artigo de Angeris e Chitra, datado de março de 2020, apresentou alguns números sobre o cenário DeFi que descrevia na época. Ele afirmou que os DEXs então detinham aproximadamente US$ 100 milhões em ativos digitais bloqueados, com volumes de negociação diários que, em alguns momentos, ultrapassavam US$ 10 milhões por dia. Uma figura no artigo, com fonte nos dados da DeFi Pulse e datada de 12 de fevereiro de 2020, mostrou contratos CFMM detendo US$ 129,7 milhões contra US$ 0,721 milhões detidos por criadores de mercados de previsão baseados em LMSR, como Augur e Gnosis. O mesmo artigo observou que o Uniswap foi construído com uma subvenção de US$ 100.000 da Ethereum Foundation, em comparação com os US$ 24 milhões arrecadados pelo 0x e os US$ 153 milhões arrecadados pelo Bancor em ofertas iniciais de moeda, e afirmou que, na data da redação do artigo, o Uniswap detinha aproximadamente cinco a dez vezes a liquidez combinada desses dois concorrentes. Esses números descrevem um mercado de cinco anos antes da escrita desta página e são úteis apenas como ilustração histórica de como um AMM de design simples superou rapidamente alternativas mais bem financiadas e mais complexas — eles não dizem nada sobre o tamanho atual de qualquer um desses protocolos.
O que esta página não lhe diz
Esta página explica a fórmula do produto constante, conforme documentada para pools do tipo Uniswap v2, utilizando o único exemplo numérico disponível nas evidências. Não aborda a matemática de liquidez concentrada do Uniswap v3 ou v4, nem a curva StableSwap utilizada pelo Curve, pois nenhuma das fontes consultadas aqui fornece um exemplo numerado para esses casos — apenas uma descrição de como eles diferem.
O exemplo de 10 ETH / 20.000 USDC acima é sem taxas. A documentação de desenvolvedor da Uniswap afirma que as taxas de troca são configuradas por pool e versão do protocolo, e que taxas do protocolo podem ser aplicadas quando ativadas por governança, mas nenhuma fonte utilizada aqui menciona uma porcentagem de taxa real para qualquer pool específico, portanto, o preço de execução de 2.222,22 USDC calculado acima seria ligeiramente maior em um pool real que cobra taxas.
O blog do Uniswap alerta, sem fornecer números, que o preço final de execução de um trader pode se desviar ligeiramente da cotação inicial exibida na tela, especialmente quando a liquidez é baixa ou há picos de atividade. Nenhuma das fontes utilizadas aqui explica como técnicas como o sandwich trading interagem com essa diferença em uma transação ao vivo, além desse aviso geral.
Finalmente, os dados de 2020 sobre o valor total bloqueado e a arrecadação de ICOs são uma captura de um único ponto na história do mercado, datada de 12 de fevereiro de 2020 para a comparação de TVL e da publicação do artigo em março de 2020 para a comparação de arrecadação. Eles não devem ser interpretados como valores atuais para Uniswap, 0x, Bancor ou o mercado DeFi como um todo.
Fontes
Cada fato acima é atribuído a um desses relatórios. Quando eles discordam, o artigo menciona isso.



