Quantifying financial risks of not diversifying consensus clients

ETHCC 5 · July 2022 · 17:19

Freddy Zwanzger presents a spreadsheet for exploring financial damage from consensus-client failures. The speaker uses different scenarios to examine the risks of relying on a narrow set of clients.

Speakers

Topics

From ETHCC 5, hosted by Ethereum France.

Transcript

right hello everybody we're going to get started glad to have you all here um i'll be talking about client diversity and particularly how you can model your financial risk scenarios of your setup or if you're thinking about changing your setup what would be a good choice in terms of financial risk exposure so i don't know if you've heard but the prison majority super majority has gone a while now so yay and vitalik approves as well that's my only meme i'm going to have sorry about that i'm german so not into the memes right so are all our problems solved now

unfortunately not we're not done yet so i'll give you a little bit of a background on myself i'm freddie i'm the ethereum ecosystem lead at block daemon prior to that i was co-founder of any block and we got acquired by block demon end of last year and that allows me to focus on all things ethereum now and to understand where we're coming from block daemon is an institutional grade blockchain infrastructure provider and as you can see by the numbers we have 36 000 nodes so lots and lots of nodes and also a lot of stake so that's why it's absolutely important that we worry about these things to provide our customers with the best service

but yeah let's let's get into it um so i'll just show you briefly the current state of client diversity um then introduce you to my model and i'm gonna be sharing the the link and the slides on twitter afterwards so you can grab it yourself and run it with your own numbers and i also suggest some solutions what you can do about your current setup or how to improve things right so as i said we're already making progress but we have to be continuously moving onward so this is i think from monday when i pulled this screenshot from clientdiversity.com which is a great resource so over the last three months prism has lost about 20 to 25 percent of their

market share and may many people switch from prism to lighthouse which is an achievement by itself that people were actually doing something realizing the problem and then acting on it so that's great and also take away numbers the the smaller clients also are rising which is also great and obviously there's also a little bit of uncertainty about those numbers to identify the the clients is not easy so there might be slight deviations in that so that's great that's what i meant with prism has gone from 66 the super majority level down to let's say a 46 or a little bit lower depending on which numbers you're gonna take so that's great but also lighthouse in the process

have moved above the 33 threshold so that's not too good because the scale of the problem or this the scale of the risk has improved but the probability has doubled right because we now have two clients that are in the critical zone so not too good to give you a little background on if you're not familiar what those problematic thresholds are so if more than 30 33 of the network would fail due to a client level failure then the chain cannot finalize that means practically that exchanges would haul transfers and also the inactivity leak penalties in the protocols would kick in

to exit the failed node so that it can continue to finalize that would also affect people that are not directly involved because during that time there will be no rewards for those people as well so there is a big loss of funds if that happens now the next level up would be 50 a majority then network may split and then we got about three to four weeks to actually fix this before both of those finalize and then we would have a chain split and that would be really really hard to resolve so there would be an even greater loss of fund and in the super majority thing that's like the the worst case scenario obviously the faulty chain would finalize within like 15 minutes so it's

you know we can't do much about it and it would be catastrophic loss of funds and basically the the problem would be saved in the in the blockchain state forever which is obviously really really bad so this is where those thresholds come from that people talk about now onto onto that financial risk and then put some numbers on those uh on those risk factors and i i decided to put it in a model rather than a slide so that you can actually play around with your data and those client diversity numbers also change over time obviously as i've just shown so that means that you know you want to update that eventually on the current situation

and yeah just as an attention grabber i put this in here so because i'm talking about nuclear problems right we're not talking about a little you know civil war or something this is big problems right there's also smaller problems but like this this this talk is about the big ones right so um this is this is the model and i'm going to walk you through this a little bit so here on the on the left side you see every like five different scenarios that are talking about um the inactivity problems so if the problem with the client would lead to not being proposing blocks and not doing

attestations that would be the inactivity part and on the right side you see those same scenarios for slashable offenses so this is much more unlikely that a client level failure would lead to massive slashings but also the consequences would be so much greater so here i just played with some numbers so i put the numbers that you've seen on the screen i put them in here uh in the if so on the top here you'll always see the different scenarios and on the bottom here you can put in however you diversified your client set and those two together give you then underneath in the result line here the results for you personally like for

your staking operation and also a network-wide level and i color-coded this for ease of presenting this here so you just put in a couple of numbers basic numbers and then you can play around with it and i'm going to go into the because we have limited time i'm just going to fast forward this is just how to use it but this is basically the results that you can come up with so if you're on a minority client so a client that is used by less than 33 of the network you don't have to worry about inactivity problems at all which is great so that is a great incentive to be on a minority client in itself i think

but the problem is even if an ideal world scenarios where all of those clients would have an equal market share of 25 percent then the client level slash over bucks on the right side here would still have catastrophic consequences we're talking like 20 of all eth destroyed like that's like we and then you know we i you know it's like nuclear war right you don't know what happened like civilization breaks down ethereum is dissolving there's gonna be all sorts of things right no nobody knows so that that's really really catastrophic those are the red numbers here uh you can't read them maybe from the back but just i encourage you to play around with it and that that's super bad and that's

just because you might see on twitter people are saying that client diversity is super important this is why that's what they're afraid of now the probability might not be great but if it hits it's catastrophic that's why the you know nuclear war analogy is sort of a thing on the on the inactivity side that's basically that should be your main motivation because that's sort of a risk that you know you might be yes it's catastrophic but how likely is it you might ignore it but on the inactivity side that's much more likely and there has been real world examples of this and i put put the link in here as well so that should motivate you to be as diverse as possible and maybe overly rely on on

on minority clients now what i didn't model in this and this is important is i don't i didn't model missed rewards in both of these scenarios um or in the various scenarios of the two different categories you will be missing rewards individually and sometimes also the people that are not directly affected by the problem so there's opportunity costs there's small punishments but they're comparatively insignificant it's like a car accident versus a nuclear explosion right so much more likely but less less of a problem i guess um so that that's important to keep in mind like i said i was focusing on the

on the big things here now i do want to leave room for questions so i'm going through this rather quickly so what to do about it like i i always want to have some actionable insights to share and i love to hear what what you are doing or how you are thinking about this so number one i think this is a first world problem so as catastrophic as this might be i want to sort of you know bring it down to the bottom again is in ethereum we're the only network as far as i know that has four different client implementations like solana stops if the solana client fails that's it right so

ethereum is in a privileged position with those clients that's that being said i think we should utilize them because they're all great they're well-funded uh a lot of people are putting hard work into it um so that's that's that so if you are a big staking provider let's say an institutional stacking provider or a service provider then if you are thinking of switching away from prism maybe better not to switch to lighthouse or at least not exclusively because they're now also over the 33 threshold so you're better off if you go to minority clients and there's interesting fact even nexus mutual offers taking insurance now for if your client is on less than 10 percent

they would cover a problem there as well that's an interesting option as well now if you're setting up a new operation completely what i can recommend is also the vouch client it's a multi-setup client so a validator talks to different beacon chain nodes and they could be of different types of clients so let's say you have a prism a lighthouse and a nimbus and if one of those fails then it could still build a block and attest to blocks out of let's say the lighthouse right so that's that's a pretty resilient setup that you can achieve there and if you're an individual staker or a crypto native staking provider yeah do consider the small clients you can run it at home don't be afraid a lot of those

terrible scenarios don't affect you you know if your internet connection goes down at home you're going to lose you know 0.0 eth maybe in a day or something so it's not a big problem so don't be afraid and the other part is you can obviously use liquid staking providers obviously lido has gone very large but there's other options like rocket pool and stake wise out there as well the other part is we've talked about the consensus layer but we also have the execution clients and they work in tandem after the merge they have to be one-on-one matched and on execution layer you see the problem that geth has still 80 market share now that's pretty bad and i think that's

where the focus should be sort of moved now the problem is not as significant as on the consensus layer because those execution layer clients have been battle tested for the last couple of years likely they're not involved in the slashing scenarios so everything on the right side that you saw on the model is not going to apply for this but the inactivity problems could actually kick in in a worst-case scenario so there might there might be something so basically if you're thinking about client diversity don't only consider the consensus layer but also consider the execution layer and again i put some examples of real life problems during the testing processes here

um so yeah don't don't stop when you sort of diversified your consensus layer also think about execution layer and leverage the community there is great people advocating for this on on twitter we have our liquid staking providers we have great websites and resources to monitor that um get involved i put some resources there that help me compile all this knowledge so yeah let's continue the conversation and i'm happy to take any questions hi uh thank you for the presentation one

question about diversification from one hand you talked about the client diversification what i think it's great on the other hand what do you think about the liquidity providers like lido where you as well don't do where you're doing the opposite actually and whereas where blocked even is part of yes that's right um that's something to be aware of like like i said lido now has i think 32 percent of the of the ethereum sticking um i don't see it as an immediate problem because the node operators on lighter there's i think uh more than a dozen operators and like you said block daemon is one of them so if there would be a problem with our operations on lido for example all our

nodes would go offline it's not like 32 of the network would go offline and lido does a great job actually it's pushing the boundaries of all these node operators to diversify both on the client level on geography level on cloud or bare metal provider level so all of our operators run different types of setups in order to mitigate the risk so lido in itself is diversified in a way um and actually working on that now there is still a sort of a the the risk that you're probably referring to is sort of a governance attack on the lido token that cannot be denied but i personally think and from you know we're close to the lighter community

everybody is working to mitigate that and minimize that as much as possible at all and i think with other great options out there and for example rocketpool i think wants to lower their initial stake that is needed so for the capital requirements which would be good for adoption for them for example there's institutional liquid staking coming up so there's all sorts of options that going to balance it out a little bit better as a question hi freddie how does slashing insurance work on block daemon

um we we have a traditional insurance basically and we also so that that covers a couple of things and we are making our customers whole like you know if if we mess up you know we're gonna take care of it that's just um as an institutional provider that's just basically self-explanatory um but what we wouldn't cover is if the protocol like if there's a client level failure so let's say all prism or all lighthouse or whatever fails across the board yeah we can't we can't do anything about that and like i said those would probably have very bad consequences to and no you couldn't even buy an insurance like that right because it's you can't ensure against nuclear war

it's just a fact of the game but yeah basically we're obviously promising our customers that they don't have to worry about these things any more questions okay thank you very much [Applause] you