Subject: Re: [Bitcoin-development] Proposal: Vote on the blocksize limit with proof-of-stake voting

From: Melvin Carvalho <[email-masked]>
Date: Mon, 10 Jun 2013 14:30:02 +0200

On 10 June 2013 10:35, Pieter Wuille <[email-masked]> wrote:

> On Mon, Jun 10, 2013 at 10:14 AM, Melvin Carvalho
> <[email-masked]> wrote:
> > However, Bitcoin's fundamental philosophy was one CPU one vote.
>
> This is perhaps the largest misconception that keeps being repeated.
> Bitcoin is not a democracy; it is a zero-trust system. The rules are
> set in stone, and every full node verifies all rules and must
> independently come to the same result as everyone else. Obviously, if
> everyone changes their software, anything can change, but from within
> the system there is no way to change which blocks are considered
> valid, and there is certainly no voting mechanism about that.
>
> What is voted about, is the one single thing that cannot be decided by
> each node individually: namely the order of otherwise valid and
> non-conflicting transactions, and that's just because it's a
> necessity. Because deciding the order includes delaying transaction
> potentially indefinitely, a majority of miners can indeed choose the
> enforce an additional rule about which transactions are considered
> valid, but the rules implemented in full nodes do not change without
> changing the software. For example, miners cannot decide to raise the
> block subsidy, even if every single miner out there would want that.
> They'd just end up being ignored by everyone else.
>
> > Voting is easily gamed.  While this may work in one particular case, it
> is
> > perhaps a bad precedent to set.  Establishing methods of voting can lead
> to
> > single points of failure.
>
> The problem is that at some point, you have to look at the system from
> a higher level than just the technical part. And because ultimately
> the possibility exists where everyone changes their software, and
> there is an exceedingly high incentive for consensus (a deliberate
> hard-fork where two groups of users decide to use different and
> incompatible rules, aware of eachother, is suicide for the system, in
> my opinion). This results in the fact that proposed changes can indeed
> become new adopted hard rules in the system, and I don't think there's
> anything that can be done about it. Bitcoin is a consensus system - at
> the technical level - but also a consensus of the people using it, and
> ultimately they decide the rules.
>

OK I accept that the timestamping is one CPU one vote.  However rule
changes seem rather arbitrary.

Towit if you use a voting/consensus system and want to destroy bitcion it
seems quite easy.

Iterate on picking a rule chance that will divide the consensus in such a
way as to create ensuing chaos.

I think voting is too easy gamed for it it to be meaningful other than a
straw poll.

If there's a bug, and everyone is unanimous that it's a bug, it can be
fixed.

If there's a controversial rule change, we should be extremely cautious and
not do it unless there's a very good reason.  Keeping to satoshi's model as
much as possible without introducing human factors, unnecessarily.

>
>
> > Unless there's a very good reason not to, e.g. miners are clearly abusing
> > the system, we should stick with 1 CPU one vote.
>
> So you're saying that instead of a zero-trust system, we should move
> to a system where miners can decide _everything_ - as opposed to just
> being in charge of ordering transactions? I don't think you understand
> the system at all, if that is what you're proposing.
>
> --
> Pieter
>