New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Antonio Seveso - Friendly Privacy with Stealth Addresses and Privacy Pools Fluidkey

NapulETH MeetupThu, Oct 9, 2025, 12:00 AM

Speaker

Antonio Seveso

Antonio Seveso - Friendly Privacy with Stealth Addresses and Privacy Pools

Transcript

Thank you. Thank you everyone. Thank you for having me here and for you taking time to listen. Uh we have like uh 15 minutes where I would like to walk you through what I think it's important when you speak about privacy and the speech starts with a friendly privacy and uh I kind of stress that and you will see in the slides why I do that. It's not a technical talk even though there will be like a couple of parts where I will do a little little bit more of a tech dive into how this technology works and uh yeah let's start uh before going into the topic with a question now if I ask you what is an Ethereum address it's not more about like you have to answer it's more like 100% sure that all of us will agree on something oh It's know it's identified on the blockchain where asset stays and so on and so forth.

Now if I ask you what is privacy I am 100% sure that we will never agree on one single correct answer because privacy is a very broad concept. Okay. What is private for me probably uh is or or like let's think the other way. what is private for a people living in North Korea probably something that I give for granted here I don't even think that about privacy okay as as for that concept okay I put of course extremes in the answer but just to tell you why and this is important to keep in mind now when you speak about privacy is very broad because if you look at a field like messaging here I kind of say it's I I wouldn't say easier but it is I mean there are two parties involved with the sender and the receiver. Okay, there is not like a blockchain.

I just need to make sure that my data stays private and compliant till it reaches the expected receiver and the other way back to me. There is a leader that signal if you're not using for messaging, I kindly suggest you to use that on a daily basis. Uh and uh and and basically it's a messaging app with good privacy. But when it comes to transactions, I mean there are a lot of tools out there that can use for privacy. There's not a leader in the space around that.

Again, it's very broad. And what worries me most is these tools are rarely used by most of the users. And I think that the answer is not because they are lazy. Okay, I think the answer is because uh the tools are too complex to solve a problem of privacy very often. Okay, and it's also a complex problem because it's not like sending money between me and you.

There's a lot of things you have to take into account. You know, there's like pools with liquidity and so on and so forth. A lot of of players in between these actions. This is why no, it's not so easy to solve privacy. But the majority of the users will never care about privacy if the user experience is not great.

We can build the best tools of there that provide privacy. But if none of the user is using then in the long run even us will be forced to act as one of these users. Because in the end the standardization will come around what most of the user does and do every day. And this is why it's important to keep the user experience in mind when we work we talk about privacy. privacy with user experience.

What do I mean? I mean this practical things. I mean that I should be able to share my ENS and make sure that that ENS somehow is integrated into a privacy system. I mean that if the user are used to pay with their Visa card or doing a wire transfer, the tool, the wallet that they're using that has privacy embedded inside should allow them to do a wire transfer or pay with their debit card without any single step compared to the standard uh they are using with the bank. Okay, where they have money, they tap the card and they pay.

That's it. Nothing in between. Okay. And the last part is also uh like something that it's not given for granted. Put yourself in the shoes of a noncrypto user.

Okay. In in the traditional finance, uh self-custody doesn't exist unless you keep your cash money because the day you go to a bank, money is no more yours. That's what how you agree on when you open a bank account. But privacy is there. What I mean by privacy, I mean that if I want to pay you, I don't know how much you have in the bank account.

I don't know what you did with your money before now and I don't know what you will do with that money from now on. When they go now to crypto, there's this beautiful thing of of soft custody, but they figure it out. The privacy is not there anymore. And this kind of like, oh wait, is that a an an upgrade or a downgrade for me? probably a downgrade because if then I pay someone else I see not only how much they have but what they did with that money in the past and this is a big problem okay that a regular user might not agree on solving quickly now how can we obtain privacy in in the crypto space now go more to the heart of the talk okay there are two main tools I mean they're not like tools they're more concept around and there are different implementation of those tools one is called privacy pools see them as a uh vase, a pot, okay, where anyone put money, where everyone can put money in and then they can move money out, but the connection between the in and the out is not immediately visible.

Okay, so it was famous. It's was not a privacy pool, but just if probably some of you have heard about tornado cash, okay, that was the idea. Okay, I can put a 100. Other people put a thousand, 50, whatever. And then out of these 100, I can take 50, 30, 20.

So not also the same amount. So that it's impossible to match the in plus the out. What's the problem of that? A lot. It's low.

For example, if I put 58 and a second after I take out 58, it's immediately to connect the in with the output. Okay? So requires time and the user experience is bad for that. On the other side, there are still thought addresses. They provide what's called unlinkability.

And we will deep dive in this concept in a second. What does it mean is that I have one key and I can generate an infinite amount of addresses controlled by that key. But if I look at the chain, those addresses are separate addresses. There is no way that I understand which of these addresses are owned by the same by the same key. And this uh technology is not like new was provided.

It was initially uh proposed under on the Bitcoin forum more than 10 years ago. More recently, Vidalik uh spoke a lot about that and the Etheino Foundation will probably go towards that as one of the standard way of obtaining privacy on uh on the on the blockchains. It provides great UX. It's simple to understand. I generate a new address every time.

Every time someone wants to pay me, new address generated. money goes in an address that has no history and there's no way to see all my balances across the other addresses. But then when I want to spend money, yeah, of course I that money can still be followed. There's no breaking of traceability. Okay, so a address in simplicity is a one-time address, okay, generated by the sender.

So the power of stoalysis is that who sends you money generate the address and send the money there in a way that and this is the magic behind only the receiver can control the money in that address. So basically there's like the sender doesn't generate the private key. There's a mathematical be behind where I can generate the public key, the public address where I send money knowing that only the receiver will be able to generate a private key to control that money in the address. It's kind of a new thing because we're used to okay, we generate the address, we share the address. It's kind of a change in uh no and what we're used to to do.

So using self address ends up in something like this. You have different addresses with different assets on them. They asset stays there from outside. You cannot connect all of them. But you as a user can connect them because it solves the problem of privacy with a different angle.

There is no more the concept that one user is one address. One user is an infinite amount of addresses. Addresses are infinite. Okay. there are you can generate more addresses than the amount of atoms in the universe.

Okay, just to give you the idea of how many we can generate and so it's not cost for for a user to generate one of them and uh the problem is the management of all these assets and this where the UI the user experience comes in. This is where you need, of course, a wallet because I cannot remember, oh, I have all these addresses. As a user, I want to open an app and see, oh, I have $1,000. Then who cares if it's 50 here, 70 there, 100 there. When I want to spend, it's on the app level that the app needs to figure it out the most privacy preserving path to figure it out where this money must come out of.

By the way, all these addresses, at least for what we do at Fluid Key, they are smart accounts, okay? And this simplifies a lot the user experience under the hood because you can sponsor gas, you can do batch transactions, you can do like a lot of things that brings the user to to an experience that's much more closer to what they're used for. Now, very quickly, unlinkability versus untraceability. still address privacy pools broking of tracibility. This means I have I've sent money from A to B, but I don't know that A is connected to B because the money goes through a privacy pool that breaks this traceability.

So I don't know that the money sent to B were coming from A. Unlinkability means that I have a lot of assets across addresses. All these addresses are not linked together. But the moment I've moved money out of these addresses, I can follow I can trace the money where the money is going. Okay, still addresses.

There are too many I I will be quick but I wanted to leave the slides here so you can also deep dive into that. There are two main ways to generate ST addresses. This is the canonical one where you generate a subprivate key, a subpublic key for each of these addresses. On the right, there's the new way. It's called a key store.

It's a very simple idea to explain. There's one smart contract on one chain mainet probably where you store the configuration. Okay, I want my addresses to be controlled by this key. then all the addresses point to that configuration. So the day you change a configuration all the addresses change the ownership.

Now if this point is visible the addresses are are no more stealth they are connected together. If there's a zk proof to connect this to the configuration, then with the zk proof, you kind of hide this one and there's no way to understand. You are back to a addresses. All these addresses controlled by a key, but you don't know which is the key. Thanks to a zk.

This on the right is an advanced. We are working with the foundation to build that uh type of of solution. Um this is the canonical way of generating start addresses. So as you can see if you want to receive money you need to generate a public address and anyone can generate that because you need the meta public key that's visible on the blockchain is a public key. No way.

When you want to control that address you need to generate the private key bottom right and only who controls the address. So who can send the money has the private key. There's no way that from top left you can get on the on the bottom right. Okay. Again I told you there was just an input.

There is like a lot of papers on that. We can speak hours just on on this one. No the problem I was telling before is like okay but this way of genetic status works. Why should we find a new one? Okay.

What this key story you mentioned before? Okay? Because the day you want to rotate a key, it's a mess. Now, with the solution I told you before, there's the key store in one place. The day you change, all changes.

With start addresses, the day you want to change, you need to go in each address you generate, supposing that's a smart account, and rotate the key there. It's impossible to do. Okay? In fact, but can I rotate keys with a canonical way? Of course, no.

Okay? And the solution is the god of all solutions that we have and nowadays is zero knowledge technology. Okay. And uh this I'm sorry with the with the light you are not seeing that but that was just like a very brief diagram of how the key store works. It's exactly what I told you before.

On the left there's a key store sees a tree under the hood where all the leaves on bottom have the configuration store inside. On the right you have your start address in this case is a one out of one safe own and the configuration controlling is not written in the safe but points to one of the leaf of the of the key store and this pointing is hidden somehow through a zk zk proof okay that's again I just want to pass the concept more than in practical how you do with the with codes and before questions I have one about okay but then what's the future we spoke a lot about addresses in the last part of the speech for me and this diagram is not mine has been made by Vilik in one of his post this is the future the future is where users doesn't have one address has a lot of addresses with assets on that bottom right start addresses now the day they want to interact with protocols addresses are regular addresses you can do without any problem. But the day you want to break traceability because you have received uh your salary and you don't want to pay everything out of your salary so that everyone can see how much you make, you send your salary through a privacy pool broken into a lot of chunks on a lot of your stilt addresses. It's impossible to know that all these addresses are yours, but you know that are yours. Okay.

And in this way I think we have reached a level where privacy is the same privacy a regular user has on uh treadfi but with the advantage advantage of uh self custody. If you want to help uh feel please feel free to play with addresses. Fluid keys is one solution. Umbra cache is another solution. It's free.

Uh there's nothing request and you can scan the QR code if you want to try out and this is the team currently working uh on that. But feel free also to reach out handle fluid key. You can find us on Twitter, Farcaster, Telegram, we have a channel with the same handle uh or reach out personally. I would be super happy then uh listening from your feedback because that's the most important part. We're building for the end user and feedbacks help us building for the end users.

Automatic transcript — names and jargon may be misspelled.