summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy <jlrubin@mit.edu>2019-05-31 22:35:45 -0700
committerbitcoindev <bitcoindev@gnusha.org>2019-06-01 05:36:00 +0000
commit47bc1b5d0b6cffb47d2b510cd26a7c870197598d (patch)
treebf2978908ff0f98356c5ec2c0b9736170698bc77
parent952dc1695814d9d923670a458de29f6c67e27154 (diff)
downloadpi-bitcoindev-47bc1b5d0b6cffb47d2b510cd26a7c870197598d.tar.gz
pi-bitcoindev-47bc1b5d0b6cffb47d2b510cd26a7c870197598d.zip
[bitcoin-dev] OP_SECURETHEBAG (supersedes OP_CHECKOUTPUTSVERIFY)
-rw-r--r--83/c121b1dbb86632b679468a3388c8c24cb91282141
1 files changed, 141 insertions, 0 deletions
diff --git a/83/c121b1dbb86632b679468a3388c8c24cb91282 b/83/c121b1dbb86632b679468a3388c8c24cb91282
new file mode 100644
index 000000000..312f0bb9c
--- /dev/null
+++ b/83/c121b1dbb86632b679468a3388c8c24cb91282
@@ -0,0 +1,141 @@
+Return-Path: <jlrubin@mit.edu>
+Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
+ [172.17.192.35])
+ by mail.linuxfoundation.org (Postfix) with ESMTPS id D30AD6246
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Sat, 1 Jun 2019 05:36:00 +0000 (UTC)
+X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6
+Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])
+ by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 53A82E7
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Sat, 1 Jun 2019 05:36:00 +0000 (UTC)
+Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com
+ [209.85.208.42]) (authenticated bits=0)
+ (User authenticated as jlrubin@ATHENA.MIT.EDU)
+ by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x515ZvUf025910
+ (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NOT)
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Sat, 1 Jun 2019 01:35:58 -0400
+Received: by mail-ed1-f42.google.com with SMTP id h10so2465235edi.13
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Fri, 31 May 2019 22:35:58 -0700 (PDT)
+X-Gm-Message-State: APjAAAW5LWF6ralIId2zkAYE30ZB/POs27sRSfEEgIJ5PMG3caxRq0Iq
+ X3RVW+P1ZaNMzho07Jh2upharPYg27D6GHoAnHY=
+X-Google-Smtp-Source: APXvYqzI89N/0bUIIwa0Zaw7lgPma10WyFgcyWH27GPqcqtcWaZQiKMOyFCR5uGvrHmHAWOT7ccKAsm/eI5T+5Da49k=
+X-Received: by 2002:a17:906:b741:: with SMTP id
+ fx1mr12743530ejb.45.1559367357106;
+ Fri, 31 May 2019 22:35:57 -0700 (PDT)
+MIME-Version: 1.0
+From: Jeremy <jlrubin@mit.edu>
+Date: Fri, 31 May 2019 22:35:45 -0700
+X-Gmail-Original-Message-ID: <CAD5xwhjSj82YYuQHHbwgSLvUNV2RDY0b=yMYeLj-p6j7PpS9-Q@mail.gmail.com>
+Message-ID: <CAD5xwhjSj82YYuQHHbwgSLvUNV2RDY0b=yMYeLj-p6j7PpS9-Q@mail.gmail.com>
+To: Bitcoin development mailing list <bitcoin-dev@lists.linuxfoundation.org>
+Content-Type: multipart/alternative; boundary="000000000000651034058a3c810c"
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,HTML_MESSAGE,
+ RCVD_IN_DNSWL_MED 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 Jun 2019 16:46:30 +0000
+Subject: [bitcoin-dev] OP_SECURETHEBAG (supersedes OP_CHECKOUTPUTSVERIFY)
+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 Jun 2019 05:36:01 -0000
+
+--000000000000651034058a3c810c
+Content-Type: text/plain; charset="UTF-8"
+
+Hi All,
+
+OP_CHECKOUTPUTSHASHVERIFY is retracted in favor of OP_SECURETHEBAG*.
+OP_SECURETHEBAG does more or less the same thing, but fixes malleability
+issues and lifts the single output restriction to a known number of inputs
+restriction.
+
+OP_CHECKOUTPUTSVERIFY had some issues with malleability of version and
+locktime. OP_SECURETHEBAG commits to both of these values.
+
+OP_SECURETHEBAG also lifts the restriction that OP_CHECKOUTPUTSVERIFY had
+to be spent as only a single input, and instead just commits to the number
+of inputs. This allows for more flexibility, but keeps it easy to get the
+same single output restriction.
+
+BIP:
+https://github.com/JeremyRubin/bips/blob/op-secure-the-bag/bip-secure-the-bag.mediawiki
+Implementation: https://github.com/JeremyRubin/bitcoin/tree/secure_the_bag
+
+A particularly useful topic of discussion is how best to eliminate the
+PUSHDATA and treat OP_SECURETHEBAG like a pushdata directly. I thought
+about how the interpreter works and is implemented and couldn't come up
+with something noninvasive.
+
+Thank you for your review and discussion,
+
+Jeremy
+
+* Plus the name is better
+
+--000000000000651034058a3c810c
+Content-Type: text/html; charset="UTF-8"
+Content-Transfer-Encoding: quoted-printable
+
+<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:arial,he=
+lvetica,sans-serif;font-size:small;color:#000000">Hi All,</div><div class=
+=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-siz=
+e:small;color:#000000"><br></div><div class=3D"gmail_default" style=3D"font=
+-family:arial,helvetica,sans-serif;font-size:small;color:#000000"><div clas=
+s=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;font-si=
+ze:small;color:rgb(0,0,0)">OP_CHECKOUTPUTSHASHVERIFY is retracted in favor =
+of OP_SECURETHEBAG*. OP_SECURETHEBAG does more or less the same thing, but =
+fixes malleability issues and lifts the single output restriction to a know=
+n number of inputs restriction.<br></div></div><div class=3D"gmail_default"=
+ style=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:#000=
+000"><br></div><div class=3D"gmail_default" style=3D"font-family:arial,helv=
+etica,sans-serif;font-size:small;color:#000000">OP_CHECKOUTPUTSVERIFY had s=
+ome issues with malleability of version and locktime. OP_SECURETHEBAG commi=
+ts to both of these values. <br></div><div class=3D"gmail_default" style=3D=
+"font-family:arial,helvetica,sans-serif;font-size:small;color:#000000"><br>=
+</div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,san=
+s-serif;font-size:small;color:#000000">OP_SECURETHEBAG also lifts the restr=
+iction that OP_CHECKOUTPUTSVERIFY had to be spent as only a single input, a=
+nd instead just commits to the number of inputs. This allows for more flexi=
+bility, but keeps it easy to get the same single output restriction.<br></d=
+iv><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-s=
+erif;font-size:small;color:#000000"><br></div><div class=3D"gmail_default" =
+style=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:#0000=
+00">BIP: <a href=3D"https://github.com/JeremyRubin/bips/blob/op-secure-the-=
+bag/bip-secure-the-bag.mediawiki">https://github.com/JeremyRubin/bips/blob/=
+op-secure-the-bag/bip-secure-the-bag.mediawiki</a></div><div class=3D"gmail=
+_default" style=3D"font-family:arial,helvetica,sans-serif;font-size:small;c=
+olor:#000000">Implementation: <a href=3D"https://github.com/JeremyRubin/bit=
+coin/tree/secure_the_bag">https://github.com/JeremyRubin/bitcoin/tree/secur=
+e_the_bag</a></div><div><div dir=3D"ltr" class=3D"gmail_signature" data-sma=
+rtmail=3D"gmail_signature"><div dir=3D"ltr"><br></div><div dir=3D"ltr"><div=
+ style=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(=
+0,0,0)" class=3D"gmail_default">A particularly useful topic of discussion i=
+s how best to eliminate the PUSHDATA and treat OP_SECURETHEBAG like a pushd=
+ata directly. I thought about how the interpreter works and is implemented =
+and couldn&#39;t come up with something noninvasive.</div><div style=3D"fon=
+t-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" class=
+=3D"gmail_default"><br></div></div><div style=3D"font-family:arial,helvetic=
+a,sans-serif;font-size:small;color:rgb(0,0,0)" class=3D"gmail_default">Than=
+k you for your review and discussion,<br></div><div dir=3D"ltr"><div style=
+=3D"font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)=
+" class=3D"gmail_default"><br></div><div style=3D"font-family:arial,helveti=
+ca,sans-serif;font-size:small;color:rgb(0,0,0)" class=3D"gmail_default">Jer=
+emy</div></div><div dir=3D"ltr"><br></div><div dir=3D"ltr"><div style=3D"fo=
+nt-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)" clas=
+s=3D"gmail_default">* Plus the name is better</div><br></div></div></div></=
+div>
+
+--000000000000651034058a3c810c--
+