public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Pieter Wuille <pieter.wuille@gmail•com>
To: "Wladimir J. van der Laan" <laanwj@gmail•com>
Cc: Bitcoin Dev <bitcoin-development@lists•sourceforge.net>
Subject: Re: [Bitcoin-development] Concerns Regarding Threats by a Developer to Remove Commit Access from Other Developers
Date: Thu, 18 Jun 2015 14:29:42 +0200	[thread overview]
Message-ID: <CAPg+sBj_go==m6-++sA53imYdz4OLH4bkyiuAyEM8YR8CaTd=w@mail.gmail.com> (raw)
In-Reply-To: <20150618111407.GA6690@amethyst.visucore.com>

[-- Attachment #1: Type: text/plain, Size: 4122 bytes --]

On Thu, Jun 18, 2015 at 1:14 PM, Wladimir J. van der Laan <laanwj@gmail•com>
wrote:

> Like in any open source project there is lots of decision making ability
> for code changes. I'd say look at the changelog for e.g. 0.11
> https://github.com/bitcoin/bitcoin/blob/0.11/doc/release-notes.md#0110-change-log,
> or follow pull requests for a while, to see how many decisions about
> changes are made from day to day. No, I'm not sitting on my hands, and so
> is none of the other contributors that you'd like to get rid of.
>

The analogy goes further even. Even though I disagree with some of the
changes you're making, I respect Mike's (and anyone's) right to make a fork
of Bitcoin Core. That's how open source works: if people disagree with
changes made or not made, they can maintain their own version. However:


> Consensus changes are *much* more difficult, on the other hand. Even
> relatively straightforward softforks come with a long discussion process
> (see BIP62, BIP66). A hardfork is hard to do at the best of times (everyone
> needs to upgrade their software!), and simply not possible if almost the
> entire technical community disagrees with you.
>

Consensus changes - in particular hardforks - are not about making a change
to the software. You are effectively asking users of the system to migrate
to a new system. Perhaps one which is a philosophical successor to the old
one, but a different system, with new rules that are incompatible with the
old one.

I believe this is something that can only be done if there is no
controversy about the change, for different reasons:

* Risk: no matter how you determine the switchover date, there is no way of
knowing when (and whether at all) everyone changes their full nodes (and
perhaps other software), and even very high hash power votes cannot prevent
an actual fork from appearing afterwards. At best, people lose the
guarantee that their confirmations are meaningful (because at some point it
becomes clear that the other side will get adopted, and they need to
switch). At worst, a fork persists, and two partitions appear, in each of
which you can spend every pre-existing coin. This defeats the primary
purpose Bitcoin was designed for: double spend protection.

* Philosophy: Bitcoin is not a democracy. The full node security model is
designed to minimize trust in other parties in the system. This works by
validating as much as possible according to the consensus rules. In
particular, there is no "majority vote" that can override things (contrary
to what some people think, it is not "longest chain wins, and a majority of
miners decide"; even a majority of miners cannot steal your coins or
produce more than the allowed subsidy, unless they convince others to
change their software). Changing the rules should be possible if there is
wide consensus, but nobody should feel forced to change their code against
their will.

* Governance: being able to push for a controversial change to the system
sets an incredibly dangerous precedent about who is in charge of the
system's rules. What if next time it is a change demanded by parties with
less good intentions (and yes, I believe people in this discussions all
have good intentions to improve the system in a way they think is most
useful)? I can promise you that I will say anything in mail to this list if
someone points a gun at me, and I think you should make the same assumption
about other people here. By avoiding controversial changes, you avoid
external and potentially invisible manipulation.

Of course, sometimes changes to the consensus rules may be wanted. The
presence of a bug is a good reason, and widespread agreement about one of
the system's limitation is too. As I said before, I think technological
growth in network bandwidth, processing power, and storage, are a good
reason why the system should be able to scale proportionally. I think there
are good technical and economic reasons why we should be cautious about
this, but the primary requirement is consensus, and aligning people's
expectation about what they can expect from network's evolution.

-- 
Pieter

[-- Attachment #2: Type: text/html, Size: 4873 bytes --]

  parent reply	other threads:[~2015-06-18 12:29 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-18  8:54 odinn
2015-06-18 10:00 ` Mike Hearn
2015-06-18 11:14   ` Wladimir J. van der Laan
2015-06-18 11:47     ` Wladimir J. van der Laan
2015-06-18 13:36       ` Mike Hearn
2015-06-18 15:58         ` Gregory Maxwell
2015-06-18 12:29     ` Pieter Wuille [this message]
2015-06-18 12:50       ` Wladimir J. van der Laan
2015-06-18 12:56         ` Benjamin
2015-06-18 13:49       ` Mike Hearn
2015-06-18 14:05         ` Wladimir J. van der Laan
2015-06-18 14:16           ` Mike Hearn
2015-06-18 14:53           ` Milly Bitcoin
2015-06-18 14:56             ` Jeff Garzik
2015-06-18 15:13               ` Milly Bitcoin
2015-06-18 14:53       ` Jeff Garzik
2015-06-18 16:07         ` justusranvier
2015-06-18 16:28           ` Jeff Garzik
2015-06-18 17:04             ` justusranvier
2015-06-18 17:42               ` Alex Morcos
2015-06-18 18:01                 ` Milly Bitcoin
2015-06-18 18:23                 ` Gavin Andresen
2015-06-18 18:44                   ` Alex Morcos
2015-06-18 18:49                   ` Jorge Timón
2015-06-18 19:31                     ` Ross Nicoll
2015-06-18 21:42                       ` Matt Whitlock
2015-06-18 21:49                         ` Mark Friedenbach
2015-06-18 21:58                           ` Jeff Garzik
2015-06-18 22:33                             ` Mark Friedenbach
2015-06-18 22:52                               ` Jeff Garzik
2015-06-18 23:25                                 ` odinn
2015-06-18 23:16                               ` Ross Nicoll
2015-06-19  0:57                               ` Chris Pacia
2015-06-19  5:59                                 ` Eric Lombrozo
2015-06-19  9:37                               ` Mike Hearn
2015-06-19  9:53                                 ` Benjamin
2015-06-19 10:08                                   ` GC
2015-06-19 10:19                                   ` Mike Hearn
2015-06-19 10:52                                 ` Eric Lombrozo
2015-06-19 11:31                                 ` Jorge Timón
2015-06-19 12:26                                   ` GC
2015-06-19 11:48                                 ` Brooks Boyd
2015-06-21 14:45                                   ` Owen Gunden
2015-06-18 21:55                         ` Ross Nicoll
2015-06-18 19:24                   ` Matt Corallo
2015-06-18 19:32                     ` Gregory Maxwell
2015-06-18 12:38     ` Milly Bitcoin
2015-06-18 13:31     ` Mike Hearn
2015-06-18 13:50       ` Pieter Wuille
2015-06-18 15:03       ` Mark Friedenbach
2015-06-18 15:30         ` Milly Bitcoin
2015-06-18 15:46           ` Wladimir J. van der Laan
2015-06-18 16:05             ` Mike Hearn
2015-06-18 16:20               ` Wladimir J. van der Laan
2015-06-18 22:49               ` odinn
2015-06-18 16:11             ` Milly Bitcoin
2015-06-18 11:41   ` Lawrence Nahum
2015-06-18 14:33   ` Bryan Bishop
2015-06-18 18:09   ` Melvin Carvalho
2015-06-18 22:10   ` odinn

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='CAPg+sBj_go==m6-++sA53imYdz4OLH4bkyiuAyEM8YR8CaTd=w@mail.gmail.com' \
    --to=pieter.wuille@gmail$(echo .)com \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=laanwj@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