Pages:
Author

Topic: Again, a block with 0 transactions is accepted - page 3. (Read 4410 times)

legendary
Activity: 3416
Merit: 4658
Funny, if a Bitcoin developer worded the sentence in the same way you wouldn't have said that.

I'm not sure what you mean by that?

This is why I secured my post by saying on average. It all depends on variance.

But the code in Bitcoin has been made so that blocks are found on average every 10 minutes.

Yes, in the same way that you'll roll a 1 on a six sided die every 6 rolls on average.  But the point is, if you roll your own die and get a 1, it has no bearing on whether or not my next roll will be a 1.  The fact that you "solved" a block before me, does not delay my ability to solve a block (ok, perhaps I'm delayed by a fraction of a second while I build a new block header, but it isn't enough of a delay to really matter as far as this discussion goes).
A hypothetical extreme case, unlikely to arrive at without people taking corrective actions: let's assume that zero-tx miner starts obtaining more and more hashing power, to the point of holding 99% of the network. I broadcast a transaction, the chances of it getting included in the next block are only 1%. Ergo, I will have to wait longer on average for my tx to get included. Is this correct, or am I falling for some form of gambler's fallacy.

If the miner were to gain that 99% of the network hashing power all at once before the next difficulty adjustment, then you would see blocks being solved every 6 seconds.  1 out of every 100 of those blocks "on average" (in other words every 10 minutes "on average") would be a block from some other miner that actually includes transactions.  The blockchain would grow fast, and once people got their first confirmation (in approximately 10 minutes on average), they would get the rest of their confirmations very quickly.

Now eventually, a difficulty adjustment would occur.  At that time, blocks would slow down and confirmations would start coming slower.  If the "0 transaction miner" then stopped mining completely, you wouldn't see confirmations every 10 minutes on average, you'd still see them every 16.67 hours on average.  This would continue until the next difficulty adjustment.

So, the "0 confirmation miner" can delay transactions that will occur later (after the next difficulty adjustment), but they have no effect on the time for your first confirmation at the current difficulty.
hero member
Activity: 714
Merit: 500
Martijn Meijering
If they are contributing a significant amount of hash power, then they will increase the difficulty at the next difficulty adjustment.  This could delay those future transactions after the difficulty adjsutment, but at the current difficulty, they are not significantly delaying anything (no more than a fraction of a second).

I'm not talking about additional hashing power. Assume hashing power remains constant over time. On average a block is found every ten minutes. Some percentage of these block is empty. If it is 50%, we get a non-empty block every twenty minutes. If it is 0%, then we get a non-empty block every ten minutes. Empty blocks still add confirmations for transactions that are already in the block chain, but they add no first confirmations. Doesn't it follow that first confirmations are delayed even though block creation isn't?
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
That's a good point, but it does affect the average rate of non-empty blocks per unit of time, doesn't it? And that does delay transactions a bit.
(no more than a fraction of a second).
Transactions always get relayed to nodes regardless of whether blocks get solved or not.

https://en.bitcoin.it/wiki/Block#What_is_the_maximum_number_of_blocks.3F

Quote
blocks just keep getting added to the end of the chain at an average rate of one every 10 minutes.
While variance plays a huge role here, if we accept that a miner mines a block with only a coinbase tx, a user would need wait up to 10 more minutes, of course this means the miner of the next block needs to add include the said TX.
legendary
Activity: 3416
Merit: 4658
That's a good point, but it does affect the average rate of non-empty blocks per unit of time, doesn't it? And that does delay transactions a bit.

If they are contributing a significant amount of hash power, then they will increase the difficulty at the next difficulty adjustment.  This could delay those future transactions after the difficulty adjsutment, but at the current difficulty, they are not significantly delaying anything (no more than a fraction of a second).
hero member
Activity: 756
Merit: 501
There is more to Bitcoin than bitcoins.
Funny, if a Bitcoin developer worded the sentence in the same way you wouldn't have said that.

I'm not sure what you mean by that?

This is why I secured my post by saying on average. It all depends on variance.

But the code in Bitcoin has been made so that blocks are found on average every 10 minutes.

Yes, in the same way that you'll roll a 1 on a six sided die every 6 rolls on average.  But the point is, if you roll your own die and get a 1, it has no bearing on whether or not my next roll will be a 1.  The fact that you "solved" a block before me, does not delay my ability to solve a block (ok, perhaps I'm delayed by a fraction of a second while I build a new block header, but it isn't enough of a delay to really matter as far as this discussion goes).
A hypothetical extreme case, unlikely to arrive at without people taking corrective actions: let's assume that zero-tx miner starts obtaining more and more hashing power, to the point of holding 99% of the network. I broadcast a transaction, the chances of it getting included in the next block are only 1%. Ergo, I will have to wait longer on average for my tx to get included. Is this correct, or am I falling for some form of gambler's fallacy.
legendary
Activity: 3416
Merit: 4658
I meant that it would take one confirmation longer, which on average is ten minutes. The calculations have to restart when a new block is found.

The calculations restart every time a miner calculates a hash that doesn't solve a block.  That means that the calculations are already restarting more than 100,000,000,000,000 times every second.

Think about the dice, and (assuming that you understand that when you roll a 1 on a die it has no bearing on how many more rolls until I roll a 1 on my die) you'll realize that the empty block is not delaying anyone else's blocks significantly.
Re-read my posts. I said that blocks which have only a coinbase transaction delay the confirmation of new transactions.
I know what you said.  I'm telling you that they don't.  You don't believe me, and I'm not sure how to help you understand this.
No you don't understand. A transaction's FIRST confirmation is achieved when a miner includes the transaction in his block.
I know this. But the fact that someone chooses to solve blocks that have only a coinbase transaction does not significantly affect the amount of time before that FIRST confirmation is achieved.  If the miner/pool that is solving blocks that only have a coinbase transction is contribution a significant amount of hash power to the network, then they may delay transactions that are created after the next difficulty adjustment, but at the current difficulty, they are not delaying anyone's FIRST confirmation by solving empty blocks (as compared to simply not participating in mining).
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
I meant that it would take one confirmation longer, which on average is ten minutes. The calculations have to restart when a new block is found.

The calculations restart every time a miner calculates a hash that doesn't solve a block.  That means that the calculations are already restarting more than 100,000,000,000,000 times every second.

Think about the dice, and (assuming that you understand that when you roll a 1 on a die it has no bearing on how many more rolls until I roll a 1 on my die) you'll realize that the empty block is not delaying anyone else's blocks significantly.
Re-read my posts. I said that blocks which have only a coinbase transaction delay the confirmation of new transactions.
I know what you said.  I'm telling you that they don't.  You don't believe me, and I'm not sure how to help you understand this.
No you don't understand. A transaction's FIRST confirmation is achieved when a miner includes the transaction in his block.
hero member
Activity: 714
Merit: 500
Martijn Meijering
That's a good point, but it does affect the average rate of non-empty blocks per unit of time, doesn't it? And that does delay transactions a bit.
legendary
Activity: 3416
Merit: 4658
I meant that it would take one confirmation longer, which on average is ten minutes. The calculations have to restart when a new block is found.

The calculations restart every time a miner calculates a hash that doesn't solve a block.  That means that the calculations are already restarting more than 100,000,000,000,000 times every second.

Think about the dice, and (assuming that you understand that when you roll a 1 on a die it has no bearing on how many more rolls until I roll a 1 on my die) you'll realize that the empty block is not delaying anyone else's blocks significantly.
Re-read my posts. I said that blocks which have only a coinbase transaction delay the confirmation of new transactions.
I know what you said.  I'm telling you that they don't.  You don't believe me, and I'm not sure how to help you understand this.
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
I meant that it would take one confirmation longer, which on average is ten minutes. The calculations have to restart when a new block is found.

The calculations restart every time a miner calculates a hash that doesn't solve a block.  That means that the calculations are already restarting more than 100,000,000,000,000 times every second.

Think about the dice, and (assuming that you understand that when you roll a 1 on a die it has no bearing on how many more rolls until I roll a 1 on my die) you'll realize that the empty block is not delaying anyone else's blocks significantly.
Re-read my posts. I said that blocks which have only a coinbase transaction delay the confirmation of new transactions. I've never said or implied that such blocks delay the finding of new blocks.
legendary
Activity: 3416
Merit: 4658
- snip -
I have not said anything about delays.
- snip -

- snip -
then a user must wait an additional 10 minutes for his TX to confirm.

How is "an additional 10 minutes" not considered a "delay"?
legendary
Activity: 3416
Merit: 4658
I meant that it would take one confirmation longer, which on average is ten minutes. The calculations have to restart when a new block is found.

The calculations restart every time a miner calculates a hash that doesn't solve a block.  That means that the calculations are already restarting more than 100,000,000,000,000 times every second.

Think about the dice, and (assuming that you understand that when you roll a 1 on a die it has no bearing on how many more rolls until I roll a 1 on my die) you'll realize that the empty block is not delaying anyone else's blocks significantly.
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
Funny, if a Bitcoin developer worded the sentence in the same way you wouldn't have said that.

I'm not sure what you mean by that?

This is why I secured my post by saying on average. It all depends on variance.

But the code in Bitcoin has been made so that blocks are found on average every 10 minutes.

Yes, in the same way that you'll roll a 1 on a six sided die every 6 rolls on average.  But the point is, if you roll your own die and get a 1, it has no bearing on whether or not my next roll will be a 1.  The fact that you "solved" a block before me, does not delay my ability to solve a block (ok, perhaps I'm delayed by a fraction of a second while I build a new block header, but it isn't enough of a delay to really matter as far as this discussion goes).
I have not said anything about delays. Mining is random, yes.
legendary
Activity: 3416
Merit: 4658
Funny, if a Bitcoin developer worded the sentence in the same way you wouldn't have said that.

I'm not sure what you mean by that?

This is why I secured my post by saying on average. It all depends on variance.

But the code in Bitcoin has been made so that blocks are found on average every 10 minutes.

Yes, in the same way that you'll roll a 1 on a six sided die every 6 rolls on average.  But the point is, if you roll your own die and get a 1, it has no bearing on whether or not my next roll will be a 1.  The fact that you "solved" a block before me, does not delay my ability to solve a block (ok, perhaps I'm delayed by a fraction of a second while I build a new block header, but it isn't enough of a delay to really matter as far as this discussion goes).
hero member
Activity: 714
Merit: 500
Martijn Meijering
No it is not.  Block solutions are random.  The fact that someone just found a block has no bearing on how long it will take to find the next block.

The dice don't remember what the previous roll was. (And neither do the hashing functions).

I meant that it would take one confirmation longer, which on average is ten minutes. The calculations have to restart when a new block is found.
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
I think OP means that transactions don't get confirmed this way.

Sure, if zero transaction blocks are all we have.
True, but if a block is found on avg every 10 minutes, and one is found but has only a coinbase transaction, then a user must wait an additional 10 minutes for his TX to confirm.

OK, that's true.

No it is not.  Block solutions are random.  The fact that someone just found a block has no bearing on how long it will take to find the next block.

The dice don't remember what the previous roll was. (And neither do the hashing functions).
Funny, if a Bitcoin developer worded the sentence in the same way you wouldn't have said that. This is why I secured my post by saying on average. It all depends on variance.

But the code in Bitcoin has been made so that blocks are found on average every 10 minutes.
legendary
Activity: 3416
Merit: 4658
I think OP means that transactions don't get confirmed this way.

Sure, if zero transaction blocks are all we have.
True, but if a block is found on avg every 10 minutes, and one is found but has only a coinbase transaction, then a user must wait an additional 10 minutes for his TX to confirm.

OK, that's true.

No it is not.  Block solutions are random.  The fact that someone just found a block has no bearing on how long it will take to find the next block.

The dice don't remember what the previous roll was. (And neither do the hashing functions).
hero member
Activity: 756
Merit: 501
There is more to Bitcoin than bitcoins.
There's nothing wrong with blocks that only contain a coinbase transaction, they still add proof of work to secure the block chain.

Blocks with transactions ALSO secures the blockchain AND additionally provides the service bitcoin is destined to.
OK, fair enough. My comment above was simply meant to point out that zero-tx blocks, while not optimal, still provide some service to the network. I don't think this is something worth worrying about. Let each user and miner (including the presumed botnet operator) decide what they want to do. As a user, I am comfortable with any of the likely outcomes.  Not a big deal, really.
sr. member
Activity: 252
Merit: 250
There's nothing wrong with blocks that only contain a coinbase transaction, they still add proof of work to secure the block chain.

Blocks with transactions ALSO secures the blockchain AND additionally provides the service bitcoin is destined to.
hero member
Activity: 482
Merit: 502
I'm becoming too old. I remember this exact discussion and proposed solutions when so called mystery miner gained significant percentage of the hash power and did not included any transactions besides the coinbase. The exact same discussion.

https://bitcointalk.org/index.php?topic=67634.20
There were more topics. Not sure if this is THE one.
Pages:
Jump to: