Vi un post de un KOL la semana pasada afirmando que DuskEVM es equivalente a EVM y que Uniswap V3 se despliega directamente. Hice un fork de V3 Core y lo compilé en Boreas RC1 para comprobarlo.

El primer error apareció en Pair.sol.

balanceOf lee _reserves desde el almacenamiento público de EVM. La capa de privacidad de DuskEVM enruta la profundidad de liquidez a través de Hedger. Las variables de Hedger no viven en el almacenamiento de EVM. Así que cada función view que lee reservas cae en un callejón sin salida. El mint, burn y swap de Uniswap dependen de leer de forma sincrónica las reservas para calcular el producto constante. Toda esa ruta aritmética tiene que sobrecargarse desde cero.

El problema del pool de shielding va más profundo. Los tokens LP de Uniswap son ERC-20 estándar con transferencias públicamente visibles. El LP confidencial en DuskEVM requiere reempaquetar con ConfidentialERC20. Los saldos de LP se mueven dentro de notas de Zedger. Los swaps ya no actualizan el mapeo de reservas. Consumen la nota antigua y acuñan una nueva con importes respaldados por pruebas PLONK.

getAmountOut no puede funcionar de la misma manera. El original divide reserveIn y reserveOut de forma abierta. La versión de Dusk tiene que demostrar dentro del circuito que la nota anterior menos la entrada equivale a la nueva nota más la salida. La entrada y la salida permanecen invisibles para los creadores de mercado, pero siguen siendo verificables por cualquiera que tenga la clave de lectura (view key).

Al día ocho intenté heredar Pair desde la clase base de ConfidentialERC20. El conflicto de la firma de la función permit (Permit) apareció de inmediato. El approve de Hedger usa el consumo de notas, no el mapa de allowances del ERC20. SafeCast tiene que cambiar a HedgedUint256 en todo.

Reescrituras mínimas requeridas: el contrato Pair, el cálculo de importes del Router y el muestreo TWAP del Oracle. El objetivo del muestreo se convierte en un compromiso de nota que no se puede leer directamente.

Lo que se mantiene: sintaxis de Solidity, Foundry, Remix, configuración de chainId. El conjunto de herramientas circundante funciona. La lógica central de AMM no migra sin una reestructuración importante.

Equivalente a EVM significa que el entorno es familiar. No significa que los contratos existentes se ejecuten sin cambios cuando hay privacidad.

#dusk $DUSK @Dusk