Post
Topic
Board Altcoin Discussion
Re: **** Official Ethereum QA thread ****
by
Vitalik Buterin
on 07/02/2014, 12:29:25 UTC
Quote
Can't a Finney attack be combined with a very long-running transactions to DoS all nodes? If a miner earns all block fees then even without a Finney attack a malicious miner could include a lot of long-running transactions into their block to slow down processing of the next block / transactions.

Actually, we never were planning to have a miner collect more than 50% of transaction fees. Now, we're debating between 0% (tx fees burned), 50% and something in between.

And what about the Finney-like attack?

1. Alice finds a block but doesn't send it to peers
2. Bob finds a block and sends it to peers
3. Alice sees this coz she connected to a big part of the network
4. Alice sends her block to peers
5. Some nodes accept Alice's block, some accept Bob's one
6. The next block triggers chain reorg that invalidates Alice's block with some probability (if she knows who r the biggest miners then she shouldn't send her block to them to make this probability very high)

The catch is that Alice's block contains very long-running transactions and nodes that accepted it wasted their computational resources. The situation becomes worse if such the nodes r computing her block when the next one arrives.

Okay, that seems like it can work and cause nodes to waste computational resources. But the cost of such an attack is very high, as Alice needs to  do the attack instead of mining an entire block. Furthermore, miners should only broadcast a block once they are done processing it, so Alice would not reach very many nodes with her block. The issue can also be mitigated with a software change: when a node hears about Bob's block and the successor to Bob's block, and it is still processing Alice's block, it can start processing both in parallel, and then when it finishes the successor to Bob's block it would pause processing Alice's because Alice's block would not be the longest anyway. Thus, Alice is only slowing processing down 2x for one minute. So my intuition is that this is one of those "interesting in theory, not particularly worrisome in practice" situations like selfish-mining.