summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZmnSCPxj <ZmnSCPxj@protonmail.com>2019-10-03 03:07:55 +0000
committerbitcoindev <bitcoindev@gnusha.org>2019-10-03 03:08:06 +0000
commit9e4ae546075083abb67e4478cd6b73e1cc53d58a (patch)
tree5398682db6fb36ade3410a110e23c7cc1f282d70
parentab17003b175383ada7a4b260783ac78106ab3d21 (diff)
downloadpi-bitcoindev-9e4ae546075083abb67e4478cd6b73e1cc53d58a.tar.gz
pi-bitcoindev-9e4ae546075083abb67e4478cd6b73e1cc53d58a.zip
Re: [bitcoin-dev] [Lightning-dev] Continuing the discussion about noinput / anyprevout
-rw-r--r--a1/069790522dd037f07edae965fe9a0e2ded9da4135
1 files changed, 135 insertions, 0 deletions
diff --git a/a1/069790522dd037f07edae965fe9a0e2ded9da4 b/a1/069790522dd037f07edae965fe9a0e2ded9da4
new file mode 100644
index 000000000..26a6cd72f
--- /dev/null
+++ b/a1/069790522dd037f07edae965fe9a0e2ded9da4
@@ -0,0 +1,135 @@
+Return-Path: <ZmnSCPxj@protonmail.com>
+Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
+ [172.17.192.35])
+ by mail.linuxfoundation.org (Postfix) with ESMTPS id 0AE02E2D;
+ Thu, 3 Oct 2019 03:08:06 +0000 (UTC)
+X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6
+X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6
+Received: from mail-40135.protonmail.ch (mail-40135.protonmail.ch
+ [185.70.40.135])
+ by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 1893019B;
+ Thu, 3 Oct 2019 03:08:05 +0000 (UTC)
+Date: Thu, 03 Oct 2019 03:07:55 +0000
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
+ s=default; t=1570072082;
+ bh=c1jwRu6M32Z/ioGrIp39YlIedrsqJxAXCElI/R5Rhfc=;
+ h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:
+ Feedback-ID:From;
+ b=fJErJ1a2XVts1cbivDUr0Xzu5D54ttHJYz9m3vbGkxpGL+GNlZCxnRmGVt2ciYalu
+ oM1H2Lxz4hJhnZ1PZGP45865ZAc1V3YpwgpH+Ch6yqJkdgXWn7DbrRF2hrFTSkgjGF
+ 3ybwMO7UpdK+/fqRmXGjXbtk/pvaTnrNL42spZG0=
+To: Anthony Towns <aj@erisian.com.au>
+From: ZmnSCPxj <ZmnSCPxj@protonmail.com>
+Reply-To: ZmnSCPxj <ZmnSCPxj@protonmail.com>
+Message-ID: <iKVHkY_BWc4A9e7AiuGiyYUAu9TM4yGNlTL7HQklrw6_1pW4ZpwRd-qKLox7jpmQ8QgWrj3Ovrq9sDQijMD3Q_dNivchgNfxy8zcchFYkQ4=@protonmail.com>
+In-Reply-To: <20191003014758.gtgfge5yokcxkfsj@erisian.com.au>
+References: <87wodp7w9f.fsf@gmail.com>
+ <20191001155929.e2yznsetqesx2jxo@erisian.com.au>
+ <CR-etCjXB-JWkvecjDog4Pkq1SuLUgndtSrZo-V4f4EGcNXzNCeAHRvCZGrxDWw7aHVdDY0pAF92jNLb_Hct0bMb3ew6JEpB9AfIm1tSGaQ=@protonmail.com>
+ <20191003014758.gtgfge5yokcxkfsj@erisian.com.au>
+Feedback-ID: el4j0RWPRERue64lIQeq9Y2FP-mdB86tFqjmrJyEPR9VAtMovPEo9tvgA0CrTsSHJeeyPXqnoAu6DN-R04uJUg==:Ext:ProtonMail
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: quoted-printable
+X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID, DKIM_VALID_AU, DOS_RCVD_IP_TWICE_B, FREEMAIL_FROM,
+ FROM_LOCAL_NOVOWEL,
+ RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+ smtp1.linux-foundation.org
+Cc: Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>,
+ "lightning-dev@lists.linuxfoundation.org"
+ <lightning-dev@lists.linuxfoundation.org>
+Subject: Re: [bitcoin-dev] [Lightning-dev] Continuing the discussion about
+ noinput / anyprevout
+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: Thu, 03 Oct 2019 03:08:06 -0000
+
+> > let me propose the more radical excision, starting with SegWit v1:
+> >
+> > - Remove `SIGHASH` from signatures.
+> > - Put `SIGHASH` on public keys.
+> > <sighash> <pubkey> OP_SETPUBKEYSIGHASH
+> >
+>
+> I don't think you could reasonably do this for key path spends -- if
+> you included the sighash as part of the scriptpubkey explicitly, that
+> would lose some of the indistinguishability of taproot addresses, and be
+> more expensive than having the sighash be in witness data.
+
+Nonexistence of sighash byte implies `SIGHASH_ALL`, and for offchain anyway=
+ the desired path is to end up with an n-of-n MuSig `SIGHASH_ALL` signed mu=
+tual close transaction.
+Indeed we can even restrict keypath spends to not having a sighash byte and=
+ just implicitly requiring `SIGHASH_ALL` with no loss of privacy for offcha=
+in while attaining safety against `SIGHASH_NOINPUT` for MuSig and VSSS mult=
+isignature adresses.
+
+
+> So I think
+> that means sighashes would still be included in key path signatures,
+> which would make the behaviour a little confusingly different between
+> signing for key path and script path spends.
+>
+> > This removes the problems with `SIGHASH_NONE` `SIGHASH_SINGLE`, as they=
+ are allowed only if the output specifically says they are allowed.
+>
+> I don't think the problems with NONE and SINGLE are any worse than using
+> SIGHASH_ALL to pay to "1*G" -- someone may steal the money you send,
+> but that's as far as it goes. NOINPUT/ANYPREVOUT is worse in that if
+> you use it, someone may steal funds from other UTXOs too -- similar
+> to nonce-reuse. So I think having to commit to enabling NOINPUT for an
+> address may make sense; but I don't really see the need for doing the
+> same for other sighashes generally.
+
+As the existing sighashes are not particularly used anyway, additional rest=
+rictions on them are relatively immaterial.
+
+>
+> FWIW, one way of looking at a transaction spending UTXO "U" to address
+> "A" is something like:
+>
+> - "script" lets you enforce conditions on the transaction when you
+> create "A" [0]
+>
+> - "sighash" lets you enforce conditions on the transaction when
+> you sign the transaction
+>
+> - nlocktime, nsequence, taproot annex are ways you express conditions
+> on the transaction
+>
+> In that view, "sighash" is actually an extremely simple scripting
+> language itself (with a total of six possible scripts).
+>
+> That doesn't seem like a bad design to me, fwiw.
+
+
+Only one of the scripts is widely used, another has an edge use it sucks at=
+ (assurance contracts).
+
+Does not seem to be good design, rather legacy cruft.
+
+Regards,
+ZmnSCPxj
+
+>
+> Cheers,
+> aj
+>
+> [0] "graftroot" lets you update those conditions for address "A" afte=
+r
+> the fact
+>
+
+
+