Trimmed some of the thread to clarity

On 10/08/2015 19:40, Luke Dashjr wrote:
I propose adding a new optional "genesis" field as a 16 byte sequence
containing the SHA-256 hash of the genesis block of the network the
request belongs to, uniquely identifying chains without any requirement
for a central registry.
Genesis blocks are not necessarily unique. For example, Litecoin and
Feathercoin share the same one.
Had missed that, and there's no easy alternatives. BIP 44 chain IDs
don't identify different testnets, and do not cover regtest at all.
Regtest isn't really a network at all, just a testing mode of Bitcoin Core...
True, but as Jorge points out, it's generally better not to have special cases.

Most recent block hash could be used and also provides fork
detection, but in doing so advertises if a merchant is on the wrong
fork. Will think about it.
Is that a bad thing?
It was something I was thinking about with the BIP 66 fork, that it could be used as a safety measure, but could also be used to find merchants & exchanges who are accepting coins on the wrong branch of a fork (and therefore are susceptible to double-spend attacks). For fork detection it's probably safer for the client to provide a recent block hash with the payment response.

I think genesis hash collisions are probably acceptable; or, the duplicate coins are so far rarely long-lived and it's therefore not a major concern at least. The server should reject any attempt to pay on the wrong chain, in hindsight, as it will try to relay on the network it expects and the transaction will be rejected.

I'd appreciate initial feedback on the idea, and if there's no major
objections I'll raise this as a BIP.
I don't see how this is related to improving Bitcoin...

Well, mostly I'm trying not to avoid the situation where any accidental
mixing of files is dangerous (funds can easily be sent on the wrong
blockchain), nor with multiple standards (which is where we are at the
moment). It improves things in avoiding future problems, rather than in
the immediate term.
Sorry, I meant to stress that BIPs are for *Bitcoin* improvements
specifically. Things which only improve altcoins, while a perfectly fine thing
to standardise, are outside the scope of what belongs in a BIP.

Perhaps, however, this could be made to kill 2 birds with one stone, by
ensuring it addresses the need for payments made of bitcoins on a sidechain?
For this, a merchant who wants a sidechain payment would presumably be able to
provide a script from the main chain already, but an extension allowing
payment directly on the sidechain (at the customer's choice) avoids the need
to round-trip it...

That could definitely be done, for example by making the genesis field "repeated", so it specifies all potential networks. The response would need to indicate which hash it used, but that could be chain tip (with height in a further field), and provide fork detection.

Ross

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

Reply via email to