Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 8ECB3B76 for ; Fri, 15 Sep 2017 20:58:11 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from 1.mo69.mail-out.ovh.net (1.mo69.mail-out.ovh.net [178.33.251.173]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 7448118A for ; Fri, 15 Sep 2017 20:58:10 +0000 (UTC) Received: from player699.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with ESMTP id D29933BD2D for ; Fri, 15 Sep 2017 22:40:41 +0200 (CEST) Received: from localhost.localdomain (host102-98-static.3-79-b.business.telecomitalia.it [79.3.98.102]) (Authenticated sender: simone.bronzini@chainside.net) by player699.ha.ovh.net (Postfix) with ESMTPSA id 7230D240073; Fri, 15 Sep 2017 22:40:39 +0200 (CEST) To: Dan Libby , Bitcoin Protocol Discussion , ZmnSCPxj References: <9e212eae-08d5-d083-80d9-a8e29679fcdc@osc.co.cr> <9a541ba8-7c25-fdbb-505f-6426f61bdc63@osc.co.cr> From: Simone Bronzini Message-ID: <0c98e067-dff3-988b-af66-7c624de3eef4@chainside.net> Date: Fri, 15 Sep 2017 22:40:12 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <9a541ba8-7c25-fdbb-505f-6426f61bdc63@osc.co.cr> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="FfhIJPFx0Ncvlun9n9l2Xxgut3VBCALgi" X-Ovh-Tracer-Id: 4235916927422603599 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeelledrgeekgdduhedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecufedttdenuc X-Spam-Status: No, score=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW autolearn=disabled version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Fri, 15 Sep 2017 21:00:00 +0000 Subject: Re: [bitcoin-dev] hypothetical: Could soft-forks be prevented? 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: Fri, 15 Sep 2017 20:58:11 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --FfhIJPFx0Ncvlun9n9l2Xxgut3VBCALgi Content-Type: multipart/mixed; boundary="DcdF4xt8b9Wpm0nBUtFPBiNQdOjTMB0HO"; protected-headers="v1" From: Simone Bronzini To: Dan Libby , Bitcoin Protocol Discussion , ZmnSCPxj Message-ID: <0c98e067-dff3-988b-af66-7c624de3eef4@chainside.net> Subject: Re: [bitcoin-dev] hypothetical: Could soft-forks be prevented? References: <9e212eae-08d5-d083-80d9-a8e29679fcdc@osc.co.cr> <9a541ba8-7c25-fdbb-505f-6426f61bdc63@osc.co.cr> In-Reply-To: <9a541ba8-7c25-fdbb-505f-6426f61bdc63@osc.co.cr> --DcdF4xt8b9Wpm0nBUtFPBiNQdOjTMB0HO Content-Type: multipart/mixed; boundary="------------F69E455E29EBBC3911ADCC8B" Content-Language: en-US This is a multi-part message in MIME format. --------------F69E455E29EBBC3911ADCC8B Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Since a soft-fork is a restriction of the consensus rules, I think the only way to have an un-soft-forkable cryptocurrency is creating a cryptocurrency where no transaction is valid. Imagine I build a very minimal cryptocurrency where in the transaction output you only indicate the public key to send your coins to and the amount. One can still soft-fork it by deciding that, from now on, only even amounts are valid or only public keys that are a multiple of 10 are valid. On 15/09/17 21:55, Dan Libby via bitcoin-dev wrote: > Ok, this is good stuff. thanks for the thoughtful reply. > > Regarding anyone-can-spend: > > all of the examples you gave do not satisfy isStandard. So if our > hypothetical cryptocurrency were to restrict all transactions to > isStandard at the consensus layer, would that not effectively prevent > anyone-can-spend? > > Or more generally and with our thinking caps on, what would be the best= > way to prevent anyone-can-spend, if that is our goal? > > > Regarding soft-fork =3D restrict: > > Your example of miners running secret soft-fork code that blacklists > satoshi's utxo's is intriguing and somewhat troubling. > > I think the main takeaways are that: > 1) there are other ways to soft-fork besides anyone-can-spend. > 2) it is impossible to prevent hidden soft-forks. > > Is that accurate? > > Still, I would put forth the following question: If anyone-can-spend t= x > were no longer allowed according to consensus rules (assuming that is > possible/practical), then could the network still be practically > "upgraded" with new features (eg opcodes) via soft-fork, and if so, wha= t > would be the mechanism for backwards compatibility in this scenario? > > > or from another angle: even if it is impossible to prevent all > soft-forks, can you see any way at all to make it logistically > infeasible to use soft-forks as a network-wide consensus change mechani= sm? > > and another thought: as I understand it, bitcoin is presently able to > add new opcodes via soft-fork because Satoshi added 10 unused opcodes > via hardfork. What will happen when these run out? Can new opcodes > still be added without a hard-fork? > > > note: I ask these questions with the goal/vision of creating an > immutable altcoin or sidechain, not necessarily restricting bitcoin's p= ath. > > > > > > On 09/14/2017 09:01 PM, ZmnSCPxj wrote: >> Good morning Dan, >> >> My understanding is that it is impossible for soft forks to be prevent= ed. >> >> 1. Anyone-can-spend >> >> There are a very large number of anyone-can-spend scripts, and it woul= d >> be very impractical to ban them all. >> >> For example, the below output script is anyone-can-spend >> >> OP_TRUE >> >> So is the below: >> >> OP_SIZE OP_EQUAL >> >> Or: >> >> OP_1ADD OP_EQUAL >> >> Or: >> >> OP_BOOLAND >> >> Or: >> >> OP_BOOLOR >> >> And so on. >> >> So no, it is not practically possible to ban anyone-can-spend outputs,= >> as there are too many potential scriptPubKey that anyone can spend. >> >> It is even possible to have an output that requires a proof-of-work, >> like so: >> >> OP_HASH256 OP_LESSTHAN >> >> All the above outputs are disallowed from propagation by IsStandard, b= ut >> a miner can put them validly in a block, and IsStandard is not consens= us >> code and can be modified. >> >> 2. Soft fork =3D restrict >> >> It is possible (although unlikely) for a majority of miners to run sof= t >> forking code which the rest of us are not privy to. >> >> For example, for all we know, miners are already blacklisting spends o= n >> Satoshi's coins. We would not be able to detect this at all, since no= >> transaction that spends Satoshi's coins have been broadcast, ever. It= >> is thus indistinguishable from a world where Satoshi lost his private >> keys. Of course, the world where Satoshi never spent his coins and >> miners are blacklisting Satoshi's coins, is more complex than the worl= d >> where Satoshi never spent his coins, so it is more likely that miners >> are not blacklisting. >> >> But the principle is there. We may already be in a softfork whose rul= es >> we do not know, and it just so happens that all our transactions today= >> do not violate those rules. It is impossible for us to know this, but= >> it is very unlikely. >> >> Soft forks apply further restrictions on Bitcoin. Hard forks do not. = >> Thus, if everyone else is entering a soft fork and we are oblivious, w= e >> do not even know about it. Whereas, if everyone else is entering a ha= rd >> fork, we will immediately see (and reject) invalid transactions and bl= ocks. >> >> Thus the only way to prevent soft fork is to hard fork against the new= >> soft fork, like Bcash did. >> >> Regards, >> ZmnSCPxj >> >> -------- Original Message -------- >> Subject: [bitcoin-dev] hypothetical: Could soft-forks be prevented? >> Local Time: September 13, 2017 5:50 PM >> UTC Time: September 13, 2017 9:50 AM >> From: bitcoin-dev@lists.linuxfoundation.org >> To: Bitcoin Protocol Discussion >> >> Hi, I am interested in the possibility of a cryptocurrency software >> (future bitcoin or a future altcoin) that strives to have immutable >> consensus rules. >> >> The goal of such a cryptocurrency would not be to have the latest and >> greatest tech, but rather to be a long-term store of value and to offe= r >> investors great certainty and predictability... something that markets= >> tend to like. And of course, zero consensus rule changes also means >> less chance of new bugs and attack surface remains the same, which is >> good for security. >> >> Of course, hard-forks are always possible. But that is a clear split >> and something that people must opt into. Each party has to make a >> choice, and inertia is on the side of the status quo. Whereas >> soft-forks sort of drag people along with them, even those who oppose >> the changes and never upgrade. In my view, that is problematic, >> especially for a coin with permanent consensus rule immutability as a >> goal/ethic. >> >> As I understand it, bitcoin soft-forks always rely on anyone-can-spend= >> transactions. If those were removed, would it effectively prevent >> soft-forks, or are there other possible mechanisms? How important are >> any-one-can spend tx for other uses? >> >> More generally, do you think it is possible to programmatically >> avoid/ban soft-forks, and if so, how would you go about it? >> >> >> >> >> >> _______________________________________________ >> 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 --------------F69E455E29EBBC3911ADCC8B Content-Type: application/pgp-keys; name="0xB2E60C73.asc" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0xB2E60C73.asc" -----BEGIN PGP PUBLIC KEY BLOCK----- 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 =3Dy8p/ -----END PGP PUBLIC KEY BLOCK----- --------------F69E455E29EBBC3911ADCC8B-- --DcdF4xt8b9Wpm0nBUtFPBiNQdOjTMB0HO-- --FfhIJPFx0Ncvlun9n9l2Xxgut3VBCALgi Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIzBAEBCAAdFiEErS/wgXh5+C1vqPN/TXSJoN+7oQoFAlm8OsYACgkQTXSJoN+7 oQpXbw/+KiTxEFt41NcPERWCrE0UKIUhXlsTSXkXRiZc+QrtseWpmXCfwo6m+m8V osQP88yO18ytLY4sBgQzpcsGpqb0/pUFZYdYtetgtSfFX0okRokYAixC2PNO7AyX AbT7/FjQPR8JG0x+JY2cBAvu8i2IEiHsHEdhB1eS7LDF8EzXyGesRd1fgiVqAp4v HNlNBW1l0UKHge1AKsdct7t0+d9x5k+SUqIQAqpdKxu4LmFwTzZYFVuvkLoAuJf6 CpezydPNeGk2ChRJCE9XYMEeKO0tyKE0+MTrlqH2FTrWDvMzjV+1D1nBhAHd9Q37 g/4kfIKlf9zT8o1pBGRn4ehPbkDIv35xwFlVTE7Eny6A7J5Ap5sCVjYvKJF5pebv Z4wpJNqLFa2WdOrcZpOBBUZaf+oYpBrkZoH9w2AOv5vn25rxZw21f4iGIqnNyS9F VDdUlQzptQYTZ7rqNPZl4h+OKxBZuLHHkRuTicELcjyxeFmhNcCn6ETyTC3W4l1Q 4PyNXQ34m3+Q/eHuPSuvAs+2vJb6s2Nw6Nfw9seeJqZFH3jiuDJa2CknE0hqAZjU 2Qe5ql5U1oihJW89bbYJv0nIUNqaboqmfiC0zxK2wu2zMqajuBwriZ/aaur0eh+0 hafzRCH61kFzH13aG2DtwW4Tbx7ZnXcTeaQgDJH9yN1IMP2WF/U= =mMaZ -----END PGP SIGNATURE----- --FfhIJPFx0Ncvlun9n9l2Xxgut3VBCALgi--