public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: "Jorge Timón" <jtimon@jtimon.cc>
To: Btc Drak <btcdrak@gmail.com>
Cc: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>,
	Matt Corallo <bitcoin-list@bluematt.me>
Subject: Re: [bitcoin-dev] RFC - BIP: URI scheme for Blockchain exploration
Date: Wed, 2 Sep 2015 01:57:16 +0200	[thread overview]
Message-ID: <CABm2gDrcZM8TH7__ViSgJ0Sr94SP_Yg4L8SLTqtto5JnCq95ow@mail.gmail.com> (raw)
In-Reply-To: <CADJgMzuK6YpLyFQ1BnHuWi4GyoqOgnuaA7T3odukpB=Hh3pTgQ@mail.gmail.com>

On Wed, Sep 2, 2015 at 12:56 AM, Btc Drak <btcdrak@gmail.com> wrote:
> When I brought up the issue originally, I deliberately steered away
> from altchains choosing to focus on networks like mainnet, testnet
> because I think it's easier to repurpose a protocol for an altcoin
> than it is to make the proposal work for all cases. Take the payment
> protocol for example. The BIP specifies a URI with bitcoin: well it's
> just as easy to repurpose that for litecoin: etc than adding something
> like ?cointype=litecoin, so that was my reason for not mentioning
> altcoins at all.
>
> If the proposal is made to account for altcoins, genesis hash is
> definitely not desirable, or at least not genesis hash in isolation,
> and if that's the case, better to have an identifier

I agree. That's why we don't need to account for altchains other than
testchains (ie sidechains and altcoins).



> On Sun, Aug 30, 2015 at 3:20 AM, Jorge Timón
> <bitcoin-dev@lists.linuxfoundation.org> wrote:
>>> Some altcoins (LTC and FTC for example) have the same genesis block hash.
>>
>> That's obviously a design mistake in FTC, but it's not unsolvable. FTC could
>> move their genesis block to the next block (or the first one that is not
>> identical to LTC's).
>>
>> Bitcoin and all its test chains have different genesis blocks, so I'm not
>> sure FTC should be a concern for a BIP anyway...
>
> That's a very sweeping generalisation indeed. Why should two chains
> have to have a separate genesis? It's cleaner, but it's certainly not
> a necessity. You cant exclude this case just because it doesn't fit
> your concept of neat and tidy. Other BIP proposals that account for
> alternative chains do not rely on the genesis hash, but instead an
> identifier. Why should it be any different here?

On Wed, Sep 2, 2015 at 12:59 AM, Btc Drak <btcdrak@gmail.com> wrote:
> The only sane way to me see to have cointype like BIP44.
> See https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#coin-type

We can do it the right way from now on (and as you say altcoins can
trivially adapt to this).
Sorry for having missed bip44 for review but that section is horrible
in my opinion (see the links above). And it seems to be incompatible
with bip001 which says are immutable once accepted (assuming that
document is expected to be the central registry of registered chains).

> How would you account
> for a world with XTCoin and Bitcoin which would also share the same
> genesis hash, but clearly not be the same coin.

Schism hardforks are explicitly renouncing to reach consensus with all
previous users. You're intentionally divorcing 2 chains, and you can
do that without confusing users.
In BIP99 the recommended deployment path for a schism fork is to
simply use the nHeight for activation.
The 95% miner's upgrade confirmation is not used here (like in
uncontroversial hardforks and softforks) because you don't necessarily
expect all miners to move to your side of the schism (and you don't
want to wait for them, specially if it's an "anti-miner" hardfork).
To avoid confusing users, you can define a new "genesis block" to use
for the chain ID, for example, 1000 blocks before the activation
height.
The same applies for potentially pre-mined altcoins that haven't had
the decency/competency of even changing the string in pszTimestamp.
For example, FTC, coins generated with coingen (Matt Corallo or the
current owner may want to correct me on this point) or elements alpha
(https://github.com/ElementsProject/elements/blob/alpha/src/chainparams.cpp#L115).
Fortunately alpha has a unique chain ID because it was changing both
the block and transaction serialization formats anyway. But hopefully
we will fix that for beta and later sidechains.
All chains that want a unique chain ID can have it retroactively. At
worst, they may need to use the hash of a block that is not the
genesis block.
In other words, they may need to move their "genesis checkpoint" upwards.
Terminology may make things more clear. We can replace:

"The chain ID is the hash of the genesis block"

with

"The chain ID is the hash of the genesis checkpoint".

If we want a unique chain ID we can have it: it just cannot be
memorable at the same time.
And each chain and implementation can start using them (in addition to
petname -> chain ID local dictionaries) at any point in time: this is
retroactively (and obviously forwards) compatible.
There can be many competing registries for the name -> chainID
dictionaries (maybe one of them based on namecoin?) but bitcoin/bips
shouldn't maintain one.


  reply	other threads:[~2015-09-01 23:57 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-29 11:48 [bitcoin-dev] RFC - BIP: URI scheme for Blockchain exploration Marco Pontello
2015-08-29 16:31 ` Richard Moore
2015-08-29 17:19   ` Matt Whitlock
2015-08-29 19:24     ` Richard Moore
2015-08-29 18:07   ` Andreas Schildbach
2015-09-01 14:33     ` Marco Pontello
2015-08-29 18:58   ` Btc Drak
2015-08-29 19:01     ` Matt Whitlock
2015-08-29 20:10       ` Jorge Timón
2015-08-30  2:02         ` Chun Wang
2015-08-30  2:20           ` Jorge Timón
2015-09-01 22:56             ` Btc Drak
2015-09-01 14:49         ` Marco Pontello
2015-09-01 21:16           ` Matt Whitlock
2015-09-01 21:25             ` Esteban Ordano
2015-09-01 21:38             ` Marco Pontello
2015-09-01 21:42               ` Matt Whitlock
2015-09-01 21:43                 ` Marco Pontello
2015-09-01 22:46             ` Jorge Timón
2015-09-01 23:25               ` Matt Whitlock
2015-09-01 16:12         ` Danny Thorpe
2015-09-01 22:59           ` Btc Drak
2015-09-01 23:57             ` Jorge Timón [this message]
2015-08-29 19:28     ` Richard Moore
2015-09-01 14:51       ` Marco Pontello
2015-11-15  2:14 ` Marco Pontello
2015-11-15 11:42   ` Jorge Timón
2015-11-16  0:59     ` Marco Pontello
2015-11-16 14:43       ` Jorge Timón
2015-11-16 22:10         ` Marco Pontello
2015-11-18 11:29           ` Jorge Timón
2015-11-18 12:31             ` Marco Pontello

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CABm2gDrcZM8TH7__ViSgJ0Sr94SP_Yg4L8SLTqtto5JnCq95ow@mail.gmail.com \
    --to=jtimon@jtimon.cc \
    --cc=bitcoin-dev@lists.linuxfoundation.org \
    --cc=bitcoin-list@bluematt.me \
    --cc=btcdrak@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox