Os Prop AMMs conquistaram rapidamente 40% de todo o volume de negociação na Solana. Porque não estão disponíveis no EVM?
Os Proprietary AMMs (Prop AMMs) tornaram-se rapidamente protagonistas no ecossistema DeFi da Solana, sendo responsáveis por mais de 40% do volume de negociação em pares principais. Estes mercados especializados, geridos por market makers profissionais, oferecem liquidez profunda e preços competitivos, sobretudo ao reduzir a exposição dos market makers ao front-running por arbitradores que exploram cotações desatualizadas.

https://dune.com/the_defi_report/prop-amms
No entanto, o sucesso destes AMMs está praticamente restrito à Solana. Porque razão ainda não se afirmaram no ecossistema EVM, mesmo em Layer 2 rápidas e de baixo custo como Base ou Optimism?
Este artigo analisa o conceito de Prop AMMs, os obstáculos técnicos e económicos que enfrentam nas redes EVM, e apresenta uma arquitetura inovadora que poderá finalmente impulsioná-los no DeFi do EVM.
Um Prop AMM é um automated market maker em que a liquidez e os preços de um pool são geridos ativamente por um único market maker profissional, ao invés de serem fornecidos de forma passiva e pelo público.
Ao contrário dos AMMs tradicionais, que utilizam a equação x * y = k para definir preços (onde x e y são as quantidades dos dois ativos no pool e k é uma constante), os Prop AMMs recorrem a uma fórmula distinta, normalmente atualizada várias vezes por segundo. Por serem geralmente uma “caixa preta”, a fórmula usada por cada Prop AMM é desconhecida. Contudo, o código do smart contract do Prop AMM da Obric na Sui é público (graças ao @ markoggwp pela descoberta!), onde o invariante k depende das variáveis internas mult_x, mult_y e concentração. A imagem abaixo ilustra como o market maker atualiza constantemente estas variáveis.

Uma nota importante: o lado esquerdo da fórmula da curva de preços da Obric é mais complexo do que x * y, mas o ponto essencial para compreender os Prop AMMs é que é igual a um invariante k, que o market maker ajusta para modificar a curva de preços.

O termo “curva de preços” será recorrente neste artigo, pois determina o preço que o utilizador paga numa negociação via AMM e é o elemento que o market maker ajusta no seu Prop AMM para atualizar preços. Antes de aprofundar os Prop AMMs, é útil perceber como os preços são definidos num AMM. Considere um pool Uniswap v2 para WETH-USDC sem taxas. O preço é definido passivamente pela fórmula x * y = k, onde x e y são as quantidades dos dois ativos no pool e k é uma constante. Apenas os pontos da curva correspondem a preços possíveis que o utilizador pode pagar pela sua negociação.
Por exemplo, num pool WETH-USDC com 100 WETH e 400.000 USDC, o ponto atual na curva é x = 100 WETH, y = 400.000 USDC, e o preço inicial é 400.000 USDC / 100 WETH = 4.000 USDC por WETH. Ao calcular o produto constante k, obtemos xy = k = 40.000.000. Se um trader quiser comprar 1 WETH, adiciona USDC ao pool, reduzindo o saldo de WETH para 99. Para manter o valor constante k, o novo saldo de USDC deve ser 40.000.000 / 99 ≈ 404.040,40 USDC. O trader pagou, assim, 4.040,40 USDC por esse 1 WETH, um preço superior ao inicial de $4.000 devido ao impacto de preço (slippage). Por isso, a fórmula x y = k é também chamada de curva de preços, pois qualquer preço possível para esse pool corresponde a um ponto na curva.
Vamos ilustrar porque um market maker pode optar por um AMM para market making. Imagine que é um market maker num Central Limit Order Book (CLOB) onchain. Para atualizar as suas cotações, tem de cancelar e substituir milhares de ordens limitadas individuais. Se tiver N ordens, trata-se de uma operação O(N) linear, lenta e dispendiosa em termos computacionais, especialmente onchain.
E se pudesse representar todas as suas cotações numa única curva matemática? Em vez de gerir N ordens distintas, bastaria atualizar alguns parâmetros que definem toda a curva. Isto transforma um problema O(N) num O(1) constante.
Para visualizar como uma curva de preços (ex. x*y = k) pode originar diferentes preços efetivos, vejamos o SolFi, o Prop AMM criado pela Ellipsis Labs. Embora a curva de preços seja desconhecida, a Ghostlabs produziu o gráfico abaixo que mostra o preço efetivo de SOL para USDC para diferentes quantidades de SOL a serem trocadas num dado slot da Solana. (Para leitores EVM, o número do slot é análogo ao número do bloco). Cada linha representa um pool WSOL/USDC distinto, mostrando como podem oferecer diferentes escalões de preços simultaneamente. À medida que o market maker atualiza a curva de preços, o gráfico de preços efetivos altera-se entre slots.

https://github.com/tryghostxyz/solfi-sim/blob/main/static/curves_333436948.png
O ponto essencial é que, ao atualizar apenas alguns valores da curva de preços, o market maker pode alterar este gráfico de preços efetivos conforme pretender, em vez de atualizar N ordens diferentes. Esta é a proposta central dos Prop AMMs, permitindo ao market maker fornecer liquidez profunda e dinâmica com grande eficiência de capital e computacional.
Os Prop AMMs são geridos ativamente. Isto exige duas condições: atualizações baratas e execução prioritária. Na Solana, as atualizações baratas garantem execução prioritária.
Porque precisam os market makers destas duas condições? Primeiro, os market makers atualizam as suas curvas de preços à velocidade da rede, com base em fatores como inventário atual e variações no preço de índice do ativo (ex.: de exchanges centralizadas). Em redes rápidas como Solana, isto seria caro se as atualizações não fossem baratas.
Segundo, se o market maker não conseguir que a sua atualização seja processada no topo do bloco, as suas cotações desatualizadas serão “apanhadas” por arbitradores, causando perdas garantidas.
Sem ambas as condições, os market makers não operam eficientemente, resultando em piores preços para o utilizador.
Por exemplo, Prop AMMs da Solana como HumidiFi atualizam as suas cotações 74 vezes por segundo (dados de @ SliceAnalytics), como mostra a imagem abaixo:

https://dune.com/queries/5980584/9644764
Vindo do universo EVM, pode-se perguntar: “Se os slots da Solana duram ~400ms, como pode um Prop AMM atualizar o preço várias vezes num único slot?”
A resposta está na arquitetura contínua da Solana, fundamentalmente diferente do modelo de blocos discretos do EVM.
Nota: Soluções como Flashblocks são análogas aos shreds da Solana. Segundo @ Ashwinningg da Anza Labs, na conferência CBER, existe um limite de 32.000 shreds por slot de 400ms, ou seja, até 80 shreds por milissegundo! Se Flashblocks de 200ms são rápidos o suficiente para market makers, comparando com a arquitetura contínua da Solana, é uma questão em aberto.
Então, porque são as atualizações tão baratas na Solana e como isso garante execução prioritária?
Embora a implementação de Prop AMMs na Solana seja uma caixa preta, existem bibliotecas como Pinocchio para criar programas Solana otimizados em CU. O blog da Helius explica (aqui) como programas Solana podem passar de ~4000 CU para ~100 CU.

https://github.com/febo/p-token?tab=readme-ov-file#compute-units
Em termos práticos, a Solana prioriza transações com maior relação Fee / Computer Units (Compute Units são análogas ao Gas do EVM), tal como no EVM.
Comparando os Compute Units de uma atualização de Prop AMM e de um Jupiter Swap, vemos que uma atualização de Prop AMM é extremamente barata, com uma relação de 1 para 1000.
Atualização Prop AMM: Uma simples atualização de curva pode custar apenas 109 CU, com uma taxa total de 0,000007506 SOL
Jupiter Swap: Uma troca via Jupiter pode custar até ~100.000 CU. A taxa total para esta tx foi de 0,000005 SOL.
Com esta diferença, o market maker pode garantir execução prioritária para as suas atualizações ao pagar uma pequena taxa, atingindo uma relação Fee/CU muito superior à de um swapper. Isto garante que a atualização é executada de forma barata e no topo do bloco, protegendo contra arbitragem tóxica.
Suponhamos que as atualizações de um Prop AMM consistem em escrever variáveis que definem a curva de preços de um par de negociação. Embora o código dos Prop AMMs na Solana seja uma caixa preta, onde os market makers preservam o segredo da sua vantagem, esta suposição é válida após observarmos a implementação do Prop AMM da Obric na Sui, onde as variáveis que definem a cotação dos pares são escritas no smart contract via funções de atualização.
Menção ao @ markoggwp pela descoberta!
Com esta suposição, a arquitetura do EVM apresenta um obstáculo significativo que torna o modelo Prop AMM da Solana inviável.
Recorde que em blockchains Layer 2 OP-Stack como Base e Unichain, as transações são ordenadas por Priority Fee por Gas (tal como na Solana, por Fee / CU).
No EVM, o consumo de gas para escritas é elevado. Um simples armazenamento via SSTORE é muito mais caro do que uma atualização na Solana.
O Gas no EVM é análogo aos Compute Units na Solana.
Os valores de gas do SSTORE assumem apenas 1 escrita por transação (cold writes), o que é razoável pois não se enviaria mais do que uma atualização por transação.
Embora uma atualização seja mais barata que um swap, a relação de consumo é apenas ~10x (uma atualização pode usar múltiplos SSTOREs), comparando com ~1000x na Solana.
Daqui resultam dois problemas que tornam o modelo Prop AMM da Solana mais arriscado no EVM.
Inovações como o EIP-1153 (TSTORE para armazenamento transitório) permitem escritas de 100-gas, mas este armazenamento é efémero e só dura uma transação. Não pode ser usado para persistir uma atualização de preço para um swap subsequente (ex.: durante um bloco).
Antes de responder, vejamos o “porquê”. Os utilizadores procuram sempre melhores cotações nas suas negociações, pois isso significa obter melhores condições. Prop AMMs na Ethereum e em blockchains Layer 2 permitiriam cotações mais competitivas, que atualmente só existem na Solana e em exchanges centralizadas.
Para tornar os Prop AMMs viáveis no EVM, recordemos uma das razões para o seu sucesso na Solana:
Como trazer atualizações Prop AMM no topo do bloco para Layer 2 EVM? Existem duas abordagens: reduzir o custo das escritas ou criar uma via prioritária para atualizações Prop AMM.
Reduzir o custo das escritas é improvável devido ao problema de crescimento do estado no EVM, onde SSTOREs baratos poderiam facilitar spam de estado.
Propomos criar uma via prioritária para atualizações Prop AMM.
Uma abordagem inovadora, sugerida por @ MarkToda da equipa Uniswap, propõe um smart contract Global Storage (repositório) combinado com uma política de builder especializada.

https://github.com/flashbots/global-storage-smart-contract
Como funciona:
Builder Policy: Este componente offchain é fundamental. Os block builders implementam uma política que reconhece transações enviadas para o endereço do Global Storage contract. A política reserva automaticamente os primeiros 5-10% do gas do bloco para estas transações de atualização, ordenando-as pela priority fee, para evitar spam.
É fundamental que a transação tenha “to” para o endereço do Global Storage, para evitar que transações que chamem outras funções de swap fiquem no topo do bloco.

Esta arquitetura resolve ambos os problemas.
O swap do utilizador é executado contra a curva de preços definida pela atualização do market maker no início do bloco, garantindo uma cotação atualizada e protegida. Este modelo recria o ambiente de atualização rápida e barata que permitiu aos Prop AMMs prosperar na Solana, abrindo caminho para uma nova era de eficiência de mercado no EVM.
Contudo, este modelo apresenta desvantagens que deixo para discussão no final do artigo.
A viabilidade dos Proprietary AMMs depende de resolver um problema económico central: a necessidade de execução prioritária barata para evitar front-running.
Embora a arquitetura padrão do EVM torne isto caro e arriscado, um novo design apresenta uma abordagem alternativa. Ao combinar um smart contract Global Storage onchain com uma política de builder offchain, é possível criar uma “faixa rápida” dedicada para atualizações de preços. Este modelo garante execução no topo do bloco para atualizações de oráculo, estabelecendo um mercado de taxas local e contido, resolvendo os principais obstáculos e tornando não só os Prop AMMs possíveis, mas potencialmente transformadores para todo o DeFi EVM que depende de atualizações de oráculo no topo do bloco.
P.S.: Procuro oportunidades para palestras em conferências sobre este tema. Se estiver ligado a eventos durante o Devconnect, contacte-me para discutir possibilidades!





