The fact that some implementations ban an invalid block hash and some do not, 
suggests that it’s not a pure p2p protocol issue. A pure p2p split should be 
unified by a bridge node. However, a bridge node is not helpful in this case. 
Banning an invalid block hash is an implicit “first seen” consensus rule.

jl2012

> On 18 Nov 2016, at 01:49, Eric Voskuil <[email protected]> wrote:
> 
> Actually both possibilities were specifically covered in my description. 
> Sorry if it wasn't clear.
> 
> If you create a new valid block out of an old one it's has potential to cause 
> a reorg. The blocks that previously built on the original are still able to 
> do so but presumably cannot build forever on the *new* block as it has a 
> different tx. But other new blocks can. There is no chain split due to a 
> different interpretation of valid, there are simply two valid competing 
> chains.
> 
> Note that this scenario requires not only block and tx validity with a tx 
> hash collision, but also that the tx be valid within the block. Pretty far to 
> reach to not even get a chain split, but it could produce a deep reorg with a 
> very low chance of success. As I keep telling people, deep reorgs can happen, 
> they are just unlikely, as is this scenario.
> 
> If you create a new invalid block it is discarded by everyone. That does not 
> invalidate the hash of that block. Permanent blocking as you describe it 
> would be a p2p protocol design choice, having nothing to do with consensus. 
> Libbitcoin for example does not ban invalidated hashes at all. It just 
> discards the block and drops the peer.
> 
> e


_______________________________________________
bitcoin-dev mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

Reply via email to