[ICO] Rocket Pool - a decentralised Ethereum Proof of Stake pool
Rocket Pool is a first of its kind, next generation decentralised Ethereum proof of stake (PoS) pool in alpha and built to be compatible with Casper, the new consensus protocol due in 2018.
Unlike traditional centralised Proof of Work (PoW) pools, Rocket Pool utilises the power of smart contracts to create a self-regulating, decentralised network of smart nodes. These smart nodes can then be engaged by users with any amount of Ether to earn interest on their deposits, all the while helping to secure the Ethereum network.
Rocket Pool is composed of 3 primary elements; smart contracts, smart nodes, and minipools. All three integrate with each other to provide a new type of network that can automatically scale, load balance, and self-monitor across multiple cloud hosting providers in any region of the world.
Rocket Pool is currently in alpha with its code publicly available for inspection. It can be run locally by any user that desires to see how it works. Rocket Pool also boasts several first to market user features for Casper staking such as Widow Addresses and Rocket Deposit Tokens (RPD).
Casper is a planned future change in the way the Ethereum network forms distributed consensus and is primarily aimed at reducing energy wastage. Casper achieves this goal by using a consensus mechanism called Proof of Stake. Consensus in this regard means that everyone in the network agrees that the current chain being used is the correct one.
The Rocket Pool alpha is currently running with a dummy Casper contract that simulates the inputs and outputs of Casper as currently specified. It is important to note that Casper is not a finished protocol and is still under heavy development. As a result, it is entirely possible that Casper may change significantly and the resultant impact on Rocket Pool may vary from insignificant to major. It is important to be aware of this risk. Rocket Pools development team will keep a very close eye on the Casper development process, and react immediately to any applicable changes where possible.
Rocket Pool will not only provide Casper staking opportunities for individuals directly using our website, but can also accommodate businesses such as wallet providers, exchanges, or next generation hedge funds. Rocket Pool includes a 3rd party partner contract application programming interface (API) that allows these entities to offer staking services for their own users, using the Rocket Pool infrastructure in the background. This allows business such as these to focus on their own trade while simultaneously providing their users opportunities to further diversify their own investments.
With this in mind, Rocket Pool can extend its potential market share of staking services substantially by not only providing users direct access to stake with Casper, but allowing the Rocket Pool infrastructure to be used by a large range of 3rd party services. These services could vary from existing exchanges through to next generation decentralised hedge funds.
Rocket Pool smart contracts contain numerous functions that allow the network to be highly flexible as well as ensuring that all main contracts are upgradable. If an issue manifests itself within any of the main contracts, a new version of a contract can be deployed whilst simultaneously ensuring that other contracts are only able to communicate with the latest version of that contract. The remaining depreciated and bugged version is unable to be accessed within the network at all.
Maintaining smart node uptime is a crucial requirement for being a successful pool in the Casper ecosystem. To help maintain this uptime, Rocket Pool contracts are able to load balance the network when onboarding new users as well as instruct smart nodes to deactivate in the event of partial network failure due to DDoS attacks, simple server failure, or more. This feature ensures that new users are not assigned to any nodes that are misbehaving or are under heavy server load. This will minimise any penalties the network may incur due to any of the above scenarios.
For Casper to process transactions and reward validators with interest for successful participation, nodes are required. In the Rocket Pool network, a node isn’t just any ordinary node, it’s a smart node that can listen to everything occurring on in the network, accept commands, and contact other smart nodes directly using special scripts that run as services on each node.
As it currently stands, each smart node must check in with the main contract every 15 minutes to report on its current server load, launch any minipools that are ready for deployment, and more. Smart nodes are also capable of disabling other smart nodes that are not operating to correctly. This can come in particularly handy if a node is suffering a DDOS attack, the server is experiencing hardware issues, or any multitude of other issues that may result in Casper penalising the node for not performing its job correctly. In any of these cases, a smart node will disable the misbehaving node to prevent any new users being assigned to it.
Future versions of Rocket Pool will give smart nodes even more brainpower. Each smart node will be able to monitor the status of the network and attempt to remote reboot another smart node regardless of the cloud provider it’s hosted on. Smart nodes will also be able to scale the network by automatically launching new smart nodes themselves if they detect that the network is running near capacity.
When a user sends their Ether deposit to the main Rocket Pool smart contract, if it does not meet the minimum requirement for staking with Casper (at the time of writing this minimum is 32 Ether), it will create a new minipool contract and assign the user and their deposit to it. More users are added to this minipool until the deposit total exceeds 32 Ether (or any min limit set by Rocket Pool). Once the minimum requirement is met, the minipool is then assigned to a smart node in the network with the least amount of server load and their deposit is sent to Casper with their assigned smart nodes details. Future versions of Rocket Pool will also assign users to alternating geographic regions for increased redundancy and decentralization. Users are also able to join minipools staking for a specified period of time. This allows them to leave their deposit earning interest for the minimum time currently allowed by Casper; 2 months. 6 and 12 month options will also be available.
When a minipool’s staking time has completed, a smart node will automatically request the withdrawal process to start with Casper. This withdrawal process takes time and when a withdrawal is ready for execution, a smart node will trigger this process for the minipool. Minipool users are then allowed to withdraw their deposit and rewards from Rocket Pool.
Rocket Deposit Tokens
Users are able to set their staking period for lengths of time up to 12 months. While it is nice to be able to set and forget, sometimes life gets in the way. For this reason, Rocket Pool gives users the ability to withdraw their deposit as Rocket Deposit Tokens (RPD). RPD tokens back the Ether the user has deposited and can be sold to other users on the free market, or traded in to the Rocket Pool RPD token contract for immediate payment of Ether provided the RPD token contract contains enough Ether. Tokens purchased on the free market can be redeemed for Ether back at the Rocket Pool Deposit Token contract.
The Rocket Deposit Token contract contains a variable amount of Ether in it at any given time. This Ether is sourced from minipools that have had users withdraw all or part of their deposit as RPD tokens. This Ether is sent to the Rocket Deposit Token contract where it becomes an available source of Ether for those wishing to trade in RPD tokens.
In the Rocket Pool network, 1 RPD token represents 1 Ether. A 5% fee is incurred when the user withdraws their RPD tokens which serves a dual purpose, the first of which is to prevent abuse of the system.
Secondly, the fee is used to help RPD token holders sell their token by incentivizing buyers. If 1 RPD token equaled 1 Ether when buying, people would simply purchase Ether. In the case of RPD tokens, that 5% fee is given
as a bonus to users who trade tokens in to the RPD Token contract for Ether. In essence users receive an extra 5% Ether when trading tokens. These tokens are also fully enabled on the free market, so if the Rocket Deposit Token contract does not have enough Ether in it for you to trade in your tokens, users can always price them at a discount and sell them quickly on the free market. Patient buyers of these tokens who don’t mind waiting for the Rocket Deposit Token contract to fill up with Ether again, are rewarded with a 5% bonus when trading in their bought tokens in for Ether when the time comes.
Example: Bob has 200 Ether staking with Rocket Pool. Looking in the mirror on his 40th birthday he finally decides he can’t live without that hair piece he’s had his eye on since he noticed his hair line marching south at an unusually rapid rate. He decides to withdraw 50% of his deposit as RPD tokens, this leaves his available balance staking at 100 Ether. When withdrawing these tokens, Bob is charged a 5% withdrawal fee, so he ends up with 95 RPD tokens which he can then sell on the free market or if there is available funds in the Rocket Deposit Token contract, he can trade them in there for Ether immediately.
That withdrawal fee prevents Bob cheating the system when his deposit first begins staking as he can’t simply withdraw his tokens and trade them into the Rocket Deposit Token contract for Ether immediately, then continuously repeat the process. He could essentially keep this contract drained of Ether without the fee and other token holders wouldn’t be able to trade their tokens for Ether. Bad Bob!
If users intend on staking with the Rocket Pool network for some time, it is a smart idea to plan ahead. Sometimes life doesn’t go the way we planned and unfortunately, bad things can happen. Rocket Pool allows users to specify a widow address after they make a successful deposit for staking. This address will be allowed to collect deposit and interest earned while staking if the primary address used to make the deposit does not collect it within 3 months of the staking period ending.
A good example of how this could be used is to give a family member an empty wallet. This wallet can then be registered as a widow address and should anything happen to the primary user, the family member will be able to use the widow address to retrieve the deposit and interest on the primary user’s behalf. Forgetful users might also find this as a useful service for simply creating a backup address. Should anything happen to a user’s main wallet, a widow address could be used to obtain access to the deposit, albeit after 3 months have passed.
Network Visual Guide
The Rocket Pool network is a highly flexible and decentralised network which isn’t always easy to visualise. For an easier way to see how the Rocket Pool network operates, we’ve created the above infographic.
To view a full-size version of this infographic at the Rocket Pool website, please follow this link to the larger infographic.
In order to ensure the security and safety of customer funds and the smart nodes themselves, Rocket Pool is committing to subjecting its platform to a comprehensive security audit before launching on the Ethereum mainnet.
All Rocket Pool contracts have been open source since alpha; longer than any other Casper compatible pool. As well as allowing the public to examine the contract code, there are several planned code audits, bug bounties on the contracts, and smart node penetration tests planned for Rocket Pool’s future beta release. All audit results and applicable post mortem actions will be made publicly available.
Rocket Pool has until now been developed by a small team. While this has worked well to get to this stage, for Rocket Pool to truly develop into all it can be, increased dedication to the project and more specific specialisations will be required to turn Rocket Pool from a brilliant idea into a dependable, feature rich network. For this reason, Rocket Pool will be conducting small token sales to facilitate the transition into the next phase of the project.
Rocket Pool will offer up 18 million tokens and anyone wishing to participate will be able to acquire RPL tokens by pledging ETH into a token sale smart contract. The Rocket Pool Token (RPL) distribution will be in the form of a 45% presale to early supporters and other interested parties, followed by a public crowd sale of 40% of the remaining tokens. The presale will run for two weeks from 9/10/2017 to 23/10/2017. The following public crowd sale will last four weeks from 25/11/2017 to 23/12/2017. These dates are currently an approximation as the actual start and end times will correspond to specified Ethereum block numbers which will be revealed closer to the offer commencing.
The token sales will be hard capped, meaning that the total amount of Ether able to be contributed will be set before the offer commences. At the point this cap is reached, the token contract will immediately disable additional sales. The cap amount will be set in the token sale smart contract and locked
to a value approximately equal to $4.25 million USD based on the ETH/USD exchange rate at the commencement of the token sale.
To ensure an even distribution for the public crowd sale, it will use a proportional distribution model that will allocate tokens proportionally to each participant based on the amount of Ether pledged during the crowd sale. Users will be required to wait for the sale to finish before collecting their assigned tokens and potential refund for excess Ether sent to the contract.
Being a crowd funded project, 85% of tokens will be owned by crowdfunding participants in the form of RPLs, while the remaining 15% of RPLs will be reserved for the original development team, any advisors, further code/node audits, bug bounties, and the earliest adopters/contributors.
The developers here at Rocket Pool have a plan, and our token sales are designed to enable the execution of that plan in a manner that best utilises any obtained funding. The graph below clearly defines what percentage of funds will be allocated to what area.
The Rocket Pool Token (RPL) is a protocol token that is the life blood of the distributed staking network.
Each node in the Rocket Pool network is required to have a deposit of RPL in it equal to the amount of ether (1:1) that node is capable of staking. This gives anyone, including the network, the ability to easily observe the staking limits of each node, acts as a security token for new nodes being registered in the network, allows each node to directly check on the status of other nodes in the network using token routing without going through the main contract and offers scalable partial compensation for users in case of node failure or penalties incurred from Casper by underperforming. In order to keep Rocket Pool from ever possessing more than 1/3 of the entire staking network (something that shouldn’t happen with Casper), the RPL tokens will be capped at 18 million.
If a Rocket Pool network nodes goes down and is penalised by Casper, users on that node are given RPL tokens from the nodes supply proportional to the loss incurred. E.g. a 5% loss of ether is detected; users will be given 5% of the nodes RPL tokens as partial compensation. While this isn’t a 1:1 protection of value, the size of the compensation should potentially scale with the success of the Rocket Pool network. Losing RPL tokens in addition to any fees to cover costs would also be an additional incentive for Rocket Pool to make sure node uptime as close to 100% as possible.
RPL also serves as a form of self-regulating security. If a node on the Rocket Pool network performs poorly and is penalised by Casper, it will lose RPL tokens proportional to the penalties incurred. In doing so, it’s capacity to on board new users is also diminished until issues with the node are rectified. Smart nodes on the Rocket Pool network report their status and server load every 15 minutes, so this serves as an automatic adjustment between reporting intervals.
The last purpose is a potential future use aimed at increasing decentralisation of the Rocket Pool network. Given Rocket Pools successful operation for its first 6 months to a year of activity running our own distributed cloud based smart nodes, there would exist the possibility for users to submit their own nodes into the Rocket Pool network.
RPL will be required as a network access token in this case, so each user node that is submitted to the Rocket Pool network would be required to hold a deposit of RPL equal to the maximum amount of ether that would be assigned to that node for staking. User nodes would also be required to run our smart node service scripts to become part of the network and monitored by the main Rocket Pool contracts. Should an issue with a user node arise, it would be penalised in the form of RPL from that node which would be distributed to the users staking on that node as compensation. If the user node exhibits excessive server load, down time or any other problematic incidents, the main
Rocket Pool contracts will disable the users node from receiving any new users and ban it from the network. To prevent purposeful malicious user node behaviour, any user nodes will be required to stake as much ether as users that will be assigned to them from Rocket Pool. This ultimately means user nodes will be highly motivated to provide the best staking experience for users that are assigned to them from Rocket Pool, or they risk losing not only their own ether, but RPL tokens for the downtime incurred. If you're an honest node though, you get to stake for free in the network and have to ability to take a cut of users interest who were assigned to your node, in return for you providing the hardware/bandwidth/security.
RPL Token Address
Select how you would like to participate in the crowdsale
Please agree to the rules above in order to participate in the crowdsale
Select how you would like to participate in the crowdsale
Please agree to the rules above in order to participate in the crowdsale
Other Ethereum Wallet
Log into your MyEtherWallet account and send your desired contribution to the crowdsale contract address below:
This crowdsale uses a proportional distribution
model that guarantees everyone who participates some tokens regardless
of when they participate. This means you won't be able to collect your
RPL tokens until the sale period finishes, all instructions for
collecting your tokens will be available here when the sale period
completes. MetaMask users who contributed will be able to automatically
claim their tokens from this page at this time.
Extended Staking Feature
Users that hold RPL tokens will also be able to access the extended staking function. This will entitle them to stake with Rocket Pool for much longer periods if desired than users who do not hold RPL.
At this point in time we are yet to determine what fee structure is most appropriate for Rocket Pool. Several considerations will be made in order to determine a structure that delivers the best possible service to users, whilst adequately rewarding those that participate in the token sale, and ensuring that Rocket Pool remains serviceable into the future.
David Rugendyke | Project Lead, Senior Developer
David has over 18 years commercial experience developing high end web applications, has been featured twice in Australia Personal Computer (APC) magazine for projects he’s built, and is currently committed to working on Rocket Pool full time.
Thriving on a challenge and with a long list of software projects behind him, David has acquired a very proficient knowledge of Cryptocurrency and DevOps as well, a unique combination of skills that lead to the creation of Rocket Pool, a project with scope spread across several of these unique fields.
David also loves to homebrew beer and when not working on Rocket Pool, can be found enjoying a beer or brewing another all grain batch over the course of a day. David’s favourite beer style is a good American Wheat Ale, followed closely by an India Pale Ale.
Mathew Wright | Senior Systems Engineer | RPEQ 15507 (IT&E)
Mathew has over 10 years of experience as an Avionics Engineer specialising in Airways Information Technology and Management. With expertise in Systems Engineering practices, Mathew is looking to translate his abilities into the block chain industry with the ultimate goal being to integrate some of this technology back into the world of Air Navigation.
Mathew is a keen video gamer, average football player, hopeless dancer, and loves nothing more than a cold drink over a BBQ with family and friends.