summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Friedenbach <mark@friedenbach.org>2017-09-20 12:29:17 -0700
committerbitcoindev <bitcoindev@gnusha.org>2017-09-20 19:29:22 +0000
commit5ce5c96ca3a15634a6c28de3bb27e2389da2c429 (patch)
tree5b1c6df4e8fd6a4a85ecf097eaa6cea90894138e
parent2ebeb943f940445afb0ad2cb233ec9c7cf21695e (diff)
downloadpi-bitcoindev-5ce5c96ca3a15634a6c28de3bb27e2389da2c429.tar.gz
pi-bitcoindev-5ce5c96ca3a15634a6c28de3bb27e2389da2c429.zip
Re: [bitcoin-dev] cleanstack alt stack & softfork improvements (Was: Merkle branch verification & tail-call semantics for generalized MAST)
-rw-r--r--4d/aaf979e4edead5b846edcc818bc9ffe88b1fd6125
1 files changed, 125 insertions, 0 deletions
diff --git a/4d/aaf979e4edead5b846edcc818bc9ffe88b1fd6 b/4d/aaf979e4edead5b846edcc818bc9ffe88b1fd6
new file mode 100644
index 000000000..171c5f31e
--- /dev/null
+++ b/4d/aaf979e4edead5b846edcc818bc9ffe88b1fd6
@@ -0,0 +1,125 @@
+Return-Path: <mark@friedenbach.org>
+Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
+ [172.17.192.35])
+ by mail.linuxfoundation.org (Postfix) with ESMTPS id A6D44C87
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Wed, 20 Sep 2017 19:29:22 +0000 (UTC)
+X-Greylist: whitelisted by SQLgrey-1.7.6
+Received: from mail-pg0-f42.google.com (mail-pg0-f42.google.com [74.125.83.42])
+ by smtp1.linuxfoundation.org (Postfix) with ESMTPS id DF8164C3
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Wed, 20 Sep 2017 19:29:20 +0000 (UTC)
+Received: by mail-pg0-f42.google.com with SMTP id k193so2222049pgc.8
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Wed, 20 Sep 2017 12:29:20 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=friedenbach-org.20150623.gappssmtp.com; s=20150623;
+ h=mime-version:subject:from:in-reply-to:date:cc
+ :content-transfer-encoding:message-id:references:to;
+ bh=ZFnKcKeD6kpy1vkKlJ5NdBlDHdgv85Jtl/6guABWqdg=;
+ b=Mi+5CmmkGimM62m2Xpd/6O+3IYoFeiG8eEnrzHPbsAef+NbD/aJr4FW1TChBAXcGLP
+ NWofC9itPcUCGdIwlOn101egD5Y5W3G3gdVeip4eXsJn/xBS5/g5OxYvyBW2hkpKfSnI
+ i5uxsp7MS9xSJxzNLfmcVo+ge9zWQJS1LXNkv4PwRGC8Rk415alrI8JIL5vMIG0NUzf6
+ F1YhJs9/Vy9Q/G+z8SZP2lLEyXb90lwImUOCNlkAkdtGJFOcIXThAKumOT80ZCshoq4u
+ 0gZbMyOZso5y4t8ykqWAC4isUqw5mgTYVL+PqcOzTnpQ8TWzC7FOS+hOqJIx2GJMXBQl
+ j0Tw==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20161025;
+ h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc
+ :content-transfer-encoding:message-id:references:to;
+ bh=ZFnKcKeD6kpy1vkKlJ5NdBlDHdgv85Jtl/6guABWqdg=;
+ b=uHmRby7HUnBH+GsUuUGK5SNG7jzWrC6u8WUoY907rn4BWRLogpH2yPGO+LMB0K2k+Y
+ JFmLzdWU4/9FH2W6DRyBcW24wtWW3ZrSVUsAMzSYFqTvM000gVvTYNfnOJECDYkTvulW
+ /toqcYzt0FoKDRanBKfvJM2/EhwSo9nxctZKTyCcu6446PJZw1u0+uhnnKxrYu9iOdhI
+ T9RWrYM7FIPpP0srW28qA0ZOKLX0/K0YOVzZchMj8lFCbYGgVW5aroIZXIuul8RKDgR9
+ UEGDquCbQlxC0t9wkSmqC/jvMpx07C0t84ExQgEOfV5LgBTeG7TDMSahxsVG4O4MnfJc
+ iJaw==
+X-Gm-Message-State: AHPjjUjNc4R9SONlqoCgICE73yDjbc3n34rgAPIZlo24IhO4awhPBKlm
+ 9uzoXItGPJDx+/m+n5TPaUnUMF1qSmM=
+X-Google-Smtp-Source: AOwi7QBV83bUqcjwXj9IXKJLGLAAWUcLoYZ9z1nJ6anFR2JjH+FWJ16PNd3cTzwOMezEJJLlqUQb7g==
+X-Received: by 10.99.115.28 with SMTP id o28mr3258064pgc.374.1505935760327;
+ Wed, 20 Sep 2017 12:29:20 -0700 (PDT)
+Received: from ?IPv6:2601:647:4600:9c66:ad56:e3e4:8af6:2572?
+ ([2601:647:4600:9c66:ad56:e3e4:8af6:2572])
+ by smtp.gmail.com with ESMTPSA id 89sm9292476pfn.75.2017.09.20.12.29.18
+ (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
+ Wed, 20 Sep 2017 12:29:18 -0700 (PDT)
+Content-Type: text/plain; charset=utf-8
+Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
+From: Mark Friedenbach <mark@friedenbach.org>
+In-Reply-To: <B8C5E7EF-9062-4431-9B63-06FF855B1D78@xbt.hk>
+Date: Wed, 20 Sep 2017 12:29:17 -0700
+Content-Transfer-Encoding: quoted-printable
+Message-Id: <34163C93-5F2C-4DC8-9FB2-7E28805C0184@friedenbach.org>
+References: <5B6756D0-6BEF-4A01-BDB8-52C646916E29@friedenbach.org>
+ <C623794E-F061-4C7A-B05D-378798ED2BF7@friedenbach.org>
+ <201709190309.08669.luke@dashjr.org>
+ <B8C5E7EF-9062-4431-9B63-06FF855B1D78@xbt.hk>
+To: Johnson Lau <jl2012@xbt.hk>
+X-Mailer: Apple Mail (2.3273)
+X-Spam-Status: No, score=0.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID,
+ RCVD_IN_DNSWL_NONE 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: Wed, 20 Sep 2017 22:54:58 +0000
+Cc: bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org>
+Subject: Re: [bitcoin-dev] cleanstack alt stack & softfork improvements
+ (Was: Merkle branch verification & tail-call semantics for generalized
+ MAST)
+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: Wed, 20 Sep 2017 19:29:22 -0000
+
+
+> On Sep 19, 2017, at 10:13 PM, Johnson Lau <jl2012@xbt.hk> wrote:
+>=20
+> If we don=E2=80=99t want this ugliness, we could use a new script =
+version for every new op code we add. In the new BIP114 (see link =
+above), I suggest to move the script version to the witness, which is =
+cheaper.
+
+To be clear, I don=E2=80=99t think it is so much that the version should =
+be moved to the witness, but rather that there are two separate version =
+values here =E2=80=94 one in the scriptPubKey which specifies the format =
+and structure of the segwit commitment itself, and another in the =
+witness which gates functionality in script or whatever else is used by =
+that witness type. Segwit just unfortunately didn=E2=80=99t include the =
+latter, an oversight that should be corrected on the on the next upgrade =
+opportunity.
+
+The address-visible =E2=80=9Cscript version=E2=80=9D field should =
+probably be renamed =E2=80=9Cwitness type=E2=80=9D as it will only be =
+used in the future to encode how to check the witness commitment in the =
+scriptPubKey against the data provided in the witness. Upgrades and =
+improvements to the features supported by those witness types won=E2=80=99=
+t require new top-level witness types to be defined. Defining a new =
+opcode, even one with modifies the stack, doesn=E2=80=99t change the =
+hashing scheme used by the witness type.
+
+v0,32-bytes is presently defined to calculate the double-SHA256 hash of =
+the top-most serialized item on the stack, and compare that against the =
+32-byte commitment value. Arguably it probably should have hashed the =
+top two values, one of which would have been the real script version. =
+This could be fixed however, even without introducing a new witness =
+type. Do a soft-fork upgrade that checks if the witness redeem script is =
+push-only, and if so then pop the last push off as the script version =
+(>=3D 1), and concatenate the rest to form the actual redeem script. We =
+inherit a little technical debt from having to deal with push limits, =
+but we avoid burning v0 in an upgrade to v1 that does little more than =
+add a script version.
+
+v1,32-bytes would then be used for a template version of MAST, or =
+whatever other idea comes along that fundamentally changes the way the =
+witness commitment is calculated.
+
+Mark=
+