11

A lot of small block proponents defend their stance by reasoning that an artificial cap is necessary to prevent spamming, and thus bloating the blockchain. How effective is Monero's mechanisms at making any kind of spammy bloat attack to costly or difficult to pull off.

Say for example, a malicious user had 200,000 XMR (approx 420,000 USD, or 1.5% of all XMR) and their sole intention was to bloat the blockchain to use as propaganda that small blocksize caps were necessary in the Bitcoin debate over the blocksize, the user in question is motivated to drive home the point by making poor Monero an example because they dare question static blocksizes. Given that miners can't discern where coins are coming from so will have difficulty filtering out the spam, how much damage could a user like that do? How long could they keep it up and how big would the bloat fallout be? Could someone bloat the blockchain hundreds of gigs in a couple of months for example?

I ask this because the flex blocksize is a huge selling point WRT scaling the Monero system in a decentralized manner, and I often wonder whether it is vulnerable to this kind of exploitation, and if it is, how much harm could they conceivably do? It was also pulled off in the past to a limited extent by another hacker trying to exploit a bug, but I'm not sure if they did much harm, if any.

  • 4
    Note: After they run out of Monero, the block size would go back down. – PyRulez Aug 17 '16 at 16:11
  • I don't know how great of a question this is - any of the answers regarding the larger question of "how much harm could they conceivably do?" will be speculative at best. Some of the other questions have more direct answers that I don't feel like calculating right now. This question can be generalized to all ledger/input-output based cryptocurrencies. – Ginger Ale Aug 18 '16 at 2:10
  • 2
    Few cryptocurrencies use a flex blocksize, I also know Monero has had it's blocksize cap artificially increased as part of an attack, so I feel this is a justified question, that pertains to Monero. I also think it is a question that can also be answered on a technical level, rather than simply be speculative, as such an attack has already happened in Monero's past. – ferretinjapan Aug 18 '16 at 8:57
4

The largest size of the next block is limited to 2x the median size of last 100 blocks. Creating a block this large imposes a penalty equal to the block subsidy, so the miners entire revenue would have to come from transactions, thus the transaction fees would have to be at least as large as the block reward to entice the miner.

Realistically, a miner would only mine the larger blocks for more money, not just the block reward, so let's assume that you'd need to pay 2 x the block reward in fees to incentivize miners.

The current block reward stands @ ~5.5 XMR per minute, or ~11 XMR per block. Under our assumption, the attacker would need to pay 11 XMR every 2 minutes (block time) to get his ever increasing blocks. With 200k XMR, he could keep this up for about 18,000 blocks, or 25 days.

Based on a spam attack in 2014, a day is enough for that limit to double, so we're looking at blocks that would be about 25x as large by the end of the attack.

In my opinion, 25x is purely theoretical because we would never approach that since there are multiple costs/incentives at play that change as the blocks grow ever larger and the block reward gets pushed off.

First you have the storage of the penalty XMRs waiting to be paid out to a miner that mines a smaller block (I'm not super fluent on the penalty payout, so someone please correct me if I have this wrong). Then you have the increasing CONOP that comes with larger blocks, which will incentivize miners to require even more then 2x the block reward to mine another larger block. All of this acts to effectively reduce the time of the attack. I'm not sure how the numbers all break down, but I'm relatively certain that the incentives are such for all involved that there wouldn't be this death spiral to infinity GB blocks.

Edit: if the penalty is cumulative then the attack time shrinks significantly since the attacker would need to pay more than the accumulating reward every block to keep up the attack.

Also, once the attacker runs out of money, the block size would come back down (adaptive block sizes are awesome).

  • Thanks, that makes things a little clearer. Just one other question, what is the default blocksize? – ferretinjapan Aug 18 '16 at 17:25
  • 1
    It looks like an empty block is 210 bytes – revler1082 Aug 18 '16 at 17:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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