Hi everyone!
I would like to share an implementation idea for stealth Safes and hope to get some feedback & thoughts from the community. I will be participating in EthGlobal Paris next weekend and plan to work on this idea there
If you want to find out more about me, I introduced myself here earlier.
If you haven’t heard of stealth addresses before, I recommend this post by Vitalik. TLDR: A stealth address is a one-time use address for a specific transaction, generated by the sender and exclusively controlled by the recipient, which allows for transactional privacy: an external observer is unable to link the recipient to the stealth address.
There is currently an EIP proposing a standardized approach to stealth addresses. In the meantime, a production-ready implementation of stealth addresses is the Umbra protocol.
Umbra currently only enables EOAs to generate stealth addresses, as stealth addresses need a private key to be generated.
I have outlined an implementation to generate stealth addresses for Safes using Umbra in this document. TLDR: A sender can deploy a stealth Safe mirroring the parameters of the parent Safe, except the owners are stealth addresses of the parent Safe owners. The Safe owners can then redeem the transfer from the stealth Safe using their personal stealth addresses and a relayer like Gelato to fund gas from the stealth Safe itself.
Here is an overview:
I’d love to get your thoughts on this! Also let me know if you have any questions or feel like something is unclear.