DAPPCON 2024: Gnosis VPN - Sebastian Buergel
DappCon 2024 · May 2024 · 31:58
Sebastian Buergel speaks at DappCon 2024 under the title Gnosis VPN. A VPN, or virtual private network, routes a user's internet traffic through an intermediary to shield it from direct observation. The talk carries that title's framing as a project name rather than a detailed technical walkthrough.
Speakers
Topics
From DappCon 2024, hosted by Dappcon Berlin.
Transcript
welcome good morning my name is Sebastian and I'm very happy to be here and uh yeah very happy to share a topic that I'm very passionate about and that left is wonderfully introduced which is privacy or as folic likes to say make ethereum Cypher Punk again right so I'm very happy to talk about that and um yeah I'm here today to talk about nosis VPN a web 3 era VPN without central points of data availability failure or control and this work um is made possible by Gip
98 um for no sty it's a nosis Improvement proposal that was passed about 3 weeks ago and I'm very grateful for the support of from um noses Dow and I wanted to say thank you for everyone here who might have voted for us with their gno um to yeah bring a new product to the nosis 3.0 ecosystem that we've seen outlined before and yeah that is our contribution nosis VPN will uh run on top of the decentralized hopper Network and talk a little bit now about what this is and why we need all that but I would would like to start with a personal announcement actually so in uh light of this GP 98 I uh next to running
Hopper and supporting the team joint nosis as VP of technology so you'll see me in a little bit yes less yellow and uh more uh nosis swag going forward yeah than thank you for that and I'm really happy uh to yeah be closer joining the the nosis family more closely because I would say there's few ecosystems that are as aligned with my personal values um you know of bringing this Cipher pank mentality to The Wider ethereum ecosystem I'm uh very happy about this all right now uh nosis VPN right um privacy I get it it's an early
morning slot 11: a.m. um privacy do we really care well my motivation for the next 20 minutes is to show you something that might motivate you to use nois VPN related Solutions so first of all privacy Solutions right so privacy problems so web to infrastructure is harvesting metadata nothing you you know that right I would like to highlight two words here the first one is metadata so web 2 is not just harvesting your data right so if you upload pics of you in your drunken teen age time to Facebook that's not great and looking in
the room I think most people here learned that by now but the word is metadata metadata is really about who you're talking to what web services you're accessing and information about your device and your connection and that is really a problem because you can be tracked across domains and this cross domain tracking I find really scary right so observing your browser observing your connection data gives providers the ability to fingerprint you to single you out to identify you as a person and I find that broken that this information can travel across domains and use to track your every move on the
web now okay maybe some of you knew that I get it the thing that I would like to the second word I would like to highlight is infrastructure right this isn't just about the Facebook or how my mom sees it it's a funny thing that you do in your free time the web is running our society right we live in a digital world not just for Tik Tok but this is how de facto our modern society runs and collecting data about that is not just collecting data about me my hobbies and my quirky teenage times it is about the underpinnings of our modern society in increasingly political world and that is
broken right so information should be available but data should not just be tracked so as some people like to say on the web well um you know data is the the uh the new oil well I would say uh it's more the toxic waste we need less data about us out there and that's what privacy is about to retain data to retain it and not share it with the world out there so privacy infrastructure is needed so that web 2 infrastructure which is private for-profit corporations typically it's not nation states right it's not nation states it's powerful corporations that
run the web cannot see everything we do in this modern world of ours luckily it's not that bad right we have a solution the solution is nation states and violat why well because we have enforcable laws and regulations that enforce privacy rights right we Europeans here have gdpr and gdpr is great you can go to Facebook and you know tell Facebook well you can't do crazy with my personal pictures that I uploaded there and that works right believe it or not that actually works and that's great now Along Comes web 3 Along Comes decentralization Along Comes
peer-to-peer and Along Comes unenforceable posibility of these laws and regulations that we established our web to kind of work with that's a problem right so we live in a cipher Punk world where we have unknown third parties that we interact with with peer-to-peer networks and that makes it actually way harder to enforce our privacy rights that protect us as an individual Facebook could be you know and did get put in front of court for millions and sometimes billions of dollar because they were around well how is
that going to work in the web 3 is going to work by building on strong privacy Tech and left terorist was uh bringing some motivation for that and showing you you know how your IP address can be used and if you don't watch out and if you rely on centralized Services how that leaks and how that's not great and being being potentially used against you and we have seen the nft example I'm now going to show you another one and um yeah another way of identifying you as a user so I guess we have some Rod key users here in the room but I guess we have also some people that uh use tools like say Unis swap any
Unis swap users here in the room yeah a few okay good so um um you know it's portfolio trackers it's uh public decentralized applications let's see what's going on under the hood there and even if you think you're an Anon how that can be used against you so I'm going to introduce a new new form of web 2 to web 3 um fingerprinting of users so we have a website that is you know having a beautiful logo that's called my token tracker and just like other token trackers you guess what a does right so it shows you your portfolio so I picked a random address here and um I'm going
to check out the portfolio so you see it's some address you know it has more eth than many people and it has a bunch of other tokens it's a dcoin very funny right has a very funny icon here yes was entertaining all right so how does a token tracker work well it just fetches all this information displays it for you nothing new right you're all aware of it basically every single uh dep that you interface has some features like this showing you which assets you have being nice to you showing you a little icon that you don't go for you know for scam coin it's actually great because you don't want to trade with the wrong usdc so it's good if you see the icon there
you know to know that this is the right usdc maybe some people have a feeling for where I'm going with this so what happens here is and I showed this on the right hand side of the screen is there were a bunch of requests um that were being made and as I just start this here again uh as I do the search you'll see how on the right hand side um there's some requests popping up for specific icons right now what we render on the right hand side is actually all the requests that are being made to the server here to obtain the icons that you see on the left hand side and along with these requests and again this is nothing
new to anyone here I know um you disclose your IP address you disclose your user agent so you learn something about my operating system my browser um you know and a whole bunch more that we don't uh show here just to keep it simple uh you see a Swiss IP address because I'm currently connected to my uh Swiss mobile hotspot because I sometimes don't trust the conference uh Wi-Fi so uh this address is actually the largest save there is I think it's the bit finex um some bitfinex hot or cold wallet I don't know um yeah and and we see that it has a bunch of tokens on it of course now the interesting thing that I would like to highlight is this information goes to third
parties as you interface a dab the same thing happens right any sort of daap you go it loads token icons and it loads that typically from third party Services now what can they infer about you they just load the icons right but as a turns out these icons here and that's that's how we've also displayed it are unique to the tokens so what is the anonymity set of you there as you as a user basically we could go ahead and say okay imagine you're that service provider right and I'm going to pretend on that service provider now and I'm going to um try to figure out who you are only looking at the tokens that were loaded
from the from the app by the way that service also knows from which web service that was loaded so we've prepared a little a dune query here um and on this Dune dashboard you see um a bunch of tokens so you can kind of customize this this dun query here I selected um nine out of the T 10 tokens that were loaded uh I left out the OMG because it's a very uh popular token and that's being held by a lot of addresses and uh what we're basically doing here is we're in this in this um bar plot on the bottom here we're saying okay um the left hand bar shows if at least one of these tokens should be in a
set how many addresses hold this tokens and there indeed uh 54,000 ethereum addresses that hold at least one out of the nine tokens on the list okay if I say okay I want to have two tokens on the list we already down to a thousand ethereum addresses and so on and indeed the interesting thing here is um if we go all the way up to the 9 tokens on this uh bitfix address for which an icon was loaded and available we see there is a single address left anonymity set one I singled you out by a fingerprint of your tokens not loaded through an RPC call not loaded by any fancy me thing
not actually touching the entire nosis or ethereum chain at all just loading at web to kind of metadata that are around while you interface an app and what you see here is the remaining address um if you change different tokens here you will see its fer addresses and if we oops uh yeah I don't have it here but if you can you can check it out yourself later so this is the bitfinex address uh which is this safe uh that we hi it here all right now um that's pretty bad right that's not great um but is this real is this really a problem um let's see so let's take a quick look at Unis swap
um and let's see what happens there so I'm going to um I'm going to load the def tools and the most interesting thing I'm interested in is the network tab right right so in the network tab you see everything that this page is loading and this is the default view of Unis swap um I am going to open this drop down here which shows a bunch of icons now I don't have my wallet connected yet so that's why it just loads the default set of tokens if you do connect your wallet it loads the tokens which you have on your balance now where do these icons come from well let's see okay it comes from raw. GitHub user content.com
now who is GitHub User content.com it's probably good guys right it's probably some devs that you know have your best interest at heart I don't know I'll leave it at that so basically many deps this is not a dunk on Unis swob right many deps do exactly this they are using a third-party service to query data from some other Web Two source and that can use now like raw. gethub user um content.com knows this is you they know what you're using which is unis swap they know everything you do in real time and they can track you no matter what you do now that is a little bit broken in my
eyes all right so um after this first part of the demo um you might say well what about centralized vpns well centralized vpns is basically Shifting the responsibility and the trust in one web server which we just didn't trust because we were just going through them doing bad things with another one that's called a VPN sure the VPN is is good that it you know doesn't disclose your your data to um to this third party operator but typically they can Harvest data in just the same fashion not great so obviously um this is not just web 2 this is also
web 3 right so as we say privacy loves company you need something that is not just actually relaying data um via one server because if we think about this anonymity set right so how many people could like how how many users could this be if I'm trying to find out among how many users I'm hiding I have to consider let's let's say a popular web 3 app let's say Unis swap right so hiding behind a VPN means actually I'm my activities are being mixed up between people who use the same RPC provider so who are connected to ethereum mainnet Via for example
infura using the same VPN provider but actually not just provider but also that very server at the same time I can guarantee you you're probably alone so a VPN does not help you if you intend to unlink your activities across domains which I think is a primary problem if we want to you know avoid being tracked in the web 3 so how do we improve that so um this is where I will give a bit an overview of how uh nosis VPN is envisioned to work so on the left hand side we see user device right so you might have your browser open uh in your browser you might run Kel swap maybe you
have a dedicated app for for some things and in this dedicated app um yeah you you're using some Web Two web 3 services and this should get a secure access to other web services right so we don't want to break that we don't want to break the entire stack it still has to work and that as we'll see in a minute is uh yeah sometimes a bit The Challenge so on your device you will have a nosis VPN client running which is working very similar to a standard VPN so neither you nor your operating system needs to understand what is going on here so the nosis VPN client is sending data like via this underlying Hopper Network which has multiple hops through which it is
sending your data so it's not just relying on a single server it is multiple hops that people run for example on their DB notes at home if they run a hopper note until it's hitting a nosis VPN exit Noe that is making an uh secure request to the web servers and the interesting part is like you can do that in an endtoend secure way so it's not just private but it's endtoend secure so there's something called TLS it's what secures the it's the s in htps that you might see in your browser and yeah so that is how you securely communicate endtoend encrypted now the problem is people might ask well why do I need to install this on my
laptop right well the problem is that your browser unfortunately doesn't give you full access to this low-level stack that would allow us to establish a TLS connection um over Hopper directly that's why we need a a dedicated app that's install on your on your laptop but otherwise it works in just the same way but because there is no single VPN server it's being rooted via multiple hops in this um Hopper Mix net um yeah you don't have single points of failure or single points of data availability which basically uh means data harvesting potential um I don't talk much about Hopper here um you can find more uh information about that it's a mix net I
will say so data packets are not just being relayed directly but in every hop they're being mixed in another traffic and that's how Hopper is more private even then T cool um this is actually a hard problem and since g98 uh passed about 3 weeks ago I will not be able to give you a full demo of that with first Milestone at the beginning of next year and I just quickly wanted to talk a little bit about why this is hard so there's a thing called the anonymity trilemma so what we want typically is strong anonymity that's kind of clear low latency and low bandwidth overhead and
we want to get all three of them so that is hard and you have to make some trade-offs here to get that right so for example you can imagine if data packets are hopping through multiple hops in this network that takes longer time than a direct connection but you do get stronger anonymity for it and likewise if there's more traffic going through this network and through a node you know you have more bandwidth overhead so if you have a metered internet connection it's not so cool but again it gets more private potentially with shorter latencies that's basically what this triangle what this triangle is about additionally as a user uh you want kind of protocol agnostic integration so you want to use this for you know for for web services you know like cwap but
you also want to use it for streaming services they don't use HTTP but different transport protocols under the hood and finally you want seamless ux right so you want this thing to not be too quirky on the integration and we will get that right but that will take some time and that's why we're working on a step-by-step approach here now the first step to get there um we call actually unlink HTTP and it's something that I will also show again in a second uh it's just my little screen here is turning off all right so what is unlined HTTP unlink HTTP you could say is a very early precursor of nosis VPN and it allows you to not protocol agnostically
as I just said but in a specific purpose fashion make HTTP calls so what your browser does when it fetches you know these funny icons for example that we've seen or web content from a web server and that is already possible right now so you use this unlink HTTP Library you can directly integrated in a browser you do not need to uh install anything on a on your laptop so that's kind of cool um yeah and with that you can uh fetch content that is being served through the hopper Network now uh I also want to be clear there's a bunch of caveats here so in this first version Hopper is like Hopper Association is both running the entry and the exit nodes so that is
centralized yes that is not better than tour but it is already better than a VPN and we'll see in a minute why um but yeah so there's a bunch of caveats this is not the final version it's worse trust assumptions it's more centralized and is less performant than I hope the final version will be so let's get back to our token tracker right because our token tracker um you could see here on the right side it exposes my IP address so right I made this search it requested these icons from a from a web server it got the response and could render them and it disclosed my IP address so what we have actually integrated in this uh token
tracker is exactly this uhp JS Library so what this does now is um let's see if it works because this was deployed uh by the guys like two nights ago I think yeah so what do you see now on the right hand side is so first of all you saw that the icons did reload right it was maybe taking a second longer or so but we do see on the right hand side is not my IP address anymore but like a bunch of different IP addresses which is serving these individual requests so yes they're all in hink key because apparently that's where the data center is where we uh host these exit noes but you can see why this is better than a VPN right so this is like a VPN
where you switch your your VPN server for every single HTTP request so if you do a VPN switch it on off on off on off and and switch the server cool yes this is about as good as as uhp is uh today if you can you know switch your VPN server with every request well that's the way to go um and sure that's not that's not many addresses right so we have I think currently about uh five exit noes here for demo purposes that's why you see some IP addresses being repeated uh but even that one so what is what does this mean right so even this exit node doesn't see you because there's a multihop relay so in this demo we have two Hopper nodes through which this is relayed so even this exit node
doesn't know you right they can link you because they got a data package from another intermediate uh machine good so that was a quick demo of uh HTTP and uh as outlined here this is not uh you know it's not great on the other hand it's actually kind of cool that this works without installing anything on your browser and the actual trust Assumption of this should be that this uh exit note should work alongside a web server right so this thing should kind of run on premises of any um yeah web application so if you want to check that out please come talk to us or uh one of my colleagues uh from Hopper
running around here and happy to see how we can make that happen to bring privacy to a web application um yeah that you that you have in mind and yeah finally uh if you like this we have a few more demos Solus talked about the problems with nfts um if you want to Mint yourself a non-private nft uh you can do that at mint. hop.org it's going to take a minute to load this so you see a few uh metadata of of mine here um or if you want to check out what your wallet is doing or doc your validator you can find it out the website is called nosis vpn.com and
yeah with that I would close my talk thank you again so much nosis da thank you nosis thank you all of you for your attention and make etherum Cipher Punk again thank you thank you thank you Sebastian uh I'm thoroughly scared now when nosis VPN uh uh do we have any questions for Sebastian right here in the middle thank you um well um this is looking great um I was wondering if you could talk a little
bit about uh privacy for uh validators which is a great concern in in among dap node users uh like a lot of them are very concerned that uh you know like their isps are going to know that they run um x amount of validators and that you know like their funds are going to be like dogs so I was wondering if you could talk a little bit about the project but from validator perspective yeah uh happy to give you a quick tldr uh the quickest is it's worse than you think um so validators on ethereum are not private right so we did a we did an experiment so we took took a lighthouse client on nosis chain modified it such that on every attestation which happens
once per Epoch we Harvest and store in a big big database your pup key and the IP from which you got it and with that we can link the two right so that's actually kind of messed up because with this we could identify all of our team members were running actually depb notes in their homes so we could correctly identify even without crazy you know uh data science approaches the IP address of every of their pup Keys why is that bad because it's also in ethereum known ahead of time when is your slot to produce the block so I know is this guys turn to produce a block and I'm right after them so I can dos them or attack them in any other way for 4 seconds so 4
seconds is so short you will not realize that your Netflix stream was even blinking right so you don't even realize it but for some reason that you don't understand you missed the block the guy after you is kind of happy because they had these high value transactions and me rolled over so yeah that's a problem now I want Hopper to solve that um we will get there we consciously chose to go for the execution layer first because that is extremely latency sensitive so you have only about actually not even 4 seconds so you have around 2 seconds to publish a Blog and if you mess that up for example because you have a privacy respecting transport layer well then you just missed your block rewards and you're going to be very very very pissed off at your setup and I don't like
dealing with very very pissed off people that's why we started with something that's a little bit simpler optimize the system system I'm quite confident that we will eventually get there but it'll take us some more time I would say the distributed valid dator Tech projects out there you know divas and so on they made this work they are battling with similar problems so that's why I'm confident we will get there also another question for Sebastian if right here um just a an easy one what's sort of the the number of Hopper nodes that you would like to see for for good
anonymity in the now and in the future yeah so currently the network has a little over 400 noes online and that's that's quite nice uh that's quite nice there's there's two reasons for which I would like to see high numbers the first one is anonymity set right the larger the set of potential routes in the network the better it is and the second one is bandwidth so actually Network like Hopper unlike blockchain scales actually has pretty cool scaling properties right it's it's perfectly scalable in a sense that you add more notes the total bandwidth of the network gets higher because not every note needs to talk to every other note um so yeah I would say with these four 500 notes that we have right now we're definitely fine
for first use cases um I would definitely expect that to grow 10 or 100 eggs once we see actual web traffic going through this because you know so far we're talking talking about web 3 the web and what VPN deal with is so much bigger than any of this like when we looked for example at like some numbers of traffic or even Revenue right the revenue of the VPN space is 45 billion like if we talk about even ethereum and all of that that's a joke compared to the revenue of that right so yeah um please run notes uh please get a DB note um because we will rely on you guys we have uh one one minute left if we have another question for
Sebastian I was just wondering how do you see adoption of those privacy Technologies um like who who do you think will drive that adoption will it be the daps that integrate this JavaScript library to protect their users will it be the users themselves installing plugins to use the VPN how do you see the split there between individual and and kind of dep responsibility yeah it's a good question so I'm I'm I'm a strong proponent of privacy by default we have to move away from you know only only the North Koreans use tornado cache to all of us use Tornado cach by default because that's the only ethical right way to go and you know everybody has to use onchain privacy everybody has to use uh
transport privacy it needs to be privacy by default there is no other way to go now how do we get there um you know in in some first steps is going to be a tough one so there's because there's multiple ways how you can do it right so with this at JS Library that's a way that we can do today um but that's only going to be selectively for some deps that you know integrate it so if the deps integrated that's the way to go it's seamless for the user but you know if some deps don't you know get that act together and you know are not sufficiently private users can always uh upgrade by installing a local client so I I kind of like that thank you so much Sebastian thank you [Applause]