From: Jonathan Toomim <j@toom.im>
To: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] Increasing the blocksize as a (generalized) softfork.
Date: Wed, 30 Dec 2015 15:49:35 -0800 [thread overview]
Message-ID: <16BFC301-58C1-49F9-B2E5-A2C09C82A8CA@toom.im> (raw)
In-Reply-To: <20151230190043.GJ18200@mcelrath.org>
[-- Attachment #1: Type: text/plain, Size: 3064 bytes --]
On Dec 30, 2015, at 11:00 AM, Bob McElrath via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote:
> joe2015--- via bitcoin-dev [bitcoin-dev@lists.linuxfoundation.org] wrote:
>> That's the whole point. After a conventional hardfork everyone
>> needs to upgrade, but there is no way to force users to upgrade. A
>> user who is simply unaware of the fork, or disagrees with the fork,
>> uses the old client and the currency splits.
>>
>> Under this proposal old clients effectively enter "zombie" mode,
>> forcing users to upgrade.
>
> This is a very complex way to enter zombie mode.
Another way you could make non-upgraded nodes enter zombie mode is to explicitly 51% attack the minority fork.
All soft forks are controlled, coordinated, developer-sanctioned 51% attacks against nodes that do not upgrade. The generalized softfork technique is a method of performing a soft fork that completely eliminates any usefulness to non-upgraded nodes while merge-mining another block structure to provide functionality to the nodes who have upgraded and know where to look for the new data.
Soft forks are "safe" forks because you can trust the miners to censor blocks and transactions that do not conform to the new consensus rules. Since we've been relying on the trustworthiness of miners during soft forks in the past (and it only failed us once!), why not
The generalized softfork method has the advantage of being merge-mined, so miners don't have to lose any revenue while performing this 51% attack against non-upgraded nodes. But then you're stuck with all of your transactions in a merge-mined/commitment-based data structure, which is a bit awkward and ugly. But you could avoid all of that code ugliness by just convincing the miners to donate some hashrate (say, 5.1% if the IsSupermajority threshold is 95%, or you could make it dynamic to save some money) to ensuring that the minority fork never has any transactions in the chain. That way, you can replace the everlasting code ugliness with a little bit of temporary sociopolitical ugliness. Fortunately, angry people are easier to ignore than ugly code. /s
Maybe we could call this a softly enforced hard fork? It's basically a combined hard fork for the supermajority and a soft fork to make the minority chain useless.
I don't personally think that these 51% attacks are useful or necessary. This is one of the main reasons why I don't like soft forks. I find them distasteful, and think that leaving minorities free to practice their own religions and blockchain rules is a good thing. But I could see how this could address some of the objections that others have raised about the dangers of hardforks, so I'm putting it out there.
> Once a chain is seen to be 6 or more blocks ahead of my chain tip, we should
> enter "zombie mode" and refuse to mine or relay
I like this method. However, it does have the problem of being voluntary. If nodes don't upgrade to a version that has the latent zombie gene long before a fork, then it does nothing.
[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 496 bytes --]
next prev parent reply other threads:[~2015-12-30 23:48 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-20 10:56 [bitcoin-dev] Increasing the blocksize as a (generalized) softfork joe2015
2015-12-20 15:22 ` joe2015
2015-12-20 15:50 ` Tier Nolan
2015-12-20 18:17 ` Bryan Bishop
2015-12-21 3:04 ` joe2015
2015-12-21 4:23 ` jl2012
2015-12-21 4:41 ` joe2015
2015-12-30 19:00 ` Bob McElrath
2015-12-30 23:49 ` Jonathan Toomim [this message]
2015-12-30 23:56 ` Jonathan Toomim
2015-12-31 0:04 ` Bob McElrath
2015-12-31 4:39 ` joe2015
2015-12-31 10:39 ` David Chan
2015-12-31 11:32 ` joe2015
2016-01-04 21:53 ` Luke Dashjr
2015-12-20 17:21 joe2015
2015-12-21 3:39 ` Jeff Garzik
2015-12-21 3:58 ` joe2015
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=16BFC301-58C1-49F9-B2E5-A2C09C82A8CA@toom.im \
--to=j@toom.im \
--cc=bitcoin-dev@lists.linuxfoundation.org \
/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