As of 2017-10-01 this tool is no longer maintained.

There are too many differences between when this was created and the way bitcoin now functions. For example, see block weight.

Useful insights can still be drawn from this tool, however the underlying context is continually increasing in complexity that is not accounted for by this tool.

Block Size Calculator

What is the effect of changing the bitcoin MAX_BLOCK_SIZE?

Historical Context

(large file)

New Block Size

Simulate a Max Block Size of at an average mining rate of block every seconds.

Each full node is connected to peers in a network of nodes, requiring to fully broadcast a block.

Constraints

To support this new block size, the following constraints must be viable for all full nodes:

Constraint Condition Value Units
Bandwidth must be at least
Down:
Up:
Data Cap must be at least per
Supplied Disk Capacity must be at least GB per
Transaction processing must be at least transactions per second

Viability

How does this affect the ability of the bitcoin network to achieve the requirements?

A full node operator must be able to meet the following ongoing costs whilst still remaining incentivized:

Constraint Price Info Annual Cost % Cost

Bandwidth

bandwidth at GB per for $ at a speed of Mbps
  • 1 in ? blocks will be overlapping, which is once every ? days.
  • Hops take ? seconds each.
  • Blocks take ? seconds to fully propagate across the entire network.

$?

Supplied Disk Capacity

TB drive for $

$?

Transaction Processing

$ lifetime cost for computer to process tx/s

$?

Labor

hours per year at a rate of $ per hour

$?

Initial Block Download

If block size changed today, it would consume ? GB and take ? hours to download the blockchain from scratch on

TOTAL: $?

per year

Complexity

This is an extremely complex topic with subtlety and nuance.

  • Bandwidth from newly announced blocks is not the only consumption of bandwidth resouces.
    • Transaction relay
    • New nodes syncing old blocks
    • Other consumers of bandwidth
  • Upload and download bandwidth is not uniform.
  • Bandwidth availability can vary depending on general ISP congestion.
  • Bitcoin does not use bandwidth in a uniform manner, tends to be in spikes.
  • Blocks may arrive before the last one is received or processed.
  • Transaction backlog and mempool requirements.
  • Fees and the fee market, and how this affects the incentive structure for all participants of the network.
  • The operational difference between miners and full nodes.
  • The impact of orphan blocks and reorgs.
  • The impact of stale blocks.
  • The processing load of transactions is not identical for every transaction.
  • The size (ie bytes) of transactions is not identical for every transaction.
  • The impact of SPV wallets and miners, ie varying degrees of verification.
  • The impact of alternative transaction techniques such as lightning network.
  • The impact of block propagation techniques such as invertible bloom lookup tables.
  • The impact of other bitcoin features that indirectly affect block size and propagation, such as replace-by-fee.
  • The risk of hard or soft fork to implement desired changes.
  • The value for max block size may be fixed or dynamic.
  • Frequency and magnitude of worst-case-scenarios and attacks is difficult to predict.
  • Factors-of-safety have not been considered.
  • Willingness of participants to upgrade or not due to changes to max block size.
  • Participants may be gained or lost due to changes to the max block size.
  • Impact of changes to the max block size on the bitcoin market such as price, trading volume, liquidity, perception etc, thus affecting the incentives.
  • Impact of cryptographic changes that may affect the information density per block, such as schnorr signatures.
  • Impact of privacy features such as coinjoin.
  • Impact of alternative block size features such as segregated witness.
  • Management of Unspent Transaction Outputs with larger block sizes.
  • The rate of future technological developments, eg Moore's Law, as it relates to bandwidth, disk space and computation speed.
  • The amount of parallel processing, storage and bandwidth that can be done and assosciated economic effect.
  • The number of peers connected to the node.
  • The acceptable latency of blocks when 'catching up' in a series of good luck from miners.
  • The effect of pruning nodes vs full nodes.
  • Block timestamps are 'as-reported' by miners, and may not reflect the true time, possibly affecting the timing stats above.
  • Latency of multiple global hops may become nontrivial.

Without a full understanding of these complexities, there may be risk to changing the bitcoin max block size.

Open Source

This project is on github - https://github.com/iancoleman/blocksize_calculator