Overview
Rocket Pool is an Ethereum staking protocol that aims to lower both the capital and hardware requirements for staking on the Ethereum Proof of Stake (PoS) chain. The protocol was designed to be community owned, decentralized, non-custodial, and trustless. It was built to support stakers of all sizes and to allow anyone to trustlessly stake as little as 0.01 ETH to a network of decentralized node operators.
As a decentralized staking protocol, Rocket Pool is a network of decentralized node operators, where each node is a separate entity that runs its own server infrastructure. This allows the network to achieve properties such as:
- Fault tolerance – failures only affect a small number of nodes.
- Scalability – by opening up the access to the network, more nodes can be brought online to meet increasing demands for staking.
- Quadratic leaking – this is the term that refers to the penalty that node validators suffer when they go offline. This is also known as the inactivity leak and increases quadratically over time. As a result, if you are a node operator and you go offline along with a group of other validators, the punishment will be greater. This mechanism favors decentralized staking services over centralized providers.
Ethereum Staking is the process of staking 32 ETH in a validator node in the Ethereum Proof of Stake Chain (the Beacon Chain) to help maintain its security. Validators do this by listening for transactions and new block proposals, and attesting that the proposed block contains valid transactions.
To ensure that the network is resilient against attacks performed by malicious actors, each validator is required to lock 32 ETH as a form of “stake” in the network. If they perform their duties correctly and agree with the majority of other validators, they will earn staking rewards. Otherwise, the network will take a portion of the 32 ETH they have locked as a “stake”.
Unlike solo stakers, who are required to put 32 ETH up for deposit to create a new validator, Rocket Pools nodes only need to deposit 8 or 16 ETH per validator. This will be coupled with 24 or 16 more ETH from the staking pool to create a new Ethereum validator. This new validator is called a minipool.
The protocol is designed to cater to two main user groups: users who want to participate in ETH staking, and users who want to stake ETH and run a validator node on the Ethereum Beacon Chain. All together, these users will participate in Ethereum Staking.
- Node operators can stake 8 or 16 ETH as a node operator in the protocol, earn rewards from their own stake, and earn additional commissions (node commission) and RPL rewards from the network. This allows them to generate a higher ROI from staking than they would if they were to participate as a solo node operator.
- Users who want to participate in trustless staking can do so with as little as 0.01 ETH. They can stake ETH and receive rETH, a yield-bearing liquid derivative token that entitles the user to staking rewards. rETH represents both how much ETH you deposited, and when you deposited it. The ratio includes rewards that Rocket Pool node operators earn from:
- Staking rewards from the Beacon Chain.
- Priority fees from block proposals.
- MEV rewards from block proposals.
rETH:ETH ratio = (total rETH supply) / (total ETH staked + total rETH contract balance + total rETH share of priority fees + total rETH share of MEV rewards)
Since the Beacon Chain rewards, priority fees, and MEV rewards will constantly accumulate, this means that the rETH’s value always increases relative to ETH. This rETH/ETH exchange rate is updated approximately every 24 hours based on the Beacon Chain rewards earned by Rocket Pool node operators.
- Consensus layer rewards:
- Attestations, block proposals, sync committees, slashing reports…
- Execution layer rewards
- Liquid rewards
- Priority fees and MEV from block proposals
For instance, at the beginning, when 1 ETH = 1 rETH, a user that deposits 10 ETH will receive 10 rETH. After a few years, as the balances on the Beacon Chain grow due to validator rewards, if for example 128 ETH have been staked with Rocket Pool and the sum of all validator balances was 160 ETH, then 1 ETH would be worth 0.8 rETH (128/160), which means that 1rETH would be worth 1.25 ETH. At this point, the user who staked 10 ETH at the beginning could trade their 10 rETH for 12.5 ETH in return.
As a protocol, Rocket Pool consists of 3 primary components:
- The Rocket Pool smart contracts, which accept ETH deposits and assign them to node operators in return for a staking commission rate based on the current demand for node operators.
- The Smart Node Network, which is a decentralized network of Ethereum nodes running Rocket Pool’s Smart Node software. These nodes have background jobs that run the network consensus of the Beacon Chain and communicate with Rocket Pool’s smart contracts.
- Minipool Validators, which are smart contracts created by node operators who deposit 16 ETH or 8 ETH on their own node. When they do that, these smart contracts receive 16 more ETH or 24 more ETH respectively from the users who just want to stake their ETH and not have to run a node. As a result, the contracts end up with the total 32 ETH required for participating in PoS (16 ETH from the initial deposit plus 16 ETH from rETH stakers; or 8 ETH from the initial deposit and 24 ETH from stakers). Next, a new validator is created on the node that performs the consensus duties in order to start earning staking rewards.
After the Ethereum Merge took place on September 15, 2022, validators are rewarded with priority fees for transactions included in the blocks they propose. These priority fees along with any MEV rewards (if the validator chooses to participate in a MEV network and propose blocks built by someone else), are available directly on the Execution layer immediately, which gives validators access to some liquid ETH.
How Rocket Pool nodes work
In the Ethereum Proof of Stake network, the Beacon Chain, every validator node is required to deposit 32 ETH in order to create a new validator. Solo stakers, for instance, need 32 ETH in order to carry out their operations. In Rocket Pool, however, each node operator is only required to deposit 8 or 16 ETH. These ETH will then be paired with another 24 or 16 ETH that comes from stakers who are not interested in running their own node and who just want to earn rewards from participating in the PoS network.
To the Beacon Chain, a Minipool Validator looks exactly the same as a normal validator (same rules, same access to rewards…) with the only difference being how the Minipool was created and how the withdrawals work when the node operator chooses to exit the Minipool.
A Rocket Pool Node is a single computer with an Ethereum wallet that has been registered with Rocket Pool’s smart contracts. After this registration, the node can proceed to create as many Minipools as it can afford, all of which can be run on the same machine altogether. This is possible because each Minipool has a negligible impact on the overall performance of the system.
The upfront cost of a Minipool is 8 or 16 ETH plus at least the relevant worth of RPL collateral. This collateral acts as an insurance deposit to cover slashing (node misbehavior) or leaking (node goes offline) penalties.
Node operators are the individuals in charge of operating Rocket Pool nodes. Their job is to run validators with the highest uptime and best performance as possible in order to maximize the amount of staking rewards they can earn. They are responsible for:
- Setting up a server (either physical or virtual).
- Configure the server and install Rocket Pool on it.
- Set up Minipools to start validating the network.
- Secure the server from both outside and internal threads.
- Maintain and monitor the validator.
In return for providing this service, the node operator enjoys the following benefits:
- Earn half of the validator’s total ETH rewards, plus an extra 14% (current node commission) from the pool staker’s half.
- Earn on the interest on the RPL that is used as insurance
- Participate in DAO governance and vote on protocol changes.
Each node operator is responsible for their own performance. If a node performs poorly and wants to exit after having lost ETH, all of that ETH will come from the operator’s share.
Full node requirements
A full node is one that runs both an Execution Client and a Consensus Client along with the Rocket Pool stack.
Now that the Merge has occurred, Rocket Pool nodes are required to run this configuration (though the Execution and Consensus clients can be externally managed for users already running a solo-staking setup).
As of Smartnode v1.5.0, remote clients such as Infura, Pocket, or Alchemy are no longer supported because they are not compatible with validation duties after The Merge.
The requirements to run a full Rocket Pool node well are as follows:
- A stable Internet connection. The longer you stay online, the better your rewards. A spotty Internet connection will hurt your returns, and by extension, the rETH ratio growth.
- At least 10Mbps of bandwidth both up and down. A full node usually takes around 8Mbps to 10Mbps up & down of network traffic, depending on your configuration and number of Minipools.
- No data cap imposed by your ISP. Running a full node will take a lot of data. This can be mitigated somewhat with a few settings tweaks to the ETH clients, but as a rule of thumb, don’t run a full node if your Internet plan comes with a monthly data cap.
- Stable electricity. For the same reason as needing a stable Internet connection, you also want to have reliable power. This can be mitigated with a large UPS (backup battery) to deal with short blackouts.
- A computer with sufficient specs. This is pretty flexible because it really depends on what Execution (ETH1) and Consensus (ETH2) client you use, and what settings you configure them with. The computer can be a local machine, or it can be a Virtual Private Server (VPS) hosted in the cloud. Read below for some more information on those two options, and how to decide which is best for you.
The following are considered minimum requirements:
- Linux or macOS Operating System
- Quad-core CPU (or dual-core hyperthreaded); both x64 and arm64 are supported
- 8 GB of RAM (preferably DDR4)
- 2 TB of free SSD Disk Space (note: this only applies to mainnet; the Prater testnet only requires about 200 GB)
- A spinning platter hard drive is generally not fast enough to handle the constant random reads and writes that blockchain activity requires; you MUST use a solid state drive.
Typical configurations tend to use 16 or 32 GB of RAM for future proofing, but at the time of Rocket Pool’s launch, the above is sufficient to run a node.
At this time, only Linux and macOS platforms are supported. Windows is not currently supported for Smartnode operation.
How to install Rocket Pool: https://docs.rocketpool.net/guides/node/eth-clients.html
How to configure Rocket Pool: https://docs.rocketpool.net/guides/node/config-docker.html
Securing your node: https://docs.rocketpool.net/guides/node/securing-your-node.html
Starting Rocket Pool and setting up your wallet: https://docs.rocketpool.net/guides/node/starting-rp.html
Preparing your node for operation: https://docs.rocketpool.net/guides/node/prepare-node.html
MEV, MEV-boost, and MEV rewards: https://docs.rocketpool.net/guides/node/mev.html
Creating a new Minipool (Validator): https://docs.rocketpool.net/guides/node/create-validator.html
Claiming operator node rewards: https://docs.rocketpool.net/guides/node/rewards.html
Security best practices for your ETH validator node: https://www.coincashew.com/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-i-installation/guide-or-security-best-practices-for-a-eth2-validator-beaconchain-node
Running a local node
If you have reliable electricity and uncapped Internet access, and are willing to build (or buy pre-made) and maintain a computer, then running a local node might be a great choice for you. With this option, you will set up a dedicated computer as a Rocket Pool node and run it locally in your own home.
Advantages:
- No monthly fees, other than utilities
- Complete control over your own machine and its data (including your wallet’s key)
- Access to perform maintenance and upgrades whenever you want
- Contributes to Execution (ETH1’s) and Consensus (ETH2)’s, and Rocket Pool’s decentralization (and thus, their security)
Disadvantages:
- Requires stable, uncapped Internet and electricity
- Running a node uses at least 1.5 TB of data per month. If you have a data cap below this amount, you may run into problems while running a local node!
- You’re solely responsible for network & computer security
- Can be challenging if you’re not experienced with computer maintenance
- Vulnerable to theft
Local node guide: https://docs.rocketpool.net/guides/node/local/hardware.html
Running a VPS on the cloud
If you don’t have a reliable uncapped Internet plan, or you just don’t want to deal with building and maintaining your own physical computer, you may want to look at running a virtual private server. These are virtual servers that you rent from hosting providers, such as Amazon Web Services, Microsoft Azure, Netcup, Contabo, or other companies. Essentially, these companies will happily create and run a server for you, for a monthly fee. If you don’t mind that fee and want to run a Rocket Pool node, using a VPS can be a good strategy.
Advantages:
- No maintenance, support is usually available to fix issues
- Doesn’t affect your Internet plan or data cap
- Usually run in a professional data center, very little down time
- May be more cost effective than buying / building your own computer
Disadvantages:
- Makes Execution (ETH1) and Consensus (ETH2), and Rocket Pool somewhat more centralized, which weakens the security of the networks
- Monthly fees
- Servers may come with data caps, or have expensive network I/O rates
- Possible for hosts to examine your machine’s contents and take your wallet’s key if not secured
VPS node guide: https://docs.rocketpool.net/guides/node/vps/providers.html
Rocket Pool insurance
Rocket Pool does not purchase insurance or have a fund. Due to its permissionless nature, node operators are expected to post collateral as insurance: liquid ETH deposits are matched 1:1 with node operator’s ETH as collateral, as well as 10-150% worth of RPL.
Assets are used to cover penalties in the following order (from top to bottom in the above illustration):
- Staking rewards
- Combination of 0.099 node operator rewards and 0.073 rETH rewards.
- 16 ETH from the node operator.
- 1.6 ETH to 9.38 ETH worth of the node operator’s RPL collateral.
- ETH deposits from stakers.
Rocket Pool has ~158% insurance coverage per validator
(9.38 + (16 + 0.1724 / 2)) / (16 + 0.1724 / 2) = 158.311 %
Rocket Pool insurance can protect against:
- Entire pool leaks:
- Protection of up to 25.38 ETH per validator (~79%).
- Validator ejection at 16 ETH:
- Protection of up to 99.47% of the network.
- Other than outstanding rewards, there are no losses for rETH holders in this scenario.
- Total validator loss:
- If an entire validator is lost, the only protection is up to 9.38 ETH (~58%) worth of RPL per validator. As a result, the pool suffers a socialized loss of ~6.3 ETH out of 16.172 ETH worth of rETH issued, per validator host.
Why the Project was Created
Rocket Pool was founded in 2016 by David Rugendyke as it became clear that Ethereum would pivot from a Proof of Work (PoW) to a Proof of Stake (PoS) consensus mechanism. The protocol was conceived with an emphasis on decentralization and trustlessness, following Vitalik’s initial idea that there should be a solution to lower the barrier to entry for small investors to secure the network through independent staking. Prior to Rocket Pool, staking providers were built with trust assumptions ranging from custody under centralized exchange to roadmaps that promised progressive decentralization.
To validate on the PoS chain, there would be a minimum capital requirement of 32 ETH on top of additional technical skills and hardware requirements, such as a CPU processor with 4 cores and a minimum clock speed of 2.8GHz. Due to all these requirements, Rocket Pool was born as a solution that would lower the barrier to entry and facilitate the process of participating in the network security. This would further contribute towards increasing the decentralization of the network.
Rocket Pool emerged as the first decentralized and non-custodial alternative that could compete against centralized staking pool providers. Besides, Rocket Pool allowed users with as little as 0.01 ETH to maintain custody of their funds while staking towards any node operator of their choosing. These node operators would validate and attest PoS transactions and must hold at least 16 ETH to do so in Rocket Pool.
Besides, even if users were able to stake, their ETH would remain illiquid until a predetermined lock-up period had lapsed. This would downgrade the user experience and disincentivize people from staking, since they would have to wait until the Shanghai upgrade to be able to withdraw their ETH. Rocket Pool solves this problem by issuing a liquid staking derivative token, rETH. Rocket Pool ETH, or rETH, would be a liquid yield-bearing ERC20 token on Ethereum that would represent 1 staked ETH and that would earn yield from staking rewards. As long as the underlying ETH remains under the control of a Rocket Pool node operator, users can do with their rETH whatever action they please.
Rocket Pool was originally scheduled to deploy on Ethereum mainnet on October 6, 2021. However, right before launch, one of its competitors, Stakewise, discovered a vulnerability that impacted all staking providers. This forced Rocket Pool to delay its mainnet launch, which finally took place on November 9, 2021.
The mainnet rollout took place in 4 stages to ensure that everything could function properly as the protocol progressively scaled.
Roadmap
The team has identified certain priorities based on the “Rocket Pool Roadmap Prioritisation” discussion held with the community.
The following are priorities that have been identified:
- Two key priorities:
- Minimizing trust in the pDAO guardian role.
- Minimizing trust in the oDAO by reducing roles and responsibilities.
- Two general themes:
- Enhancing node operator performance.
- Improving gas fees, potentially through a single minipool contract.
Houston Upgrade
The Houston Upgrade was introduced on November 9, 2023.
Its main aim is to implement a fully on-chain DAO to govern the protocol, known as the Protocol DAO or pDAO, along with other features that will allow new integrations and platforms to be built on the protocol. The Rocket Pool Protocol DAO (pDAO) is responsible for shaping the direction of the protocol and is run by RPL governance.
The upcoming upgrade implements a new security council to help react quickly in the event of any potential issues with the protocol, these include:
- Protocol Parameters: These control certain facets of the protocol such as the setting that controls the minimum $ETH amount that can be deposited for $rETH (currently 0.01 $ETH) or even controlling the maximum size of the deposit pool, this is how much max $ETH can be deposited into the protocol before being assigned to node operators for staking. You can find a full table of these settings here.
- Treasury Funds: $RPL has a 5% inflation rate and a portion of that is allocated to the pDAO treasury. The pDAO has the ability to spend this treasury on a variety of protocol-orientated endeavors, from funding the development of the protocol directly to grants management for funding 3rd party improvements and projects that make use of Rocket Pool, and more. The Houston upgrade adds a new ability where these payments from the treasury can be done not just in a lump sum manner, but in a progressive manner to help track goals in relation to ongoing funding.
- Security Council: As the Houston upgrade moves the pDAO to a fully on-chain system, a new safety measure was introduced in the form of the security council. These members can be elected by the pDAO and they have the ability to propose and execute changes quickly to pause the protocol in the event any potential issues occur. A quorum among members must be met for any security response proposals to be executed. The pDAO also has the power to remove members or disband the security council entirely if they need to.
- Proposals and Voting: Moved to a new optimistic fraud-proof system that allows any node operator to raise, vote on, or challenge proposals, directly on-chain without the need for any 3rd party tools.
The Houston release is due to be audited by their two main audit partners, Sigma Prime and Consensys Diligence in late November.
The Saturn Upgrade
The Saturn Upgrade made important changes to improve the protocol’s scalability, capital efficiency, and decentralization. Rocket Pool has made regular modifications to its model to enhance accessibility for node operators and boost the utility of its liquid staking derivative, rETH. Saturn builds on these foundations by ptimizing the role of RPL, and restructuring the protocol’s reward mechanisms.
The upgrade rolled out in multiple phases, starting with Saturn 0 in late 2024, followed by Saturn 1 and Saturn 2, which will fully implement the revised staking architecture and tokenomics.
Megapools
Saturn has introduced MegaPools, a contract optimization aimed at improving staking efficiency and reducing gas costs. MegaPools allows multiple minipools to be managed under one smart contract, reducing operational overhead for node operators in large-scale staking operations.
MegaPools will improve capital efficiency by ensuring validator deposits are processed with minimal idle time. The upgrade consolidates minipool operations, reducing the necessity for separate contract interactions and simplifying the staking process.
Team
- David Rugendyke – Founder & CTO
- Bachelor’s degree, Computer Science
- Previous work experience:
- Senior Digital Developer at George Patterson Y&R
- Senior Programmer, self employed
- Senior Programmer at Clemenger BBDO Brisbane
- Darren Langley – General Manager
- Bachelor of Science, Computer Science
- Previous work experience:
- Solutions architect at Queensland Department of Education
- Senior software engineer / architect at Tabcorp
- Session Developer at Labrys
- Senior Blockchain Consultant at Civic Ledger
- Kane Wallmann – Senior Solidity Engineer
- Bachelor of business and marketing at Griffith University.
- Previous work experience:
- 12y experience as e-marketing coordinator, HTS Sales Representative and Marketing Manager at Imaging Solutions.
- Web developer at Shout Graphics.
- Nick Doherty – Senior Blockchain Engineer
- Previous work experience:
- Senior Product Manager at OKX
- Product Consultant at Ignite Tournaments
- Senior Product Manager
- Joe Clapis – Senior Blockchain Engineer
- Maverick (Nick Ashley) – Marketing & Community Manager
- Praneeth Srikanti – Board member
- MBA, Exchange program, Finance, General
- MBA, Business Administration and Management, Finance and Innovation
- Previous work experience:
- Investment Partner & Co-founder at Ethereal Ventures
- Advisor, Investments at ConsenSys Mesh
- Board Observer at OnJuno and Coinhouse
- Grant – Ecosystem Lead
- Seek out/expand/monitor/engage with all relationships ecosystem-wide to help drive growth and maintain dedicated relationships.
Sector Outlook
The shift and dominance of PoS networks have opened up the doors for the growth of the staking industry as an alternative to traditional mining pools in PoW chain. With more affordable and accessible hardware requirements and node setups, anyone who wishes to participate in the staking process may choose to do so by running a validator node. In return for securing the network with their nodes, the node operator would earn yield from staking rewards.
However, in order to run a validator, the user must account for a minimum capital requirement, a capital lockup, technical skills, and ensure ~100% uptime. All of these present a significant barrier to entry for the average market participant.
Liquid staking derivatives solve the issue of remaining illiquid due to forced capital lockups. They also mitigate the minimum capital requirement and avoid all technical barriers that a node operator might face. This allows small players to delegate their stake to larger validators or staking pools while still earning staking rewards (minus a node commission fee) and being able to use a liquid ERC-20 across DeFi.
Following the Ethereum Merge, Rocket Pool has consolidated itself as the most decentralized alternative for participating in the PoS chain. Even though Rocket Pool remains behind competitors such as Lido and Coinbase, it is still favored by a strong narrative that promotes ethics over operational efficiency. Nonetheless, Rocket Pool’s future growth strategy will likely be driven by rETH’s utility in DeFI, especially as liquidity staking derivatives continue to expand to layer 2s, starting with Arbitrum and Optimism.
In July 2022, Rocket Pool’s emphasis on decentralization gained them favor amongst major Optimism delegates when applying for 600,000 OP in liquidity incentives. For reference, Lido’s proposal never even made it to the voting stage.
One key differentiator of rETH is that its holders can unstake their position. This is not the case for other protocols, which must wait until EIP 4863 to withdraw their staked ETH position directly from the Beacon Chain. However, Rocket Pool users can unstake their position by exchanging their rETH back to ETH and accessing the liquidity of the deposit pool, which comprises ETH waiting to be staked by node operators.
Besides, rETH’s non-rebasing mechanism also gives the token a competitive advantage over similar LSD tokens, such as stETH. While stETH rebases, the underlying balance increases to reflect the yield that has been accrued. However, rETH’s underlying balance remains constant and the rETH token accrues value by increasing in market value against ETH over time. In general, non-rebasing tokens are better for composability across DeFi applications. For instance, if you were to provide liquidity to a pool with a rebasing token, the yield rewards would not accrue to your position and would remain stuck in the pool. Lido solves this by wrapping stETH. Also, depending on the jurisdiction, non-rebasing tokens can be more tax efficient. Since each daily rebase event leads to a change in the token’s balance, each rebase will register a taxable event. This is not the case with rETH, where the only taxable events are the actions to stake and unstake (or buy and sell on the market).
After EIP 4863, which enables withdrawal from the Beacon Chain, the amount of ETH being staked is expected to increase. While Rocket Pool has been lagging behind its main competitor, Lido, Rocket Pool has enjoyed the largest percentage growth of all major staked ETH depositors since The Merge.
One of the most prominent criticisms of the Rocket Pool system is that it forces node operators to speculate on RPL. This might prevent some home stakers from participating in the network since they might not want to have exposure to tokens other than ETH.
Despite the dominance of stETH, rETH, and fraxETH have experienced the biggest growth in new addresses since the Merge.
Since the Merge, Lido’s stETH has offered the highest yield with Rocket Pool coming in second.
TVL Competitive Landscape
Rocket Pool comes in 3rd amongst the reputable liquid staking derivative protocols, having 5-10x more TVL than the other protocols ranked after it. However, this does not take into account that rocketpool’s only LSD is currently rETH, while some of the other competitors may have multiple LSD tokens.
Chains
Staking of ETH is only available on the Ethereum mainnet. However, both rETH and RPL are available on various chains as liquidity has been expanding over time.
rETH
- Mainnet
- Optimism
- Arbitrum
- Polygon
- Base
RPL
- Mainnet
- Arbitrum
- Polygon
For Users
Rocket Pool serves two primary user groups: users who want to participate in ETH staking, and users who want to stake ETH and run a validator node on the Ethereum Beacon Chain. This allows the protocol to match the supply side (Smart Node Operators) with the demand side (ETH stakers).
Smart Node operators
Staking in PoS is done via validators that are assigned attestations and block proposals on a randomized schedule.
To be a Smart Node Operator and run a Rocket Pool Minipool Validator, there is a minimum requirement of holding either
- 8 ETH:
- You stake 8 of your own ETH and “borrow” 24 ETH from the staking pool to complete the validator. The minimum RPL stake is 2.4 ETH worth of RPL (10% of 24), and the maximum is 12 ETH worth of RPL (150% of 8).
- The LEB8 mini-pool was introduced in the Atlas upgrade.
- 16 ETH:
- You stake 16 of your own ETH and borrow 16 ETH from the staking pool to complete the validator. The minimum RPL stake is 1.6 ETH worth of RPL (10% of 16), and the maximum is 24 ETH worth of RPL (150% of 16).
- RPL rewards are funded by RPL’s 5% inflation rate. These rewards are proportional to the amount of RPL posted as collateral.
- Node Commission rate from charging a 14% fee to the stakers whose ETH is deposited into the Minipool.
- Staking rewards for any ETH that they have staked themselves (commission-free).
The Node Commission is the amount of supplemental ETH awarded to a node operator. This is the “fee” that is taken from stakers. When Rocket Pool launched, it ranged from 5% to 20% with the ideal target of 10%, with each Minipool’s commission locked for life upon the creation of the Minipool. Currently, new Minipools are activated at a 14% commission rate.
Following the Ethereum Merge, validators have been receiving priority fees, paid by users interested in faster processing of their transactions. These validators can also implement strategies to earn extra revenue from MEV.
Smart Node Operators can participate in MEV Boost relays and may select pre-approved Rocket Pool whitelisted strategies.
As a node operator, you can take advantage of the following benefits:
- You get access to the Smart Node Stack easy setup.
- You only need 8 or 16 ETH to stake (as opposed to the 32 ETH you would need if you were to stake solo).
- You earn extra rewards by charging Rocket Pool stakers a set percentage on the rewards they earn on your node.
- You get to stake your ETH without paying any commissions.
- You can stake RPL on your node as collateral to earn more RPL from the protocol in return for the insurance coverage you provide.
- You are always in control of your own node.
- You can enter and leave the network at any time.
Minipool Queues
With the Atlas Upgrade, there is now a single queue that can support multiple types of deposits (16 ETH or 8 ETH) by node operators. This single queue removes the uncertainty over when a Minipool might receive ETH from the deposit pool.
Node operator rewards
The Merge of the Execution and Consensus layers on Ethereum entitled validators to earn five different types of rewards:
Type | Layer | Frequency | Amount |
Attestation | Consensus | Once per Epoch (every 6.4 minutes on average) | 0.000014 ETH* |
Block Proposal | Consensus | Every 2 months on average
** |
0.02403 ETH* |
Sync Committee | Consensus | Every 2 years on average** | 0.11008 ETH* |
Slashing Reward | Consensus | Very rarely included in Block Proposals | Up to 0.0625 ETH |
Priority Fees | Execution | Included in Block Proposals | Typically 0.01 to 0.1 ETH; very rarely 1+ ETH |
MEV Rewards | Execution | Also included in Block Proposals when using MEV-boost | Typically 0.01 to 0.1 ETH; very rarely 1+ ETH |
*Varies based on the total number of validators in the network. Approximated for 435,000 active validators.
**These are subject to randomness; there can be “dry spells” multiple times longer than the average without being given one.
Rewards provided on the Execution Layer, however, are liquid and can be accessed instantly (or once per Rocket Pool rewards interval, if opted into the Smoothing Pool).
Node operator penalties
Validators are penalized when they fail to perform their PoS duties:
- Leaking is the name given to the penalty when validators go offline and are penalized with a small amount of ETH.
- Slashing is the name given to the penalty when validators attack the network or behave in a malicious manner and are penalized with a forceful exit of the network and removal of the validator’s ETH balance.
Type | Layer | Amount |
Missed Attestation | Consensus | -0.000011 ETH* per attestation (-9/10 the value of a normal attestation reward) |
Missed Proposal | Consensus | 0 |
Missed Sync Committee | Consensus | -0.00047 ETH* per epoch (-0.1 ETH total if offline for the whole sync committee) |
Slashing | Consensus | At least 1/32 of your balance, up to your entire balance in extreme circumstances |
*Varies based on the total number of validators in the network. Approximated for 435,000 active validators.
As a rule of thumb, if you’re offline for X hours (and you aren’t in a sync committee), then you’ll make all of your leaked ETH back after X hours once you’re back online and attesting.
ETH stakers
ETH stakers can deposit as little as 0.01 ETH to the Rocket Pool Deposit Pool in return for rETH, an ETH liquid staking derivative ERC-20 token. rETH represents a user’s claim on the underlying ETH that is being staked plus any additional rewards from staking. Once deposited into the protocol, deposits accumulate in the deposit until 16 ETH or 24 can be matched with 16 ETH or 8 ETH belonging to a node operator.
The deposit pool is funded by regular users when they deposit ETH and receive rETH. This ETH is the amount that is waiting to be paired with node operators in the node operator queue.
Participating in Rocket Pool staking can be done in two different ways:
- Via Rocket Pool directly by interacting with the Rocket Pool dApp and using a Web3 wallet (such as Metamask) to swap ETH for rETH.
- This method is guaranteed to provide you with the exact amount of rETH that your ETH is worth, since it is coming directly from Rocket Pool smart contracts (no extra fees, no slippage, no liquidity issues…).
- Via a DEX on Ethereum Layer 1 by purchasing rETH using the token of your choice on a DEX (like Balancer or Uniswap).
- Rocket Pool has initiated a Balancer composable stable pool. This type of pool honors the true exchange rate reported by the Rocket Pool Oracle DAO. This makes it possible to swap with lower slippage and fees than a conventional exchange.
For Investors
Rocket Pool offers 3 main value propositions:
- Lower the barrier to entry for participating in staking.
- Node operators can run a node with 8 ETH instead of 32 ETH.
- Stakers can stake as little as 0.1 ETH and swap their ETH for a liquid staking derivative, rETH.
- Permissionless access to participating in Ethereum’s PoS network with your own hardware and custody.
- Decentralized governance with no centralized control.
When considering the long-term value of DeFi, liquid staking derivatives are a key component for both security and composability. Rocket Pool’s rETH is an example of what a decentralized and permissionless liquid staking derivative is like. Ethereum’s lead founder, Vitalik Buterin, laid out the requirements for a blockchain ecosystem to be acceptably trustless and censorship-resistant. In his famous block post, Endgame, Vitalik covers topics such as scaling on top of a base layer, Ethereum, bringing Real World Assets (RWAs) on-chain, as well as reaching billions of users and speeding up innovation.
Liquid staking derivatives are a key piece of the puzzle when it comes to reaching mass adoption and onboarding institutions. This allows investors to earn a risk-free rate of return with little effort, low risk, and opportunities across a multitude of DeFi applications. For instance, this is not the case in traditional finance, since the average investor cannot buy a government bond and then borrow against it. Rocket Pool achieves this in trust-minimized, and fully collateralized manner.
Tokens
Coingecko: https://www.coingecko.com/en/coins/rocket-pool
Fee Breakdown
Node operators can earn commissions from the rewards generated by the 16 or 24 ETH that have been pooled from non-operator stakers. This commission is variable based on the number of node operators that are available for users to stake their ETH and the demand for ETH that is waiting to be staked.
- The minimum commission that can be earned is 5% of the rewards generated from the 16 or 24 ETH that have been pooled from non-operator stakers.
- The maximum commission that can be earned is 20% of the rewards generated from the 16 or 24 ETH that have been pooled from non-operator stakers.
- Currently, Minipools are activated at a set 14% commission rate. In the past, the node commission ranged from 5% to 20% with the ideal being 10%, and each minipool’s commission was locked for the lifetime of the Minipool.
rETH
rETH is the liquid staking derivative of the protocol. When a user deposits ETH into the protocol, they receive rETH, which is an ERC20 token that represents a tokenized staking position and entitles the user to claim their principal deposit and any accrued rewards from participating in staking. Since it is a liquid ERC20 token, rETH does not have to be locked within the protocol and can be traded, sold, held, or used across any DeFi application (provide liquidity, lend, use as collateral…)
As long as you are holding rETH, you are staking with Rocket Pool. Even if you purchase rETH on an exchange, you will automatically receive the benefits of staking just by holding the token.
Unlike other rebasing liquid staking derivatives, like stETH, rETH’s staking rewards do not accrue directly to a user’s rETH balance. Instead, the value of rETH is derived from an exchange rate that is pegged to the principal amount of ETH + the ETH staking rewards that have been accrued from securing the PoS network. As a result, users will not see an ever-increasing amount of rETH balance in their wallets. Instead, the relative value of their rETH holdings will increase compared to ETH.
The value of rETH is protected against downtime and node slashing.
- If a node operator leaves the network with between 16 and 32 ETH, 16 ETH will be returned to the deposit pool and the node operator will be left will the remaining ETH
- If a node operator leaves the network with less than 16 ETH, their RPL bond will be sold to cover the ETH that has been lost for the deposit pool.
Trading rETH back for ETH directly with Rocket Pool is only possible when the Staking Pool has enough ETH in it to handle the trade. ETH in this pool comes from two sources:
- ETH that other stakers have deposited and that has not been used by a node operator to create a validator yet.
- ETH that was returned by a node operator after they have exited one of their validators and received their rewards from the Beacon Chain.
It is possible that if node operators have put all of the staking pool to work on the Beacon Chain, then the liquidity pool won’t have enough balance to cover a swap. In that case, users can use another dex such as Uniswap to trade their rETH back to ETH – although that might come with a small premium.
In some countries, depositing ETH for rETH might be considered a taxable event. However, since rETH inherently accumulates value while the actual amount of the token that you hold remains constant, simply holding it does not generate any taxable event.
RPL
RPL stands for Rocket Pool Token and it is the native protocol token. It is used by node operators to vote on protocol governance decisions and can also be staked on a Rocket Pool node as a form of insurance.
- When creating a 16 ETH Minipool Validator in the protocol, at least 10% of that ETH’s value must also be staked in RPL as a security bond to the network. This bond serves as a promise that it will act as collateral if the node operator was heavily penalized or slashed and ended up staking with less than the minimum 16 ETH. When that happens, the RPL collateral is sold for ETH in an auction in order to compensate the protocol for the missing ETH.
- When creating a 8 ETH Minipool Validator in the protocol, you stake a minimum of 2.4 ETH worth of RPL and a maximum of 12 ETH worth of RPL. These represent 10% of the amount you’re borrowing from the protocol, and 150% of the amount you’re bonding (staking) yourself.New minipools can be created with either 8 ETH or 16 ETH. 16 ETH minipools are unchanged from how they work today, and are available for users that want to minimize their exposure to the RPL token.
In return for providing the RPL bond as a form of insurance promise, Rocket Pool also rewards node operators with RPL rewards from token emissions (inflation).
The RPL insurance bond, expressed as a percentage of the value of ETH provided by the protocol, is the amount of RPL tokens that a node operator needs to deposit when they start a minipool validator. This RPL insurance staked by a node operator will be used to reimburse regular users in the event that the node operator exits staking with less than 16 ETH in their validators.
The more RPL staked as insurance, up to a maximum of 150% of the staked ETH’s value, the more RPL node operators receive.
Overall, RPL has 3 primary use cases:
- Governance token of the Rocket Pool DAO to control protocol parameters.
- Insurance to protect stakers from validator downtime penalties or slashing events.
- Incentive for protocol participants.
Even though the inflationary nature of RPL creates selling pressure for existing node operators, the token should be able to establish a natural price floor due to the RPL bonding requirement for node operators. If the value of a node operator’s RPL bond drops below the 10% ETH threshold, they will be unable to claim any new RPL rewards. Therefore, as long as the operators believe in the long-term sustainability of the protocol, they will be incentivized to buy RPL off the market to increase their bonded RPL balance and earn more RPL rewards.
RPL rewards can be claimed every 28 days and vary from one node operator to another. The rewards calculation is dependent on two factors:
- The total amount of RPL staked among all node operators. This will determine the RPL APR
- Your RPL collateralization at the node level. For example, if you were to stake 500 RPL and the APR for RPL staking rewards was 20%, you would receive 100 RPL at claim.
RPL daily vesting schedule: https://tokenterminal.com/terminal/projects/rocket-pool/vesting-schedule#vesting-schedule
An increase in staked ETH by node operators would drive up the overall demand for RPL, since more RPL would be needed to create new mini-pools.
RPL calculator: https://docs.google.com/spreadsheets/d/1Wl3EukDALcd8nBQQkMhzXr5WfwmEj264YPfch9AJN30/edit#gid=0
Allocation | Percentage | Token Amount | Vesting |
Pre-sale investors | 32.4% | 9,720,000 | Fully unlocked at TGE |
Node operators | 28% | 8,400,000 | 70% of the 5% emissions rate |
Public sale | 18.6% | 5,580,000 | Fully unlocked at TGE |
Rocket Pool team | 9% | 2,700,000 | Fully unlocked at TGE |
Protocol DAO treasury | 6% | 1,800,000 | 22% of the 5% emissions rate allocated to the protocol treasury:
|
Oracle DAO | 6% | 1,800,000 | 8% of the 5% emissions |
Governance
Rocket Pool DAO – pDAO
The Rocket Pool DAO is governed by RPL token holders, and the charter was voted into effect on July 17,2023 via a governance snapshot under RPIP-23.
The main contributors to governance decisions are node operators, since they must purchase RPL in order to get insurance for their mini-pools and they also earn RPL from inflation. Besides, the lower the amount of slashing events and penalties, the lower the selling pressure for RPL, since lower bonds will be sacrificed to cover protocol deposits.
The pDAO charter lays a series of values that helps to set a foundation for how it should act.
- The pDAO SHALL serve the RP community at large; this comprises rETH holders, NOs, and RPL holders.
- The pDAO SHALL be defined as Node Operators, with power based on effectively staked RPL.
- The pDAO SHALL actively govern the protocol in the interest of the RP community at large.
- pDAO members SHOULD either
- Be informed and engage in public discourse about governance, or;
- Delegate their voting power to someone that is informed and engaged.
- The pDAO SHALL prioritize protocol safety.
- The pDAO SHOULD prioritize the health of the Ethereum network.
- The pDAO SHOULD prioritize decentralization.
- The pDAO SHOULD prioritize permissionless-ness.
The pDAO is mainly responsible for managing the treasury and signaling the future of the protocol. Over time, the pDAO will also oversee parameters such as RPL inflation, rewards, auctions, fees…
- RPL inflation – how much RPL inflation is generated yearly to reward participants and align incentives in providing decentralized staking.
- RPL rewards – how the reward amounts are divided between the DAOs and Node Operators.
- RPL auctions – Slashed RPL is sold at an auction to make the protocol whole, where the min/max bid amounts are configurable.
- Nodes – Min/max RPL staking amounts.
- Network – Min/max node commission fees, and consensus quorum for reported Oracle Node data.
- Deposits – Min/max deposit amounts of ETH for rETH.
Oracle DAO – oDAO
The oDAO comprises node operators who run the Smart Node Software and function as an on-chain DAO. The charter was voted into effect on July 17,2023 via a governance snapshot under RPIP-24.
The oDAO ensures that Rocket Pool contracts function correctly by relaying information such as Minipool validator balances, the RPL:ETH ratio, and RPL reward distributions.
Rocket Pool features two types of nodes, regular bonded nodes and oracle nodes.
- Regular bonded nodes can participate in staking by posting a 8 or 16 ETH bond that is then matched with 24 or 16 ETH from the deposit pool. These node operators can be hobbyists, companies running a Staking as a Service product…
- Oracle nodes make up the Oracle DA and run the Smart Node software on top of extra duties for the protocol and are rewarded for doing so.
Members of the Oracle DAO are elected by the Rocket Pool DAO to perform tasks related to oracle services. The Oracle DAO is responsible for conducting two major tasks:
- Report the performance of Minipool Validators to allow users to exchange their rETH holdings for ETH + staking rewards at the correct exchange rate.
- Track the RPL:ETH price ratio to ensure coverage for ETH stakers at all times (because RPL is bonded on Smart Nodes relative to ETH’s price).
Before the Merge, the Oracle DAO was expected to ensure that minipool validator balances on the PoS chains were communicated to the protocol on the PoW chain.
The oDAO charter lays a series of values that helps to set a foundation for how it should act.
- The oDAO SHALL serve the RP community at large, which comprises rETH holders, NOs, and RPL holders, by upholding the values and responsibilities outlined in this charter.
- The oDAO SHALL NOT actively govern the protocol; they SHALL act as caretakers serving the RP community at large
- While the oDAO possesses the ability to veto (by refusing to apply an upgrade or settings change) veto powers SHALL be reserved for cases of changes that were not voted for by the pDAO, vote manipulation, malicious action, or proposals that would result in clear damage to the Rocket Pool project
- When a veto power is exercised, the oDAO SHALL publish a Veto Explanation Document that describes why this step was taken. If possible, the report SHOULD also suggest potential similar-but-non-damaging votes that could be considered.
- Except for the narrow veto circumstances described above, the oDAO SHALL execute the proposals that are ratified by a pDAO vote
- While the oDAO possesses the ability to veto (by refusing to apply an upgrade or settings change) veto powers SHALL be reserved for cases of changes that were not voted for by the pDAO, vote manipulation, malicious action, or proposals that would result in clear damage to the Rocket Pool project
- The oDAO SHALL prioritize protocol safety
- The oDAO SHALL minimize its role
- The oDAO SHOULD gradually and responsibly remove responsibilities where it is technically possible to do them in trustworthy and more decentralized means
- When no responsibilities remain, the oDAO SHALL support removal of the oDAO
- The oDAO SHALL take on additional duties if required by the protocol
- Whenever possible, the oDAO SHOULD advocate for implementing duties without reliance on the oDAO and/or with an explicit plan to remove reliance on the oDAO
- In addition to their explicitly defined duties, oDAO members SHOULD act as stewards for the protocol
- The oDAO SHALL NOT abuse their position for personal gain
- Each oDAO member SHALL openly communicate information about their signers
- This MUST include if there is one signer or multiple
- This MUST note any close relationships with other oDAO seats. This includes but is not limited to signers able to sign for more than one oDAO seat, and particularly close relationships to signers for other oDAO seats (familial, employee/employer, etc).
- This MAY include a high level bio introducing the seat and/or its signers to the greater community
- The oDAO SHALL actively govern themselves
- The oDAO SHALL select its membership
- The oDAO SHALL hold their membership accountable to the values listed here
- The oDAO SHOULD hold their membership accountable for performing the responsibilities listed here
- The oDAO SHOULD establish internal guidelines to select and remove members
- These guidelines SHOULD include diversity to serve protocol safety
- These guidelines SHOULD highly value communication
- The pDAO MAY nominate a new member or suggest the kicking of an existing member via snapshot vote; if such a vote passes:
- The oDAO SHALL internally vote on the membership change, and execute the change if threshold for membership change reached
- The oDAO SHALL post a statement with rationale for the decision
The Oracle DAO also provides daily services, such as marking validators as active/inactive and ensuring that the maximum amount of ETH from the deposit pool is staked on the PoS chain. Other tasks include:
- Ensure that Minipools are creating validator public keys that aren’t already in use and that have proper withdrawal credentials.
- Construct the rewards Merkle Tree at the end of the rewards cycle and upload it to IPFS for other node operators to access.
- Monitor proposals for compliance with Rocket Pool’s fee recipient requirements.
- Propose and vote on protocol changes, such as protocol parameters and contract upgrades
- Propose and vote on the oDAO roster, including inviting and removing other members of the DAO.
All data reported to the protocol by the Oracle DAO must be agreed upon by more than 50% of the Oracle DAO members through on-chain governance.
In return for fulfilling these duties, the oDAO receives 5.9% of the total RPL inflation produced each rewards period. This allocation is divided evenly among its members
Up until now, users become members of the oDAO by invitation only. Among its members we find high-profile contributors such as Etherscan, BeaconChain, Lighthouse, Nimbus, and Bankless. They are also required to post an RPL bond. In return, they may receive additional RPL rewards for performing oDAO duties.
Setting up an oracle DAO node: https://docs.rocketpool.net/guides/odao/setup.html
Risks
When it comes to Liquid Staking Derivatives, it is worth noting that this is not a native feature of a PoS blockchain and that smart contracts are required in order to allow for this functionality.
Members of the Ethereum Foundation have already warned that liquid staking derivatives and similar protocols are a stratum for cartelization and that they can induce significant risks to a PoS chain. This means that investors should aim to diversify as much as possible and even self-limit their allocation to certain protocols in order to avoid centralization.
Liquid staking derivatives have inherent issues when they exceed consensus thresholds. Danny Ryan from the Ethereum Foundation suggests protocols to self-impose 25% (of staked ETH) limits to avoid the cartelization of block space with coordinated MEV extraction, block-timing manipulation, and censorship.
In RPIP-17, Rocket Pool voted in favor of self-limiting its growth and acting in the best interest of Ethereum, both immediately and in the long-term.
- Rocket Pool will prefer self-damage itself before endangering the stability of Ethereum. Rocket Pool’s growth should improve the decentralization of Ethereum and will self-limit its growth if it detracts from it.
- Hard limit – turn off the ability to stake more (prevent rETH minting)
- Soft limit – discourage taking on more stake and/or encourage to stake elsewhere else:
- Introduce a significant fee to mint rETH.
- Introduce a significant fee to create Minipools.
- Decrease marketing budget.
- Decrease incentives budget.
When judging the risks involved in a staking protocol it is worth assessing the following fields:
- Governance power distribution – how many votes it takes to pass a proposal, and whether the voters seek to align their incentives with the long-term growth of Ethereum.
- Governance structure – what measures are in place in order to avoid abuse of power, such as time delays, immutable contracts, governance takeover risk…
- Smart contracts risk – auditing, centralization risk, regulatory risk…
The Rocket Pool team has demonstrated its alignment with the core ethos of Ethereum, such as restarting work when the Ethereum core developers changed the staking contract from Casper in late 2018, or with initiatives such as RPIP-17.
- The actual implementations are supervised by the Oracle DAO, which reviews and monitors protocol upgrades.
- The quadratic voting power of individuals within the Protocol DAO is linked to both their validator count and a capped amount of the RPL utility token. This means that individuals gain voting power by participating in the network and staking a certain amount of the RPL token, rather than simply holding a large amount of governance tokens.
One of the criticisms of Rocket Pool’s governance is that node registrations are not sybil resistant, meaning one person could register multiple nodes. Since voting is done based on the quadratic root of effective RPL staked per node, a malicious agent could spin up many nodes and launch one Minipool on each in order to maximize their voting power in future votes. Such an attack has not yet been discovered and might be hard to tackle until after a vote has been compromised.
Security
Audits
Rocket Pool has had multiple audits done by Consensys Diligence, Sigma Prime and Trail of Bits.
Smart Contract Audit – April 2021 – Consensys Diligence
- Critical – 5 (3 Fixed, 1 Acknowledged)
- Major – 9 (3 Fixed, 1 Acknowledged, 4 Addressed, 1 Partially addressed)
- Medium – 11 (6 Fixed, 1 Acknowledged, 2 Addressed)
- Minor – 15 (13 Fixed, 1 Acknowledged)
Rocket Pool v1.1 Features – July 2022 – Consensys Diligence
- Major – 2 (1 Acknowledged)
- Medium – 1
- Minor – 4 (1 Acknowledged)
Pre Merge Upgrades – June 2022 – Sigma Prime
- High – 1 (1 Resolved)
- Medium – 2 (2 Resolved)
- Low – 4 (3 Resolved, 1 Closed)
- Informational – 5 (4 Resolved, 1 Closed)
Rocket Pool Protocol Review – May 2021 – Sigma Prime
- High – 1 (1 Resolved)
- Medium – 2 (1 Resolved, 1 Open)
- Low – 17 (7 Resolved, 6 Closed, 4 Open)
- Informational – 21 (5 Resolved, 1 Closed, 15 Open)
Rocket Pool Protocol Review – November 2021 – Sigma Prime
- High – 1 (1 Resolved)
- Low 4 (3 Resolved, 1 Closed)
- Informational 4 (1 Resolved, 3 Closed)
Security Assessment – September 9 2021 – Trail of Bits
- High – 5
- Informational – 3
Bug Bounty
Rocket Pool also has a bug bounty program in partnership with Immunefi (a Web3 bug bounty platform), since September 8 2021.
Rewards are distributed according to the impact of the vulnerability based on the Immunefi Vulnerability Severity Classification System V2.2, which has a simplified 5-level scale that separate scales for websites/apps, smart contracts, and blockchains/DLTs, focusing on the impact of the vulnerability reported. The system is classified into the following:
- Critical:
- Up to $500k
- PoC (Proof of Concept) required.
- High:
- Up to $25k
- PoC required.
- Medium
- Up to $5k
- PoC required.
Economic Attack Vectors
Even if there is a small chance that the deposit pool runs out of funds, it is worth noting that rETH is backed by more than 100% of its value. This is because of the requirements to be a node operator (ETH collateral + a minimum of 10% ETH in the form of RPL). If a node operator does not follow the consensus rules and gets slashed, the funds will be first taken from their ETH deposit and, if the penalty is higher, the mechanism will fall back to the RPL collateral. Only if the loss exceeds the RPL collateral and the original deposit of the node operator, the loss will be socialized among all rETH holders.
Dependencies and Access Controls
On October 4, 2021, Rocket Pool was notified through its Bug Bounty Program of an exploit that could be used to attack staking pools, both centralized and decentralized. The issue was reported by Dmitri Tsumak (anonymous at the time). Within an hour of the exploit, Rocket Pool confirmed the validity and severity of the vulnerability. Because of this, Rocket Pool announced that the protocol was postponing its launch.
The withdrawals credentials exploit
The exploit targetted how ETH deposits were processed by the Beacon Chain in order to add new validators. A normal Beacon Chain validator consists of two components, both of which are made of a public and a private key:
- A validator key pair: used for validation duties, such as attesting transactions and building blocks.
- A withdrawal key pair: used for withdrawing ETH from the validator
In order to make a new Beacon Chain validator, you would send a transaction to the Beacon Chain Deposit Contract specifying the following parameters:
- The public key of the validator key that you intend to use.
- The hash of withdrawal public key.
- Some signature data that contains the above information and is signed with the validator private key (to confirm that the sender owns the key).
The Beacon Chain periodically reviews all deposits and, when a sufficient number of blocks have gone, they will vote to add those deposits as new validators. In order to start validating, each of those validators must have deposited at least 32 ETH. Usually, the user would submit a single transaction with all of the above data and include 32 ETH within that same transaction. However, this is not required, and the user can choose to break up the 32 ETH deposit into multiple transactions – with the only requirement that there must be at least 1 ETH on each transaction. Finally, as long as there are 32 ETH, the Beacon Chain acknowledges and activates that validator. This is the point of failure tackled by the exploit.
Even though the Beacon Chain allows for multiple deposits for a single validator public key, it does not verify that all of them also have the same withdrawal credentials. Instead, it uses the withdrawal credentials of the first valid deposit, regardless of what the subsequent deposits specify. This enables a malicious user with access to the validator public key to specify whatever withdrawal credentials they want for their validator.
For example, in the first transaction the withdrawal credentials are set to: “0x88e3e7ad97bc2af06e8519f227d7ffdbb95d2ae04094cced39c3860145bf3bd24354ed6c92de5af0d38a5a35edddb059”
And in the second transaction, using the same validator public key, the withdrawal credentials are set to: “0x0100000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079”
Generally, when the owner of the validator key and the owner of the withdrawal key are the same person, they would have no reason to exploit this behavior. This only becomes a problem when the validator key owner is not the withdrawal key owner, and thus the validator key owner can set the withdrawal credentials to something other than what the withdrawal key owner intended, which nullifies the power of the withdrawal key.
Ethereum researcher Jim McDonald described this exploit several years ago in a research blog post and even submitted a pull request to the Beacon Chain’s specification which was not accepted.
Rocket Pool Minipools operate slightly differently than normal validators. They still use a validator key pair, but they do not have a withdrawal key pair and instead rely on an extension known as Eth1 withdrawal credentials (also known as “0x01”).
To perform a node deposit, a Rocket Pool node operator uses the CLI to create a new validator key, create a new contract on Ethereum’s execution layer (this is the Minipool that owns the validator), transfer 8 or 16 ETH to the Minipool, and join the Rocket Pool to receive the remaining 24 or 16 ETH from the deposit pool. This creates a Minipool but does not perform the actual deposit to the Beacon Chain Deposit Contract. However, at this point, the node operator owns the validator key pair that will be used by the Minipool.
Once the Minipool is created, it will construct the deposit information that will be passed to the Beacon Chain deposit contract and sign this information with the validator’s private key to submit the deposit information along with the 32 ETH. At this point, the exploit takes advantage of the fact that the node operator can generate the validator key pair before the deposit is sent from the Minipool to the deposit contract. In this period of time, the node can use the validator’s private key to create a malicious deposit with different withdrawal credentials and front-run the stake transactions. When this happens, the Minipool can only validate that the deposit payload is correct, but it cannot see if a deposit has already been submitted using the same validator public key. The result of this exploit is that the node operator ends up having full control over the entire validator balances on the Beacon Chain, including the 16 ETH from stakers and the associated rewards.
To mitigate this problem, Rocket Pool takes advantage of the fact that the Oracle DAO is already responsible for shuttling information from the Beacon Chain to the execution layer contracts. This allowed Rocket Pool to modify the Beacon Chain deposit workflow:
- The node operator calls the deposit command.
- The Smart Node creates a new validator key pair by using the CreateAddress2() function, which deterministically derives the Minipool contract’s address even before it is deployed.
- The Smart Node assembles a deposit payload that includes the validator public key, the Minipool’s withdrawal credentials, and the signature with the private key.
- The Smart Node calls the deposit function of the smart contracts to perform the deposit with the payload information.
- The smart contracts create the Minipool contract at the predetermined address and send a deposit to the Beacon Chain deposit contract, which contains 16 ETH from the node operator’s deposit.
- The Oracle DAO verifies the deposit by looking at both the Beacon Chain and the deposit contract. This ensures that the validator public key was not used to front-run this exploit and to confirm that the first-ever valid deposit correctly used the Minipool withdrawal credentials.
- The Minipool proceeds to operate by collecting the remaining 16 ETH from Rocket Pool stakers.
This solution is aligned with the permissionless ethos of Rocket Pool while still safeguarding the staking pool funds. At the same time, this plan does not burn any funds in the event of a false-positive. Funds may be locked on the Beacon Chain but the subsequent deposits could be used to turn them into a fully functioning validator, with the only loss being the opportunity cost while the funds remain locked. Besides, this plan minimally impacts the node operator’s wait time and only requires oracle transactions to detect that the staking process is working properly. As a result, there is no need for the Oracle DAO to adjust the RPL rewards distribution in order to offset gas costs, and instead can simply add that cost to the existing rewards distribution structure.
This mitigation plan was audited by Sigma Prime – one of the auditing firms that initially audited Rocket Pool smart contracts.
The original whitehat that identified the exploit collected the $100,000 maximum bounty for reporting.
Rocket Pool DAO nodes hack
On May 26, 2022 Rocket Pool network revealed they had suffered an attack on two of their DAO nodes. The exploit occurred after the attacker managed to gain access to one of Rocket Pool’s developers’ machines. This granted the intruder complete control over two of the DAO run nodes, which resulted in the theft of $28k worth of ETH and RPL. In perspective, that was insignificant damage compared to what the attacker could have been able to cause.
RPL Governance Token
Having decentralization as its main objective, Rocket Pool DAO is run by its governance token RPL. This allows the protocol to provide direct incentives, insurance, and governance over the protocol.
The RPL token price was not drastically affected by the exploit news, with 73% of the token holders still in profit. IntoTheBlock’s Global In/Out of the Money indicator identifies any address with a balance of tokens, the average price (cost) at which those tokens were purchased and compares its current price.
If the current price is greater than average cost, address is “In the Money.” If the current price is less than average cost, address is “Out of the Money.”
Peg Overview
rETH, Rocket Pool’s liquid staking ETH, gives holders the ability to gain rewards over time from staking on Ethereum’s proof of stake Beacon chain. This token is valued at the same market price as ETH, which has led to the belief that it is pegged to ETH, which is not really the case. The truth is that there are strong arguments for why it should trade at a discount as to why it should trade at a premium.
On the graph above, a price evolution of rETH, stETH and ETH can be seen. Clear divergences among rETH and stETH token prices can be seen when compared to ETH. Trading at a slight premium, rETH was unaffected by the recent hack.
Liquid Staking Tokens Market Share
When it comes to users, Rocket Pool essentially solves two problems. People that want the opportunity to get involved in liquid staking and nodes that want to operate and stake those funds in the right way. Rocket Pool works in a decentralized mechanism model contrary to other liquid staking providers like Lido. They accomplish this by pairing those who want to stake with those that want to run nodes.
The above table shows the Ethereum liquid staking tokens market share. The market was led by Lido with 91% of the market, Rocket Pool followed with 4%, in third comes Stakehound with 1.4% and finally Stkr and Stakewise each have 1.3%. Following the recent series of events, Rocket Pool was unaffected as well in the number of ETH staked and hence preserved its position in the market.
It can be said that while funds were lost, Rocket Pool managed to overcome the attack and also maintained its position in the market.
Project Investors
The RPL token distribution took place during a pre-sale in September 2017, and a crowdsale on January 4, 2018. The full list of token holders in both sales can be found here.
- The pre-sale started on September 9, 2017 and finished two weeks later on September 23, 2017
- Raise details were as follow:
- 45% of the RPL would be distributed.
- Ether target = 5,860.
- 8,196,199 RPL minted.
- 1 ether = 1397 RPL.
- There were 26 participants in the pre-sale according to the rocketscan list.
- The goal of the crowdsale was to aim for a greater distribution of the token.
- Raise details were as follow:
- 45% of the RPL would be distributed.
- Ether target = 5,900.
- 7,080,000 RPL minted.
- 1 ether = 1200 RPL.
- To avoid network congestion and unfair distribution where some users rush to get in most of the tokens at the start, Rocket Pool used a proportional distribution model. No matter the amount being contributed into the sale, the user would get some tokens, even if they participate on the last day of the sale.
- Users contribute ETH to the contract during the sale and they withdraw their contribution when the sale period ends.
FAQ
- What is the difference between being an independent node operator and staking as a service? What’s their role in Rocket Pool
- Rocket Pool supports both independent node operators and staking service providers, meaning that ETH staked through SaaS (Staking as a Service) solutions can be used in Rocket Pool’s Smart Node network.
- With Rocket Pool, both SaaS providers and independent operators can maximize their staking returns and get paid to run a node.
- ETH holders can choose whether they want to pay a commission rate to a SaaS provider or get paid to be a node operator themselves.
- Are there any differences between a Minipool and a normal validator?
- To the Beacon Chain, a Minipool looks exactly the same as a normal validator. It has the same responsibilities, follows the same rules, and earns the same rewards.
- The only difference is in how the Minipool was created and in how the withdrawals work when the node operator decides to voluntarily exit the Minipool or gets slashed.
- All of the creation, withdrawing, and rewards delegation is handled by Rocket Pool’s smart contracts on the Ethereum execution layer, which makes this process completely decentralized.
- What are the benefits of running two 16 ETH Minipools with Rocket Pool compared to a 32 ETH validator?
- By running a solo validator you would receive 100% of rewards on your 32 ETH stake.
- By running two 16 ETH Minipools you would receive 100% rewards on your 32 ETH plus 14% (node commission) of the rewards on the 32 ETH provided by Rocket Pool stakers.
- Note that you can improve the numbers above when creating a Minipool with the minimum 8 ETH requirement. In fact, running two 8-ETH minipool instead of one 16-ETH minipool will provide over 18% more rewards – even if the 16-ETH minipool has a commission rate of 20%.
- What are the minimum and maximum deposits?
- The minimum deposit allowed is 0.01 ETH.
- There is no upper limit to how much a user can deposit.
- I have a technical issue running a node, how can I get help?
- Checking on the Rocket Pool Support page.
- Asking on Rocket Pool’s Discord.
- What are the staking periods?
- If you are staking, you will immediately receive rETH. You can then use this token however you want (provide liquidity, lend, swap…).
- If you are running a node in the network, you can stake as a node operator for as long or as little as you want. The longer you stake, the more rewards you earn.
- How does the protocol protect the value of rETH?
- As a protocol, Rocket Pool is a network of decentralized node operators. The deposits of non-node operator stakers are allocated to a node operator that will perform the PoS duties with its validator node. Node operators are required to staked as much ETH as they are assigned (their 16 ETH minimum requirement plus the 16 ETH pooled from stakers). If there is an ETH loss due to poor node performance, whether it is because of downtime or slashing, the node operator must first compensate the loss for the pool’s ETH with their own 16 ETH and RPL collateral. If this does not compensate for the full amount being lost, the rest is spread across the network of validators, which will reduce the relative value rETH. This means that the loss is socialized across all stakers rather than having one or a few users incur large losses.
- Do we keep our keys if we use Rocket Pool as a regular staker?
- Yes, you maintain control over your investment with your own private keys. But it is with the rETH token as a redeemable claim for your staked ETH.
- Rocket Pool is decentralized and non-custodial, there is no central entity that takes possession of your ETH (say like Coinbase would). Rocket Pool relies on “tokenized staking” so that when you stake your ETH with the Rocket Pool protocol it’s contributed to a staking pool run by a random Rocket Pool operator on the network. In return you receive an ERC20 token rETH to your same wallet.
- rETH gains in value against ETH based on the collective Rocket Pool protocol staking performance. When you’re ready to stop staking, you swap your rETH back into ETH and you’ll receive more ETH than what you deposited (depending on how long you were staking). You can swap rETH via the Rocket Pool protocol directly as long as there is ETH available in the deposit pool (waiting to be staked), or you can swap rETH back into ETH via defi methods (like Uniswap) which will become available after launch.
- What is the point of owning RPL?
- RPL has utility in the RocketPool protocol. The protocol brings tangible value to the market and there will be a belief in future growth. As a result, the demand in RPL increases, and in turn the price increases.
Community Links
- Website: https://rocketpool.net/
- Whitepaper: https://www.rocketpool.net/files/RocketPoolWhitePaper.pdf
- Docs: https://docs.rocketpool.net/
- Developer docs: https://docs.rocketpool.net/developers
- Twitter: https://twitter.com/Rocket_Pool
- Discord: https://discord.gg/rocketpool
- Medium: https://medium.com/rocket-pool
- Youtube: https://youtube.com/rocketpool
- Reddit: https://www.reddit.com/r/rocketpool
- Github: https://github.com/rocket-pool
- Governance forum: https://dao.rocketpool.net/
- Governance proposals: https://vote.rocketpool.net/
- Governance delegates: https://delegates.rocketpool.net/
- DefiLlama: https://defillama.com/protocol/rocket-pool/all/Change
- Coingecko: https://www.coingecko.com/en/coins/rocket-pool