Hey everyone!
We, at ChainSafe’s Solutions, integrated Aztec/zkMoney to experiment with providing more privacy for ENS users.
Problem Statement
With an ENS name, it is easy for anyone to see the complete financial history of any associated address. For example, here we can check how Vitalik has spent his assets. And for the ENS names tied to social media profiles, the address is certain to be of the person.
We still want people to be able to publish and use an easily memorable name for their address and at the same time have their spending pattern private. What we essentially want is a de-linking of receiving and spending addresses for a given ENS name.
This should be achievable with no changes to the core Ethereum protocol and minimal changes to the ENS protocol for the solution to be easily adopted.
Our Solution
A cool thing about how ENS is currently implemented is that every user can set their own custom Resolver contract. By default, PublicResolver is used. This can be changed by using Registry contract’s setResolver() method in the ENS app.
While trying to look for best the possible solution to bring privacy to ENS, we stumbled upon Aztec’s contracts. Aztec is a privacy focused zk-rollup. In the main contract, RollupProcessor, there is a publicly accessible method called depositPendingFunds(). Using this method, anyone can deposit ETH/DAI on behalf of anyone else. The other person can, at any time, submit a proof that they own that address and claim those funds. These funds can then be used as private transfers within L2 or can be withdrawn to a fresh account on L1, with no linking to the previous address.
What we did was to implement a custom resolver contract that will redirect the funds sent to an ENS name directly to the Aztec’s RollupProcessor’s depositPendingFunds() method. Users can set their resolver to the custom resolver and claim all the funds in zkMoney’s UI.
No additional UI needs to be developed to start using our resolver. Current versions of ENS and Aztec UI supports this out-of-the-box.
Links & Resources
For more detailed information of the solution, please find all the links below:
We appreciate any feedback and if this is useful for the end users!
We will continue to explore building a polished version of this to make privacy for ENS users even more seamless.
We have already submitted a proposal for this here.