Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1XOYWT-0005rz-D0 for bitcoin-development@lists.sourceforge.net; Mon, 01 Sep 2014 20:48:21 +0000 Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.213.171 as permitted sender) client-ip=209.85.213.171; envelope-from=gmaxwell@gmail.com; helo=mail-ig0-f171.google.com; Received: from mail-ig0-f171.google.com ([209.85.213.171]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1XOYWS-0007cm-7u for bitcoin-development@lists.sourceforge.net; Mon, 01 Sep 2014 20:48:21 +0000 Received: by mail-ig0-f171.google.com with SMTP id l13so13223484iga.10 for ; Mon, 01 Sep 2014 13:48:15 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.43.155.13 with SMTP id lg13mr25947653icc.15.1409604494803; Mon, 01 Sep 2014 13:48:14 -0700 (PDT) Received: by 10.107.4.16 with HTTP; Mon, 1 Sep 2014 13:48:14 -0700 (PDT) In-Reply-To: References: Date: Mon, 1 Sep 2014 13:48:14 -0700 Message-ID: From: Gregory Maxwell To: Pieter Wuille Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.6 (-) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (gmaxwell[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-Headers-End: 1XOYWS-0007cm-7u Cc: Bitcoin Dev Subject: Re: [Bitcoin-development] Small update to BIP 62 X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2014 20:48:21 -0000 On Fri, Jul 18, 2014 at 8:14 AM, Pieter Wuille wr= ote: > Hi all, > > I've sent a pull request to make a small change to BIP 62 (my > anti-malleability proposal) which is still a draft; see: > * https://github.com/bitcoin/bips/pull/90 (the request) > * https://github.com/sipa/bips/blob/bip62up/bip-0062.mediawiki (the resul= t) > > It makes two of the 7 new rules mandatory in new blocks, even for > old-style transactions. Both are already non-standard since 0.8.0, and > have no use cases in my opinion. > > The reason for this change is dropping the requirement for signature > verification engines to be bug-for-bug compatible with OpenSSL (which > supports many non-standard encodings for signatures). Requiring strict > DER compliance for signatures means any implementation just needs to > support DER. Not related to this change but the definition of rule 4 may not be sufficiently specific=E2=80=94 without a definition someone could reasonabl= y reach a different conclusion about OP_1NEGATE being a "push operation", or might even decide any operation which added to the stack was a "push operation". Any particular reason to enforce 2 and 4 but not also 5? Violation of 5 is already non-standard and like 2,4 should be safely enforceable. Perhaps the rules should be reordered so that the applicable to all transactions ones are contiguous and first? > The first six and part of the seventh can be fixed by extra consensus rul= es. This should clarify that the scriptPubkey can still specify rules that are inherently malleable=E2=80=94 e.g. require the input stack contain two pushes which OP_ADD to 11. Or a more elaborate one=E2=80=94 a 1 of 2 check multisig where the pubkey not selected for signing is selected by a push in the signature. The current text seems to ignore isomorphisms of this type. ... they're not important for what the BIP is trying to achieve, but the document shouldn't cause people to not think that sort of thing exists.