Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id ADC5D38C1 for ; Fri, 3 May 2019 09:51:30 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 217BC79 for ; Fri, 3 May 2019 09:51:29 +0000 (UTC) Received: by mail-wr1-f48.google.com with SMTP id a12so7029082wrq.10 for ; Fri, 03 May 2019 02:51:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:openpgp:autocrypt:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=p7js6U8xtzCynqcgkrGTClCHmGK+0WQlORWarKhL0u0=; b=Hri7zjAcEGg/bQchu/zXSJvL1YjRcn2d3Y1eYGZCuxEW6BK+kVOY/nEU7hLYcWte9h +eKV6Qiu0cGqIC3SQRIm3Y/3zkdVBQiuPvGthTc3DiRvCFhxYGJEsBuy/vIK5S2Egfhl rXxl96blG2tgsq8eKNhr9QpI4tWKeJnLxk1HGTMxac5A0rAngZM9XrKfwMh3xk1LZKSq mtWEAGkAeAcEiYt1SsfXH/vkce0Bf3yxGgpBzL9QmGj1H0ek49XRqHNy6U6CeLdb04xM nbwpdOrMMoplUbwDrkcg06Zbs0t3glf11sfWs44Td/jRUInxL6P3y+5hgvs/8mQJoDWv lfmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language; bh=p7js6U8xtzCynqcgkrGTClCHmGK+0WQlORWarKhL0u0=; b=dN63kHrrWZYVDGgHiRFiI/RR7cRkQlisUiXMJWl6OFdrr2Qmb4fIfFAjaQ1QWGRvnz RT+Mk1/l9EAOa9Ewnr7bWnKivB/bcTLeHM77Ojn+psi8CFARFN9bpNOIQrLehDJFkV4b +zKtZ2sT4DZu6xBqJFl0c+tSIjTnyNxwxjjbuGR7qohORJkRDUvGdAjrj/Zx2sZSh0zX 60c8YCh8d7oO7Y5dYCsukOGHXMy/B4EAJY1QiTktfft0I4cl+wAqN7xOpaqEvPqrFHg3 vTV9kVawwxeFBPVnd8DuWG0QlG0tMDP++u/P13jrh9/UnRyM0U9VtV3pgMN+DttMglVp l+Sw== X-Gm-Message-State: APjAAAWuO3ftgKtA2b15IGRWLzUpOO/pKRvR3zkMaPfkxt6u1hMzMue5 rGwVQzOFQqawsm0OU5wOkGHI9Am2 X-Google-Smtp-Source: APXvYqw5TfTFrRwyx8SD1v6NVuSOm29xSgZ9z03+OaQg+z8GJYSkfENUcyxFbhZGj+Ob27M2glIRRg== X-Received: by 2002:adf:e883:: with SMTP id d3mr2603000wrm.232.1556877087411; Fri, 03 May 2019 02:51:27 -0700 (PDT) Received: from ?IPv6:2a01:cb1d:44:6500:b1e1:fba8:c623:4bdc? ([2a01:cb1d:44:6500:b1e1:fba8:c623:4bdc]) by smtp.googlemail.com with ESMTPSA id r29sm1531876wra.56.2019.05.03.02.51.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 03 May 2019 02:51:26 -0700 (PDT) To: James Prestwich , Bitcoin Protocol Discussion References: <21346b3c-dad5-c666-9234-8916aa5a56e4@gmail.com> <201904290301.43459.luke@dashjr.org> <56b67b57-dc11-183a-1f4e-5a8c296b64cc@gmail.com> <1019ea57-7240-2dc7-8357-970223278e3d@gmail.com> <6b8f2a91-af73-4d66-1b90-51acd4ce217c@gmail.com> From: Aymeric Vitte Openpgp: preference=signencrypt Autocrypt: addr=vitteaymeric@gmail.com; prefer-encrypt=mutual; keydata= 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 vXl2h6Tivlk= Message-ID: <37e3f1ee-a3c6-2670-f0e0-4b939bf8e396@gmail.com> Date: Fri, 3 May 2019 11:51:25 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.3; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/alternative; boundary="------------3F1120A0D3BC06ECC8A3415B" Content-Language: fr 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: Fri, 03 May 2019 15:56:20 +0000 Subject: Re: [bitcoin-dev] IsStandard 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, 03 May 2019 09:51:30 -0000 This is a multi-part message in MIME format. --------------3F1120A0D3BC06ECC8A3415B Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Great doc, thanks, then my previous summarized conclusion was wrong, trying on my side to write a "demistifying (simply) once for all bitcoin scripting", not sure that "simply" can stay in the title at the end... So my multisig modification is non standard, now I am still puzzled by something, mainly the fact that we have op_pushdata inside op_pushdata, maybe I am misreading the specs, but in case of p2sh only the last op_pushdata (called {serialized script} (or redeem script) is executed, then if succesfull it comes back onto the stack and scriptpubkey is executed So, let's take again the BCH recovery example, scriptSig was OP_PUSHDATA 0014, and scriptPubKey OP_HASH160 OP_EQUAL, then scriptSig executes pushing nothing and into the stack, then scriptSig is pushed again and executed with scriptPubKey, at the end we get nothing + + 1 in the stack, then cleanstack (maybe among others, I have to read in more details your doc) says it is a correct transaction but non standard, is this correct? Le 03/05/2019 à 01:33, James Prestwich a écrit : > Hi Aymeric,  > > As Luke and ZmnSCPxj have pointed out, documenting standardness is > sisyphean, as it varies from version to version. I recently put > together a reference for default TX_NONSTANDARD policies in v0.18, > which can be found here: https://prestwi.ch/the-bitcoin-nonstandard/  > > It applies only to v0.18, and may already be outdated. > > Best, > James > > On Thu, May 2, 2019 at 4:29 PM Aymeric Vitte via bitcoin-dev > > wrote: > > Thanks for the answer, indeed for the redeem script and someone > attempting a 0/1 of 3, good example > > So to summarize everything is standard as long as it matches P2PKH, > P2SH, P2WPKH or P2WSH , the redeem scripts for the sha bounties are in > op_return > > Still the case of bch is unclear (it's related since based on bitcoin > code unless they changed the policy), was the story that nodes > would not > propagate the fix or that people did not want to take the risk to > propagate it? And why a non segwit old bitcoin node would not > accept it > either? > > Le 02/05/2019 à 02:10, ZmnSCPxj a écrit : > > Good morning Aymeric, > > > > > > Sent with ProtonMail Secure Email. > > > > ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ > > On Tuesday, April 30, 2019 5:43 PM, Aymeric Vitte > > wrote: > > > >> I must badly explain my point (or just wondering things that do not > >> exist finally), the question is indeed whether nodes will relay non > >> usual transactions or not and how to know what they will accept > or not: > >> > >> -   my modified multisig 2 of 3: I did put OP_2 out of the > usual redeem > >>     script, the redeem script still matches scriptpubkey and > scriptsig will > >>     execute succesfully, that's a normal legacy P2SH or segwit > P2WSH > >> > >> -   bch segwit recovery: it's a p2sh transaction without any > signature > >>     verification, as far as I remember there was a story that > it could not > >>     propagate in the network (even taking the risk to be > stolen) and that > >>     people had to contact a (honest) miner > >> > >> -   sha bounties: same as above, p2sh transactions without > signatures > >> > >>     etc > >> > >>     Will all of those transactions propagate normally? And then > the rule is > >>     just that it matches the P2PKH, P2WPKH, P2SH, or P2WSH > templates > >>     whatever scripts you put inside? > > P2PKH and P2WPKH cannot have custom script. > > However, yes, any custom script can be wrapped in P2SH and P2WSH > and it will be propagated. > > The P2SH/P2WSH hides the details of your custom script so cannot > be filtered based on your custom script. > > Do realize that once a claim on your modified x-of-3 is > propagated your `redeemScript` is known and someone can attempt to > RBF (or coordinate with a miner) with a modified `witness` stack > or `scriptSig` to claim your UTXO. > > (I do not know if `OP_CHECKMULTISIG` supports 0-of-3 but at > least one of your signatories could make it a 1-of-3 and bribe a > miner to get it claimed) > > > > I cannot answer for BCH; arguably that is off-topic here. > > > > The old SHA bounty transactions were propagated in the days > before `isStandard` I think. > > Either that or they were put in by miners. > > An SHA bounty can still be propagated today if they are wrapped > in a P2SH or P2WSH, but you have to publish the `redeemScript` > yourself in some other method. > > Or bribe a miner if the transaction is not time-sensitive (for > an SHA bounty, unlikely to be time-sensitive). > > > > Regards, > > ZmnSCPxj > > -- > Move your coins by yourself (browser version): > https://peersm.com/wallet > Bitcoin transactions made simple: > https://github.com/Ayms/bitcoin-transactions > Zcash wallets made simple: https://github.com/Ayms/zcash-wallets > Bitcoin wallets made simple: https://github.com/Ayms/bitcoin-wallets > Get the torrent dynamic blocklist: http://peersm.com/getblocklist > Check the 10 M passwords list: http://peersm.com/findmyass > Anti-spies and private torrents, dynamic blocklist: > http://torrent-live.org > Peersm : http://www.peersm.com > torrent-live: https://github.com/Ayms/torrent-live > node-Tor : > https://www.github.com/Ayms/node-Tor > GitHub : https://www.github.com/Ayms > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > -- Move your coins by yourself (browser version): https://peersm.com/wallet Bitcoin transactions made simple: https://github.com/Ayms/bitcoin-transactions Zcash wallets made simple: https://github.com/Ayms/zcash-wallets Bitcoin wallets made simple: https://github.com/Ayms/bitcoin-wallets Get the torrent dynamic blocklist: http://peersm.com/getblocklist Check the 10 M passwords list: http://peersm.com/findmyass Anti-spies and private torrents, dynamic blocklist: http://torrent-live.org Peersm : http://www.peersm.com torrent-live: https://github.com/Ayms/torrent-live node-Tor : https://www.github.com/Ayms/node-Tor GitHub : https://www.github.com/Ayms --------------3F1120A0D3BC06ECC8A3415B Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit

Great doc, thanks, then my previous summarized conclusion was wrong, trying on my side to write a "demistifying (simply) once for all bitcoin scripting", not sure that "simply" can stay in the title at the end...

So my multisig modification is non standard, now I am still puzzled by something, mainly the fact that we have op_pushdata inside op_pushdata, maybe I am misreading the specs, but in case of p2sh only the last op_pushdata (called {serialized script} (or redeem script) is executed, then if succesfull it comes back onto the stack and scriptpubkey is executed

So, let's take again the BCH recovery example, scriptSig was OP_PUSHDATA 0014<hash160 of pubkey>, and scriptPubKey OP_HASH160 <hash160 of 0014<hash160 of pubkey> OP_EQUAL, then scriptSig executes pushing nothing and <hash160 of pubkey> into the stack, then scriptSig is pushed again and executed with scriptPubKey, at the end we get nothing + <hash160 of pubkey> + 1 in the stack, then cleanstack (maybe among others, I have to read in more details your doc) says it is a correct transaction but non standard, is this correct?

Le 03/05/2019 à 01:33, James Prestwich a écrit :
Hi Aymeric, 

As Luke and ZmnSCPxj have pointed out, documenting standardness is sisyphean, as it varies from version to version. I recently put together a reference for default TX_NONSTANDARD policies in v0.18, which can be found here: https://prestwi.ch/the-bitcoin-nonstandard/ 

It applies only to v0.18, and may already be outdated.

Best,
James

On Thu, May 2, 2019 at 4:29 PM Aymeric Vitte via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote:
Thanks for the answer, indeed for the redeem script and someone
attempting a 0/1 of 3, good example

So to summarize everything is standard as long as it matches P2PKH,
P2SH, P2WPKH or P2WSH , the redeem scripts for the sha bounties are in
op_return

Still the case of bch is unclear (it's related since based on bitcoin
code unless they changed the policy), was the story that nodes would not
propagate the fix or that people did not want to take the risk to
propagate it? And why a non segwit old bitcoin node would not accept it
either?

Le 02/05/2019 à 02:10, ZmnSCPxj a écrit :
> Good morning Aymeric,
>
>
> Sent with ProtonMail Secure Email.
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Tuesday, April 30, 2019 5:43 PM, Aymeric Vitte <vitteaymeric@gmail.com> wrote:
>
>> I must badly explain my point (or just wondering things that do not
>> exist finally), the question is indeed whether nodes will relay non
>> usual transactions or not and how to know what they will accept or not:
>>
>> -   my modified multisig 2 of 3: I did put OP_2 out of the usual redeem
>>     script, the redeem script still matches scriptpubkey and scriptsig will
>>     execute succesfully, that's a normal legacy P2SH or segwit P2WSH
>>
>> -   bch segwit recovery: it's a p2sh transaction without any signature
>>     verification, as far as I remember there was a story that it could not
>>     propagate in the network (even taking the risk to be stolen) and that
>>     people had to contact a (honest) miner
>>
>> -   sha bounties: same as above, p2sh transactions without signatures
>>
>>     etc
>>
>>     Will all of those transactions propagate normally? And then the rule is
>>     just that it matches the P2PKH, P2WPKH, P2SH, or P2WSH templates
>>     whatever scripts you put inside?
> P2PKH and P2WPKH cannot have custom script.
> However, yes, any custom script can be wrapped in P2SH and P2WSH and it will be propagated.
> The P2SH/P2WSH hides the details of your custom script so cannot be filtered based on your custom script.
> Do realize that once a claim on your modified x-of-3 is propagated your `redeemScript` is known and someone can attempt to RBF (or coordinate with a miner) with a modified `witness` stack or `scriptSig` to claim your UTXO.
> (I do not know if `OP_CHECKMULTISIG` supports 0-of-3 but at least one of your signatories could make it a 1-of-3 and bribe a miner to get it claimed)
>
> I cannot answer for BCH; arguably that is off-topic here.
>
> The old SHA bounty transactions were propagated in the days before `isStandard` I think.
> Either that or they were put in by miners.
> An SHA bounty can still be propagated today if they are wrapped in a P2SH or P2WSH, but you have to publish the `redeemScript` yourself in some other method.
> Or bribe a miner if the transaction is not time-sensitive (for an SHA bounty, unlikely to be time-sensitive).
>
> Regards,
> ZmnSCPxj

--
Move your coins by yourself (browser version): https://peersm.com/wallet
Bitcoin transactions made simple: https://github.com/Ayms/bitcoin-transactions
Zcash wallets made simple: https://github.com/Ayms/zcash-wallets
Bitcoin wallets made simple: https://github.com/Ayms/bitcoin-wallets
Get the torrent dynamic blocklist: http://peersm.com/getblocklist
Check the 10 M passwords list: http://peersm.com/findmyass
Anti-spies and private torrents, dynamic blocklist: http://torrent-live.org
Peersm : http://www.peersm.com
torrent-live: https://github.com/Ayms/torrent-live
node-Tor
: https://www.github.com/Ayms/node-Tor
GitHub : https://www.github.com/Ayms

_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
-- 
Move your coins by yourself (browser version): https://peersm.com/wallet
Bitcoin transactions made simple: https://github.com/Ayms/bitcoin-transactions
Zcash wallets made simple: https://github.com/Ayms/zcash-wallets
Bitcoin wallets made simple: https://github.com/Ayms/bitcoin-wallets
Get the torrent dynamic blocklist: http://peersm.com/getblocklist
Check the 10 M passwords list: http://peersm.com/findmyass
Anti-spies and private torrents, dynamic blocklist: http://torrent-live.org
Peersm : http://www.peersm.com
torrent-live: https://github.com/Ayms/torrent-live
node-Tor : https://www.github.com/Ayms/node-Tor
GitHub : https://www.github.com/Ayms
--------------3F1120A0D3BC06ECC8A3415B--