I struggle to understand the repationship between Dash miners and masternodes. The proposition is that masternodes provide additional services to the network and automatically get paid a part (45%) of the block reward. What I don't understand is how this share is enforced.

From the Dash whitepaper:

When mining on the network, pool software (websites that merge the efforts of individual miners) use the RPC API interface to get information about how to make a block. To pay the Masternodes, this interface must be extended by adding a secondary payee to GetBlockTemplate. Pools then propagate their successfully mined blocks, with a split payment between themselves and a Masternode.

What prevents miners from simply ignoring the masternodes and assigning 100% of block reward to themselves?

Edit: from Dash documentation:

If a miner tried to take the entire block reward for themselves or tried to run an old version of the Dash software, the masternode network would orphan that block, and it would not be added to the blockchain.

But the question remains: what does it mean for a masternode to orphan a block?

  • I would think the masternodes would reject blocks from miners that had not assigned part payment out and taken 100% themselves, or the blocks would be invalid blocks. is dash open source now?
    – Fuzzybear
    Jul 29 '18 at 12:00
  • @Fuzzybear Sure it is open-source. For a miner, to reject a block means to refuse to mine on top of it. But what does it mean for a masternode to "reject a block"? Jul 29 '18 at 12:05

I believe the block reward is split at the time of the block generation and this means that in order for the block to be valid it must send 45% to a masternode. As all masternodes are aware of each other on the network (need to be online 24/7 for over a week) and their receiving address (need 1000 Dash in an address at the node online) so they can each verify if the correct distribution has been made and thus is a valid block. Further info on Masternodes

If the miners try to take 100% of the reward the masternodes would not accept this as a verified block and thus would not allow the chain to be broardcast through them to other nodes.

This is the same way as how Devcoin works where % goes to the miners and % goes to the devtome distribution for work done. The miners in devcoin have no say over the distribution of the shares only that it is part of the block that they can mine and read the distribution from a receiver file uploaded each month for the next round of blocks distribution.

As devcoin's model was tried and tested as was one of the earlier coins I think dash works along the same lines from looking at the code and blockchain.

https://explorer.dash.org/tx/b8f8024bb84340a0473faffa1f7d41e8b182f763ae5e876f0448d8799cb5d919 is the transaction for the generation of 911503 block

Here the two outputs are set and the distribution is made to each receiver of the % share. The miner does not have the ability to control these outputs from the original generation of the block as far as I am aware. Would be like in bitcoin someone trying to verify a block that has generated 75 bitcoins in the block. It is just not possible to get this block accepted by other nodes as they would all reject it. As would the master nodes and other miners in the Dash situation.

Hope this helps and if anyone knows differently please feel free to explain where I am wrong, always keen to learn more :)

  • "As all masternodes are aware of each other on the network" -- you mean, they know each others' Dash addresses? A private coin indeed :) If not, could a miner create a block with 45/45/10 reward split, but with both 45% parts sending to their own fresh addresses? Also, "would not allow the chain to be broadcast through them" -- does it imply that network broadcast is monopolized by masternodes? Or can non-master full nodes just broadcast txs and blocks as in Bitcoin? Jul 29 '18 at 12:30
  • "As all masternodes are aware of each other on the network" they are connected to each other and sharing the same blockchain is what i mean, they verify each others activity and validity. "would not allow the chain to be broadcast through them" - no i mean they would reject the block as invalid
    – Fuzzybear
    Jul 29 '18 at 12:41
  • Ok so anyone can become a masternode on the dash network but does have 7 day connection requirement and need 1000+ dash in an address online. This gives the knowledge to other masternodes at of the address of a new masternode to distribute to. thus again it is out of the miners hands to chose where to distribute funds. It is part of what makes up a valid block. run the node through a proxy for regaining some privacy as agreed ip address and dash address are then known on network.
    – Fuzzybear
    Jul 29 '18 at 12:49
  • Ok, but the question on whether blocks and txs can only propagate though masternodes remains open. What if the majority of miners just said "screw those masternodes, we'll just pretend we are on Bitcoin"? 45/45/10 structure of block reward in consensus rules -- no problem, just make all three parts point to our addresses. Jul 29 '18 at 16:13
  • 1
    What is the mechanism to ensure all masternodes are compensated evenly? What’s to stop a miner running their own masternode and then always just paying out to themself (reward + masternode reward both to themself)?
    – chytrik
    Jul 30 '18 at 7:19

Not the answer you're looking for? Browse other questions tagged or ask your own question.