Vi um post de um KOL na semana passada alegando que o DuskEVM é equivalente à EVM e que o Uniswap V3 faz deploy diretamente. Eu forkuei o V3 Core e compilei no Boreas RC1 para verificar.

Primeiro erro ocorreu no Pair.sol.

balanceOf lê _reserves da storage pública da EVM. A camada de privacidade do DuskEVM roteia a profundidade de liquidez através do Hedger. As variáveis do Hedger não ficam na storage da EVM. Então, toda função view que lê reservas cai num beco sem saída. O mint, burn e swap do Uniswap dependem de ler reservas de forma sincronizada para calcular o produto constante. Todo esse caminho de aritmética precisa ser sobrecarregado do zero.

O problema do pool de shield aprofunda ainda mais. Os tokens LP do Uniswap são um ERC-20 padrão com transferências publicamente visíveis. O LP confidencial no DuskEVM exige reempacotar com ConfidentialERC20. Os saldos de LP se movem dentro das notas do Zedger. Os swaps não atualizam mais o mapeamento de reservas. Eles consomem a nota antiga e cunham uma nova com valores apoiados por provas PLONK.

getAmountOut não pode funcionar do mesmo jeito. O original divide reserveIn e reserveOut abertamente. A versão do Dusk precisa provar dentro do circuito que a nota antiga menos a entrada equivale à nova nota mais a saída. A entrada e a saída permanecem invisíveis para market makers, mas seguem verificáveis por qualquer pessoa que detenha a chave de view.

No oitavo dia, tentei herdar o Pair da classe base ConfidentialERC20. Conflito de assinatura da função permit imediatamente. O approve do Hedger usa consumo de notas, não o bitmap de allowance do ERC20. O SafeCast tem que mudar para HedgedUint256 em todo lugar.

Reescritas mínimas necessárias: contrato Pair, cálculo de amount no Router e amostragem de TWAP no Oracle. O alvo da amostragem se torna um compromisso de nota que não pode ser lido diretamente.

O que aproveita: sintaxe Solidity, Foundry, Remix, configuração de chainId. As ferramentas ao redor funcionam. A lógica central de AMM não migra sem uma reformulação significativa.

Equivalente à EVM significa que o ambiente é familiar. Não significa que contratos existentes rodem inalterados quando a privacidade está envolvida.

#dusk $DUSK @Dusk