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

Loading player…

To Be Or Not To Be... On-Chain. Privacy and Decentralization as Systems Scale - Henri Stern

Ethereum DenverSun, Oct 9, 2022, 12:00 AM

Transcript

system scale please give a warm welcome [Applause] hi folks um congratulations on making it through the gauntlet uh great to see you all so yeah i want to talk about what happens as basically we move into a more decentralized world as web 3 becomes a more common paradigm what do we do with private user data and so that is what i'm going to be speaking to you about it for the next 20 minutes but i'm going to take a step back and introduce myself uh i'm henry stern i spent the last few years of my life working on the um consensus algorithm for falcoin before starting in a new company called privy we help developers take user data off chain safely so i've been thinking about this quite a bit i'm excited to dive in so i'm going to do this in sort of four parts so i'm going to start talking about the sort of core tension at the center of the the space we all work in which is to say what happens as we take more and more data on chain to the most private data that we have then i'm going to talk about the state of web 3 today as pertains to this question before going into some heuristics we can follow as developers to try and build better products that are both uh more decentralized but also respecting of user privacy before sort of charting a course for the path ahead as i see it so let's dig in first you know where were we uh web 2 is really sort of predicated on the client server model as users we've sort of handed off state to the server the server is the one who knows what exists in the system and can reason about sort of any sort of truth so we are basically trusting the server to keep track of all our records of all of our data of all of our interactions and this is where obviously blockchains are useful in october 2008 we get the bitcoin paper and this is the introduction of a new primitive that we have which is in a sense decentralized state peer-to-peer interactions you know through bittorrent and other systems used to be super short-lived you would have one transaction basically you know i want to download a film or something like that and you would be having these peer-to-peer interactions around sort of this transient state exchange but there was no way of keeping state around for a long time what the blockchain introduces is a public state that everybody can keep track of and so this allows us to build much more complex interactions built on peer-to-peer networks and so now we get sort of a world in which every peer can reason about the state of the network because the state itself is public it's unchained so this is awesome and obviously it unleashes a wave of new applications and products being built and you know we're all here today for that reason but what do we make of this web 3 thing how does you know the public nature of the blockchain interact with the way in which we should think about our data and our users data as we build products in the space so web3 aims to make the internet more decentralized verifiable and secure you can take that as a maybe starting definition um and all of this i think really stems from transparency which is to say we have a public state we get to work with so as a node i don't need to take you you know the service provider's word for the state of the network i can actually verify it on my own uh and so transparency my ability to make these verifications is at the core of everything that what three is trying to do and yet there's the second goal this world word that people keep talking about which is data sovereignty now what the hell does that mean you know we have on the one hand transparency on the other hand we have data sovereignty which is to say ownership as a user um i get to be in charge of my data as it works in these systems and i've always had a bit of trouble sort of squaring these two things together um now what does data sovereignty actually mean it means expressive revocable permissions it means you know i can give a service provider access to my data but i can take it back it means data portability there's no lock-in i can go from service to service taking my data with me and ultimately it means user control and i guess i want to start teasing the tension a little bit user control to me is a form of centralized control as a user if i'm in control of my data it means i can censor you if i don't want you to have access to my data anymore i can stop you from doing so and so we can sort of see this tension playing out between user control on the one hand and data portability on the other user control is sort of a prerequisite for privacy like me having access to private systems means i get to make choices about who accesses my data and data portability on the other side is you know derived from decentralization so how do we square away these two things and i guess i'll jump right in by basically saying that we start by not putting private data on chain so i i'm more or less done with the talk now but i've got another 15 minutes to go so i'll find a way to make it work uh but you know at a high level putting private data putting user identifiable data on chain means you lose access to fine grain act to find green controls if i put encrypted data on chain and i give you the key i can't really take that back now there might be new primitives and new cryptography that allows us to do this in the future but today certainly it's not a good idea um and then i want to point to the fact that you also lose forward secrecy forever which is to say if i put encrypted data on chain and i lose my keys i'm not just losing funds i'm losing um you know all of the data about myself and we have to keep in mind as well that cryptography is evolving you know if you look at what has happened to computer systems in the last 80 years if you look at moore's law if you look at quantum cryptography the reality is that ciphers are going to break and any private data that you think you've put on chain today is likely to become public data tomorrow um and so i am with padme on this one which is to say i am very worried about developers putting pii putting personally identifiable information on chain and so you know that's the first part and with that you know you may ask what constitutes private data and so let's take a bit of a side quest which is let's try and determine you know how should i think about my user's data as a developer how do i decide what i can and cannot put on chain and so you know this is obviously a huge topic which we could spend much longer talking about but at a high level you can think of like the most private data this is personal identifiable information this is personal health information this is social security numbers a name and address stuff like that that's the most private it gets then you have other identifiers this could be geographic data this could be ip addresses things that could be anonymized with a bit of work moving to behavioral data order history you know this is the sort of thing that happens as i move funds say from wallet to wallet you could link these things together to determine like this is the person making these transactions throughout the chain so chain history obviously is public and finally you have non-user system data this might be inventory this might be prices and frankly this is kind of the bread and butter of blockchains like we use these systems because we want guarantees against price discrimination we want transparent pricing and auction models and this is the sort of stuff that we see in nfc marketplaces which help us build more liquid markets so if i had to draw a line obviously this is a spectrum but i would basically say everything left of this line should be considered private it can be used to identify users everything right of the line is public everything right of the line is really a good set of things to try and put on chain and the chain obviously helps us build better applications by having sort of a decentralized state where we can reason about these things everything left of it i think you should think twice in terms of how do you have this user data interact with your decentralized application um so that with that to go back to the title of the talk to be or not to be on chain that is the question and um to answer crypto shakespeare's question the answer is the data is private or identifiable really don't put it on chain um now why haven't we seen this happen we just haven't seen that much data leakage on chain beyond what's sort of publicly accessible today and the reason is that chains don't scale yet and so we've sort of so far been saved from this issue because putting data on chain is just infeasible it's too expensive obviously there's gas costs if you needed to make a transaction every time you wanted to make an update to a database and it cost you 80 bucks it's not a very viable system there's throughput block time is slow there's bandwidth putting you know huge amounts of data on chains and feasible this is why we put say ipfs hashes of nfts on chain we don't put the nfts themselves on chain and so the reality is we've been saved by our own systems to this point but this is going to change and this is sort of where i'm getting to in this talk which is i think we're sort of at a crossroads where a lot of things are going to become possible that weren't over the last few years and now is a great time to start being a little bit more thoughtful around how we handle this this user data so obviously i think even a lot of you are probably working on scaling solutions this is proof of stake sharding l2s side chains state channels and there's reason i think that this is going to change over time now the question might be how are these changes going to affect privacy won't we get better primitives so we don't have to make these these trade-offs anymore and the answer is we probably will it's in particular i think state channels are interesting in that they sort of uh helped change the vision of what is ancient and off-chain it's not a binary thing it's more of a spectrum state channels are things happening off chain being reflected on chain so that's one element that's really interesting and obviously zk roll up zero knowledge proofs are gonna be very important to privacy preserving applications in the future and so it's tempting to think we can get it all you know ideally doge speeds up block time 10x increases block size 10x drop fee is 100x and then it wins hands down we don't have to make these difficult decisions anymore we get everything now obviously this ignores the sort of engineering constraints that we have to work under the reality is that you know to elon musk's tweet there's some tension between scaling systems as pertains to sort of transactions per second and decentralization and in the same way i would argue there's a tension between privacy and decentralization and so that would be sort of my second lesson in talk which is uh remember the trade-offs and everything we build we have to make decisions about what's best for our users and what's best for our products and we do well to remember that we you know are working in a space of trade-offs and we have to pick points in that spectrum on which we want to build and so with that i'm going to try and give us some tooling to make these decisions better to to pick these points in the spectrum so the question is what should i do with my user data as i'm building it up and i think the real question is sense is can this data be put on chain i guess i want to move us away from a place in which we ask we ask this question towards a question which is should this data be put on chain and you know i've talked to a number of developers who are thinking about putting user data on chain not because um they think that the chain somehow makes the data more private but more so because they don't want to handle the pain of touching user data like it's never been so tough as developers to handle user data you've got new regulation gdpr ccpa that you need to deal with um you're at risk of a breach or a leak completely destroying your reputation and obviously putting your users at risk and so a lot of people are tempted to sort of dump data on chains so they don't have to take this this issue anymore which is a huge dereliction of duty right i don't want to worry about this i'm going to dump it in a public state um the question said is should it be put on chain and the real question here is what guarantees do you need um first again acknowledging that the question of on chain is becoming a little blurrier and that we have a range of tools we can use to make these decisions do you need logic control do you need to be able to make century assertions about what's happening to the data in which case smart contract platforms might be great you know you can just use ethereum you don't need to put the data on chain do you need to make sure that the underlying data hasn't been switched in which case commitments to the data the sort of way ipfs works is good enough for you do you need to make sure the data is available over time which is really important to l2s for example in which case proofs of retrievability might be really important and finally maybe you actually need the data itself to be unchained but again as in all things this is a spectrum and i'm going to draw a shoddy analogy in consensus we have this this tension between safety and liveness so too i think with data which is to say we have this tension between putting less data on chain which helps prevents leakage and on the other side putting more data on chain which helps with censorship resistance um so again we have to remember the trade-offs but luckily we have increasingly composable primitives in this space for each of these questions we have a tool and some of them are lower level some of them are higher level um but we get to we get to build with the appropriate tooling and so this is sort of my next takeaway which is use the right tool for the right problem think through your application think through the behavior you're trying to engender and pick the right tooling for the problem set you have the dirty truth is that most products today are already hybrid people sort of you know talk about decentralization but be it in nfts say you know openc most orders happen off-chain you're signing a transaction that gets stored on a centralized server and then when orders are matched um the transaction occurs on chain this is already happening likewise in d5 a lot of these protocols have sort of centralized front-ends to which you're accessing smart contracts so we're already making use of you know as it were the d5 mullet uh which is fintech in the front define the back we're already mixing and matching tooling to get the right user experiences which is exactly how it should be um so again i'm to sort of extol composability i think your stock should really reflect the needs of your product and your users and the goal for us should be to build the right tooling so you can do this and so obviously this is where i'm going to plug the stuff i'm working on um we're working on privy and the idea for privy is to help developers take on user data off chain without having to silo this data and keeping users in control what that means at a high level is all data is encrypted in the browser directly by your users it goes into a private data store you can have interactions happening on chain on the side and when you need it back you can get the data back this allows you to build better ux you can associate sort of real-life data to on-chain addresses so you can build richer user experiences without having private data beyond chain and the goal for us is really to do exactly that which is to build better tooling so that developers have more optionality and have more room to build the right products without putting their users at risk with that i'm going to finish up by talking about the path ahead such as i see it um imagine you have a decentralization privacy spectrum we go from left to right from centralized systems to decentralized systems decentralized systems making it easier to verify things we go from bottom to top from private to public data where private data is easier to control i would say that a sovereignty lives in the bottom right quadrant is you know hopefully both more private and more decentralized but we have technical pressures keeping us from getting there and right now as developers we're sort of living in this band where our tooling allows us to to build things that are either more centralized and private or more decentralized and public and the really cool thing about the space and all the activity that we're seeing is that better primitives better tooling sort of grows the band so we can actually build better products with fewer trade-offs over time and so this is sort of what i want to finish on which is let's continue to build options i rip this slide from a talk from albert me who's an ethereum foundation member and um you know the the quote is from a book i haven't read but i like the quote which is the more dynamic the situation the poor your foresight the more uncertain the future the more the essential logic has to be of taking a strong position and creating options so i think my takeaway is let's take a very strong position not to sort of sacrifice user privacy on the altar of decentralization decentralization is a tool that gets us to an end and the end is user ownership um is is is yeah uh and so we should take a strong position not to make the sacrifice and to instead try and build systems that are once more private and more decentralized and so to conclude i think we're at a crossroads for user privacy in web 3 i think the next few years are going to be really important in deciding how we build these products and what happens to user data as we get richer experiences in the space i think you should keep your users data off-chain you should remember trade-offs as you build and always strive to build the right to to pick the right tools for the problem you're building against and you should embrace new options and primitives and to that end if you're taking on any user data that you need that makes you a little bit uncomfortable if you need to take on user data off chain please reach out we'd love to get you set up thank you [Applause] awesome we do have a couple minutes for questions

Automatic transcript — names and jargon may be misspelled.