Vitalik Buterin I Hardening the Ethereum Ecosystem Across the Stack I censorship.wtf 2023
ETHGlobal·Wed, Oct 9, 2024, 12:00 AM
Speaker
Ethereum Foundation · 24 talks
'censorship.wtf' Talks and workshops took place in both ETHGlobal Istanbul, DCxPrague During Devconnect 2023. A full day was spent discussing censorship resistance in the context of Ethereum L1, rollups, applications, infrastructure, hardware, and more. As Ethereum becomes more consequential and its growing ecosystem complexifies, opportunites & pressures to censor increase. While these risks do get discussed, conversations on censorship resistance often center on a specific part of the stack — censorship.wtf was an attempt at approaching the topic head on. ----------------- Follow us: https://x.com/ETHGlobal Check us out: https://ethglobal.com Email us at: hello@ethglobal.com
Transcript
[Music] I thought that uh what I would do is take some of this uh discussion around censorship in a broader context which is absolutely super important and uh bring it uh kind of I wanted to say Down to Earth but like ether is sort of up in the sky so like bring it down to the sky um and think about some issues that affect the ethereum ecosystem specifically um so hardening the ethereum ecosystem going all the way across the stack um there we go so the interface wi right this is uh one of the big fers of practical e the ecosystem sensorship resistance that I think is uh often not appreciated enough and um actually when I was on a panel a couple of days ago and with the different layer 2 company companies and I asked them what is a decentralization and standardization issue that is more at the applicational eray that they were concerned with interfaces were actually brought up as one of the number but basically the number one issue um so K here actually knows what the which interface this is unis swap great okay that's uh glad to hear people in here you know used Unis swap uh but this is an this is an interface and you could use this interface for converting coins into converting other coins um one of my own addresses has actually been banned from this interface because I used tornado cache at some point a couple of years ago and so this uh you know is an issue that affects me personally to some extent but uh this um basically what there are lots of daps and a Dap um on chain is fundamentally just a contract and it's a piece of solidity code or sometimes Viper code sometimes handwritten evm code but for most people in order to practically integrate interact with these daps they would needs to go through some kind of interface now in some cases the interface is fairly simple and the interface is like basically just a nice and pretty wrapper around putting the right numbers into a function that go straight into a contract and in those the interface matters a little bit less because if you're really being censored then you can go and L and you can figure out what fields to type in if you go to Ether scan. IO and you go into the right contracts tab but unfortunately those situations are also the situations in which writing alternate uis is the easiest the more challenging situations are situations where either your application is not just a contract or applications where the contract functions are so complex that you just have to like provide messages from the outside in some way to interact with the uh application right so here um all all that we're doing is uh swapping tokens so this is on the easy side but increasingly we have applications that interact with layer 2s applications that interact with all kinds of custom layer toos applications that require you to sign offchain messages and like how how do we even start signing offchain messages what you do if you're a smart contract wallet and you need to be ERC 1271 compatible I and so this is like one of those areas where if you don't have the official interface then it's kind of hard right um and it's it's especially harder if your application depends on centralized apis right if your interface depends on centralized apis then like you can't Fork the interface so like you can't even just like you know do like control View and view source and copy paste the source because uh you know like even and then like it talks to specific things and you're not really able to untangle the application from those things so a major Frontier in increasing sensorship resistance of the ecosystem and I think especially for really critical functions like being able to move tokens across uh different layer TOS is actually having protocols that are more open as much as possible and for every protocol that exists ideally having an open source alternative interface actually exists for it right um so I think this ideally this would be something that the ecosystem tries to adopt as a standard I think one of the best tools that we have for this is social pressure basically along with pushing applications to support for example things like ERC 1271 so they can be actually friendly to Smart contract wallets also push for at least one alternate UI to actually exist so that's the interface wire now centralized note provider ERS are one of these other really important bottlenecks right basically every one most users interact with the ethereum blockchain through daps and those daps um generally interact with the blockchain either through a centralized provider that is maintained by the DAP itself or through a centralized provider that is maintained by the users wallet and both of these are again censorship vectors um and and uh both this is a uh an area that is a challenge and it's an area that is also I think much worse for l2s than for l1s one of the things that is important to think to realize is that the ethereum ecosystem is going through a rapid transition from everything happening on L1 to everything happening on l2s and one of the things that's super important for us to be cognized about is that as we go through this transition there are certain fundamental values that we needs to fight really hard to avoid going backwards on right like there's a big change and the default Direction in a lot of these changes actually really goes backwards on a lot of key questions right centralized sequencing one simple example um even if you look at how ens works right if you want ens to be usable on layer 2 we have the ccip protocol that allows you to have a domain inside of a contract and then all subdomains of that domain can be issued transferred whatever inside of a layer two and the correct way to do this is that the ccab contract actually checks like merkal branches of the state inside of that layer to so it's actually trustless but the lazy way to do it that unfortunately yeah most people are doing today is to just like rely on sensualized providers all signatures and like we need to really make sure that we're not doing things like that because every single one of those trust vectors is also a censorship vector and furthermore every one of those trust vectors makes it hard hard much harder to have have an ecosystem with lots of independent providers because we don't just have to care about whether or not the provider exists we have to care about whether or not they're trustworthy and that just naturally tends to W more of an oligopoly which creates more of a censorship risk for leer to you know node providers today are even more centralized um and so this is again one of those things that I think is a a big challenge to the ecosystem now what can we do about centralized no providers so I think there's um a couple of different directions that we can take the more moderate direction is basically to add armoring to the existing centralized providers and encourage users to connect to lots of them at the same time if you do this then you have a one of Interest model right so we have like client protocols so there's something called Helios created by a16z which basically is a light client that verifies the sync committee um which allows you to stay up to to date with the ethereum proof of stake chain this is good um but if all that you have is headers then like that's not enough right most apps don't just need headers they need actual State um so if he wants to verify like actual specific things that are happening in ethereum you need headers but you also need providers to give you Merkel branches and then those Merkel branches can actually be verified against the the headers and like transaction and state roots that you have and then you can actually have this kind of fully verified pipeline where you have a pretty high guarantee that the thing that the server is beating you is actually correct so this is one part of the puzzle right the part of the puzzle is basically increasing the security that you get of the answers from a server the second part of the answer is moving from talking to one server to talking to end servers this is I think a major theme in censorship resistance which is uh increasing openness and increasing um security are some um if if you do them at technologically then they actually mutually supporting right and the reason is that if you increase security then you decrease the trust requirements on anyone providing you information and that allows you to be more open on that side right um so openness versus security is a tradeoff frontier but if you can improve on one or the other independently then you're actually pushing the that entire Frontier forward which improves on both ideal long-term solution better decentralized protocols ideally we would not even have to like name specific IPS right and ideally as much of this as possible would be done through things like the portal Network Layer Two sequencers um so again layer 2 protocols ethereum ecosystem is going through a rapid transition from being layer one dep dominated to being layer 2 dominated for the sake of security but the uh problem is that um it's very challenging to make sure that we actually maintain these fundamental values that we really care about um so later to sequencers in a lot of cases are centralized and uh in this is a problem because it's an extra sensorship vector and in some it's also potentially a take away your money Vector right one of the things that's important to remember in the context of defi specifically is that a censorship attack can often turn into a takeaway or money attack because people's positions in financial systems are so time dependent right if you can walk up someone's money for so time then like often you basically get a free option against them which means that probabilistically you're taking away their money um so strategy one force and cision protocols right protocols where if you are being censored inside of the ler 2 you can go and get around that and you can publish a transaction straight on chain and the protocol forces the L2 to just go and include that transaction in the next block this is great um who here if you got censored would know how the hell you're supposed to do a for forcely cision proceed teach okay cool two hands up that's amazing okay you two can you just like after this do a breakout session and like teach everyone else and like we have to scale this to the entire world so like you to just like do like a course you know like you know $199 an hour have like a scammy website and like go and teach people how to do Force inclusions okay the this is one way of doing it but the other way of doing it is we need forc inclusions to also to have good uis right any one any anti-censorship strategy for it to be practical needs to actually have a good UI one um historical analogy for this is uh who here is familiar with OTR messaging this is off the Record messaging protocol for built 20 years ago the uh one of the co-authors of it um Ian Goldberg just actually happens to totally Rand um randomly be at the University I stayed at for eight months before I like dropped out to do Bitcoin um so and ended up randomly learning a bit about that but one of the really important things that you know he impressed on me is that OCR has this property called deniability right which basically says that like if you make a message you cannot prove that like that the other side um made a particular message or you cannot prove to someone else that you made a particular message and this is an important privacy property because it means that even if you get coerced you cannot reveal what the other side is saying now how do you do deniability the way that you do deniability is basically by creating a protocol where it is easy for the other side to forge messages right so you make a protoc where if I have the ability to sign to make a message you have the ability to to also make a message using that exact same procedure the big thing that OTR made sure to do is they did not just have that as a thing in theory but they also actually had a UI like if you want to forge a message you could go and Forge it so this is I think an example of like where if you want a capability to exist for the purpose of some like censorship resistance related goal you need to like actually have the UI for that exist right so we need uis to exist for Force inclusions and ideally these uis would be created by independent organizations right so ideally you know you'd have like the rollup police and like maybe l2b wants to be the rollup police maybe someone else does maybe we need to like do the anarcho capitalistic and have like five competing rollup polies and that will actually work here uh but uh you know like ideal we need to have independent organizations like making creating interfaces for these making sure they actually work strategy decentralized sequencing basically like actually create an open sequencing system where LS of people can come in and participate Crossway or two bridging so Crossway two bridging becomes really important you have coins on optimism today but you want to have coins on arbitrum because of the application that you just discovered and you want to go trade in you want to move from one to the other within 30 seconds well it's uh lots of options today but they're either centralized or they are needlessly governance heavy and and this is something that requires more Open Standards so this is a diagram for a project called Unis swap X um so they're actually working on something like this basically what we really need is uh not really like these centralized l two bridging protocols what we need is essentially an Open Marketplace for cross chain friendly limit orders right um and as Twitter told me like limit orders are basically 99% of what's useful about the whole concept of intents so you know maybe we should like go do limit orders um the peerto peer layer so relatively little attention to peer-to-peer networks compared to other layers and one of the reasons why I uh really appreciate Kanan is just because he know consistently actually cares about this stuff right and you know his various umbrella of fancy organizations actually contributes to stuff like lip P top and ethereum is actually using lip P top um and thinking about the pwp is like really valuable because even if you have a fancy theory that says that like you need to pay $5 billion to 51% attack this thing realistically you can like totally pone the peer-to-peer Network for like less than 5 million probably even 500,000 right um and so a strong adversary can easily become more than 90% of ethereum nodes the network is probably quite vulnerable to internet sensorship at multiple layers so this is something that could be needs to be addressed in multiple layers stronger anti- denial of service um so one of the ideas that we could do is uh so this is something called the rln protocol it's a zero knowledge um Cil resistance protocol it's a in the same line as ideas that I've published around like let's take you the original hash cach like you know like which was a proof of work anti- spam protocol that then inspired proof of work consensus right so you take Pro you have proof of work Cash Cash which inspired proof of work consensus proof of work consensus inspired proof of State consensus and and now let's have proof of stake in sentus Inspire proof of stake hash cash right and so you have coins you prove that you have coins and then that anonymously gives you the right to send some limited number of messages for a period of time and we're going to do a fancy math AKA two point speaker line stuff that you hopefully learned in nth grade to actually like make it um make it possible to send a limited number of messages but keep a limit on how many messages can be sent and then we can have a design where if you have a peer-to-peer Network and stuff H starts going wrong we can identify who the validators are and prioritize them so that at least ethereum actually continues to be safe and sane the social ler who here remembers the whole Bitcoin thermos uh small blog censorship situation basically one guy was the moderator of a forum and started like basically censoring the hell out of anyone who did not agree with his opinions on the way the Bitcoin black size War should go and he basically started just like Banning every um everyone who um said things that did not agree with his views and he even um said these famous lines you know if 90% of our Bitcoin users find these policies to be intolerable then I want these 90% of our Bitcoin users to leave so you know Quan talked about digital totalitarianism we have digital totalitarianism um so the one of the questions is like can we make the ethereum social layer more robust against attx right if ethereum becomes a big deal then one of the ways in which people might try to attack a theorum is by attacking the social layer and like we attacks against the social layer totally are possible right um so the way that it will work is not through someone trying to like do weird manipulations to force ethereum to adopt a particular policy what's going to work is probably the same thing that generally works better in manipul like these social media manipulations against democracy is which is you don't try to push one side of an issue you instead like if basically empower the worst people on both sides and you just kind of generally create chaos right like we there have been literally confirmed reports that like I think at one point like the the kemin supported both sides of some BLM rally like they intentionally do this this sort of stuff right like they basically try to like not optimize for an objective but just like optimize for the high conflict parts of both sides of any particular issue this is something that you know Bitcoin and ethereum ecosystems could totally be subject to so I think in terms of what do we want to identify which plats we're worried about and we want toidentify the threat model and particularly want to think about like in internal risk versus external risk and like this is a not necessarily very sharp divide because external thread actors can easily try to create internal risk because internal um attacks just like can more easily create damage right but like as one simple approximation like if you look at Twitter Twitter is a platform that is not controlled by the community at all right and so Twitter is probably not going to pull a thermos on the Bitcoin or the ethereum ecosystem but there is external attack risk right like maybe Elon decides that Elon has opinions about ethereum he did have opinions about Dogecoin now on community hosted Bitcoin forums such as the ethereum foundation um hosted know ether research there's much less external attack risk but there is more inside the community risk right so better understand specific threat models and another thing I think that's like one very specific to do is better forms of uh signaling right one the biggest risk to a blockchain from the social layer is basically a risk of a 5050 split hard Fork as a result of disagreement over some decision that like realistically probably doesn't warrant a community split over right and one of the ways of mitigating that is to have better forms of signaling ahead of time so that people are aware of like which way the the wind is blowing in terms of consensus back when the Dow work and other controversial stuff like e999 a failed attempt at rescuing the money stuck in the parody wallet um and some issuance reductions were happening there was a tool called carbon vote that was developed that allowed people to basically vote with their eth and you could see which positions were more popular it's a non-binding voting mechanism it's still a voting mechanism so we could do carbon vote we can also extend that to do forms of signaling that are not just eth dependent so back then we had eth and we had GI Hub and Reddit voting now we have popes we have Zoo stamps we have you could use you know zoo pass with def connect tickets you could use like any kind of Pope there you can use uh like any kind of like proof that you have vest Dame all kind you can do some kind of like zero knowledge score over all of them like actually use this zero knowledge identity and reputation stuff to try to create better forms of signaling to identify like who actually is a member of the ethereum community with standing to like real participate in a particular poll so conclusion ethereum stack has lots of layers a front door 51% attack is by far not the cheapest way to make ethereum break or to censor ethereum right um like who here seriously thinks that if the US government um or any other government wanted to censor um ethereum they would like literally go and like buy up 18 million eth and they would like grab up the validators um here thinks that if they wanted to do that they would buy up 60% of the Li tokens and make a lios sensor see like that second thing is like way cheaper than the first thing but they would not even do that right you just like go through all of these like other things that are much weaker that we don't even think about and so it's worth moving forward to better Harden all of the layers and really think about all of the different layers technological infrastructure social in order to make ethereum as hardened as possible
Automatic transcript — names and jargon may be misspelled.