Post
Topic
Board Development & Technical Discussion
Merits 3 from 1 user
Re: O(1) block propagation
by
CJYP
on 11/08/2014, 15:27:52 UTC
⭐ Merited by ABCbits (3)
Dear all

I have read Gavin’s proposal on O(1) block propagation, available here:

https://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2

If there is another thread on this I apologise, I couldn’t find it.  I think the proposal is interesting and could be brilliant.  However there are various basic aspects to it which I do not understand, if possible could some of you try to help explain these:

1.      Is this a proposal for initial block propagation only, with the old style blocks still being propagated with a delay or will the blockchain only contain the new smaller style of blocks?

2.      What is the incentive to propagate the old block format, with all the transactions, as this will presumably no longer be required for mining?  Couldn’t this make the problem of a lack of full nodes worse?

3.      If the blockchain now only contains only the new type of block, how does the client get the history of all bitcoin transactions?  Will clients need to connect to the memory pool of other nodes and how will all historic transactions be reconstructed?

4.      How will miners be incentivised once the block reward drops, as if there is no longer as much scarcity in the blockchain, the fees may be too low to incentivise miners?

Many thanks

This proposal does not change anything about the blockchain. To answer question 1, sort of. Since finding a block really just means finding a low enough hash to make the block valid, all the data except for the hash can be known to the entire network before the block is found.
Currently, when a miner finds a block, they have to send the entire block (all transactions in the block + header), to everyone else, which is harder the more transactions there are in the block.
The proposal is (oversimplified) to ensure each miner has all the transactions that will be included in the block beforehand. Then when a miner finds a block, they will only have to send the header and coinbase transaction (telling everyone who gets the block reward), and other miners will be able to reconstruct the block from this.
Since they will be able to reconstruct the block, the only difference is that the entire block isn't sent over the network.