Pages:
Author

Topic: Block orphans/day? (Read 2393 times)

t3a
full member
Activity: 179
Merit: 100
January 13, 2014, 08:20:22 PM
#42
You aren't giving anyone an advantage by letting them mine on your blocks because it's either your blocks or someone elses blocks they're going to be mining on.

Certainly they gain something.  By building upon your block rather than beside it the probability of their next block becoming an orphan is reduced.

Question: What does this obscure example of a network with terrible rules have to do with anything?

I don't know about you but I'm talking about Bitcoin with it's current rules.


If there are 10 blocks per second they could easily be mining on someone elses block. They benefit you by mining on it.

You aren't talking about Bitcoins rules. If we were talking about bitcoins rules we would be talking about blocks that are propogated in 1/500th of the block generation time, not 10 times the block time.
legendary
Activity: 1246
Merit: 1011
January 13, 2014, 07:49:01 PM
#41
You aren't giving anyone an advantage by letting them mine on your blocks because it's either your blocks or someone elses blocks they're going to be mining on.

Certainly they gain something.  By building upon your block rather than beside it the probability of their next block becoming an orphan is reduced.

Question: What does this obscure example of a network with terrible rules have to do with anything?

I don't know about you but I'm talking about Bitcoin with it's current rules.
legendary
Activity: 1232
Merit: 1094
January 13, 2014, 04:43:56 AM
#40
Question: What does this obscure example of a network with terrible rules have to do with anything?

The conclusion is that broadcasting as fast as possible is the best strategy, except for networks with "terrible rules".

This comes up when discussing reducing the time between blocks.
t3a
full member
Activity: 179
Merit: 100
January 13, 2014, 01:36:00 AM
#39
This was not a strawman.  I have not mis-represented your argument.
If you have a block and wait instead of broadcasting, someone else could broadcast their block in that time, which would mean the network would start mining on their block instead of yours and you would be left with a stale block instead of 25btc rewards.
very clearly suggests that the first to broadcast will receive the attention of the network as a whole, guaranteeing that a later broadcast rival block will become an orphan.

You've merely changed your argument to:
If you broadcast sooner, it is more likely that more of the network will recognize your block over another.

Unfortunately, while true, this is insufficient to support your earlier claim:
Unless a pool has over 50% of the mining power it will always be bad for them to delay a broadcast...


You misrepresented my argument saying I thought the propagation was instantaneous. I didn't suggest the first to broadcast that the network would immediately recognize theirs, I only implied that it could be propagated in that time "someone else could broadcast their block in that time".

Quote
Certainly, a pool wants to reduce the probability of its blocks becoming orphans.  To this end, the broadcast strategy: "broadcast as soon as possible" is optimal.  However, a pool will also want to reduce difficulty so that it is able to find more blocks.  To this end, the broadcast strategy: "broadcast a block only once a rival block has been seen" is (roughly) optimal.  It is not clear that the first concern always outweighs the second (for pools controlling no more than 50% of the network by hashrate), especially in light of the fact that some nodes are better connected than others.

If you broadcast block-you-found 1 and that is chosen as the winning block by the network, then you have 1 block. If you keep mining on that block, you will keep having the same chance of having your block winning. If you wait until you have 10, you will only win if 10 haven't been mined in that time. You aren't giving anyone an advantage by letting them mine on your blocks because it's either your blocks or someone elses blocks they're going to be mining on.

Question: What does this obscure example of a network with terrible rules have to do with anything?
legendary
Activity: 1232
Merit: 1094
January 12, 2014, 11:22:10 AM
#38
That example doesn't illustrate that producing a 10 block chain before broadcasting is advantageous.

You are helping the other miners.

If you produce 1000 blocks before broadcasting, the rest of the network would be 975 block behind if you don't broadcast every block.  If you broadcast every block, they would be only 10 blocks behind.

You are right that it doesn't help them overtake the main chain.  

The only case I can think of is where keeping them secret is if a larger miner joins the network.

If you have 10% of the network power and have a 500 block chain produced in secret and an 11% miner joins the network, then you will reach the 1000 block point before he can produce 1000.

This means you get 500 more coinbases than you would otherwise have received.

Keeping them secret means that he will have a 500 block orphaned chain before he can take control of the network.  This might discourage him, so he leaves the coin.  This is an added bonus.

There is no advantage to broadcasting blocks and sometimes disadvantages.  That means keeping them secret is the best strategy.
legendary
Activity: 1246
Merit: 1011
January 12, 2014, 07:30:29 AM
#37
This was not a strawman.  I have not mis-represented your argument.
If you have a block and wait instead of broadcasting, someone else could broadcast their block in that time, which would mean the network would start mining on their block instead of yours and you would be left with a stale block instead of 25btc rewards.
very clearly suggests that the first to broadcast will receive the attention of the network as a whole, guaranteeing that a later broadcast rival block will become an orphan.

You've merely changed your argument to:
If you broadcast sooner, it is more likely that more of the network will recognize your block over another.

Unfortunately, while true, this is insufficient to support your earlier claim:
Unless a pool has over 50% of the mining power it will always be bad for them to delay a broadcast...

Certainly, a pool wants to reduce the probability of its blocks becoming orphans.  To this end, the broadcast strategy: "broadcast as soon as possible" is optimal.  However, a pool will also want to reduce difficulty so that it is able to find more blocks.  To this end, the broadcast strategy: "broadcast a block only once a rival block has been seen" is (roughly) optimal.  It is not clear that the first concern always outweighs the second (for pools controlling no more than 50% of the network by hashrate), especially in light of the fact that some nodes are better connected than others.
t3a
full member
Activity: 179
Merit: 100
January 11, 2014, 07:43:45 PM
#36
This is only true if they have 51% of the network power. Otherwise broadcasting (even if the odds of stale are high) increases your odds of making money from 0% to something%.

No, but it depends on a breakdown of a the core assumption about network conditions.

Imagine that you have a miner with 20% of the network power and the other 80% are lots of small miners.

It takes 5 seconds for blocks to propagate over the network.  However, the network produces 10 blocks per second.

The 20% miner gets 2 blocks per second.  This means that he can create a chain of 10 blocks during the network propagation time.

The other 80% can't coordinate.

They produce 8 blocks per second.  What should they set as previous block?  The can't coordinate, so they all set it to point at some block from the last 5 seconds which is 40 possible blocks.

They all spread their mining power over 40 possible previous blocks.  This means that their chain grows 40X slower.

If the 20% miner released his chain, it would help them coordinate, so he doesn't.  They produce 8 blocks a second but their chain only grows by 1 block every 5 seconds.

The 20% miner grows his chain at 2 blocks a second, which is faster than any of them.  His advantage is that he gets 100% efficiency from his mining power and directs it at one chain.

That example doesn't illustrate that producing a 10 block chain before broadcasting is advantageous. If you wait to broadcast until you have a 10 block chain you will only succeed when you have a 10 block chain faster than the rest of the network. Broadcasting the blocks individually and building on top of those makes you win both in the case that your 10 block chain is the tallest and the case where some of the first are part of the tallest.

What your example does demonstrate (and I think this is where the confusion is coming from) is that it is an advantage to be in a pool when you have ridiculous block generation speed.
legendary
Activity: 1232
Merit: 1094
January 11, 2014, 07:05:45 PM
#35
This is only true if they have 51% of the network power. Otherwise broadcasting (even if the odds of stale are high) increases your odds of making money from 0% to something%.

No, but it depends on a breakdown of a the core assumption about network conditions.

Imagine that you have a miner with 20% of the network power and the other 80% are lots of small miners.

It takes 5 seconds for blocks to propagate over the network.  However, the network produces 10 blocks per second.

The 20% miner gets 2 blocks per second.  This means that he can create a chain of 10 blocks during the network propagation time.

The other 80% can't coordinate.

They produce 8 blocks per second.  What should they set as previous block?  The can't coordinate, so they all set it to point at some block from the last 5 seconds which is 40 possible blocks.

They all spread their mining power over 40 possible previous blocks.  This means that their chain grows 40X slower.

If the 20% miner released his chain, it would help them coordinate, so he doesn't.  They produce 8 blocks a second but their chain only grows by 1 block every 5 seconds.

The 20% miner grows his chain at 2 blocks a second, which is faster than any of them.  His advantage is that he gets 100% efficiency from his mining power and directs it at one chain.
t3a
full member
Activity: 179
Merit: 100
January 11, 2014, 06:35:47 PM
#34
I am not assuming that it is instantaneous. If you broadcast sooner, it is more likely that more of the network will recognize your block over another. Your strawman is irrelevant anyways because whether or not the broadcast to the entire network is instantaneous, it is beneficial to broadcast as soon as possible.
It turned out that holding back your blocks was the best strategy for the miner with the most hashing power. 

This is only true if they have 51% of the network power. Otherwise broadcasting (even if the odds of stale are high) increases your odds of making money from 0% to something%.
legendary
Activity: 1232
Merit: 1094
January 11, 2014, 06:25:49 PM
#33
I am not assuming that it is instantaneous. If you broadcast sooner, it is more likely that more of the network will recognize your block over another. Your strawman is irrelevant anyways because whether or not the broadcast to the entire network is instantaneous, it is beneficial to broadcast as soon as possible.

It isn't necessarily a strawman.

With a properly operating network, broadcasting the block brings a significant portion of the hashing power onto your block.  Therefore, by broadcasting, most of the rest of the network's hashing power helps protect your block.

Some alt chains with block rates less than a second ended up dying due to collapse of this effect.

There was very little advantage in broadcasting.  By the time everyone knew about your block, many more blocks would have been found anyway.

It turned out that holding back your blocks was the best strategy for the miner with the most hashing power. 
t3a
full member
Activity: 179
Merit: 100
January 11, 2014, 06:06:44 PM
#32
Unless a pool has over 50% of the mining power it will always be bad for them to delay a broadcast...

I don't think this is correct.
Why not? If you have a block and wait instead of broadcasting, someone else could broadcast their block in that time, which would mean the network would start mining on their block instead of yours and you would be left with a stale block instead of 25btc rewards.

You seem to be assuming that broadcasting a block is an instantaneous process.  This would make things far easier but, alas, it is not the case.

Notice also how it's possible to have one fraction of the network building on one block while another fraction builds on its brother.  This is not a fleeting state but one that will likely endure until someone finds a block to settle the issue.


I am not assuming that it is instantaneous. If you broadcast sooner, it is more likely that more of the network will recognize your block over another. Your strawman is irrelevant anyways because whether or not the broadcast to the entire network is instantaneous, it is beneficial to broadcast as soon as possible.
legendary
Activity: 1246
Merit: 1011
January 11, 2014, 07:48:19 AM
#31
Unless a pool has over 50% of the mining power it will always be bad for them to delay a broadcast...

I don't think this is correct.
Why not? If you have a block and wait instead of broadcasting, someone else could broadcast their block in that time, which would mean the network would start mining on their block instead of yours and you would be left with a stale block instead of 25btc rewards.

You seem to be assuming that broadcasting a block is an instantaneous process.  This would make things far easier but, alas, it is not the case.

Notice also how it's possible to have one fraction of the network building on one block while another fraction builds on its brother.  This is not a fleeting state but one that will likely endure until someone finds a block to settle the issue.
t3a
full member
Activity: 179
Merit: 100
January 10, 2014, 08:33:51 PM
#30
Unless a pool has over 50% of the mining power it will always be bad for them to delay a broadcast...

I don't think this is correct.
Why not? If you have a block and wait instead of broadcasting, someone else could broadcast their block in that time, which would mean the network would start mining on their block instead of yours and you would be left with a stale block instead of 25btc rewards.
sr. member
Activity: 406
Merit: 251
http://altoidnerd.com
January 10, 2014, 02:47:50 PM
#29
Unless a pool has over 50% of the mining power it will always be bad for them to delay a broadcast...

I don't think this is correct.
legendary
Activity: 1232
Merit: 1094
January 10, 2014, 11:58:04 AM
#28
You would only forward stale block headers if their difficulty was equal to the current difficulty of course.

Right.  I would set it to a percentage though.  If all headers that met 1/64 of the block difficulty were forwarded, then it would bring miners to consensus on the leaf block faster, but that is a separate discussion.

Another way would be to only forward headers if they link to a block within 100 of the leaf.
legendary
Activity: 1120
Merit: 1152
January 10, 2014, 11:05:39 AM
#27
It has the disadvantage that anyone can spam the network by creating blocks from an easier point in the past.

You would only forward stale block headers if their difficulty was equal to the current difficulty of course.
kjj
legendary
Activity: 1302
Merit: 1026
January 10, 2014, 10:14:21 AM
#26
It has the disadvantage that anyone can spam the network by creating blocks from an easier point in the past.
legendary
Activity: 1232
Merit: 1094
January 10, 2014, 09:34:14 AM
#25
As I understand, stale blocks will be forwarded to all the network, even if they are not in the best chain.
So all nodes known how many stale blocks are created.

I don't think this is correct.  My understanding is that the process is something like

- Block received
- Find parent from block header's hash
- Total_POW(new_block) = Total_POW(parent) + POW(new_block)
- If Total_POW(new_block) > best_chain_so_far then update best_chain_so_far and attempt to validate block
- If block is validated then forward to all peers

Blocks which don't extend the main chain don't get checked or forwarded.

Personally, I think the headers should be forwarded, even if the blocks aren't.  That would have the advantage that (near) exact orphan counts could be made.

It would also allow miners to more quickly agree on which block was found first.
hero member
Activity: 555
Merit: 654
January 10, 2014, 09:09:58 AM
#24
For blockchain.info orphan == stale
(definition in https://blockchain.info/orphaned-blocks)
This is a technical mistake, since "orphan" means "no parent", but this is how the term has been used, not only there but also in https://en.bitcoin.it/wiki/Orphan_Block

As I understand, stale blocks will be forwarded to all the network, even if they are not in the best chain.
So all nodes known how many stale blocks are created.








kjj
legendary
Activity: 1302
Merit: 1026
January 10, 2014, 02:40:02 AM
#23
You seem to have a peculiar amount of faith in the guesses that blockchain.info posts on their site.  Go look up some of your own past transactions and see how well they do at figuring out which outputs are the value and which outputs are the change.

Go on.  We'll wait for you.
Pages:
Jump to: