public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Adam Back <adam@cypherspace•org>
To: Alan Reiner <etotheipi@gmail•com>
Cc: bitcoin-development@lists•sourceforge.net
Subject: Re: [Bitcoin-development] is there a way to do bitcoin-staging?
Date: Mon, 14 Oct 2013 20:08:07 +0200	[thread overview]
Message-ID: <20131014180807.GA32082@netbook.cypherspace.org> (raw)
In-Reply-To: <5199C3DE.901@gmail.com>

Coming back to the staging idea, maybe this is a realistic model that could
work.  The objective being to provide a way for bitcoin to move to a live
beta and stable being worked on in parallel like fedora vs RHEL or odd/even
linux kernel versions.

Development runs in parallel on bitcoin 1.x beta (betacoin) and bitcoin 0.x
stable and leap-frogs as beta becomes stable after testing.

Its a live beta, meaning real value, real contracts.  But we dont want it to
be an alt-coin with a floating value exactly, we want it to be bitcoin, but
the bleeding edge bitcoin so we want to respect the 21 million coin limit,
and allow coins to move between bitcoin and betacoin with some necessary
security related restrictions.

There is no mining reward on the betacoin network (can be merge mined for
security), and the way you opt to move a bitcoin into the betacoin network
is to mark it as transferred in some UTXO recognized way.  It cant be
reanimated, its dead.  (eg spend to a specific recognized invalid address on
the bitcoin network).  In this way its not really a destruction, but a move,
moving the coin from bitcoin to betacoin network.

This respects the 21 million coin cap, and avoids betacoin bugs flowing back
and affecting bitcoin security or value-store properties.  Users may buy or
swap betacoin for bitcoin to facilitate moving money back from betacoin to
bitcoin.  However that is market priced so the bitcoin network is security
insulated from beta.  A significant security bug in beta would cause a
market freeze, until it is rectified.

The cost of a betacoin is capped at one BTC because no one will pay more
than one bitcoin for a betacoin because they could alternatively move their
own coin.  The reverse is market priced.

Once bitcoin beta stabalizes, eg say year or two type of time-frame, a
decision is reached to promote 1.0 beta to 2.0 stable, the remaining
bitcoins can be moved, and the old network switched off, with mining past a
flag day moving to the betacoin.

During the beta period betacoin is NOT an alpha, people can rely on it and
use it in anger for real value transactions.  eg if it enables more script
features, or coin coloring, scalabity tweaks etc people can use it. 
Probably for large value store they are always going to prefer
bitcoin-stable, but applications that need the coloring features, or
advanced scripting etc can go ahead and beta.

Bitcoin-stable may pull validated changes and merge them, as a way to pull
in any features needed in the shorter term and benefit from the betacoin
validation.  (Testing isnt as much validation as real-money at stake
survivability). 

The arguments are I think that: 

- it allows faster development allowing bitcoin to progress features faster,

- it avoids mindshare dilution if alternatively an alt-coin with a hit
   missing feature takes off;

- it concentrates such useful-feature alt activities into one OPEN source
   and OPEN control foundation mediated area (rather than suspected land
   grabs on colored fees or such like bitcoin respun as a business model
   things),

- maybe gets the developers that would've been working on their pet
   alt-coin, or their startup alt-coin to work together putting more
   developers, testers and resources onto something with open control (open
   source does not necessarily mean that much) and bitcoin mindshare
   branding, its STILL bitcoin, its just the beta network.

- it respects the 21 million limit, starting new mining races probably
   dillutes the artificial scarcity semantic

- while insulating bitcoin from betacoin security defects (I dont mean
   betacoin as a testnet, it should have prudent rigorous testing like
   bitcoin, just the very act of adding a feature creates risk that bitcoin
   stable can be hesitant to take).

Probably the main issue as always is more (trustable) very high caliber
testers and developers.  Maybe if the alt-coin minded startups and
developers donate their time to bitcoin-beta (or bitcoin-stable) for the
bits they are missing, we'll get more hands to work on something of reusable
value to humanity, in parallel with their startup's objectives and as a way
for them to get their needed features, while giving back to the bitcoin
community, and helping bitcoin progress faster.

Maybe bitcoin foundation could ask for BTC donations to hire more developers
and testers full time.  $1.5b of stored value should be interested to safe
guard their value store, and develop the transaction features.

Adam

On Mon, May 20, 2013 at 02:34:06AM -0400, Alan Reiner wrote:
>   This is exactly what I was planning to do with the
>   inappropriately-named "Ultimate Blockchain Compression".  [...]
> 
>   For it to really work, it's gotta be part of the mainnet validation
>   rules, but no way it can be evaluated realistically without some kind of
>   "staging".  

>   On 5/19/2013 11:08 AM, Peter Vessenes wrote:
>
>   I think this is a very interesting idea. As Bitcoiners, we often stuff
>   things into the 'alt chain' bucket in our heads; I wonder if this idea
>   works better as a curing period, essentially an extended version of the
>   current 100 block wait for mined coins.



  reply	other threads:[~2013-10-14 18:08 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-19 13:23 Adam Back
2013-05-19 15:08 ` Peter Vessenes
2013-05-20  6:34   ` Alan Reiner
2013-10-14 18:08     ` Adam Back [this message]
2013-10-14 18:21       ` Jeff Garzik
2013-11-21 20:22       ` coinscoins
2013-11-21 20:35       ` Melvin Carvalho
2013-11-21 21:11         ` [Bitcoin-development] bitcoin 1.x & 0.x in parallel (Re: is there a way to do bitcoin-staging?) Adam Back
2014-03-16 22:58       ` [Bitcoin-development] 2-way pegging " Adam Back
2014-03-16 23:22         ` Jorge Timón
2014-03-17 15:55         ` Gregory Maxwell
2013-10-14 18:43     ` [Bitcoin-development] is there a way to do bitcoin-staging? Michael Gronager
2013-10-14 20:20       ` Alan Reiner
2013-05-22  3:37   ` zooko
2013-05-22  4:12     ` Jeff Garzik
2013-05-20  7:12 ` Luke-Jr
2013-06-13 13:39 ` Adam Back
2013-06-14 19:20   ` Peter Todd
2013-06-14 20:50     ` Adam Back
2013-06-14 21:10       ` Luke-Jr
2013-06-14 21:25         ` Andreas Petersson
2013-06-15  0:09           ` Dennison Bertram
2013-06-15  1:57             ` Luke-Jr
2013-06-15  8:43               ` Dennison Bertram
2013-06-15 11:18 ` Melvin Carvalho
2013-06-15 13:26   ` Dennison Bertram
2013-06-16 15:46     ` Dennison Bertram

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=20131014180807.GA32082@netbook.cypherspace.org \
    --to=adam@cypherspace$(echo .)org \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=etotheipi@gmail$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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