Post
Topic
Board Press
Re: [2014-06-20] Proof of Activity: Extending Bitcoin's Proof of Work via POS
by
iddo
on 14/06/2015, 18:43:58 UTC
4. Also we noticed a possible problem with the original PoA. ONLY the "last" "stakeholder" can set transactions for a new block. When done, he signs and broadcasts a new block to the network. Seems nothing wrong here, but "last" "stakeholder" can produce as many valid blocks as he needs by changing transactions set. So he can split the blockchain and make a double spend. In that case we are planning to give a right of setting up a block to the Proof-of-work miners.

He can split but not double-spend (if you meant 0-confirmation then it doesn't really make sense because it's better to just re-broadcasting competing transaction as in Bitcoin, unlike the last stakeholder who cannot offer a higher fee to all the miners). The last stakeholder can be an attacker who produces many valid blocks, but it isn't much different than attempting DoS on the Bitcoin network, it's discussed in section 5.1 of the PoA paper.

Maybe you meant that the last stakeholder could try to create many valid blocks where each block pays a reward to a known PoW-miner address (by somehow sending the block to each miner directly to avoid blacklisting by other nodes), and this way get miners to work on different blocks. But it isn't important whether miners try to extend the single block that the attacker signed, or different blocks that the attacker signed. In fact, an attacker can do the same thing more easily in Bitcoin, by broadcasting conflicting transactions that pay to known miners addresses, so when one miner solves a block that includes the extra payment transaction, the other miners might prefer to continue to try to solve their old block.

BTW it's also possible to confiscate the reward of the last stakeholder when he double-signs, see for example section 2.2 of CoA (http://arxiv.org/abs/1406.5694).

In PoA, the reason for letting stakeholders (rather than miners) decide which transactions to include in blocks is that otherwise an external hashpower (without any stake) can attempt to attack by excluding transactions in the blocks, so it's better to give this decision power to entities who have an incentive to keep the network secure.