@Justus Ranvier, @rocks, @Peter R.There's a tiny semantic error in this statement that is nevertheless a source of a huge amount of non-productive argument.
There is no such thing as O(1) block transmission.
What you're talking about is constant-time transmission of block solutions.
Transmitting a block solution is only helpful if the recipient of your transmission already has the block it solves, either because you transmitted the block itself prior to the solution or (more likely) the information needed for the recipient to assemble the block himself.
The reason it's important to pay attention to the difference between blocks and block solutions is that when you talk about constant-time block propagation people forget about the cost associated with pre-broadcasting the block which allowed the miner to use constant-time block solution transmission in the first place.
While thought experiments are useful, I really think that going any further on the path of this one is unwise. It is the kiss of death to any block limit changing proposal to link it with a change in the reward schedule. The reason is that changing the schedule makes people uneasy about the sanctity of the 21M cap. Just maybe, if the schedule can be changed the cap becomes a bit more flexible.Thought experiment:
Imagine that both the block reward schedule and the block size limit could be adjusted with a command-line option in Bitcoin Core. Assume the block reward schedule defaults to the current schedule. What would happen?
A block is defined as a header plus a merkle tree of transactions. This definition will never change, and is not in question.I would argue that an IBLT-transmitted block, which is somewhere between O(1) and O(n) in bandwidth, or also a 'true O(1) block' is still a block in the Bitcoin system according to common parlance.
Agreed.A block is defined as a header plus a merkle tree of transactions. This definition will never change, and is not in question.
Yes. I am suggesting that there should be a better name than 'transmission of instructions for creating blocks' or 'O(1) blocks' or similar.he distinction to be made is that when thin blocks or IBLT is used the network creates blocks, but does not transmit blocks.
What miners do instead is transmit instructions for creating blocks, rather than the blocks themselves.
Absolutely (Though there are other uses for thin blocks besides as a bandwidth saving scheme. Such as converting zero-conf to tentative-0.x-conf, as @rocks mentioned)The difference between thin blocks and IBLT is that while thin blocks have a small set of instructions (compared to the size of the block itself) those instructions are not broadcast at all until a block solution is found.
With IBLT, the instructions are broadcast continually throughout the process of searching for a block solution, so they make better use of bandwidth.
One positive thing to take away from this video is that if they're that worried about Bitcoin, we must be on the right path.Wow and my jaw drops.
It looks like Blockstream have a long list of customer waiting in the winds to use their blockchain tech. Adam Back's vision to move national currencies on sidechains seems to be closer that I thought. Blythe and Dimon speak as though it's being worked on and it's not going to be Bitcoin.
Is it valid to say that anything except for a block is an agreement on the tip of the chain?But again, I think we need a distinct name (distinct from block) for any agreement on the tip of the chain.
the problem is, those miniblockheads will link you here and twist then beat you over the head with an obfuscation.@solex: yes, that's why I only posted the thought experiment here. Of course, there is zero demand or reason to do such a thing in reality. But from an academic perspective it is interesting because the answer--assuming the theory that Bitcoin is governed by the market is correct--is that it wouldn't make a difference. The market is happy with the inflation schedule so it doesn't matter whether me make it easy or hard for people to change in their own client--it won't happen.
Just to try to clarify my understanding here are a few thoughts.Interesting. Perhaps I misunderstood the weak-block proposal, but what I was imagining in my head was basically what you just proposed.
This is my understanding:
- After a real block is solved, all the miners start working on the next block (these will all be unique).
- Eventually, one of the miners finds a weak blocks (let's say a block at 1/10th difficulty) and broadcasts it to the network.
- The other miners give up on the block they are working on, and build a new block template with all the TXs from the weak block PLUS a bunch of new TXs.
- Eventually another miner finds a weak block. He broadcasts only the NEW transactions plus the hash of the previous weak block.
- This process continues until eventually one of them finds a full-difficult block.
At any point in time a miner could choose NOT to build off the previous weak block, but why would he because he can scoop up all the fees in that weak block without accruing any of the orphaning risk. However, he still has to consider the orphaning risk for the NEW transactions he includes.
I think the way it will all work out mathematically is that weak blocks drop the supply curve from my paper by the the expected number of weak blocks per strong block. For example, if we can synchronize 10 weak blocks per strong block (one every minute), then this would allow for 10X bigger blocks on average for a given orphaning rate. If we can get 100 weak blocks per strong block (one every six seconds), then this would allow 100X bigger blocks for a given orphaning rate.
Only briefly looked at weak blocks, so it's quite likely I misunderstood them at first pass.Interesting. Perhaps I misunderstood the weak-block proposal, but what I was imagining in my head was basically what you just proposed.
This is my understanding:
- After a real block is solved, all the miners start working on the next block (these will all be unique).
- Eventually, one of the miners finds a weak blocks (let's say a block at 1/10th difficulty) and broadcasts it to the network.
- The other miners give up on the block they are working on, and build a new block template with all the TXs from the weak block PLUS a bunch of new TXs.
- Eventually another miner finds a weak block. He broadcasts only the NEW transactions plus the hash of the previous weak block.
- This process continues until eventually one of them finds a full-difficult block.
At any point in time a miner could choose NOT to build off the previous weak block, but why would he because he can scoop up all the fees in that weak block without accruing any of the orphaning risk. However, he still has to consider the orphaning risk for the NEW transactions he includes.
I think the way it will all work out mathematically is that weak blocks drop the supply curve from my paper by the the expected number of weak blocks per strong block. For example, if we can synchronize 10 weak blocks per strong block (one every minute), then this would allow for 10X bigger blocks on average for a given orphaning rate. If we can get 100 weak blocks per strong block (one every six seconds), then this would allow 100X bigger blocks for a given orphaning rate.
If Blockstream is working with Blythe and Dimon then that needs to be shown and highlighted to the community far and wide. It essentially means that they are working against the core principle's of the community.Wow and my jaw drops.
It looks like Blockstream have a long list of customer waiting in the winds to use their blockchain tech. Adam Back's vision to move national currencies on sidechains seems to be closer that I thought. Blythe and Dimon speak as though it's being worked on and it's not going to be Bitcoin.
wow, just wow. I've just managed to watch the video. her thinking of bitcoin "maximalists" as a bunch of naive folks prove her own naivite, IMHO.ok, Blythe Masters has revealed her hand. we're in for a fight:
I fished out a quote from a year ago:Thought experiment:
Imagine that both the block reward schedule and the block size limit could be adjusted with a command-line option in Bitcoin Core. Assume the block reward schedule defaults to the current schedule. What would happen?