Return-Path: <samson.mow@gmail.com> Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id AF6A3B61 for <bitcoin-dev@lists.linuxfoundation.org>; Sat, 1 Apr 2017 03:03:36 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-ua0-f169.google.com (mail-ua0-f169.google.com [209.85.217.169]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 7CFD2E3 for <bitcoin-dev@lists.linuxfoundation.org>; Sat, 1 Apr 2017 03:03:34 +0000 (UTC) Received: by mail-ua0-f169.google.com with SMTP id 9so4600773uau.1 for <bitcoin-dev@lists.linuxfoundation.org>; Fri, 31 Mar 2017 20:03:34 -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; bh=LKlMszlwGEjTpKwuTiP8eNfdu46eebohRISitvmmDvM=; b=biPkF3LE//gjyKlBPHGUnon48J9+Av+pIPxD8NzXNHZOKAt1I2BxwkE5JAn0iArLJn OxJV95EB2oHfMNSuG/OdAgdMInKqhFirb/mpaL2KmeFooJmkUNjUdCUkw2KvMQhwFNbq 9DXpNuStQW+6Zc2mk3mG6QeW+TikLRGAwqYjC2nAE8YenSIXkvTLgGC7DBXjXZAPosDo cbiqx22Wlo1MEnsc6TCBZ1l/uG3NEmh3T2Qbj66JtfbqP+zZZF64cxZ9xnLir2KMqO9B yYhbr4d8OfL0TPWvXrJAzXdiVBkt6vRfoi1fzHv18QZtaRkWMYavL+74PmwMwv0aBPKy Sa2A== 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; bh=LKlMszlwGEjTpKwuTiP8eNfdu46eebohRISitvmmDvM=; b=fwPl81gEwyAFNgEUGlCdXWFhL2br+ACP0rRy0ITYzIphXYVWNNK9NXvgrDL/+H6zsW y1TVal6epGPtAI/w10sxvet7LCO8JveU2qyG3ubOV5IHjMP9KdgsTI4oEK0KQagJgHWp fXcL/8syvB4nq1LEa2ff50UWjfb46uEluSG0Lhiz0m0v1rrgJz/PZAc/+om4B1jLKd2i uRr+msbcIOPz7Gf20qVC7azp5tfrt/JDTkqMm5ZAnLQlDLLNkaZnGNDmXPZnfZsn1RyU fn4oQEl5nWRvmFLojthdaEkUonOUDbQz/jFarYptUWZkurbfrEFOqk+xLValiVlEuUcy uJDg== X-Gm-Message-State: AFeK/H24G8fOusDyDkiRtxBAdF5kUDge4cc5Q5q2QZWPkPYhbrLZcKRayUM6n1K9TOKqtRrmNFNbCS+aTRfKfw== X-Received: by 10.176.69.161 with SMTP id u30mr2877489uau.69.1491015813453; Fri, 31 Mar 2017 20:03:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.70.210 with HTTP; Fri, 31 Mar 2017 20:03:03 -0700 (PDT) In-Reply-To: <CAKzdR-o0_CK1RPDKSV869Tk5JCo9KOmEoAyXYRAOphu00K8KkQ@mail.gmail.com> References: <CAKzdR-oN6tGvGSb04_awCf=Jsf3wgKJN5xUhCr8G2D2W9YgJww@mail.gmail.com> <1CF1FD5D-8D29-4783-823F-B3F588D5C5CE@mattcorallo.com> <CAKzdR-o0_CK1RPDKSV869Tk5JCo9KOmEoAyXYRAOphu00K8KkQ@mail.gmail.com> From: Samson Mow <samson.mow@gmail.com> Date: Fri, 31 Mar 2017 20:03:03 -0700 Message-ID: <CAAWeQ5ebqmmGcYHtoizKa6FXYyvyPSBM09kpzeGOEqJj4=ERZg@mail.gmail.com> To: Sergio Demian Lerner <sergio.d.lerner@gmail.com>, Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org> Content-Type: multipart/alternative; boundary=94eb2c11c960ea5e36054c122b59 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Sat, 01 Apr 2017 03:11:54 +0000 Subject: Re: [bitcoin-dev] Segwit2Mb - combined soft/hard fork - Request For Comments X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org> List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>, <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe> List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/> List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org> List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help> List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>, <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe> X-List-Received-Date: Sat, 01 Apr 2017 03:03:36 -0000 --94eb2c11c960ea5e36054c122b59 Content-Type: text/plain; charset=UTF-8 A compromise for the sake of compromise doesn't merit technical discussions. There are no benefits to be gained from a 2MB hard-fork at this time and it would impose an unnecessary cost to the ecosystem for testing and implementation. On Fri, Mar 31, 2017 at 3:13 PM, Sergio Demian Lerner via bitcoin-dev < bitcoin-dev@lists.linuxfoundation.org> wrote: > > > On Fri, Mar 31, 2017 at 6:22 PM, Matt Corallo <lf-lists@mattcorallo.com> > wrote: > >> Hey Sergio, >> >> You appear to have ignored the last two years of Bitcoin hardfork >> research and understanding, recycling instead BIP 102 from 2015. There >> are many proposals which have pushed the state of hard fork research >> much further since then, and you may wish to read some of the posts on >> this mailing list listed at https://bitcoinhardforkresearch.github.io/ >> and make further edits based on what you learn. > > > I've read every proposal that was published in the last two years and the > choice for NOT implementing any of the super cool research you cite is > intentional. > > We're in a deadlock and it seems we can't go forward adding more > functionality to segwit without the community approval (which include > miners). This is obvious to me.Then we have to go back. > > If this last resort solution is merged, we could go back to discuss > improvements with the > > Your goal of "avoid >> technical changes" appears to not have any basis outside of perceived >> compromise for compromise sake, only making such a hardfork riskier >> instead. >> >> You're are totally correct. It's a compromise for the compromise sake. I > couldn't have expressed it more clearly. However the only "riskier" element > is the hard forking date. We can move the date forward. > > >> At a minimum, in terms of pure technical changes, you should probably >> consider (probably among others): >> > a) Utilizing the "hard fork signaling bit" in the nVersion of the block. >> > > This I could consider, as it requires probably a single line of code. > Which BIP specifies this? > > >> b) Either limiting non-SegWit transactions in some way to fix the n**2 >> sighash and FindAndDelete runtime and memory usage issues or fix them by >> utilizing the new sighash type which many wallets and projects have >> already implemented for SegWit in the spending of non-SegWit outputs. >> > > The Seghash problem has already been addressed by limiting the maximum > size of a transaction to 1 Mb. > The FindAndDelete problem has already been solved by the Core Developers, > so we don't have to worry about it anymore. > > >> c) Your really should have replay protection in any HF. > > > We could add a simple protection, although if we reach community consensus > and 95% of hashing power, does we really need to? Can the old chain still > be alive? > If more people ask for replay protection, I will merge Spoonet scheme or > develop the minimum possible replay protection (a simple signaling bit in > transaction version) > > >> d) You may wish to consider the possibility of tweaking the witness >> discount and possibly discounting other parts of the input - SegWit went >> a long ways towards making removal of elements from the UTXO set cheaper >> than adding them, but didn't quite get there, you should probably finish >> that job. This also provides additional tuneable parameters to allow you >> to increase the block size while not having a blowup in the worst-case >> block size. >> > > That is an interesting economic change and would be out of the scope of > segwit2mb. > > >> e) Additional commitments at the top of the merkle root - both for >> SegWit transactions and as additional space for merged mining and other >> commitments which we may wish to add in the future, this should likely >> be implemented an "additional header" ala Johnson Lau's Spoonnet proposal. >> >> That is an interesting technical improvement that is out of the scope of > segwit2mb. > We can keep discussing spoonet while we merge segwit2mb, as spoonnet > includes most of technical innovations. > > >> Additionally, I think your parameters here pose very significant risk to >> the Bitcoin ecosystem broadly. >> >> a) Activating a hard fork with less than 18/24 months (and even then...) >> from a fully-audited and supported release of full node software to >> activation date poses significant risks to many large software projects >> and users. I've repeatedly received feedback from various folks that a >> year or more is likely required in any hard fork to limit this risk, and >> limited pushback on that given the large increase which SegWit provides >> itself buying a ton of time. >> >> The feedback I received is slightly different from your feedback. Many > company CTOs have expressed that one year for a Bitcoin hard-fork was > period they could schedule a secure upgrade. > > > >> b) Having a significant discontinuity in block size increase only serves >> to confuse and mislead users and businesses, forcing them to rapidly >> adapt to a Bitcoin which changed overnight both by hardforking, and by >> fees changing suddenly. Instead, having the hard fork activate technical >> changes, and then slowly increasing the block size over the following >> several years keeps things nice and continuous and also keeps us from >> having to revisit ye old blocksize debate again six months after >> activation. >> >> This is something worth considering. There is the old Pieter BIP103 > proposal has good parameters (17.7% per year). > > c) You should likely consider the effect of the many technological >> innovations coming down the pipe in the coming months. Technologies like >> Lightning, TumbleBit, and even your own RootStock could significantly >> reduce fee pressure as transactions move to much faster and more >> featureful systems. >> >> RSK sidechain team would have to take very tough decisions if Bitcoin > splits, as RSK platform cannot be pegged to two different cryptocurrencies. > We could launch two platforms, but RSK value proposition is "supporting the > advance of Bitcoin, the cryptocurrecy with highest network effect". You > understand that if Bitcoin splits Bitcoin BTC/BTU separately may cease to > be the cryptocurrencies with higher volume/market cap/network effect. > > Therefore all RSK people that I talked too would prefer to avoid a split > at all cost, reather that to be the winners of the scaling war. > > > >> On March 31, 2017 5:09:18 PM EDT, Sergio Demian Lerner via bitcoin-dev < >> bitcoin-dev@lists.linuxfoundation.org> wrote: >> >Hi everyone, >> > >> >Segwit2Mb is the project to merge into Bitcoin a minimal patch that >> >aims to >> >untangle the current conflict between different political positions >> >regarding segwit activation vs. an increase of the on-chain blockchain >> >space through a standard block size increase. It is not a new solution, >> >but >> >it should be seen more as a least common denominator. >> > >> >Segwit2Mb combines segwit as it is today in Bitcoin 0.14+ with a 2MB >> >block >> >size hard-fork activated ONLY if segwit activates (95% of miners >> >signaling), but at a fixed future date. >> > >> >The sole objective of this proposal is to re-unite the Bitcoin >> >community >> >and avoid a cryptocurrency split. Segwit2Mb does not aim to be best >> >possible technical solution to solve Bitcoin technical limitations. >> >However, this proposal does not imply a compromise to the future >> >scalability or decentralization of Bitcoin, as a small increase in >> >block >> >size has been proven by several core and non-core developers not to >> >affect >> >Bitcoin value propositions. >> > >> >In the worst case, a 2X block size increase has much lower economic >> >impact >> >than the last bitcoin halving (<10%), which succeeded without problem. >> > >> >On the other side, Segwit2Mb primary goal is to be minimalistic: in >> >this >> >patch some choices have been made to reduce the number of lines >> >modified in >> >the current Bitcoin Core state (master branch), instead of implementing >> >the >> >most elegant solution. This is because I want to reduce the time it >> >takes >> >for core programmers and reviewers to check the correctness of the >> >code, >> >and to report and correct bugs. >> > >> >The patch was built by forking the master branch of Bitcoin Core, >> >mixing a >> >few lines of code from Jeff Garzik's BIP102, and defining a second >> >versionbits activation bit (bit 2) for the combined activation. >> > >> >The combined activation of segwit and 2Mb hard-fork nVersion bit is 2 >> >(DEPLOYMENT_SEGWIT_AND_2MB_BLOCKS). >> > >> >This means that segwit can still be activated without the 2MB hard-fork >> >by >> >signaling bit 1 in nVersion (DEPLOYMENT_SEGWIT). >> > >> >The tentative lock-in and hard-fork dates are the following: >> > >> >Bit 2 signaling StartTime = 1493424000; // April 29th, 2017 >> > >> >Bit 2 signaling Timeout = 1503964800; // August 29th, 2017 >> > >> >HardForkTime = 1513209600; // Thu, 14 Dec 2017 00:00:00 GMT >> > >> > >> >The hard-fork is conditional to 95% of the hashing power has approved >> >the >> >segwit2mb soft-fork and the segwit soft-fork has been activated (which >> >should occur 2016 blocks after its lock-in time) >> > >> >For more information on how soft-forks are signaled and activated, see >> >https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki >> > >> >This means that segwit would be activated before 2Mb: this is >> >inevitable, >> >as versionbits have been designed to have fixed activation periods and >> >thresholds for all bits. Making segwit and 2Mb fork activate together >> >at a >> >delayed date would have required a major re-write of this code, which >> >would >> >contradict the premise of creating a minimalistic patch. However, once >> >segwit is activated, the hard-fork is unavoidable. >> > >> >Although I have coded a first version of the segwit2mb patch (which >> >modifies 120 lines of code, and adds 220 lines of testing code), I >> >would >> >prefer to wait to publish the source code until more comments have been >> >received from the community. >> > >> >To prevent worsening block verification time because of the O(N^2) >> >hashing >> >problem, the simple restriction that transactions cannot be larger than >> >1Mb >> >has been kept. Therefore the worse-case of block verification time has >> >only >> >doubled. >> > >> >Regarding the hard-fork activation date, I want to give enough time to >> >all >> >active economic nodes to upgrade. As of Fri Mar 31 2017, >> >https://bitnodes.21.co/nodes/ reports that 6332 out of 6955 nodes (91%) >> >have upgraded to post 0.12 versions. Upgrade to post 0.12 versions can >> >be >> >used to identify economic active nodes, because in the 0.12 release >> >dynamic >> >fees were introduced, and currently no Bitcoin automatic payment system >> >can >> >operate without automatic discovery of the current fee rate. A pre-0.12 >> >would require constant manual intervention. >> >Therefore I conclude that no more than 91% of the network nodes >> >reported by >> >bitnodes are active economic nodes. >> > >> >As Bitcoin Core 0.12 was released on February 2016, the time for this >> >91% >> >to upgrade has been around one year (under a moderate pressure of >> >operational problems with unconfirmed transactions). >> >Therefore we can expect a similar or lower time to upgrade for a >> >hard-fork, >> >after developers have discussed and approved the patch, and it has been >> >reviewed and merged and 95% of the hashing power has signaled for it >> >(the >> >pressure not to upgrade being a complete halt of the operations). >> >However I >> >suggest that we discuss the hard-fork date and delay it if there is a >> >real >> >need to. >> > >> >Currently time works against the Bitcoin community, and so is delaying >> >a >> >compromise solution. Most of the community agree that halting the >> >innovation for several years is a very bad option. >> > >> >After the comments collected by the community, a BIP will be written >> >describing the resulting proposal details. >> > >> >If segwit2mb locks-in, before hard-fork occurs all bitcoin nodes should >> >be >> >updated to a Segwit2Mb enabled node to prevent them to be forked-away >> >in a >> >chain with almost no hashing-power. >> > >> >The proof of concept patch was made for Bitcoin Core but should be >> >easily >> >ported to other Bitcoin protocol implementations that already support >> >versionbits. Lightweight (SPV) wallets should not be affected as they >> >generally do not check the block size. >> > >> >I personally want to see the Lightning Network in action this year, use >> >the >> >non-malleability features in segwit, see the community discussing other >> >exciting soft-forks in the scaling roadmap, Schnorr sigs, drivechains >> >and >> >MAST. >> > >> >I want to see miners, developers and industry side-by-side pushing >> >Bitcoin >> >forward, to increase the value of Bitcoin and prevent high transaction >> >fees >> >to put out of business use-cases that could have high positive social >> >impact. >> > >> >I believe in the strength of a unified Bitcoin community. If you're a >> >developer, please give your opinion, suggest changes, audit it, and >> >take a >> >stand with me to unlock the current Bitcoin deadlock. >> > >> >Contributions to the segwit2mb project are welcomed and awaited. The >> >only >> >limitation is to stick to the principle that the patch should be as >> >simple >> >to audit as possible. As an example, I wouldn't feel confident if the >> >patch >> >modified more than ~150 lines of code. >> > >> >Improvements unrelated to a 2 Mb increase or segwit, as beneficial as >> >it >> >may be to Bitcoin, should not be part of segwit2Mb. >> > >> >This proposal should not prevent other consensus proposals to be >> >simultaneously merged: segwit2mb is a last resort solution in case we >> >can >> >not reach consensus on anything better. >> > >> >Again, the proposal is only a starting point: community feedback is >> >expected and welcomed. >> > >> >Regards, >> >Sergio Demian Lerner >> > > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > > --94eb2c11c960ea5e36054c122b59 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">A compromise for the sake of compromise doesn't merit = technical discussions. There are no benefits to be gained from a 2MB hard-f= ork at this time and it would impose an unnecessary cost to the ecosystem f= or testing and implementation.</div><div class=3D"gmail_extra"><br><div cla= ss=3D"gmail_quote">On Fri, Mar 31, 2017 at 3:13 PM, Sergio Demian Lerner vi= a bitcoin-dev <span dir=3D"ltr"><<a href=3D"mailto:bitcoin-dev@lists.lin= uxfoundation.org" target=3D"_blank">bitcoin-dev@lists.linuxfoundation.org</= a>></span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0= 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><br= ><div class=3D"gmail_extra"><br><div class=3D"gmail_quote"><span class=3D""= >On Fri, Mar 31, 2017 at 6:22 PM, Matt Corallo <span dir=3D"ltr"><<a hre= f=3D"mailto:lf-lists@mattcorallo.com" target=3D"_blank">lf-lists@mattcorall= o.com</a>></span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"m= argin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left= :1ex">Hey Sergio,<br> <br> You appear to have ignored the last two years of Bitcoin hardfork<br> research and understanding, recycling instead BIP 102 from 2015. There<br> are many proposals which have pushed the state of hard fork research<br> much further since then, and you may wish to read some of the posts on<br> this mailing list listed at <a href=3D"https://bitcoinhardforkresearch.gith= ub.io/" rel=3D"noreferrer" target=3D"_blank">https://bitcoinhardforkresearc= <wbr>h.github.io/</a><br> and make further edits based on what you learn. </blockquote><div><br></div= ></span><div>I've read every proposal that was published in the last tw= o years and the choice for NOT implementing any of the super cool research = you cite is intentional.</div><div><br></div><div>We're in a deadlock a= nd it seems we can't go forward adding more functionality to segwit wit= hout the community approval (which include miners). This is obvious to me.T= hen we have to go back.=C2=A0</div><div>=C2=A0</div><div>If this last resor= t solution is merged, we could go back to discuss improvements with the=C2= =A0</div><span class=3D""><div><br></div><blockquote class=3D"gmail_quote" = style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pa= dding-left:1ex">Your goal of "avoid<br> technical changes" appears to not have any basis outside of perceived<= br> compromise for compromise sake, only making such a hardfork riskier<br> instead.<br> <br></blockquote></span><div>You're are totally correct. It's a com= promise for the compromise sake. I couldn't have expressed it more clea= rly. However the only "riskier" element is the hard forking date.= We can move the date forward.</div><span class=3D""><div>=C2=A0</div><bloc= kquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:= 1px solid rgb(204,204,204);padding-left:1ex"> At a minimum, in terms of pure technical changes, you should probably<br> consider (probably among others):=C2=A0<br></blockquote><blockquote class= =3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg= b(204,204,204);padding-left:1ex"> a) Utilizing the "hard fork signaling bit" in the nVersion of the= block.<br></blockquote><div><br></div></span><div>This I could consider, a= s it requires probably a single line of code. Which BIP specifies this?</di= v><span class=3D""><div>=C2=A0</div><blockquote class=3D"gmail_quote" style= =3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding= -left:1ex"> b) Either limiting non-SegWit transactions in some way to fix the n**2<br> sighash and FindAndDelete runtime and memory usage issues or fix them by<br= > utilizing the new sighash type which many wallets and projects have<br> already implemented for SegWit in the spending of non-SegWit outputs.<br></= blockquote><div><br></div></span><div>The Seghash problem has already been = addressed by limiting the maximum size of a transaction to 1 Mb.</div><div>= The FindAndDelete problem has already been solved by the Core Developers, s= o we don't have to worry about it anymore.</div><span class=3D""><div>= =C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0= .8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> c) Your really should have replay protection in any HF. </blockquote><div><= br></div></span><div>We could add a simple protection, although if we reach= community consensus and 95% of hashing power, does we really need to? Can = the old chain still be alive?</div><div>If more people ask for replay prote= ction, I will merge Spoonet scheme or develop the minimum possible replay p= rotection (a simple signaling bit in transaction version)=C2=A0</div><span = class=3D""><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"marg= in:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1e= x"> d) You may wish to consider the possibility of tweaking the witness<br> discount and possibly discounting other parts of the input - SegWit went<br= > a long ways towards making removal of elements from the UTXO set cheaper<br= > than adding them, but didn't quite get there, you should probably finis= h<br> that job. This also provides additional tuneable parameters to allow you<br= > to increase the block size while not having a blowup in the worst-case<br> block size.<br></blockquote><div><br></div></span><div>That is an interesti= ng economic change and would be out of the scope of segwit2mb.</div><span c= lass=3D""><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margi= n:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex= "> e) Additional commitments at the top of the merkle root - both for<br> SegWit transactions and as additional space for merged mining and other<br> commitments which we may wish to add in the future, this should likely<br> be implemented an "additional header" ala Johnson Lau's Spoon= net proposal.<br> <br></blockquote></span><div>That is an interesting technical improvement t= hat is out of the scope of segwit2mb.</div><div>We can keep discussing spoo= net while we merge segwit2mb, as spoonnet includes most of technical innova= tions.</div><span class=3D""><div>=C2=A0=C2=A0=C2=A0</div><blockquote class= =3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg= b(204,204,204);padding-left:1ex"> Additionally, I think your parameters here pose very significant risk to<br= > the Bitcoin ecosystem broadly.<br> <br> a) Activating a hard fork with less than 18/24 months (and even then...)<br= > from a fully-audited and supported release of full node software to<br> activation date poses significant risks to many large software projects<br> and users. I've repeatedly received feedback from various folks that a<= br> year or more is likely required in any hard fork to limit this risk, and<br= > limited pushback on that given the large increase which SegWit provides<br> itself buying a ton of time.<br> <br></blockquote></span><div>The feedback I received is slightly different = from your feedback. Many company CTOs have expressed that one year for a Bi= tcoin hard-fork was period they could schedule a secure upgrade.</div><span= class=3D""><div><br></div><div>=C2=A0<br></div><blockquote class=3D"gmail_= quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,= 204);padding-left:1ex"> b) Having a significant discontinuity in block size increase only serves<br= > to confuse and mislead users and businesses, forcing them to rapidly<br> adapt to a Bitcoin which changed overnight both by hardforking, and by<br> fees changing suddenly. Instead, having the hard fork activate technical<br= > changes, and then slowly increasing the block size over the following<br> several years keeps things nice and continuous and also keeps us from<br> having to revisit ye old blocksize debate again six months after activation= .<br> <br></blockquote></span><div>This is something worth considering. There is = the old Pieter BIP103 proposal has good parameters=C2=A0(17.7% per year).</= div><span class=3D""><div><br></div><blockquote class=3D"gmail_quote" style= =3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding= -left:1ex"> c) You should likely consider the effect of the many technological<br> innovations coming down the pipe in the coming months. Technologies like<br= > Lightning, TumbleBit, and even your own RootStock could significantly<br> reduce fee pressure as transactions move to much faster and more<br> featureful systems.<br> <br></blockquote></span><div>RSK sidechain team would have to take very tou= gh decisions if Bitcoin splits, as RSK platform cannot be pegged to two dif= ferent cryptocurrencies. We could launch two platforms, but RSK value propo= sition is "supporting the advance of Bitcoin, the cryptocurrecy with h= ighest network effect". You understand that if Bitcoin splits Bitcoin = BTC/BTU separately may cease to be the cryptocurrencies with higher volume/= market cap/network effect.</div><div><br></div><div>Therefore all RSK peopl= e that I talked too would prefer to avoid a split at all cost, reather that= to be the winners of the scaling war. =C2=A0</div><div><div class=3D"h5"><= div>=C2=A0</div><div><br></div><blockquote class=3D"gmail_quote" style=3D"m= argin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left= :1ex"><div class=3D"m_-2847113005308011554gmail-HOEnZb"><div class=3D"m_-28= 47113005308011554gmail-h5"> <br> On March 31, 2017 5:09:18 PM EDT, Sergio Demian Lerner via bitcoin-dev <= <a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">= bitcoin-dev@lists.linuxfounda<wbr>tion.org</a>> wrote:<br> >Hi everyone,<br> ><br> >Segwit2Mb is the project to merge into Bitcoin a minimal patch that<br> >aims to<br> >untangle the current conflict between different political positions<br> >regarding segwit activation vs. an increase of the on-chain blockchain<= br> >space through a standard block size increase. It is not a new solution,= <br> >but<br> >it should be seen more as a least common denominator.<br> ><br> >Segwit2Mb combines segwit as it is today in Bitcoin 0.14+ with a 2MB<br= > >block<br> >size hard-fork activated ONLY if segwit activates (95% of miners<br> >signaling), but at a fixed future date.<br> ><br> >The sole objective of this proposal is to re-unite the Bitcoin<br> >community<br> >and avoid a cryptocurrency split. Segwit2Mb does not aim to be best<br> >possible technical solution to solve Bitcoin technical limitations.<br> >However, this proposal does not imply a compromise to the future<br> >scalability or decentralization of Bitcoin, as a small increase in<br> >block<br> >size has been proven by several core and non-core developers not to<br> >affect<br> >Bitcoin value propositions.<br> ><br> >In the worst case, a 2X block size increase has much lower economic<br> >impact<br> >than the last bitcoin halving (<10%), which succeeded without proble= m.<br> ><br> >On the other side, Segwit2Mb primary goal is to be minimalistic: in<br> >this<br> >patch some choices have been made to reduce the number of lines<br> >modified in<br> >the current Bitcoin Core state (master branch), instead of implementing= <br> >the<br> >most elegant solution. This is because I want to reduce the time it<br> >takes<br> >for core programmers and reviewers to check the correctness of the<br> >code,<br> >and to report and correct bugs.<br> ><br> >The patch was built by forking the master branch of Bitcoin Core,<br> >mixing a<br> >few lines of code from Jeff Garzik's BIP102,=C2=A0 and defining a s= econd<br> >versionbits activation bit (bit 2) for the combined activation.<br> ><br> >The combined activation of segwit and 2Mb hard-fork nVersion bit is 2<b= r> >(DEPLOYMENT_SEGWIT_AND_2MB_BL<wbr>OCKS).<br> ><br> >This means that segwit can still be activated without the 2MB hard-fork= <br> >by<br> >signaling bit 1 in nVersion=C2=A0 (DEPLOYMENT_SEGWIT).<br> ><br> >The tentative lock-in and hard-fork dates are the following:<br> ><br> >Bit 2 signaling StartTime =3D 1493424000; // April 29th, 2017<br> ><br> >Bit 2 signaling Timeout =3D 1503964800; // August 29th, 2017<br> ><br> >HardForkTime =3D 1513209600; // Thu, 14 Dec 2017 00:00:00 GMT<br> ><br> ><br> >The hard-fork is conditional to 95% of the hashing power has approved<b= r> >the<br> >segwit2mb soft-fork and the segwit soft-fork has been activated (which<= br> >should occur 2016 blocks after its lock-in time)<br> ><br> >For more information on how soft-forks are signaled and activated, see<= br> ><a href=3D"https://github.com/bitcoin/bips/blob/master/bip-0009.mediawi= ki" rel=3D"noreferrer" target=3D"_blank">https://github.com/bitcoin/bi<wbr>= ps/blob/master/bip-0009.mediaw<wbr>iki</a><br> ><br> >This means that segwit would be activated before 2Mb: this is<br> >inevitable,<br> >as versionbits have been designed to have fixed activation periods and<= br> >thresholds for all bits. Making segwit and 2Mb fork activate together<b= r> >at a<br> >delayed date would have required a major re-write of this code, which<b= r> >would<br> >contradict the premise of creating a minimalistic patch. However, once<= br> >segwit is activated, the hard-fork is unavoidable.<br> ><br> >Although I have coded a first version of the segwit2mb patch (which<br> >modifies 120 lines of code, and adds 220 lines of testing code), I<br> >would<br> >prefer to wait to publish the source code until more comments have been= <br> >received from the community.<br> ><br> >To prevent worsening block verification time because of the O(N^2)<br> >hashing<br> >problem, the simple restriction that transactions cannot be larger than= <br> >1Mb<br> >has been kept. Therefore the worse-case of block verification time has<= br> >only<br> >doubled.<br> ><br> >Regarding the hard-fork activation date, I want to give enough time to<= br> >all<br> >active economic nodes to upgrade. As of Fri Mar 31 2017,<br> ><a href=3D"https://bitnodes.21.co/nodes/" rel=3D"noreferrer" target=3D"= _blank">https://bitnodes.21.co/nodes/</a> reports that 6332 out of 6955 nod= es (91%)<br> >have upgraded to post 0.12 versions. Upgrade to post 0.12 versions can<= br> >be<br> >used to identify economic active nodes, because in the 0.12 release<br> >dynamic<br> >fees were introduced, and currently no Bitcoin automatic payment system= <br> >can<br> >operate without automatic discovery of the current fee rate. A pre-0.12= <br> >would require constant manual intervention.<br> >Therefore I conclude that no more than 91% of the network nodes<br> >reported by<br> >bitnodes are active economic nodes.<br> ><br> >As Bitcoin Core 0.12 was released on February 2016, the time for this<b= r> >91%<br> >to upgrade has been around one year (under a moderate pressure of<br> >operational problems with unconfirmed transactions).<br> >Therefore we can expect a similar or lower time to upgrade for a<br> >hard-fork,<br> >after developers have discussed and approved the patch, and it has been= <br> >reviewed and merged and 95% of the hashing power has signaled for it<br= > >(the<br> >pressure not to upgrade being a complete halt of the operations).<br> >However I<br> >suggest that we discuss the hard-fork date and delay it if there is a<b= r> >real<br> >need to.<br> ><br> >Currently time works against the Bitcoin community, and so is delaying<= br> >a<br> >compromise solution. Most of the community agree that halting the<br> >innovation for several years is a very bad option.<br> ><br> >After the comments collected by the community, a BIP will be written<br= > >describing the resulting proposal details.<br> ><br> >If segwit2mb locks-in, before hard-fork occurs all bitcoin nodes should= <br> >be<br> >updated to a Segwit2Mb enabled node to prevent them to be forked-away<b= r> >in a<br> >chain with almost no hashing-power.<br> ><br> >The proof of concept patch was made for Bitcoin Core but should be<br> >easily<br> >ported to other Bitcoin protocol implementations that already support<b= r> >versionbits. Lightweight (SPV) wallets should not be affected as they<b= r> >generally do not check the block size.<br> ><br> >I personally want to see the Lightning Network in action this year, use= <br> >the<br> >non-malleability features in segwit, see the community discussing other= <br> >exciting soft-forks in the scaling roadmap, Schnorr sigs, drivechains<b= r> >and<br> >MAST.<br> ><br> >I want to see miners, developers and industry side-by-side pushing<br> >Bitcoin<br> >forward, to increase the value of Bitcoin and prevent high transaction<= br> >fees<br> >to put out of business use-cases that could have high positive social<b= r> >impact.<br> ><br> >I believe in the strength of a unified Bitcoin community. If you're= a<br> >developer, please give your opinion, suggest changes, audit it, and<br> >take a<br> >stand with me to unlock the current Bitcoin deadlock.<br> ><br> >Contributions to the segwit2mb project are welcomed and awaited. The<br= > >only<br> >limitation is to stick to the principle that the patch should be as<br> >simple<br> >to audit as possible. As an example, I wouldn't feel confident if t= he<br> >patch<br> >modified more than ~150 lines of code.<br> ><br> >Improvements unrelated to a 2 Mb increase or segwit, as beneficial as<b= r> >it<br> >may be to Bitcoin, should not be part of segwit2Mb.<br> ><br> >This proposal should not prevent other consensus proposals to be<br> >simultaneously merged: segwit2mb is a last resort solution in case we<b= r> >can<br> >not reach consensus on anything better.<br> ><br> >Again, the proposal is only a starting point: community feedback is<br> >expected and welcomed.<br> ><br> >Regards,<br> >Sergio Demian Lerner<br> </div></div></blockquote></div></div></div><br></div></div> <br>______________________________<wbr>_________________<br> bitcoin-dev mailing list<br> <a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.= <wbr>linuxfoundation.org</a><br> <a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" = rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.<wbr>org= /mailman/listinfo/bitcoin-<wbr>dev</a><br> <br></blockquote></div><br></div> --94eb2c11c960ea5e36054c122b59--