Umbra v2 Prototypes And Designs

July 11, 2024 / Ben DiFrancesco

In January 2024, we announced the Ethereum Foundation had funded ScopeLift's work to advance stealth addresses in the Ethereum ecosystem for six months. Since then, we have shared two more updates on our progress. Now it's time for us to publish our final update on this phase of our work.

Veiled Ethereum

In this post, we'll cover:

  1. The status of EVM Stealth Address standardization efforts
  2. Recent improvements to Umbra v1
  3. More detailed plans and prototypes for Umbra v2

Let's dive in!

ERC Standards Finalized

Last week, we shared the exciting news that the stealth address standards we have been working on had been finalized. This means anyone can build confidently on top of them knowing their implementations will be interoperable with others in the ecosystem. A special thanks is owed to Toni Wahrstätter, Matt Solomon, and Vitalik Buterin, who co-authored the standards and were instrumental in their advancement.

Stealth ERCs

While it might not always seem obvious why it's worth going through a tedious standardization process, we've already seen the fruits of this effort manifest. For example, we recently learned of an experimental Reth extension implementing the ERC-5564 standard.

With this extension, users or infrastructure providers running Reth nodes will be able to scan for relevant stealth address transactions at lightning speed and in a trustless, privacy preserving manner. The extension was built independent of our efforts. In fact, it is not an idea that had occurred to us until we saw it. It can be used by anyone, and can find stealth transactions sent by any system that complies with the standards.

With any luck, this Reth extension will be one of many tools and projects that can be built now that transparent and trustless standards have been established. We encourage builders of all types—from dapp devs, to wallet maintainers, to infrastructure providers—to check out ERC-5564 and ERC-6538. We look forward to a flourishing ecosystem of interoperable stealth apps and tooling emerging.

To facilitate further adoption of the standards, we've launched a developer documentation site, which you can find at stealthaddress.dev. We've also published the release candidate of version 1.0.0 of the Stealth Address Typescript SDK. The SDK can be used to build dapps, or as a reference implementation for working with stealth addresses in other languages.

Umbra v1 Improvements

We continue to make improvements to Umbra v1, which remains the most widely used stealth address implementation in crypto, and continues to process millions of dollars in transfers each month.

In the last two months, we've made a number of performance improvements, including improvements to our subgraph indexing. The most notable improvement to the app comes in the form of more advanced caching. With the new solution, we completely avoid rescanning old blocks when a user returns to the app. As a result, regular Umbra users will notice dramatically faster stealth transaction discovery times.

Whereas previously, a user returning after a week to look for transactions on, say, the Arbitrum network might have waited a full minute for scanning to complete, they'll now have to wait only 5-10 seconds to scan the transactions that have been made in the last 7 days. While the exact performance experienced will vary based on connection, CPU speed, and how often one uses Umbra, we're confident virtually all users will see a meaningful improvement thanks to this update.

Umbra v2

Finally, we come to our updates on Umbra v2. In May, we published a post explaining our vision for the next version of Umbra as a flexible, modular protocol built on top of the new standards. We also discussed our goal of enabling third party developers to build integrations that make stealth addresses useful for more than just receiving privacy preserving payments.

Today, we're excited to share more technical details about how Umbra v2 will realize this vision, along with some early designs to demonstrate what the user experience will be like.

The key to our vision for Umbra v2 is understanding that a stealth address is ultimately just a regular address. What makes it "stealth" is the way it comes into existence and how it is discovered by its owner.

By leveraging the properties of elliptic curve cryptography, a stealth address can be generated by a third party on behalf of the user who controls its key. By leveraging encryption and onchain announcements, we also provide a straightforward way for users to discover the stealth addresses that have been generated for them. Ultimately, though, each stealth address is just an address.

To put it differently, a stealth address isn't an address with privacy properties. Instead, a stealth address is a normal address created and discovered in a privacy preserving way. If Umbra v1 solved the problem of creating and discovering stealth addresses, the last piece of the puzzle is making it easy to use those stealth addresses in a way that maintains privacy.

In Umbra v2, we'll do this by letting users take full control of each stealth address that receives a transaction. We'll do this in a way that keeps the addresses isolated, and provide feedback to the user about the privacy health of each address based on the way they've used it.

To demonstrate how this works at a technical level, we built a prototype frontend. The prototype allows the user to connect a stealth address to any decentralized application, in this case, using WalletConnect. This prototype demonstrates the technical feasibility of this key Umbra feature. Here's a brief video of the prototype in action, demoed by ScopeLift Engineer Marco Mariscal.

While the prototype demonstrates the technical aspect of this key Umbra v2 feature, the prototype's UI/UX is not intended to be consumer-ready. We have spent time developing high fidelity designs that address the user experience challenges, in collaboration with talented web3 designer Chiali Tsai.

These designs are heavily informed by three years of operating Umbra v1, and aim to solve many of the UX challenges we've seen while doing so. The overarching goal is to help users leverage stealth addresses safely in a user friendly manner. Here's a brief video walking through the designs, narrated by ScopeLift engineer Gary Ghayrat.

The designs nudge the user toward the intuitive realization that each stealth address can and should be managed separately, and that the privacy "health" of one address is independent of others. It enables users to operate a given stealth address as if it were its own individual wallet, interacting with other dapps seamlessly.

Importantly, the designs de-emphasize the idea that the user is somehow "depositing" and "withdrawing" funds from the protocol in a way that magically imbues them with privacy. This is not how stealth addresses work, and conveying this has been a constant pain point in stealth address adoption.

Umbra v2 Design Screenshots

While there will no doubt be room for further iteration and improvement, we think the Umbra v2 UX will be a substantial step forward in making stealth address accessible to everyday users.

Next Steps and Funding

With the standardization effort complete, we're now turning our efforts fully toward executing on our vision for Umbra v2. As we've shared, that vision is already taking shape, and we hope to build on this initial momentum.

While Umbra v2 will be our focus, it will not be our only effort. For one, we'll continue to support and improve Umbra v1. For another, we'll continue our work to drive adoption of the stealth address standards on top of which Umbra v2 will be built. If your project or protocol is thinking of building on top of the standards, don't hesitate to get in touch. We'd love to support you in any way we can.

For the time being, we have some funding runway to continue our work on stealth addresses thanks to Gitcoin Grants and Optimism's Retro PGF. Both organizations are running new funding rounds soon, and we would be grateful for the continued support from communities.

Umbra has always been developed as a public good, and with our standardization efforts, we've doubled down on this approach. We are grateful to the organizations that have made this possible, most notably the Ethereum Foundation. The grant provided by the EF these past six months allowed us to devote a large chunk of our time to the stealth address standardization effort. Without it, there's no doubt the process to push the standards forward would have taken much longer.

We are hopeful that the ecosystem will continue to value our work on stealth addresses and find ways to fund it. For a number of reasons, building privacy tools in the crypto ecosystem can be challenging, but we genuinely believe for crypto to be a success, it must offer privacy protections for users. We are committed to continuing to push stealth addresses forward and eager to speak to anyone who wants to support us or collaborate with us in this work.

Stealth addresses on Ethereum have come a long way since we pulled together a pre-production version of Umbra for a hackathon in 2020. We're grateful to have contributed to this effort, but there is much left to do. Thank you for your support. Onward!