Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 95F66B35 for ; Wed, 24 May 2017 16:36:08 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-oi0-f41.google.com (mail-oi0-f41.google.com [209.85.218.41]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 2A4E51E2 for ; Wed, 24 May 2017 16:36:05 +0000 (UTC) Received: by mail-oi0-f41.google.com with SMTP id l18so248633236oig.2 for ; Wed, 24 May 2017 09:36:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=PBblgBABd79RoLirdXA/1QCHfEO7tWH4VbIlfD7i5k0=; b=bEKbV+11ug0H3aBmJI+y426AERNBzOD3dARB8lwg/WHIa2mMsrvEEBmaCx1V28C1uX jW7Qgv1sKOl8DLVcurhGFDLluw1kVPhakKYqR2aG6CoikBNtjGJ2LiWr6LUiPhf4GEhY MLxkn6nwMJYbD7nPSZEtiMq0FTqJFZlIOxs9ywYrKqroQgp3VpPEMGt2GK5yVYWytUrm dGZ73hV9euyCIGKZqmkV1nI2KMLpJZ0JjBrlRZnr9FlunfAmkdno2Pd5k9TCigAp/LQR ZTPWD54/TJq/c28luzuL70B0CCD1UVwGcXthaN+qTmr3Efm0gY9hR22FRA3GkK6uoGLl olZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=PBblgBABd79RoLirdXA/1QCHfEO7tWH4VbIlfD7i5k0=; b=fkCsjIixx/HJ8OhaIuHlhp/P1jJAI7gVdHt4eM5aEEh+kTsN7LmGMw2SCOca7mqnLe EDD4/WvLNmzEDgEyWmq/6y6JzR6O73RbXbGjLwiCtsSWRYVLpqSDQ43Z81GhZgjyC/wQ em9tG8Kar5v1sTa11SCgpRM6iAGeq5Pv0nhoE/sE+BD8LmPKaTFXaDQprmI/F2x67HYk ICSymQ/QsPDdw9c5ge3JbJkIjDAE97GYC7GHB+gRUZ/TJPurTZKKtddeRhWZcpws9s2W PyuPCmIn+oUqR3axwPxLEbtGDTMvUOPm/fBl5z+vaWQaPO4NpROCB/eNBlkK3K+Q0gs5 Udzg== X-Gm-Message-State: AODbwcB/bL3i8/SI4cmOLfLohQ94kUPu/ar3d9rLrGg+BwESByXwdFTx z9h+2wwKMClNy7pLhJ+mwjo4IG7ChA== X-Received: by 10.202.178.214 with SMTP id b205mr15546642oif.147.1495643764325; Wed, 24 May 2017 09:36:04 -0700 (PDT) MIME-Version: 1.0 Received: by 10.182.130.170 with HTTP; Wed, 24 May 2017 09:36:03 -0700 (PDT) In-Reply-To: <4C86CB4F-4ED2-4908-BF5D-6115891DA1D4@gmail.com> References: <4C86CB4F-4ED2-4908-BF5D-6115891DA1D4@gmail.com> From: James Hilliard Date: Wed, 24 May 2017 12:36:03 -0400 Message-ID: To: Wang Chun <1240902@gmail.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM autolearn=no version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Bitcoin Dev Subject: Re: [bitcoin-dev] Reduced signalling threshold activation of existing segwit deployment X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 May 2017 16:36:08 -0000 I would be fine with that, since segwit is widely deployed on the network already a lower activation threshold should be safe. On Wed, May 24, 2017 at 12:02 PM, Wang Chun <1240902@gmail.com> wrote: > I think we should go for 75%, same Litecoin. As I have said before, 95% t= hreshold is too high even for unconventional soft forks. > >> =E5=9C=A8 2017=E5=B9=B45=E6=9C=8824=E6=97=A5=EF=BC=8C04:58=EF=BC=8CAndre= w Chow via bitcoin-dev =E5=86=99=E9= =81=93=EF=BC=9A >> >> Ah. I see now. It wasn't very clear to me that that is what will happen. >> >> Also, shouldn't the timeout date be set for before the BIP141 timeout? >> Otherwise this could lock in but not have enough time for Segwit to be >> locked in. >> >> >>> On 5/23/2017 4:42 PM, James Hilliard wrote: >>> That is incorrect, it is compatible with the current segwit >>> implementation because it triggers a mandatory signalling period that >>> will activate segwit on existing nodes. >>> >>> On Tue, May 23, 2017 at 4:39 PM, Andrew Chow via bitcoin-dev >>> wrote: >>>> Hi James, >>>> >>>> From what I understand, this proposal is incompatible with the current >>>> segwit implementation with regards to the NODE_WITNESS service bit. I >>>> believe it could cause network partitioning if the service bit is not >>>> changed. >>>> >>>> Andrew >>>> >>>> >>>>> On 5/22/2017 6:40 PM, James Hilliard via bitcoin-dev wrote: >>>>> I would like to propose an implementation that accomplishes the first >>>>> part of the Barry Silbert proposal independently from the second: >>>>> >>>>> "Activate Segregated Witness at an 80% threshold, signaling at bit 4" >>>>> in a way that >>>>> >>>>> The goal here is to minimize chain split risk and network disruption >>>>> while maximizing backwards compatibility and still providing for rapi= d >>>>> activation of segwit at the 80% threshold using bit 4. >>>>> >>>>> By activating segwit immediately and separately from any HF we can >>>>> scale quickly without risking a rushed combined segwit+HF that would >>>>> almost certainly cause widespread issues. >>>>> >>>>> Draft proposal: >>>>> https://github.com/jameshilliard/bips/blob/bip-segsignal/bip-segsigna= l.mediawiki >>>>> >>>>> Proposal text: >>>>>
>>>>>  BIP: segsignal
>>>>>  Layer: Consensus (soft fork)
>>>>>  Title: Reduced signalling threshold activation of existing segwit de=
ployment
>>>>>  Author: James Hilliard 
>>>>>  Status: Draft
>>>>>  Type: Standards Track
>>>>>  Created: 2017-05-22
>>>>>  License: BSD-3-Clause
>>>>>           CC0-1.0
>>>>> 
>>>>> >>>>> =3D=3DAbstract=3D=3D >>>>> >>>>> This document specifies a method to activate the existing BIP9 segwit >>>>> deployment with a majority hashpower less than 95%. >>>>> >>>>> =3D=3DDefinitions=3D=3D >>>>> >>>>> "existing segwit deployment" refer to the BIP9 "segwit" deployment >>>>> using bit 1, between November 15th 2016 and November 15th 2017 to >>>>> activate BIP141, BIP143 and BIP147. >>>>> >>>>> =3D=3DMotivation=3D=3D >>>>> >>>>> Segwit increases the blocksize, fixes transaction malleability, and >>>>> makes scripting easier to upgrade as well as bringing many other >>>>> [https://bitcoincore.org/en/2016/01/26/segwit-benefits/ benefits]. >>>>> >>>>> This BIP provides a way for a simple majority of miners to coordinate >>>>> activation of the existing segwit deployment with less than 95% >>>>> hashpower. For a number of reasons a complete redeployment of segwit >>>>> is difficulty to do until the existing deployment expires. This is du= e >>>>> to 0.13.1+ having many segwit related features active already, >>>>> including all the P2P components, the new network service flag, the >>>>> witness-tx and block messages, compact blocks v2 and preferential >>>>> peering. A redeployment of segwit will need to redefine all these >>>>> things and doing so before expiry would greatly complicate testing. >>>>> >>>>> =3D=3DSpecification=3D=3D >>>>> >>>>> While this BIP is active, all blocks must set the nVersion header top >>>>> 3 bits to 001 together with bit field (1<<1) (according to the >>>>> existing segwit deployment). Blocks that do not signal as required >>>>> will be rejected. >>>>> >>>>> =3D=3DDeployment=3D=3D >>>>> >>>>> This BIP will be deployed by a "version bits" with an 80%(this can be >>>>> adjusted if desired) activation threshold BIP9 with the name >>>>> "segsignal" and using bit 4. >>>>> >>>>> This BIP will have a start time of midnight June 1st, 2017 (epoch tim= e >>>>> 1496275200) and timeout on midnight November 15th 2017 (epoch time >>>>> 1510704000). This BIP will cease to be active when segwit is >>>>> locked-in. >>>>> >>>>> =3D=3D=3D Reference implementation =3D=3D=3D >>>>> >>>>>
>>>>> // Check if Segregated Witness is Locked In
>>>>> bool IsWitnessLockedIn(const CBlockIndex* pindexPrev, const
>>>>> Consensus::Params& params)
>>>>> {
>>>>>    LOCK(cs_main);
>>>>>    return (VersionBitsState(pindexPrev, params,
>>>>> Consensus::DEPLOYMENT_SEGWIT, versionbitscache) =3D=3D
>>>>> THRESHOLD_LOCKED_IN);
>>>>> }
>>>>>
>>>>> // SEGSIGNAL mandatory segwit signalling.
>>>>> if ( VersionBitsState(pindex->pprev, chainparams.GetConsensus(),
>>>>> Consensus::DEPLOYMENT_SEGSIGNAL, versionbitscache) =3D=3D THRESHOLD_A=
CTIVE
>>>>> &&
>>>>>     !IsWitnessLockedIn(pindex->pprev, chainparams.GetConsensus()) &&
>>>>> // Segwit is not locked in
>>>>>     !IsWitnessEnabled(pindex->pprev, chainparams.GetConsensus()) ) //
>>>>> and is not active.
>>>>> {
>>>>>    bool fVersionBits =3D (pindex->nVersion & VERSIONBITS_TOP_MASK) =
=3D=3D
>>>>> VERSIONBITS_TOP_BITS;
>>>>>    bool fSegbit =3D (pindex->nVersion &
>>>>> VersionBitsMask(chainparams.GetConsensus(),
>>>>> Consensus::DEPLOYMENT_SEGWIT)) !=3D 0;
>>>>>    if (!(fVersionBits && fSegbit)) {
>>>>>        return state.DoS(0, error("ConnectBlock(): relayed block must
>>>>> signal for segwit, please upgrade"), REJECT_INVALID, "bad-no-segwit")=
;
>>>>>    }
>>>>> }
>>>>> 
>>>>> >>>>> https://github.com/bitcoin/bitcoin/compare/0.14...jameshilliard:segsi= gnal-v0.14.1 >>>>> >>>>> =3D=3DBackwards Compatibility=3D=3D >>>>> >>>>> This deployment is compatible with the existing "segwit" bit 1 >>>>> deployment scheduled between midnight November 15th, 2016 and midnigh= t >>>>> November 15th, 2017. Miners will need to upgrade their nodes to >>>>> support segsignal otherwise they may build on top of an invalid block= . >>>>> While this bip is active users should either upgrade to segsignal or >>>>> wait for additional confirmations when accepting payments. >>>>> >>>>> =3D=3DRationale=3D=3D >>>>> >>>>> Historically we have used IsSuperMajority() to activate soft forks >>>>> such as BIP66 which has a mandatory signalling requirement for miners >>>>> once activated, this ensures that miners are aware of new rules being >>>>> enforced. This technique can be leveraged to lower the signalling >>>>> threshold of a soft fork while it is in the process of being deployed >>>>> in a backwards compatible way. >>>>> >>>>> By orphaning non-signalling blocks during the BIP9 bit 1 "segwit" >>>>> deployment, this BIP can cause the existing "segwit" deployment to >>>>> activate without needing to release a new deployment. >>>>> >>>>> =3D=3DReferences=3D=3D >>>>> >>>>> *[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-March/= 013714.html >>>>> Mailing list discussion] >>>>> *[https://github.com/bitcoin/bitcoin/blob/v0.6.0/src/main.cpp#L1281-L= 1283 >>>>> P2SH flag day activation] >>>>> *[[bip-0009.mediawiki|BIP9 Version bits with timeout and delay]] >>>>> *[[bip-0016.mediawiki|BIP16 Pay to Script Hash]] >>>>> *[[bip-0141.mediawiki|BIP141 Segregated Witness (Consensus layer)]] >>>>> *[[bip-0143.mediawiki|BIP143 Transaction Signature Verification for >>>>> Version 0 Witness Program]] >>>>> *[[bip-0147.mediawiki|BIP147 Dealing with dummy stack element malleab= ility]] >>>>> *[[bip-0148.mediawiki|BIP148 Mandatory activation of segwit deploymen= t]] >>>>> *[[bip-0149.mediawiki|BIP149 Segregated Witness (second deployment)]] >>>>> *[https://bitcoincore.org/en/2016/01/26/segwit-benefits/ Segwit benef= its] >>>>> >>>>> =3D=3DCopyright=3D=3D >>>>> >>>>> This document is dual licensed as BSD 3-clause, and Creative Commons >>>>> CC0 1.0 Universal. >>>>> _______________________________________________ >>>>> bitcoin-dev mailing list >>>>> bitcoin-dev@lists.linuxfoundation.org >>>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev >>>> _______________________________________________ >>>> bitcoin-dev mailing list >>>> bitcoin-dev@lists.linuxfoundation.org >>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev >> >> _______________________________________________ >> bitcoin-dev mailing list >> bitcoin-dev@lists.linuxfoundation.org >> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev