Could Private Intents be a Thing?
Volume across intent-based DEXs has been steadily on the rise, and so have the number of AMM-based DEXs building their solver networks (upcoming alpha post teaser :P)
We’ve previously made our case about why we think privacy on-chain isn’t just a fad and will help create space on-chain to accommodate institutions and unique retail experiences. https://members.delphidigital.io/reports/everybody-needs#privacy-is-useful
Private Orders Vs Private Intents
The difference in the case of private orders is that they are matched against shielded pools. Shielded pools anonymize assets within them using ZK SNARKS and Homomorphic Pedersen commitments, like with Zcash, Namada, and Penumbra.
In the case of intents, they are auctioned off to solvers. In intent-based DEXs such as CowSwap, UniswapX, and 1inch Fusion, users’ trade details are openly visible for solvers to view and compete to solve. Other third parties, such as the auctioneer and relayers, may also end up viewing sensitive trade details.
When it comes to private intents, all user trade inputs are encrypted using any of the available cryptographic mechanisms like ZK SNARKs, FHE, or even SGX, as seen in the example below. User inputs are hidden from all solvers and relayers. In this case, the Auctioneer or the “Gateway” is the only trusted entity, and in an ideal scenario, user inputs would be hidden even from the Auctioneer.
To learn more about solving over hidden/private intents, let’s look at an example based on Aztec (Privacy L2) and SUAVE.
Aztec helps hide user addresses and inputs (trade details) and output addresses (where tokens would be delivered after swap) from the public.
SUAVE runs the Gateway contract that conducts the batch auctions privately with the solvers. It also helps return the swapped tokens to users privately.
Surprisingly, the idea of private intents isn’t as new as it seems. Privacy protocols like Renegade and Panther Protocol have been working to ensure privacy for DEX orders pre-trade and post-settlement. The idea of private batch auctions similar to the example above can also be seen in Penumbra’s approach.
The core idea behind private intents is that user identities and intents will be hidden from solvers, and solvers will only view the aggregated value of trades in a particular batch that they’ll solve. Post execution, users can choose to receive their swapped tokens at a different address.
More on Private Batch Auctions using Aztec and SUAVE here: https://collective.flashbots.net/t/private-batch-swaps-using-aztec-and-suave/3217