Validator as a Service

Validator as a Service

Project Description

When delegating your stake to a pool there is a certain amount of trust needed: a malicious pool could keep your profits or could not pay you the amount you deserve. For a novice this is impossible to notice.

Additionally, when staking, a fee of 5% (estimated pool fee) seems small but when owning larger amounts of NIM the fees will be a substantial amount of money.

Due to their simplicity, pools tend to grow and accumulate a large share of the market (see PoW Pools in 1.0). In terms of stability and decentralization this poses another problem.

The goal of this project is to solve these problems by enabling non-technical people to run a validator for themselves so they do not have to rely on a pool. Basically, the idea is to offer “Validators as a Service”.

Our proposal is to offer a service that requires very low trust for both parties. We will never be in control of the user’s money or even the money that is earned while staking (in contrast to a staking pool).

Instead of taking a cut of the rewards we plan to take a fixed fee for operating the validator nodes. This means for the user that our service is financially beneficial for the user once an amount of ~$35k is staked (in comparison to the average pool fees; based on $10 Validator, 7% Reward, 5% Pool Fee).

Having more independent validators, rather than big pools, will also help with decentralization and secure the network.

Finally, another positive side effect of our proposal is that it complies with German regulations as we are able to operate it without a crypto storage license.

How it works

  • Customer orders a validator for a fixed subscription fee
    • The customer gets informed about the prices but will only be charged once everything is set up. When payment is complete, we fire up the validator as this is the main operating cost.
    • (Explore HTLC as Postpaid alternative?)
  • Validator keys get generated in the browser (optionally external)
    • Customer stores keys of validator wallet (this is where the rewards will be credited)
    • Validator signing keys get send to operator (these keys can only produce blocks, cannot access the funds)
  • Running the validator
    • Customer sends minimum required amount (10k NIM currently) to validator wallet or more (minimum validator requirements subject to change)
    • (optional) customer delegates additional NIM to the validator (from another wallet)
    • Validator starts staking as soon as the required minimum amount is received
    • Staking rewards will be credited to the validator wallet

Project Team

  • Tobias Faber (Faberto)
    • Role: Administration, Blockchain related development
    • Background in Cybersecurity
    • Introduced to Nimiq in 2017, First Blockchain Project
    • Implemented a MiningPool in .NET Core (and NodeJS for blockchain interaction) on the first TestNet
    • Operated a pool on mainnet release (nimiqpool.com, including Discord bots, website, etc.)
    • Still running and maintaining a community seed node (since mainnet release, seed.nimiqpool.com:22001)
  • David Poetzsch-Heffter
    • Role: Architecture Design / Deployment
    • Head of Software Engineering at Mondata
    • Lead developer for a number of projects with focus on backend APIs
    • Experienced in running production workloads in the cloud for both internal projects and external clients
    • Deep DevOps expertise, especially in the area of automatic testing and automated kubernetes deployments
  • Christian Meyer
    • Role: Full stack development
    • Senior Full Stack Software Engineer
    • Experience with functional reactive frontend development based on Vue.js, Typescript
    • Experience with backend and API development based on Node.js, TypeScript, Scala, Java
    • Experience with frontend/backend hybrid solutions like Asp.NET, Razor, Blazor
    • Experience with BDD, Unit- and E2E-Testing
    • Experience with mobile app development Android/iOS, Cordova and Quasar

Requested funding

  • Infrastructure costs (like servers hosting)
    • For the development and testing we will be using our own machines as much as possible.
    • Hosting the website and the data collection nodes is negligible.
    • For deploying the validators and testing this at scale funding will be required.
  • Security audits from Team Nimiq.
    • We would like to have a conceptual audit. Code audits should not be required as everything is secure by design meaning that bugs do not have any impact on the customer other than uptime.
    • Of course, advice is always welcome :slight_smile:
  • Technical advice from Team Nimiq.
    • As our prepaid payment solution still requires some trust, we would like to discuss what will be technically possible on the blockchain in the near future.
  • UI/UX design from Team Nimiq.
    • Our goal is to make our application as user friendly as Nimiq. On that matter, feedback and advice is always welcome but not required
  • Misc costs required to create an MVP or, in the case of a not-for-profit project, costs to maintain the project.
    • Team will invest time on this, laying off paid work.

External funding

Once the project is up and running it should be sustainable. Office and equipment costs will be covered by us.

The Project is a business case but with low expected income.

This project requires front- and backend development with strong focus on user friendly interface and infrastructure automation.

We intend to open source the project with viable documentation.

Detailed Project Plan

Current plans and expected development times for the project. Future ideas or follow-up projects are also appreciated.

There are a couple of different components which can be partially developed in parallel

  • Validator Setups
    • Automatically deploying validators given specific options
    • Optimizing the deployment to prevent having to sync the chain from scratch
    • Monitoring the validators in the classic way (resources, response, errors)
    • Process flow for staking
  • Node Setup
    • Monitoring the validators through the blockchain
    • Gathering information for the backend, e.g., amount staked, epochs, payments etc.
  • Backend
    • Handling Payments
    • Communicating with the Node
    • Handling Validators
    • Serving the frontend
  • Frontend
    • Building Payment flow
    • Creating Validator/Wallet Keys
    • Configuring Validator
    • Displaying statistics
    • UX Design
    • Providing chain details (e.g., links to blockchain explorer for the validators etc.)
  • Miscellaneous
    • Informational Website
    • Infrastructure Setup
Detailed Funding Table
Hours
Validator Setups
· Automatically deploying validators given specific options 24
· Optimizing the deployment to prevent having to sync the chain from scratch 24
· Monitoring the validators in the classic way (resources, response, errors) 12
· Process Flow Staking 12
Node Setup 0
· Monitoring the validators through the blockchain 36
· Gathering information for the backend, e.g., amount staked, epochs, payments etc. 12
Backend 0
· Handling Payments 36
· Communicating with the Node 12
· Handling Validators 36
· Serving the frontend 36
Frontend 0
· Building Payment flow 12
· Creating Validator/Wallet Keys 12
· Configuring Validator 24
· Displaying statistics 36
· UX Design 24
· Providing chain details (e.g., links to blockchain explorer for the validators etc.) 12
0
Miscellaneous 0
· Informational Website 24
· Infrastructure Setup 24
Total 408
Cost 35$/hr $14.280,00

Thank you for reading and we hope that you will give us the support needed to realize this project :+1:

This is litterly a copy of my idea down to the name i presented few months ago, i even wrote a project plan and a working proof of concept.

Hello Maestro,
offering to host and maintain validator nodes is no new idea and has been in the wild for many other PoS currencies.
We are aware that someone mentioned a similar idea in one of the dev-meetings.
Before writing this proposal we have done our research but if we have overlooked something could you provide us with the information?
As you had the same idea we both agree that this Project would be a benefit for the community.
We would love to have your feedback and recommendations for improvement as you have already familiarized yourself with the topic.

Any MVP or similar where we can see it in action?

In our understanding of the term the result of this proposal would be the minimum viable product.
Other than that, no technical proof of concept or the like exists right now. However, based on our concept studies we’re very confident that the project is technically feasible.
If our proposal was unclear in some points please elaborate so we can either come up with a more detailed explanation or even a PoC implementation for those.