Author

Topic: How PoS Blockchains prevent miner from sending different block (Read 183 times)

legendary
Activity: 1456
Merit: 1175
Always remember the cause!
What you describe is essentially the nothing at stake problem. Several solutions have been proposed to solve this problem. You can give a validator a penalty if he votes on every fork/chain that happens on the network. If he votes/validate on chain A and B (different blocks), he'll lose his entire stake.
It is known as Slasher algorithm proposed by Ethereum idol, Butterine and is naive as its inventor.

Besides its implementation problems due to not being neat and elegant, you need nodes to keep track of every single fork forever which is almost impossible or you need to find some "finalization" technique that ultimately leads to trust and centralization.

There is and there will be no solid mitigation to N@S attack, you do something about it and you raise new problems, you solve them then new ones and so on.  You'll eventually find yourself in a centralized, reputation based system.
member
Activity: 364
Merit: 13
Killing Lightning Network with a 51% Ignore attack
This is not a nothing at stake problem, the nothing at stake problem is an issue that can only occur if you create a Multistaking PoS Client.
And Research by those knowledgeable into PoS has proven the N@S to be a non-issue.

What you are describing is a Staker or Miner releasing the same block but excluding transactions from 1 block.
You have no doubt heard that you should always wait the required confirmations before considering a transaction complete.
BTC 3 Confirmations is Recommend
LTC  6 Confimations is Recommend

What happens is this , and it will happen in a PoW or PoS network, the next block after your blocks, will determine which of your blocks was selected.
The other miner or staker will broadcast the chain and it will choose which of your blocks is still included in the blockchain.
The non-chosen block of transactions is orphaned.

The reason it is of no danger , is that people receiving waited the minimum confirmations that defined which of your blocks was accepted.
Only people stupid enough to accept 0 confirmations would ever be at risk.
(It is easy to double spend on anyone accepting 0 confirmations, and you don't need to be a miner or staker to do it.)


FYI:
PoW coins usually allow miners to select which transactions to include because they charge a variable fee.
PoS coins usually include all transactions in order of appearance, not allowing the staker to manually select which transactions to include.
*Also PoS coins normally charge a fixed fee, which is why their is no need to let others jump ahead inline, by higher fees.*
 
FYI2:
Longest Chain with the highest Difficulty Wins
In PoW, Greatest Block height with most difficult calculations
In PoS,  Greatest Block height with most Coins or Coin Age Accrued.


 Cool
legendary
Activity: 2170
Merit: 1789
What you describe is essentially the nothing at stake problem. Several solutions have been proposed to solve this problem. You can give a validator a penalty if he votes on every fork/chain that happens on the network. If he votes/validate on chain A and B (different blocks), he'll lose his entire stake. In addition to this, you can require that every validator identity must be known and trustable, therefore when something like this happens you can know who's at fault. In its simplest sense, the solution lies in preventing validator to validate on more than 1 chains and to discourage validator to do something like that by making his identity (real identity) known to the network.
newbie
Activity: 2
Merit: 0
Hello everyone,
I'm quite new to the world of crypto and have been wondering, how different blockchains prevent miners/forgers from breaking it.
As far as I know, (in PoS, for instance) a forger get's selected to validate a block of transactions.
But theoretically speaking, he could create different versions of the new block he is validating.

Example:
The miner/forger received 100 transactions and is including all of them in his block A.
Also, he creates a block B that only holds 95 of the transcations.
Now, he broadcasts block A to 50% of the network and block B to the rest.
Both blocks are valid and are signed by him -> he created two different blockchains.


What am I missing / how are do blockchain projects adressing this issue?
Thanks.
Jump to: