Keeping your users' private parts private
EthCC[9] · 31 Mar 2026 · 21:01
Belma Gutlic examines product and engineering patterns for usable privacy tools. The presentation discusses ways to help users preserve privacy and avoid accidental identity disclosure.
Speakers
Topics
From EthCC[9], hosted by Ethereum France.
Transcript
Okay. Here we go. Good morning, everyone. Or so everyone understands me, GM. Um I'm Belma, and today I'm going to talk about privacy, uh specifically practical privacy. So, if you're building a privacy app or if you are integrating privacy flow into your existing products, then I hope you have some takeaways today. Is this the thingy?
Okay. Um Yeah. Uh so, really to appreciate the time uh where we are today, um a lot of exceptional teams are building uh privacy protocols today. But, that wasn't always the case. Like, back in the old days the audience was um fragile, and I mean, the audience was small, and the ecosystem was also like fragile. Um especially when we had um the case with Tornado Cash, the largest privacy protocol that got sanctioned.
Um that was a large hit because a lot of people were afraid to use privacy uh apps or were even afraid to build ones. Uh luckily, that's not the case anymore, and um today we have a lot of teams and working groups uh that are building different privacy flows, and we also have like demand from institutional side, which which kind of um adds up um nicely into kind of a building uh better privacy protocols.
Um why? Because we're not there yet. Like, we still have a long way to go for privacy that feels natural, and for privacy to kind of be everyday. So, yeah. As I said, I'm Belma, short bio. I've been in the space for a while, so seen a lot of uh bull and bear markets, uh seen a lot of buzzwords, and a lot of different things. So, we're going to be fine. There is a light at the end of the tunnel.
I'm also a founder with successful exit, as I had my own dev shop. And um for the last couple of years, as I worked at ChainSafe, I've been deeply involved in open-source protocol development and web3 infrastructure. Um there's a little bit of text missing here, but if you ever need to reach out, you can do so on belma.io. And I recently started a blog writing a little bit about privacy. It's uh privacyonethereum.com.
Uh Hopefully, there'll be more posts soon, but I'll post the presentation and contents of uh this website of this presentation um after the conference there. So, yeah. Even I, as a technical user, I tried to use privacy tools, and I got lost. I mean, not fully sense lost, but uh like I had my doubts and question marks along the way, and I had to go and look at the protocol docs, even GitHub, to see like exactly what it is uh trying to do, and kind of uh what's what's expected for me to do. It's not like I was, you know, laundering millions of
dollars, but it's still like when you're using an app and you're not sure what you should do, it's it's a weird feeling. Um I know there is a powerful powerful cryptography in behind, but the interfaces are confusing. Um let's go maybe through an example. Let's say um you have a friend that asks you, "Hey, I want to make this uh donation privately. Like, make the transaction private." Like, what would you um tell them? Like what >> [laughter] >> I mean, there is no no obvious answer how how this uh should be done, at least, you know, not not really today, and um
well, you'll have, you know, different answers for every person you you ask. But, first step is usually that the user will have to go uh out of their way, like out of the normal wallet transaction, or like outside their MetaMask wallet, and go to a specialized app, specialized uh website place, and then download something there, or do a setup there. So, that's that's the first step, but, you know, it is what it is today, and maybe in the future that will change, but that is the first step.
And then, second is the kind of once you go and download, um there is the whole onboarding part. So, it kind of feels like you're new crypto user all over again. So, it's like create a new wallet, import an existing wallet. Like, I don't want another seed phrase. Like, what I'm supposed to do? Um but, yeah, you end up creating a new wallet, and then you have to fund it. Remember, I just want to send uh my transaction, my donation privately. But, then you Oh, I have to shield it. Do I shield the full amount? Do I shield a partial amount?
Like, there is there is still a lot of kind of a doubt. And that doubt is also always um along the way when you're proceeding with the transaction. Uh note, I mean, if you're recognizing any any of these apps, it's just the one that I regularly use, but they all look the same, so it's not about them specifically. So, you have like, "Oh, withdrawal address. Can I still use the same one, or do I use this one?" I'm not sure. What does this anonymity set mean?
Okay, I have all this data, great statistics, very good, but how do I actually use it? Who should relay my transaction for me? Should I do it? So, there's like these these kind of a doubts and feeling um along the way, which is, you know, never nice when you're just trying to make a transaction. So, privacy today feels like expert mode. It's like we've given all these extra options um to users, so, you know, they can fly the plane themselves, but usually users just want to go from A to B and not fly the plane.
Um and the data showed the shows this because um yeah, there's there are definitely a few few different uh papers and analysis um on a similar topic. I chose this one. So, what is about? So, a little while back, the Ambra protocol um researchers analyzed the transactions on it, and it showed that half of the users on mainnet didn't actually know how to use it. I mean, they were de-anonymized, meaning they lost their privacy.
And this wasn't just because of like very uh um advanced behavioral analysis. No, this was just like simple address reuse. Uh I think the results were even worse on L2s, which kind of shows that a lot of people that are using privacy apps today, I mean, I don't know what they're actually trying to do, but I doubt they're using privacy apps to just kind of uh merge the identities. So, yeah. It shows really kind of uh the complex the complexity how it should be taken.
And this kind of led me to conclusion that really privacy UX is is different because in normal apps, still call them normal, but like, if you're sending transaction today, uh as you are in your wallets, like, once you make the transaction, send it, it doesn't get reverted. Great, you got what you wanted. Um you don't have to second-guess it. But, if you're making a private transaction, you send it, it doesn't get reverted, you get a green check mark, but there's no feedback loop on privacy.
Uh there is really no second chance if you, you know, did something along the way that could lead uh to reducing your anonymity. So, yeah, that's why this this this kind of a privacy part is really um another kind of complexity or layer of correctness that should be taken um also on top of uh transaction stack. So, yeah. Privacy is not yet another feature. It's not like you just take the privacy flow, integrate it, it works technically, but because it can still expose expose the user.
And we are used to uh kind of a signing methods, key managements, permission prompts. Uh those all to be kind of a taken seriously more seriously today, and they're a part of the security model. And uh I think privacy privacy-preserving UX should be done the same way. So, yeah. Thinking about it, like, what you know, if we're already building privacy flows, like, what what if we have like different uh success criteria for them? Like, what if we have kind of a evals um to ensure that really where users are getting the output that they needed.
So, uh that that means for example, we could check if I mean we as kind of a uh uh providers, builders, we could check if boundary was preserved at the end. So, for example, if user um managed to withdraw um to a deposit address, that means the that was reused like similarly to Umbra Cash or even to a publicly known public wallet, that that means that identity has been merged. It's very obvious that's the uh that's the person, especially if they're withdrawing the full amount. So, in that case kind of a our our app has has failed because the boundary hasn't been preserved.
Um same as if uh for example, user is doing like repeated transactions, um you know, uh doing the same amounts, same same wallet all the time. This means that uh linkability is increasing. So, in that case, you know, that that would be a failure as well. Um rather simple one example, has the visibility been explained? So, did did the wallet, my product, whatever, um explain the the the private state continuously throughout the app as all the user knows uh what's what's kind of a going on and what's the visibility?
So, yeah, that that means that uh builders should really um stop asking like how do I present protocol action? So, if you have a deposit uh function on your smart contract, it's not like, you know, making that deposit button in your UI. But rather start thinking, you know, how do I stop uh users from accidentally um publishing the things that they wanted uh private in the first place.
So, uh going on on the potential solution paths, like what builders could be doing today is fix the onboarding. Don't uh you know, let the user be confused on the very first interactions. So, fix the onboarding. Maybe this is kind of a just really ideas and brainstorming. Uh start with user intent. So, recognize uh what the user is trying to do or ask the user because it's not the same if someone is just kind of a going to receive uh receive payments, receive a sa- salary anonymously, or they're doing a private dow vote, or they're doing that one uh one um
transaction um one donation. So, detecting kind of a personas during this onboarding phase will um will okay, lead to less clicks for user, but also likely to for you the settings to kind of a maximize their privacy. Uh yeah, sorry for longer text here, but just to clarify add a few more things on that note. So, um default settings or kind of a default mode, how those uh apps are used. I mean, default mode is the primary way how users experience apps. Like no one goes first on advanced settings or file settings, whatever, and change things
there. They just go and use the app. So, making the save behavior the the default is uh important. For example, you don't need to ask on every transaction if um if you want it to be relayed transaction yourself or by externally relayers. That kind of a can be part of of the default settings. Um yeah, uh similarly, we we could treat uh privacy-breaking actions as kind of a warnings and suggestions at minimum. So, if user is withdrawing to that known address or it's reusing the address, um we could at least warn that or even prevent that.
Yeah, definitely a lot more things that we could be doing uh today that's just not um necessarily like um technical blocker. So, take off privacy review. Similarly, as we have today transaction reviews where we have wallets and now they're giving us these kind of a warnings if you were interacting with unknown smart contracts. Uh we're doing transaction simulations. We could be doing similarly for for privacy. So, having a kind of a privacy section with within um privacy transaction confirmations if if there is a certain certain risk or or not.
So, really we want to be kind of a designing this for majority of people, for majority of use cases, not just experts. As um yeah, users should not work hard if um if they want to stay private. Uh so, if you want to uh achieve functional private transactions, then it should be really easy for everyone. And in the future, I really like the kind of analogy of HTTPS. So, the secure connections that you have now every day when using your browsers, they are the default behavior.
Um similarly, um we could, you know, see that um private transactions could be the default behavior uh inside the wallet. So, if if you're doing kind of a a public mode like vice versa what we have from today. So, if if you're doing a private transaction, then okay, no one cares. But if you're if you're kind of a not, if you're doing like HTTP uh which is unsecured kind of a connection, you get all these warnings. So, in in kind of a world today, HTTP is the kind of a unusual thing and secure uh connection is kind of a the the normal behavior.
Uh we could see be seen as we could do that same for transactions and change that sentimentality and UX. Um because yeah, today if if you're making private transaction, you must be doing something weird, which is really not the case. Uh and of course, users can always, you know, opt out if if needed. And this will kind of a lead also to larger user base, larger anonymity sets, which also kind of increases uh the the practical anonymity part.
So yeah uh um really like the analogy again and one one can hope we get to that stage. Um so, yeah, thank you. Thank you for today. Enjoy the rest of your stay here and I think we have a few minutes for the questions. So, if anyone has them, feel free to ask or along the hallways or >> Yeah. anytime. I have the first question. Okay, so you're talking about privacy and I I have a thing that is going around my mind that we have the the SDK that Vitalik launches on Web3 Privacy on November on Buenos Aires.
And I have been no traction around that on on on most of the wallet builders. And I was asking myself why this this tools that are already available and easy to implement like Kotaku Kota- Kotaku uh SDK are not being they don't have the the enough traction. Uh yeah, to to answer kind of a directly the question, um there is no traction yet because it's it's not ready yet. Everything is still very alpha stages. I'm not sure if he they have like early users or not. Uh I mean, the the everything is open source and visible.
So, you can also like peek into the current code. A lot of it's on development branches. Um but you can peek also like in Figma a little bit. So, I think they're still like figuring things out and it's highly in in development. Um but also I think it's a great initiative because we kind of a have this like role model wallet. I hope that's what it will serve. And also like SDK for easier integration, which we both don't have today. Hi. Um
So, apart from using paper wallets that I generate myself and MetaMask, what do you recommend for everyday use? Um what do I recommend for um Yeah, I mean, I think whatever one is is kind of a using. There's really There's no good answer at all, right? Not not really. I mean, I mean, I still make a lot of things like publicly and everything. I mean, not to like share a lot of details, but about my own personal opsec, but uh yeah, it's not like you don't know something that exists really and it's great. So,
>> [laughter] >> sorry sorry to disappoint. What level of the stack do you think is responsible for privacy? Cuz I mean, you have chains, which is like HTTPS, that's the protocol that everything's and then you have wallets and then you have apps. So, who should be responsible for building privacy native UX? Um I think easy answer would be really wallets, because that's also like uh a mode for them. It's value add for them.
Um I mean, in the future Ethereum is is promising to have a certain things on a protocol level. So, it's you know, today that's obvious answer is wallets, but it will merge and probably kind of a spread that there is a little bit of functionality on the protocol level, which also like helps uh helps wallets, but yeah. But, when it comes to like, you know, simulations or kind of a, you know, transaction analyzes, I think those could be like third-party tools.
Like, if if I had a hackathon, for example, I would build that. >> [laughter] >> Okay, I think we're also like a little bit out of time. So, thank you, everyone, and enjoy. >> [applause] [music]