The Prysm Problem: Exploring the Spectrum of Client Diversity

LisCon 2021 · 20 Oct 2021 · 12:55

Carl Beekhuizen, then a researcher at the Ethereum Foundation, speaks at LisCon 2021 in Lisbon. The talk, titled The Prysm Problem: Exploring the Spectrum of Client Diversity, addresses client diversity among Ethereum node software.

Speakers

Topics

From LisCon 2021, hosted by LisCon.

Transcript

okay hello everyone um i'm as i said carl beak from the ethereum foundation i'm an ethereum researcher i've been working on the beacon chain for the last several years and today i'm going to talk to you about what i'm calling the prism problem and yeah so let's dig in before we get going i think it's worth worth stating that i love prism i love the prism team and prismatic i think they do fantastic work this is not about them in particular but more about some of the issues we face that are belting into now okay so um ethereum proof of stake works a little bit differently to proof

of work from from the perspective of forking and that's that we we have these magic thresholds of one-third and two-thirds um where we can finalize information and add it to the chain or not depending on whether enough people agree so if we have agreement with a majority with 67 percent of people then any small fork that happens as has basically no effect but we get where it gets more interesting are in these these these intermediate zones uh where you could have a fork and some of it works some of it doesn't um and now we the chain itself is unable to decide what is the uh the canonical uh chain to

finalize and in the extreme case we have the uh whether the uh chain is that the a bad chain has more than two-thirds right so that the good people are only a third of the network and uh this this allows for them to finalize something bad which basically would require us to manually go in and fix something we really don't expect this to happen but this uh these are some of the eventualities we plan for um so how does client diversity tie into this and that's that's from the perspective of bugs what happens when you have a bug in uh the code right humans write code these clients although they're very robust have been written by

humans so there may be bugs um if we're in this first case and there's a bug and the client only has a small fraction of the network then uh we sort of ignore an all the bug and the chain continues on um if there's a split and uh it's about half half then the the bug chain will uh persist as long as the uh and as alongside the valid one but eventually that will get get resolved and in in the bad case we could accept a train with a a bug in it and that again would require us manually to fix it we have incentives to try fix this within the the beacon chain so if you're uh if if it splits in two and you're on

the uh uh the chain with a bug in it then you're gonna start uh depends on what the bug looks like if it just it just causes a fork you're gonna start losing rewards um and uh those rewards increase over time and if there's a major bug that causes flashing and you're running a client that has more than one third of the validators then you're going to lose all of your va your ether stake so you really want to be running a client with less than one-third of the validators so what does it look like in the beacon chain right now well it's kind of terrifying to be honest um this is the distribution of nodes approximately um and as you can see

prism has somewhere around 76 percent of the nodes which is really sub-optimal using some interesting techniques we can also analyze roughly how many validators there are this looks quite a bit more optimistic we can see at least prisons below the uh the magic two-thirds threshold but again this is sub-optimal uh from the perspective that there's still way more than one-third and dangerously close to that region uh all these numbers are a bit vague because by design we can't actually track people so we're looking at external factors that allow us to try to figure out who's running what clients so i've turned this the prism problem which is that we're currently residing in this danger zone here right at the

two-thirds mark at the right at the two-thirds mark of prism where potentially a bug and prism could cause the uh the beacon chain to halt and to accept non uh non-valid blocks uh i've heard this said a lot um that there's a potential to delay the merge i personally don't believe it but it will come down ultimately to what the community demands if everyone decides that this is unacceptable to have a massively dominant client then we could do this but i don't think it's worthwhile um some of the the ways we got here um ultimately i don't think it's that important and of all of these these uh these these points the other clients now have

adopted strategies and uh basically offer exactly what prism offers on on on these fronts um some other reasons we've heard why people choose prism i i like the name prism which is fair but i ideally not another thing that's that's been quite interesting to see is uh institutions have come back with that they figured prism was the most secure uh network uh so there was a secure client and that's honestly terrifying right as a larger institution people have entrusted their money to you and they are taking part of your rewards and for that you expect them to do some due diligence

they're literally earning millions for the service and they're not um and i think that says a bit about their uh where their incentives lie and i i think we need to demand better of of this uh so how can we address this uh if you are a homestaker i'd highly encourage you to try a new client it's really not as difficult as you thought i know the setup process initially could be a bit harrowing for some people it took me several hours and how i wrote part of the specification but it's not going to be so bad if you decide to switch now because you're already familiar with a lot of the concepts you don't need to generate keys again you already have that and so it should be relatively uh seamless process to do you know what

beacon nodes are you know how to open ports all these good things and uh we now have excellent standards for slashing databases which means you can really do this in a way where you can assure yourself that you you'll be safe uh i think a very important thing given how how large some of these institutions are is to demand that institutions use multiple clients if you're going to be giving them your money and essentially paying them to provide you a service they should be transparent with how they're doing it and not putting your capital at risk you can still help secure the network through these institutions provided that you demand that they are better um now the eatstaker team have done some

amazing stuff um and i saw some demos yesterday of the gui they're building the graphical interface so you shouldn't have to go through the command line to install any of these clients in the future which is really incredible and should help should help open up the uh the the number of people who can who can stake uh peer pressure is another interesting way if you know your friends are uh running running a dominant client or prism at the moment uh shame them try encourage them to uh to switch clients so it'd be uh really cool if we could get them to move away and this the final point here is that uh we're seeing these decentralized uh staking solutions uh gain a bit of popularity at the moment and and this was really exciting um we had rocket

pool launching recently uh obal announced uh last week i believe there's ssv network a bunch of others i'm forgetting right now lido and uh that's that's that's fantastic for for this network but let's try and make sure that they are also choosing a diversity of clients uh they're they're selecting uh many different clients not only one um to help strengthen the network because ultimately the decisions we make right now will help us uh go go forward for the stronger network finally as as a staker it's literally your job right you receive you receive uh rewards from from the network that's part of that's for locking up your ether part of that is for uh the electricity and the hardware you need to run it and part of

that is because you need to spend the time and effort to to help decentralize and secure the network and there you need to make sure you are choosing minority clients to help improve this network security um ben edgerton uh did some work back in july and august comparing the relative profitability um i don't know how accurate these numbers actually are and uh no the uh the x axis here right because it doesn't go to zero so it's not massive here but uh it's interesting to see that from from ben's numbers that uh prism isn't even the most profitable client so uh there's there really is no reason to to

choose it um given the current state of the network so which client should i run what are your options to be honest they're all fantastic and no matter what you pick it is a robust piece of software written by some of the best engineering teams in open source world and they've all been audited by multiple people you will be remarkably profitable no matter what you pick so i pick something that resonates with you that that you find easy to install whatever your metric is just ideally not a dominant client yep so some of the options uh numbers it's designed to be as lightweight as possible and it's

written by people who write mobile software so they really know about lightweight so if you're on all the hardware maybe that's struggling to run your beacon node bits this is a good option or you really care about the electricity you consume another fantastic choice tekuteku from the outset was designed to make it really easy to have thousands and thousands of validators and to rapidly scale that back and forth and change between nodes so if you are looking for a client that might help you with a bit more complicated setup and you're responsible for lots of eat steak then teku might be an interesting choice lighthouse the team behind lighthouse is literally a security firm if you care about security above everything else

then lighthouse would be a fantastic choice um and as you can see all these these three clients have have windows support which i know was a limiting factor for many people in the past so pick your client um it doesn't really matter they're all fantastic but these might be some some other reasons to help you either side something interesting we're probably closer than you think to actually addressing this because so much stake is held by exchanges by request demanding better transparency uh shouting at them on twitter whatever your your you're in is there we can hopefully uh budge the needle towards um a better decentralization and less prism given the current network um and uh

i i i think this is by telling so this is the the ongoing e-staker survey um this is uh not it's it's not perfect but the data is still rolling in and we know some flaws but i think it's a rough idea we can see that the home stakers really do care about uh decentralization this this graph looks a lot better than anyone else that any of the previous ones i've shown you um we can see that sure lighthouse on prism have more than a third each uh but at least no one has two thirds and we see some decent representation from some of the other clients which really excites me to see and i think it's a sort of fantastic way that we're we're moving forward so thank you very much these are the links that will help you

go to direct guides to convert from prism to any one of the other clients um you welcome to choose any three of them and if you get nothing out of this talk go shout at your favorite exchange or institution to uh please go and improve the decentralization worry about the things that you care about is an e folder right you care about the future of the network we want to promote that so how can how can you make them care vote with your wallet if they are being open and have reasonable policies then uh encourage their their staking services otherwise please rather not um yeah i think that's it thank you