Obol: Trustless Distributed Ethereum Validators
22 Sept 2022 · 10:52
Roos presents distributed validator technology as a way to split one Ethereum validator across multiple operators and machines, then combine their partial BLS signatures into a normal signature. He says a clustered validator can remain active when some nodes fail, with uses ranging from one company reducing infrastructure risk to home stakers jointly operating a cluster. At the time, Obol had completed a Goerli testnet, while cluster reconfiguration and participation-based reward distribution remained roadmap work, and mainnet was only a conditional Q2 target.
Speakers
Topics
Transcript
foreign [Music] the weather is getting a little bit cloudy so I put the jacket back on but I'm here with Korver of opal yeah and you guys are building something really cool that like I just found out about uh yesterday so uh tell me a little bit what is oval and what are you guys doing sure yeah so my name is Korver I'm with herbal I'm the tech lead kind of heading up the all the golang back inside development of things and we are building DBT which is distributed Battery Technology which is kind of like the next evolution of ethereum staking
very cool and so like practically speaking what does that mean because you guys are building some really cool stuff on the cryptography side to like share validator keys and so what's the end goal here yeah I mean so normally ethereum is taking what you basically have a single operator uh running uh running a validator on a single machine on a single server and what we're doing is we're basically splitting that so you have multiple operators we're running that validator across multiple machines and we do it pretty much by taking the key and then splitting it into a BLS threshold signature scheme instead of the single validator you have multiple validators they all are signing like a normal validator but they are creating
partial signatures and these partial signatures I think shared and combined and aggregated into into the normal signature that's then broadcasted to them so what's like what's the advantage of doing this like for you know for for decentralization how does it improve decentralization and I think more broadly like what does this look like when this starts happening at scale like it kind of shifts our whole I think our whole mental model for how uh decentralized like consensus works right yeah exactly exactly so just thinking on a on an individual validator basis the benefits are like you get high availability right so instead of like when that when you're single validator
goes down you're offline and what what we're doing is that it allows like if you're running a three or four cluster or a five or seven or a six of nine you can have one or two or three nodes go down but the validator is still active Okay so you see this as like um individuals like companies or entities running their validators across several different um pieces of infrastructure so maybe they have some of their servers on Amazon some of their servers on like bare metal and they're splitting up their own keys that that company owns or you're seeing it more as a as several individual entities sharding their validator keys such that they are sharing the rewards but also ensuring
that those validators never go down like it seems like there's different ways to do this in like different configurations exactly exactly and the cool thing is all of those use cases are valid okay uh it can be one it can be one company saying well I want to de-risk my own infrastructure yeah and and provide a more robust quality of service to my users or just to myself it could also be Lido saying well instead of me trusting you know a bunch of eth to a single external validator I'm saying I'm trusting a bunch of each to a group of validators and it can also be homesteakers so I can I can go and stick with a bunch of other people we create our own cluster and we're running our stake across that so yeah it's like it's
like all like from small to institutional stakers and what's the what's the opportunity here to create uh essentially Dow owned validator keys I think this this is something that I've been thinking a lot about lately where a validator key or a set of shards of value key could be held by a Dao and you know I'm thinking about this in the context of um having a portion of validator rewards going to funding public infrastructure things like that and you know that that works on the you know that's fairly easy to do I think now on on the the funding side of things where the rewards go to a say a dow but having that infrastructure in the key right with the key is really what's quite valuable in this whole
thing having that key be held by a decentralized entity I think is something that isn't achievable right now or difficulty it isn't achievable because in the end currently you have that single key right yeah and you're gonna have to trust someone with that single key to run your stake uh and what and what you can do now is using our distributed key generation ceremony you can generate a bunch of key shares without that root key ever being in existence yeah uh and the day how can then allocate you know nine people or 15 people from the dial to each get a key and they would then stack whatever stake the dial has and they can also I guess then say that you had a dow managing a bunch of different shards or yeah shards
of a key and and having delegated those and maybe let's not use that word but sort of lended those out to infrastructure providers to run the the the infrastructure they could then revoke access if one of those validators were acting maliciously or yeah so so that's definitely on the roadmap kind of like cluster reconfiguration yeah so you can you can Define your cluster with your set of keys and then you can actually say well we're going to rotate this guy up we're going to rotate this in we're going to increase the size decrease the size and then like the next step coming down on our roadmap is like how do what do you do with the rewards yeah so that's so V1 where we're now is just kind of like looking at kind of like the validator the the hardware side of the business if you want to think it
like that with a software side would come in in the sense of like what do you do with the rewards and that is obviously on the smart contract layer yeah and for now you can just stick it in a nurses site for example and then the dial can decide how they want to distribute the rewards yeah but what we plan to do is adding a bunch of crypto and maybe some ZK on top where the cluster would then actually produce proofs off the different participants and their participation ratios yeah and then you can kind of like programmatically and safely distribute the rewards according to the participation of the individual people so we've talked about ethereum and I guess you guys are are building this out
for ethereum stakers um what are the plans to build this and have it available for other other ecosystems like Cosmos I'm thinking specifically at Cosmos because I run a few validators and Cosmos and um yeah look at me for now we're definitely focusing on ethereum and all the kind of like Beacon chain compatible chains out there diagnosis yeah so that's that's kind of the short to medium term we we're not going to make any promises about other chances yeah but so the the fact that yeah so because you're built you mentioned you're building this out um using BLS threshold signatures because ethereum uses BLS you'd have to use some other threshold
um or like multi-party computation system for something like Cosmos that doesn't need to be honest is that right yeah I mean so we can the key aspects of our system is basically we can coordinate things in a cluster we can coordinate what should the peers sign and we can then Aggregate and combine the signatures as they come back in I think swapping out the actual signature scheme would be quite trivial yeah yeah okay what does the product actually look like like is it a dashboard is it like a bunch of developer tools like and how how do the customers how do the Clusters come together yeah yeah so that's quite interesting so the so the final product that that actually does this whole thing is it's called Karen and it's a it's a piece of middleware it's a server it's
very similar to Geth or one of the beacon chain clients yeah uh it's a it's a piece of software that you run on a server um and that is a go program at this point that it forms its own peer-to-peer Network and you kind of run it in your validator stack you would have your gith node you would have your beacon beacon uh you would have our current node and then you would have a validator client at the bottom sitting with all the keys and that forms like the whole class so it costs a bunch of machines but that's the final product and like you said how do you get how do you define the cluster yeah you can think of it kind of like in three like in three steps the first steps would be to define the cluster which is like how many nodes do you want
what is the the threshold are you doing three or four or do you actually want a four or four or something like that yeah you want to give it a name and you want to and and then you want to identify who's in the cluster give some identities so that's the first step and that's the the definition or the defined step and we're we're building something called the DV launch pad which is very similar to the ethereum 2 Launchpad which will be a UI and a website where you can go in and you you can be the leader and you'll say this is what I kind of Envision uh and you'll Define the cluster and then your peers or your the other people in the group will follow a link and they'll put in their signatures the output of that whole process is what we call the definition file and that is
going to the Second Step which is the lock which you call as a lock step and that that process is where you actually generate the keys yeah okay and that's going to be a bit more secure and so here you you're running a piece of software which we call the dkg a distributed key generation ceremony and that's that's a what that's a command line application and the output of that is everyone has their own Keys yeah and those keys together with the definition file you would load into the current software okay yeah this is super cool yeah I can see like all sorts of applications for this and there is a peer-to-peer layer that allows all of the different machines to talk to each other yeah that makes sense okay yeah exactly very cool and so
um you've launched already or yeah I mean we're we're making good progress we just finished like our first test net on Gurley we had a bunch of our community members running clusters and it went pretty well next steps we're speaking to some big infrastructure providers and I think they'll do a couple of test Nets but if everything goes well Q2 next year mainnet cool yeah all right well it's very exciting and I'm looking forward to uh learning more and uh awesome when you guys are when you guys launch and everything cool thanks a lot cool thanks thanks [Music]