New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

How to Build a Decentralized Ethereum Liquid Staking Protocol? by Darren Langley | Devcon Bogotá

DevconSat, Oct 7, 2023, 12:00 AM

Speaker

Darren Langley

Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on Swarm, IPFS and more. https://archive.devcon.org/archive/watch/6/how-to-build-a-decentralized-ethereum-liquid-staking-protocol/ Liquid staked Ethereum is a reliable source of yield and is fast becoming a key primitive in DeFi. Come hear from Rocket Pool about their experience designing a decentralized Ethereum liquid staking protocol. How do you create a decentralized protocol for staking? What are some of the design trade offs in token design? What tools are available today? What challenges exist due to current L1 structures? What opportunities exist in future upgrades? Speaker(s): Darren Langley Skill level: Beginner Track: Staking & Validator Experience Keywords: decentralized,staking Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon 6 was held in Bogotá, Colombia on Oct 11 - 14, 2022. Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/

Transcript

foreign [Music] hello everyone I am Darren Langley and I work on rocketpool which is a decentralized liquid staking protocol so at Rocket pool we've spent the last six years building our liquid staking protocol so today I'm going to take you through some lessons that we've learned along the way so in this talk we're going to break down what is a liquid staking protocol what are some of the design choices uh what are the challenges of building a truly decentralized protocol and then what are the opportunities so it's staking so liquid staking is built on ethereum's proof of stake system um a little tangent I couldn't be more excited that ethereum is now a proof of stake um chain and congratulations to all the researchers uh core developers and um sort of and coordinators that have made it happen it's fantastic so when you stake you are participating in ethereum's proof of stake consensus why would you want to do that so the most important thing is that you're contributing to the security of ethereum uh we also earn staking rewards for being a good node operator so her ethereum has a couple of uh kind of barriers oh sorry ethereum mistaking has a couple of barriers first of all you need technical experience to run like a validating node you also need a fixed 32 eth per validator um the state eth is actually kind of naturally illiquid it exists on the beacon chain earning rewards but you can't really use it for anything else which is by Design but most of the 32 East that you stake is not actually at risk except under the kind of most dire of consequences or situations uh currently it's also a one-way thing so withdrawals are coming soon um but at the moment you you're staking and you're that's it so uh the rewards from staking East come in two juicy flavors the first one is consensus rewards um which comes from new eth inflation and then you get that by kind of Performing your node operator duties so that's a testing being part of a sync committee and proposing blocks as I said before um withdrawals aren't available at the moment but they will be um potentially after the Shanghai hard Fork uh execution will the next type of uh reward is the execution rewards they come from users so they uh come from Priority fees which are the non-burnt part of a transaction fee and then potentially Mev if you're extracting Mev that's actually available today and pretty much in real time so how a staking protocol captures and then distributes those fees or those rewards is key to its design so how does liquid staking work a liquid Staker deposits any amount of eth into the protocol and in return they receive a liquid staking token and the ease that they deposited gets matched with the node operator the node operator interacts with the protocol and deposits the eth into into the beacon chain node operators then earn rewards by being good node operators and the liquid staking token accrues the value as yield so to unstake a liquid sticker burns the liquid staking token for and gets back their ease or actually more East than they put in generally um and you you can either do it kind of in the primary mechanism or you can do it on a secondary Market so this is the very basic outline of how liquid staking works but as we'll see every step has some design choices and trade-offs to to be made so why liquid staking so it's kind of important to know why you're doing this what benefit does it serve so it turns out that there are significant benefits to ethereum as a whole so liquid staking encourages greater participation and that in turn provides greater security and decentralization there's a little star there because it only contributes to decentralization if the validator set or the node operators are decentralized and not just one entity uh it liquid staking facilitates unstaking through like a primary mechanism through the protocol itself um or on a secondary market so it reduces validator churn it also Fosters Innovation and capital efficiency and through the use of these liquid staking tokens in D5 okay so on this section I'm going to focus on liquid token design but there are some equally big design spaces on the Node operator side and and some definitely some interesting challenges on that side as well so first thing you realize when you're designing a liquid staking token is that node operators earn rewards at different rates they may also be penalized and in worst case scenarios they can be slashed so there's a couple of ways of handling this the first way is to have a fungible token that shares rewards and losses across the entire protocol or you can have a non-fungible token where rewards and losses are specific to each node operator or each validator then you can kind of have that this hybrid of the two um although you've got to be careful you don't end up in a worst of Both Worlds each of these approaches have some different trade-offs and you have to kind of weigh up um which ones so the next one is safety so there is eth backing you know backing the liquid staking token So What mechanisms are in place to protect that collateral ethereum's proof of stake system is a very forgiving protocol but it is possible to lose your your stake either partially or in like the extreme cases fully safety mechanisms built into the protocol need to account for things like slashing protection aligning incentives and general risk management so Rewards so how are rewards delivered to token holders how does the token reflect the yield that the protocol actually is producing so generally there are two approaches to this there's rebasing and non-rebacing so a rebasing token its exchange rate is like a notional one-to-one with eth but the quantity increases so the token increases in quantity over time that's how the yield uh represents itself or gets delivered with a non-rebacing token the exchange rate increases but the quantity is the same quantity stays constant so the the actual token increases in value over time um and there's some there's definitely some kind of pros and cons of each of these mainly that so with the rebasing token it's very simple to understand you're literally getting more of the token uh but it's extremely hard to integrate so when the if the quantity is changing all the time that's not really compatible with most D5 protocols with a non-rebacing token uh it's it's harder to understand and if you go down that route you'll spend most of your life uh explaining to people what a non-rebasing token is um but it is much easier to integrate uh it's it's just a standard erc20 and it's supported by most D5 protocols it actually turns out that a non-rebasing token is more tax efficient as well so it depends on your jurisdiction um but within a rebasing token you have like a taxable event every single day whereas with a non-rebacing token you have a taxable event new stake and when you unstake so liquidity by tokenizing um steak teeth it can be traded on secondary markets such as exchanges this provides liquidity for people to unstake their eth did the price you pay on secondary markets is dictated by the market so it may present a liquidity discount or potentially a liquidity like a premium with large orders there can also be slippage and so staking protocols can offer like a if they can offer a primary mechanism for unstaking eth so that you can allow um liquid staking token holders to actually swap back without the discount and without the slippage both of these mechanisms of undertaking kind of reduce the need for validator churn okay so now you've got your token out in the wild I mean everyone's going crazy about it um you need to start building utility these come in the form of Integrations with other D5 protocols so there's kind of like a Maslow's hierarchy of defy Integrations um it goes something like this you integrate into wallets and explorers first then you build up some liquidity this is the bit that takes time A lot of time to build up liquidity you need to get a breadth of liquidity and depth of liquidity and that's important to kind of get to the next phases you also need to get good liquidity on layer twos because you want to build up um support in those in those ecosystems and also provide good ux for stakers so then the next layer is Oracles so once you once you've got some liquidity you get oracles the next one is D5 protocols particularly lending platforms but also kind of options and index platforms and fixed income products and all loads of things the last one is volts so volts are kind of like yield optimization and platforms they sit over top of loads of different D5 protocols and optimize that yield foreign staking protocol is a set of smart contracts that mediates between depositors and node operators kind of escrows funds into the ethereum's proof of stake system and then back again on withdrawal the protocol transparently distributes those funds and ensures that each party receives what they expect in short withdrawals aware of most of the action happens okay so it's at this point in the presentation I need to give a bit of a disclaimer the information on this slide is not final the capella specification is still being kind of drafted but at this point this is what it looks like so after the Shanghai hard Fork hopefully um consensus rewards uh will be fully withdrawable or partially withdrawable so fully withdrawn is a node operator initiated thing so a node operator submits an exit message they get processed by an exit the beacon chain execute they come into this withdrawable state and then their funds are returned to a withdrawal credential at that point they are no longer validating they've done there's a validator okay that's full exit with partial withdrawn you're still validating and in fact this is like an automatic and ongoing process so um this is this essentially takes skims the rewards um off the top so you have 32 Heath is your kind of initial deposit and then anything else you make um on top of that will be kind of continually skimmed and sent to your withdrawal credential automatically by the um the beacon chain and the consensus clouds so withdrawal credentials are a key element of the ethereum spec um and they come in like two types there's a Xerox zero which is this BLS signature credential and 0x01 which is an ethereum address that receives the withdrawn funds so most credentials in use today are 0x0 and that's because they were introduced first and then much later 0x01 came came ahead so in the current plan Xerox zero credentials we need to be converted into a 0x01 um to allow you to withdraw and there'll be like this special kind of migration process that'll that'll facilitate that so 0x01 is important because it facilitates the development of these non-custodial staking protocols um essentially because the 0x01 address can be a smart contract and so that's smart contract can you know take custody of funds they can deposit them into the um the beacon chain into the into the deposit contract and then when it withdraws it can then distribute the funds to all the parties so building a decentralized staking protocol is easy not so much there are significant challenges to developing a truly decentralized staking protocol so as for permissionless being an open and public piece of infrastructure is key to a protocol success and it's and it's also it's important for its alignment with ethereum being permissionless is a is a noble Pursuit and it's critical for ethereum to for retaining its credible neutrality so being permissionless subsequently leads to trustless designs which I believe are much more resilient in the long term like ethereum itself decentralized staking protocols have to rely on a combination of cryptography and crypto economics to balance incentives and penalties ensuring that the participants have aligned interests but it is challenging but personally this is what it makes it this is what makes it interesting work so scaling being a competitive market participant is important to ensure that ethereum remains decentralized scaling a decentralized staking protocol is much harder than scaling a centralized provider the two aren't even really comparable a decentralized staking protocol has to rely on Ingenuity to scale but never lose sight of its kind of core value a decentralized staking protocol is actually a community a community of node operators who are passionate about securing ethereum scaling is certainly a challenge but it is one that can be overcome so Reliance on oracles so semi-trusted oracles are essential for decentralized staking protocols today the consensus and execution layer are separate Concepts and they've only just been merged together so oracles are required to Aggregate and Report validator performance information to the protocol smart contracts there's actually an EIP that's being considered for Shanghai and it's eip4788 what it does is it adds access to the beacon chain state route to the execution layer so that smart contracts can verify proofs about the beacon chain state this is key to reducing the role of these semi-trusted Oracles in the decentralized staking protocols but it is important generally to combine those two concepts and allow Innovation to particularly around validator status and finality on the execution layer so what are the opportunities okay so this might be a bit counter-intuitive but ethereum doesn't need more stake it needs more individual node operators so I believe this quote is from superfizz so uh thanks Fizz if you're watching um decentralized staking protocols have an opportunity to redress the balance so by lowering the collateral requirement for node operators there are more potential node operators available by streamlining setting up a node and running a node it's easier to onboard new node operators and if you lower the barrier to entry for spinning up a staking business built on top of a decentralized staking protocol this allows a whole ecosystem of Niche staking businesses to compete with large providers more node operators the more node operators we have the more decentralized ethereum is being a node operator is not as hard as you think okay so execution reward smoothing so execution rewards so the ones that come from like transaction fees and potentially Mev are extremely variable this is because Brock proposes are chosen at random so at this time if you have like one validator you'll receive approximately five proposals per year um on average but you could get two or you could get 10. so this variability hits small node operators hard but harder actually hard the hardest um as a decentralized staking protocol There's an opportunity to provide a reward smoothing pool that participants pull their proposals to achieve a consistent return rather than this highly variable return so a smoothing pool actually levels a playing field the small node operators they can kind of compete with the larger node operators this is a particularly interesting when you think about Mev Mev you can have on average you can you can earn you know a decent amount from Mev but every now and again there'll be one of these Lottery blocks the highest block I think that's recorded was 100 East block um that doesn't happen very often uh but that hence why it's a lottery block but if you do get one of those blocks then this is what the smoothing pool helps with so I'm Darren Langley um I'm from rocketball you can catch me on Twitter and that's me thank you very much [Applause] hi my name is Benjamin with rubicon.finance I wanted to ask I understand rocket pull nodes are collateralized with RPL how do you protect against a tail rest scenario where if the price of RPL eth is is dropping the average collateralization of the network uh starts to fall and how can the protocol like uh become robust uh in light of basically uh you know relying on RPL youth price to guarantee security so in actual fact uh so RPL is used as a backstop so the the first thing that they we so with a with a rocket pool node uh the node operator supplies 16 each and the liquid stakers Supply 16 Heath um and then the node operator also supplies to marpl like it's minimum of 10 so it's about 1.68 um and uh but the eth is hit first so if they if they get slashed or um if if they you know if they're an absolutely terrible node operator and then essentially their ether it gets hit first and then RPO is used as a backstop because you can actually lose a little bit more than 16 in like a like the worst worst case scenario yeah okay multi-part question okay so first part um how hard is it to run a rocket pool node like you need to know Unix or can you just run a script and it installs everything second part okay how many nodes can you run on one powerful PC right cool okay good question uh so running a rocket pool no you do need to know probably a little bit about um Unix maybe you can run it on different things we don't necessarily support Windows um but you can run it on on then a Linux box you do need to know a little bit about Linux uh speeding up a rocketball node is I think pretty much four commands um in your and it's four commands and you've you've spun up a validating node um so we've made it we've streamlined the process uh we have this thing called a smart note stack and it streamlines the process of actually spinning up a node we connect everything up for you we handle upgrades for you it's it's really easy um the other question the other part of that question was all right that's right all right that's yeah that's that is a hard question to answer so terminology wise a node is like the box that's running it and then you have validators so you can have a lot now whether now whether you whether that's a good idea or not is is another is another matter so what you would tend to do is you probably want to distribute across multiple nodes um if you had a lot um but you can run a lot um different clients different consensus clients and different execution clients have different performance profiles um but you know yeah you can run a lot on I don't think we've I don't think we've um we haven't modeled it uh but it is it didn't like the hundreds yeah it depending on it also depends on the box if it's a powerful machine then you can do that yeah cool yeah all right awesome thank you very much guys [Applause]

Automatic transcript — names and jargon may be misspelled.