Development Update — 6th Feb, 2019
2018 was no doubt an adventurous year for Rocket Pool, one that saw it grow from alpha release to beta release, and the team grow along in step. For 2019, we have been hard at work already on Rocket Pool 2.0, our decentralised staking network which is compatible with phase 0 of Ethereum’s Serenity update — the beacon chain.
In this update we’ll feature some early information and screenshots of the new Rocket Pool 2.0 beta, which features a much simpler design than our first version. Staking your ETH in the Rocket Pool network should be a no-brainer.
We’ll also be outlining how the Rocket Pool 2.0 beta will work using a new beacon chain simulator we’ve built, which can mimic the main parts of the chain which Rocket Pool will need to interact with. We will also touch on a new BETH smart contract that will give BETH tokens to users who deposit with Rocket Pool.
Rocket Pool — Wait, what, who?
If you’re not familiar with Rocket Pool, here’s a quick run-down before we get into the details of the development update.
Rocket Pool is a next-generation Ethereum proof of stake (PoS) infrastructure service, designed to be highly decentralised, distributed and compatible with Casper 2.0, the new consensus protocol that Ethereum will transition to in late 2019.
We offer any user, business, corporation, pool, wallet provider, exchange, hedge fund — just about any service — the ability to provide their users with the option to earn interest on their ether holdings for a fixed term without worrying about maintaining an extensive staking infrastructure, just plug and play.
Rocket Pool has a long history in Ethereum and work on it originally began in late 2016 after the Mauve paper was released by Vitalik Buterin. This provided an early functional spec for Ethereum’s new consensus protocol called Casper which would allow users to earn interest on a deposit of Ether. Since then, Rocket Pool has grown and evolved into a next-generation staking network, aiming to allow businesses and their users to earn interest on their ether and to empower users who wish to stake on their own node by providing them with additional income on top of interest awarded by Casper.
Rocket Pool 2.0 Beta V1
The initial release of the Rocket Pool 2.0 Beta will operate in a similar way to our first beta. It will be community oriented, with all users being able to get test ETH and RPL from a faucet, allowing them to stake their ETH, and even run their own smart node in the Rocket Pool network! In return for helping us run the beta, all participating users will receive some free RPL.
The next beta features a very simple UI, so the user experience for staking ETH is super simple. Below are screenshots of the new design, which is already being developed as we speak.
Beacon Chain Simulator
The first phase of Ethereum’s new Serenity update is the beacon chain. This is the backbone of Ethereum 2.0, and is an entirely new chain which allows for Proof of Stake using Casper the Friendly Finality Gadget (“Casper FFG”). The phase 0 implementation of the beacon chain is designed to be very simple and will not support smart contracts, accounts or shards. Ether on the beacon chain will not be transferable until a later phase.
Hopefully there will be a live beacon chain testnet we can use in a few months, with clients being developed by awesome teams such as Prysmatic Labs, Sigma Prime, Status, Chain Safe Systems, PegaSys, and more. But if not, how will Rocket Pool’s new beta work without a beacon chain to plug into?
Enter the beacon chain simulator! This allows us to run all elements of the beacon chain that Rocket Pool will use, including the current mainnet deposit smart contract, validators and more.
What it does:
- Uses the current ETH 2.0 PoS deposit smart contract written in Vyper.
- Features validators who deposit into this smart contract.
- Simplified validator proposal/attestation messaging.
- Simplified reward/penalty calculations — active validators gain or lose a set percentage of their deposit each epoch based on their activity record.
- Allows nodes in the beta to be penalised for downtime etc. for a more ‘real’ experience.
- + more awesomeness.
What it doesn’t do:
- Be all decentralised like the real one. It’s a simulator meant to run a central beacon chain service on one server which other nodes connect to.
- Consensus. Since it’s just on one main central server, it doesn’t need it.
- Real nitty gritty beacon chain stuff like cross-linking, committees and sharding.
We’ve already integrated this simulator into our own unit tests; it can be added to a project with NPM for anyone else who wishes to give it a go. Or for those who are just curious, just poke through the repo to see how it does what it does.
BETH Smart Contract
As stated above, depositing to the beacon chain is a one-way process in phase 0 of the Serenity update. This means that the earlier stakers who become validators on the Ethereum network (including Rocket Pool users) won’t have access to their beacon chain ETH (often referred to as BETH) for quite a while.
As Rocket Pool may be one of the initial services people use to stake their ETH, this puts us in a position where it would be good to give our users some flexibility in managing their deposits.
We’re currently looking at several options, one of which is creating a BETH smart contract on the Ethereum mainnet which issues BETH tokens to Rocket Pool users representing their deposits. These could be traded or sold as desired until access to the real BETH on the beacon chain is available, at which point they could be traded in. We would also charge our fees in BETH in the meantime so we are using the same service we offer our users.
We currently aren’t locked into this idea as it would centralise part of our service (although all network node staking would still be decentralised); we’d have to be responsible for porting over BETH balances to the new Ethereum chain in phase 1 or 2 when smart contracts are supported.
We’re open to feedback on this idea and may integrate it into the beta just for testing.