Private access to decentralized data
ETHCC 5 · July 2022 · 12:46
Will Scott surveys private access to decentralized data, using IPFS as an example. The speaker discusses reader and writer privacy and how independently verifiable content changes the constraints faced by conventional web-privacy systems.
Speakers
Topics
From ETHCC 5, hosted by Ethereum France.
Transcript
uh my name is will I'm at protocol Labs I'm going to be talking about private access to decentralized data um what I mean here is content addressed or hash address data uh where we've got uh integrity and thinking about how we build in privacy uh in our interactions with uh the data that we're using uh behind a lot of web 3 stuff um to set the the scene and why we care uh amount of data that we've got going up exponential curve um but also our ability to compute and do analysis over that data uh also going up into the right um and we're in an interesting time where you know so this is this is a graph of just like internet freedom and the number of non-free countries going up countries and people in power doing
the analysis they can increasing surveillance we're headed on a path towards sort of a totalitarian highly surveill world if we go there going to be hard to get out uh and it's pretty important that we think about how do we make surveillance on the large amounts of data we're creating hard and we've got an opportunity to do that now um so I'm going to start by talking about more specifically the problem statement that we're going after um and and framing what is private access here then I'm going to go through a couple options uh I don't have like a solution of how we're or how the community should be approaching private data uh but more it's there is a bunch of opportunity and
there are paths at least that we're going to be trying to prototype uh and I'll finish off with with sort of the the things that seem most promising and how we want to sort of increase uh attention on this space so let's let's start by defining what we mean when we're talking about privacy there's a few different things that come in here uh the the first I don't know bit that you talk about is linkability so can I link or who can link between uh a user and the access right so that's that if we can dink if there is in no way to correlate or or gain uh an assumption then you can talk about having UNL when you talk about unlink you still need to think
about what is the pool size that the access could be confused with and that brings you into a k anonymity discussion of is this uh access now within a couple people or is it within thousands of people um and so you've got this concept of of strength of anonymity uh that comes out of how large uh of a sort of additional set um not all mechanisms will have this uh but it it ends up being common in many cases that you want to talk about sort of how much noise you've got you've also got a bunch of statistical um models about that happen when you inject noise and that ends up living in this differential privacy form and so that's you know how much they know uh how close or how much perturbation needs to happen uh in order to m ask things I've sort of been vague
on who knows but you've also got a threat model right that that you're going to typically be bring into so uh any sort of anonymity that you're talking about is going to be in the context of the power of the adversary and so is that adversary just some other user what sort of resources do they have compared to a user is this someone who can surveil all of the links in your network or only a specific geographical region can they compromise nodes and so the the power that you're giving to your adversary and ends up being probably one of the most important factors in what you can say about your privacy guarantees because there's always some adversary that can like do everything right if they can actually either either if you give them the ability to break cryptography or give them the ability to compromise all of the nodes in your
network you you've got nothing left so it's what is this range between realistic and extremely powerful uh that you can set your adversary model to ends up being sort of one of the important dials in talking about anonymity or privacy all right so I got ipfs here but this is this is very much just representative of General distributed data there's plenty of systems here we're going to make this problem a little bit easier by talking about first a storage step and secondary uh a retrieval step that storage doesn't necessarily need to be pushing but it's an advertising it's a someone is publishing or making data available and later someone is retrieving and so you want you can think about those two steps
differently right and so so to make that like more clear about what I'm talking about how do I get that storing or publishing step Anonymous in our world I'm going to make that easy for myself by saying get cryptocurrency use a mix zcash Monero something to unlink it from yourself go through tour and send it to someone who's going to take file coin or something into a jurisdiction where it's legal and if there's any jurisdiction where that's legal you can probably push your data to some decentralized system and and get it up there without it being linked to yourself and the compromise here is that that has pretty high latency right we're not we're not trying to say I can like in real time publish new data to someone else but if I'm willing to
wait I don't know half an hour or an hour to like go through these steps and have tour and I don't care about latency on publishing I can eventually make data available uh in a decentralized way um and that's probably true with most of these systems that that we can we can get data up to some jurisdiction where it's it's legal even if it's not legal in all jurisdictions as long as you're willing to sacrifice latency uh and and so if we say that that's good enough for a lot of data especially when it's immutable um then then we can focus mostly on reader access uh and and how do you then pull down that data because pulling down the data ends up being sort of this place where if you're making data accessible around the world you probably care about latency um and and
so getting that content and figuring out where that content is ends up being the hard part um so we can look at what's what's out there today in terms of how you would get data the things that have scaled where you're getting a dlink user access um are are either onion routing or mixnuts uh for the most part so so tour is using onion routing that means your request is going through successive indirection Hops uh and and also uh layers of encryption such that the between the entry and exit of of the mixnet there's no node that knows both the source and the destination of the request uh Nim is doing a similar thing in a blockchain setting the the trade-off here is
latency again that that by going through uh three random nodes in the network you're ending up with global latencies of hundreds of milliseconds uh at least to get to get much strance of of privacy you can look at things like signal which are using full dis full encryption of messages to to hide the contents um however their their answer to access pattern privacy so being able to know who's talking to whom is both a central server where they know um and also their ISP knows um and then for the really sensitive stuff like your address book they're putting it into a secure Enclave with sgx and so they're just relying on a Hardware security and that that you trust Intel so it's moving it to try and reduce scope um but there's
not a cryptographic Assurance here of an unlinking um that said like they're at orders of magnitude more than these other systems uh and so there is this benefit where if you if you go to something that's that's just containing it centrally but not having the latency impact you can make a system that's more useful so how do we get to privacy so if you start with something like onion routing you've got a bunch of options which is that you should really be thinking about how do you make these sorts of systems aware of hashid or self uh identifying data you've already got the hash you don't need to go to a single origin but rather you should be going to the replica of it that's closest to you you've got a question of can you learn this on the client so that the client which is in a tour- like
system Source routing and choosing its hops is able to choose those hops aware of where the various replicat are or is that something that your exit is going to do where the exit is aware like a ipfs browser extension or something like that and is able to instead of going to the actual origin say okay this is a hash it matches this URL pattern I'm going to find the closest replica or I'm going to have a cache because since I can verify integrity at both of these stages uh it's less that I need to go to the single origin as the trusted place here we're working on primarily uh inside PL uh on thinking about how we go from the current model which is a Content routing
of finding who has what uh and that currently is a DHT and how do we make that more private so that your request at least is not leaked to anyone other than the actual owners of content as I said right now it's a DHT we want to give an abstraction that is logically centralized while still being decentralized so that you can reason about it as a database uh we're we're setting up a bunch of really big nodes that will be able to have that whole data uh and that then gives you the ability to apply a bunch of privacy techniques to it uh even as we start to sh it but it sets an interface that that gives us a lot more opportunity uh to reason about uh the the loss of privacy uh so for example as fully homomorphic
encryption gets better or or as p uh increases in power the expectation is that you can apply these techniques with a large Central database to be able to start to answer questions who has this given piece of content without the server that's answering needing to know that this may only work initially on the sort of hotter caches that are smaller scale uh rather than the full content database um but for a large number of queries that's going to be plenty so right so if you look at all of the content that has ever been created or published that is Hash addressed that's going to be I know 10 the 15th is our current estimate of where that is and that's growing but it's just like a lot of even just entries in your database line you're not going to pull that out
to a user local ISP but only like orders of magnitude less than that is ever actually accessed um and so even if you were just making a cache of every piece of content that's been pulled that may be um plausible to to do these sorts of techniques over um even if we don't get FHA in the next year or two uh down to a level of performance where we're going to be able to um just apply to to put the entire database into an encrypted envelope where the server is oblivious you can at least use two parties to Blind uh this is sort of like the common uh I don't know it's an easy solution but it's not as as strong of a a thing so so you'd have one uh entity control an endpoint that people make
queries to uh it strips off one layer of encryption and then makes the queries back to a different entity that controls the actual database so the database lookups doesn't know the individual sources and can't link them back to uh the users but you could have both of those in the same Data Center and not end up with much latency impact cool um I'll end by saying that we're also putting a bunch of uh funding uh and spitting up a funding program around this problem uh this goes under uh a larger effort that PL has been working on called funding the commons you can find more about it at funding the commmons .io um but we're we're spinning up uh trying to fund uh at least five projects both academic and implementation or prototyping of additional mechanisms around Anonymous
communication um and basically the thought is when we get to five years from now we don't want to just be looking at this and saying well okay the only thing that's got over a million users is mix Nets like there's nothing that doesn't do uh latency as the trade-off we think there are other mechanisms we we have seen other mechanisms that are already in Academia but just haven't gotten to prototype or implementation phases and so we want to help get prototyping happening on these other mechanisms um and then we also think there's plenty of more mechanisms and lots of stuff moving fast there's a QR code uh that links to an open problem that'll get updated with a submission site uh over the next month as this finalizes we've got an external review board that's going to look at proposals um but we're expecting this to be a
couple million a year that we're pushing towards uh external groups generally thinking about how do you deal with Anonymous retrieval uh and especially around um content addressed support uh although even not strictly that cool so I think I'm about on time uh I can take some [Applause] questions all right thank you [Applause]