3

One of the concerns with increasing the block size is that it may get orphaned more often due to network latency in sending the big block. Why can't miners send the block without the nonce as soon as they start working on them. When they find the nonce, they can just send the nonce with block headers which will be quick. It will be also fast for other nodes to validate as they have to just check one hash with the nonce to know if the block is valid or not. They would have already validated the transactions before and merkleroot much before.

  • Reminds me of the "Weak Blocks" proposal. – Murch Apr 1 '16 at 9:30
4

This effectively already happens on several levels, though without direct miner interaction. Both Bitcoin Core and the Bitcoin Relay Network have their own implementation of forward preparation for the validation of blocks with the intent of speeding up block propagation as much as possible. One focused on validation latency, one on bandwidth and latency.

  • Bitcoin Core has a validation cache of transactions it sees unconfirmed on the network, this allows the most expensive operations (executing the script, and validating signatures) to happen long before they are included in any block. Very often a node which has been active on the network for even a few minutes has already validated a large portion of any new blocks that arrive. When a new block is seen the uncached transactions are validated, inputs are checked, and the block is connected without having to do extensive, expensive validation of the contents.

  • The Bitcoin Relay Network takes this concept even further, it keeps track of transactions a node has already validated and transmits blocks excluding those transactions in order to save time on the wire. For many blocks this means the network only needs to push around the header (80 bytes), and a 2 byte integer referencing all the included transactions. An entire block might only be a few hundred bytes total and can be shuffled around the network quickly, then reassembled by the client using the transactions they already have in their mempool. A large portion of miners and services use this to drastically reduce network latency and subsequently their stale block rate over just using the P2P network to relay blocks around.

Miners do not transmit unsolved blocks purely because it would be a massive denial of service problem, and there might be hundreds of thousands of candidate blocks that don't get solved every hour. Ultimately the Relay Network achieves the same result as what you proposed (just transmit a nonce) and actually uses substantially less bandwidth than the normal P2P network.

2

It would be radically inefficient for every miner to flood the network with their blocks before they've won the proof-of-work competition.

  • 1
    I do think you bring up a good consideration, but spam would be mitigated if the broadcasts had to have 1/10th (or some percentage) of the work necessary. – morsecoder Jul 29 '15 at 15:42
  • I doubt the flood would be any worse than the transactions flood – balki Aug 1 '15 at 4:48

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.