DPOPS FAQ — General information, expected ROI, and more!

Paul Bugnot
X-Cash

--

The DPOPS (standing for Delegated-Proof-of-Private Stake) is a brand new and unique Delegate-Proof-of-Stake consensus integrated into X-Cash, a fork of Monero which has since the beginning of the project brought new innovation to the privacy coin space (notably FlexPrivacy, public & private transactions on the same blockchain, from the same wallet).

As we are entering the beta of the new consensus soon, we want to address some of the questions you’ve had and prepare you for the upcoming update.

Most of the questions are answered here but don’t hesitate to join us on our Discord server and ask your questions directly!

FAQ 🙋‍♂️❓

Can I run the validator node on my computer?

Short answer: No, you shouldn’t run a delegate node on your own computer.
There are several reasons for that. Firstly, the xcash-dpops software only runs on Linux Ubuntu, which additionally has to be specifically configurated to forward port connection.
Secondly, people who are voting for you are trusting their votes to you and your ability to produce blocks and secure the network with maximum reliability. It wouldn’t be fair to not provide a dependable delegate node to your voters. You are also assigned a reliability score, which would be negatively impacted if you were to miss a round.

Requirements
The program will only run on a Linux/Unix OS at this time.
We recommend installing this on a Ubuntu VPS/dedicated server (18.04) for the best compatibility.

Minimum System Requirements:
Operating System: Ubuntu 18.04 (or higher)
CPU: 4 threads, with at least 2.0GHZ or more for each thread
RAM: 6GB
Hard drive: 50GB (with 18 GB of space needed per year)
Bandwidth Transfer: 100GB per month
Bandwidth Speed: 100 Mbps

Recommended System Requirements:
Operating System: Ubuntu 18.04 (or higher)
CPU: 4 threads, with at least 2.0GHZ or more for each thread
RAM: 8GB
Hard drive: 100GB (with 18 GB of space needed per year)
Bandwidth Transfer: 500GB per month
Bandwidth Speed: 500 Mbps

How many delegates are there?

At the launch of the beta, the limit of the number of delegates will be 50. Depending on the evolution of the network, and with the decision of the delegates, we will increase the number of delegates up to a limit of 100.

Why 50 delegates instead of the 100 initially planned?
We have run several polls with the community before the start of the beta, and after some internal discussions, we have decided to start the beta with a limited number of 50 delegates. The main reasoning was to ensure that we had a suitable number of delegates ready during the beta and at the beginning of the main-net, and avoid a situation where we don’t have enough validator nodes.
Having 50 delegates at the beginning also means that the bandwidth used will nearly half as much as it would be if there were 100 delegates, as in a DBFT consensus every delegate is sending messages to the others 99 continuously. We will increase the number of delegate on the mainnet progressively while monitoring the bandwidth and size increase of the blocks.

I have a minimum of 2M XCASH, and I want to stake. How do I start?

Let’s say you have 2M XCASH, on a wallet, or on the X-Bank, and you want to stake them. For the sake of simplicity, you will have to create a new wallet dedicated to staking. Once the new wallet is created, you can send the amount you are planning to stake to the new wallet.
Then you can vote for a delegate.

Can I stake from the GUI wallet?

Not at the launch. At first, it will only be possible to stake from the CLI wallet.
But it’s quite simple. Open the wallet you will stake from and type vote <delegate_name> or vote <delegate_public_address>, using the delegate information.
Your vote will be taken into account at the top of the next hour and a success message will be displayed.

How to choose a delegate?

All the delegates’ information will be listed and continuously updated on https://delegates.xcash.foundation. You will be able to choose the delegate that matches your philosophy the best (or has the lowest fee 😉).

Can I stake any amount of XCASH?

Yes, provided it is more than the minimum threshold of 2M XCASH.

Can I stake from the X-Bank?

Not yet, at least not at the launch of the mainnet. We have a plan however to propose staking services from the X-Bank at a later update.

Is the airdrop still running?

Yes, the airdrop as it is now will keep running until the launch of the mainnet.

Can I change my vote at any time?

There is no limitation on the number of votes you can do. But only one vote can be applied from one wallet, and any new vote will be accounted for at the top of the next hour.
In practice, if you are planning to change your vote, you should do it before the top of the hour to make it effective quickly.

Can I stake toward multiple delegates?

Yes, but you can only have 1 vote for 1 wallet, meaning that if you want to vote for several delegates you will need to create 1 wallet for each vote.

Is my staked XCASH at a higher risk?

No, your staked XCASH never leaves your wallet, so you always stay in control of your funds.
One of the main advantages of our consensus is the use of reserve proofs to stake, which enables this added security measure.

Can multiple people run a joint node?

Yes, multiple people can organize themselves to run a shared delegate node.
They would need to find a suitable way to share the server costs between themselves.

What is the maximum amount a delegate can have at stake? Does having more at stake increase the chance of being selected to be the next block producer?

There is no maximum amount a delegate can stake. However, having more at stake than the other delegates does not increase the chance of being elected to be the next block producer.
Because the next block producer is selected with a randomized algorithm (called Verified Random Functions), everyone in the top 50 delegates has equal chances to be selected and earning the reward.

However, having more at stake than the others can be a good strategy to remain in the top 50 at all times.

Will misbehaving block producers be punished?

Delegates will have a reliability score which basically matches their node uptime. A delegate with a low-reliability score means that he/she was offline during a lot of block rounds.
However, if the delegate misbehaves in any other way (hack attempt, missed payments to stakers etc…), it is the responsibility of the voters to punish the delegate by changing their vote and stop supporting the misbehaving delegate.

How can I become a delegate?

There are several steps to become a delegate that will be described in an upcoming tutorial, but long story short you would need:
- A server matching the minimum technical requirements, with the xcash-dpops program installed and set up;
- A delegate and domain name (important! It’s your brand 😉).

Then, it’s up to you to campaign and earn your place in the top 50 by having people vote for you.

When are the rewards distributed?

The block rewards are distributed at every block to the delegates' wallet.
The shared delegates can pay out the block reward to their voters every hour.

Will the block time and block reward stay the same?

The block time will be increased to 5 minutes, and the block reward will be doubled.
These changes will occur at the first block of the DPOPS mainnet.

As a shared delegate, how much fee can I take?

You can set the fee between 0% to 100%, with a granularity of 6 decimals.

How can I share the reward to people that voted for me? Do I have to send the rewards manually?

We have created the shared delegate pool, which is a website and application that will automatically calculate the rewards and pay your voters every hour based on their stake.
It works relatively the same as a pool distribution system.

How many XCASH is needed to run a solo delegate?

The exact amount to ensure to be in the top 50 delegates is currently unknown, but we can make an educated guess.
If we consider that the amount staked by delegates is equally spread between the 50 delegates (as it should eventually narrowing to), to guarantee your place as a delegate you would need to have staked 1/50 of the total staked amount.
This total staked amount, however, can fluctuate. Let’s consider the circulating supply of XCASH, currently estimated at 54 billion. Empirically, we have seen in other PoS and DPoS projects that 30 to 50% of the circulating supply is usually staked. With a conservative assumption of 50% of the circulating supply staked, it would mean that 0,5 * 54 bn. = 27 bn. XCASH would be staked.
You would need 1/50 of that staked on your delegate node to guarantee your place in the top 50, which would equal to 540M of XCASH.

Can I vote from my phone?

It will be possible to assign your stake directly from the Android wallet at launch.
Reminder: the android wallet is still in beta version. Make sure to always securely back up your mnemonic seed.

Can I spend XCASH from the wallet I voted from?

You can spend XCASH from the wallet you voted from, but it will cancel the vote you currently have on the wallet. You will need to vote again if that happens.
However, receiving XCASH on the voting wallet will not cancel your vote. You will need to vote again to update the staking amount.

Where do the block rewards go?

When registering as a delegate, you will also register a valid wallet address where the block reward will go.

Do I have to leave any XCASH on the server hosting the delegate node?

As a delegate, it can feel worrying to leave a substantial amount of XCASH on a server hosted by a third party. The system was designed to not be obligated to leave any XCASH on the server hosting the delegate node.
For example, you can register yourself as a delegate, and vote for yourself from another wallet.
This way, the wallet on your delegate node server will fill up with the block reward that can be redistributed to your voters directly.
If you are running a solo delegate node, you will need to manually empty the server wallet periodically.

Are my funds locked for a certain amount of time?

The funds are never locked in stakes. You can cancel your votes at any time and dispose of your funds as you see fit.

Do my staked XCASH ever leave my wallet?

Your funds never leave your wallet, you remain in control of your private key at all times.
This is achieved by using reserve proof, which is basically a cryptographic proof of a quantity of XCASH in your wallet.

Do I need to leave my wallet CLI running to receive rewards?

No, once you have voted, you can safely shut down your wallet program and you will start receiving your staking rewards.

Can there be only 50 delegates?

At the launch of the beta, the limit of the number of delegates will be 50. Depending on the evolution of the network, and with the decision of the delegates, we will up the limit of delegates up to the limit of 100.

How do I apply for the beta?

Anyone will be able to apply for the beta.
Although people who want to try staking will be able to join at any time, those who are planning on becoming a delegate will need some preparation. Instructions to join and video tutorials will be communicated 2 weeks before the launch of the beta.

Will the beta run on the main-net?

The beta will run on a separate chain from the main-net.
All XCASH earned and transferred from and to the alternative chain won’t be taken into account when switching to the main-net.

What is the expected return as a delegate?

It will depend on currently unknown parameters and we couldn’t give an exact number now.
But let’s take an example and assume some hypotheses to help you make your own calculation.
All calculations are made as of today, Monday, May 18th, 2020. 1 XCASH @ 0,0000153 USD

Flat reward
The current reward is around 35750 XCASH per block. When we switch to DPOPS, the reward will be double at about 71,500 XCASH per block.
Since the block time will be upped to 5 min, there will be (60 / 5) * 24 * 30 = 8,640 blocks per month.
In total, there are 71,500*8,640 = 617,760,000 XCASH generated monthly.
Because each delegate will be selected randomly, it is safe to assume that as long as a delegate stays in the top 50 during the whole month, he/she will make 617,760,000/50 = 12,355,200 XCASH monthly, flat.

In practice, the total will be lower because the XCASH reward will have decreased until the release of the mainnet.

Yearly return
Before calculating the yearly returns, we need to assume some parameters first.
We need to know how much XCASH are needed to stake to be in the top 50. We are assuming that 50% of the current circulating supply (54 bn. XCASH) will be staked, hence 27 bn. XCASH.
In theory, the law of the free market should dictate that the stake of all top 50 delegates is evenly spread. Henceforth, to ensure to be in the top 50, the delegates should have 27 bn / 50 = 540M XCASH staked. In practice, this number can fluctuate greatly. It will depend on the real proportion of XCASH that will be staked out of the total circulating supply. For the sake of simplicity, we will be using this number for the following calculations.

As a solo delegate
If you are a solo delegate, you will get 100% of the reward in your pocket, meaning 12,355,200 XCASH/month. Your only substantial cost will be to pay for the server.
If we assume the server cost to be $45/monthly (2,945,000 XCASH/monthly equivalent), it means that you will get 9,410,200 XCASH/monthly after spending.
Now, assuming you have staked 540M XCASH, it means that you are making around 1.75% return/monthly or 21% return/yearly on your stake net of the server costs.

As a shared delegate/stakers
The equation is a little bit more complicated here. Providing you are not imposing 100% fees on your voters, you will have to share the rewards with them, proportionally to their stake. But you will also have to pay for the server hosting. As a shared delegate, you should be aiming at being at least flat in your investment. For example, your stake should be higher than your voters, or you should set fees to help you pay for server cost and management.
Using the same estimate as before of $45/monthly (2,945,000 XCASH/monthly equivalent) for server hosting cost, this represents 24% of the monthly reward.
In theory, if you were to redistribute all the reward to the voters (you included) proportionally to their stake, this means that you should hold at least 24% of the total stake of your shared delegates to break even, meaning 130M out of 540M XCASH staked.

In practice, it will be normal and expected that the delegates set the fees to pay for server hosting costs (is it normal to have higher fees in DPOS system than in POW pools).

The delegates could also set the fees to a minimum of 24% to pay for the server hosting service. If the delegates set the fees at 24%, the return will be 1.75% return/monthly, or 21% return/yearly on your stake net of the fees.

Note: The return will change drastically as the price of XCASH changes. All of these calculations are made with the current XCASH price 1 XCASH @ 0,0000153 USD, and an estimation of the server cost of $45/month. We advise you to do these calculations again with your own parameters.

--

--