summaryrefslogtreecommitdiff
path: root/b7/f9ffadfd49110d63ad4c530911afa4e5dcbb95
blob: 2eecf0bafb1aed98db212b45e608291e1cc2a58d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
Return-Path: <decker.christian@gmail.com>
Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138])
 by lists.linuxfoundation.org (Postfix) with ESMTP id 8BDD6C001E
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue,  4 Jan 2022 14:42:41 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by smtp1.osuosl.org (Postfix) with ESMTP id 79E66813F9
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue,  4 Jan 2022 14:42:41 +0000 (UTC)
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level: 
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001]
 autolearn=ham autolearn_force=no
Authentication-Results: smtp1.osuosl.org (amavisd-new);
 dkim=pass (2048-bit key) header.d=gmail.com
Received: from smtp1.osuosl.org ([127.0.0.1])
 by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id nREPj0HXY9z4
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue,  4 Jan 2022 14:42:40 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.8.0
Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com
 [IPv6:2a00:1450:4864:20::436])
 by smtp1.osuosl.org (Postfix) with ESMTPS id A2344813C1
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue,  4 Jan 2022 14:42:40 +0000 (UTC)
Received: by mail-wr1-x436.google.com with SMTP id r17so76616968wrc.3
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Tue, 04 Jan 2022 06:42:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=from:to:cc:subject:in-reply-to:references:date:message-id
 :mime-version:content-transfer-encoding;
 bh=EA/a6lecMzffyPTUzuALhrzrrakuE93NPOlEv8yk9y4=;
 b=O6lpzcovaDpgad0Wyq5dd6/qys5mgIRWD4V3Jn9RUojFKERk9jdm/IK+6JoN2I5z4s
 gUbMdhW2/Jj7Bg9MH1PaXCnMzQlARgr5rBc55qmVVL6f9xE9JUc6qK0emEtXgl4PaUtY
 8187oi1+aSGZsVI39LGzdsuPccen3JxWg7R3kVuR428WdGFXZXK0pMJHrOvzhD2pribr
 kNAUUwDhuB8Tu13ZA9Bk54JG1A/nv8ZjINZgnf4c+VU5GjwUw87B8OA1AM9ecDn29H7I
 oB2+FbaaGZXcs8xdev4bqwpfyNptqhDxcwiZTtBTzQZGeFBIWgNXKV5V9RQneM4OgqGJ
 ZmRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date
 :message-id:mime-version:content-transfer-encoding;
 bh=EA/a6lecMzffyPTUzuALhrzrrakuE93NPOlEv8yk9y4=;
 b=7eIFsSIxTv68NXML4I8UsXJ2R52XmBrcnMBRIoni/T+XCKpFxEVBfjBMkBNX1hEPAX
 sfxLBMhl+WA6nwo3jREWSP0HCRSiytwgSLpeHKP7YOsD59WUsRDJ8fELwU5nkNyHUteT
 kr/4kQYWtbMfmU4u1iG1xAZFHNMNzCUb/MRrvWh/l+s322eHxynTuPI4rIqmIjXCc26A
 ujyX9u+Uk5tNX4wVMeGm+mfqeEnDSkIVRdfc07Te+29jrylQLsJ0hmAZOHUYZHUqSMGq
 9k1cfXOMLukfhVfw7e5T3dVT+GG6F0901DIm9+Rz/8+y3HL2jcu3USh6drhb6UtlY+p1
 Gwyg==
X-Gm-Message-State: AOAM531LHVRE/wefsnLJb8s/aOwMm8NAiV8WVJJ13kFmBqPrroqLhtWt
 PTn2W360X3qEEKrathz7EqIfKRlNrRw=
X-Google-Smtp-Source: ABdhPJxG/DJlwgmgssIQzAGw2FmTRMgBrb3pCypWO9WR7L3BUU8FKy4k++BLFa53ao8kW6yfQYFPVw==
X-Received: by 2002:a5d:64ef:: with SMTP id g15mr43333412wri.297.1641307358640; 
 Tue, 04 Jan 2022 06:42:38 -0800 (PST)
Received: from localhost (243.86.254.84.ftth.as8758.net. [84.254.86.243])
 by smtp.gmail.com with ESMTPSA id a2sm43115651wri.17.2022.01.04.06.42.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 04 Jan 2022 06:42:38 -0800 (PST)
From: Christian Decker <decker.christian@gmail.com>
To: Prayank <prayank@tutanota.de>,
 Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>,
 Michael Folkson <michaelfolkson@gmail.com>
In-Reply-To: <MsZvyxN--7-2@tutanota.de>
References: <MsZvyxN--7-2@tutanota.de>
Date: Tue, 04 Jan 2022 15:42:28 +0100
Message-ID: <87o84r7eaz.fsf@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Cc: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] Stumbling into a contentious soft fork activation
	attempt
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.15
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: Tue, 04 Jan 2022 14:42:41 -0000

Prayank via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> writes:
>> To contrast with his approach, the authors and contributors of
>> another future soft fork proposal (BIP 118 [3], SIGHASH_ANYPREVOUT)
>> aren=E2=80=99t promoting an imminent soft fork activation attempt and in=
stead
>> are building out and testing one of the speculated use cases, eltoo
>> payment channels [4].
>
> Because its not ready?

Could you elaborate on this point? I keep seeing people mentioning this,
but I, as BIP co-author, have not seen any real pushback. For context
BIP118 was initially called `sighash_noinput` and it was mentioned at
least as far back as 2015 when Joseph and Tadje wrote about its
applications in the LN protocol. While writing eltoo we stumbled over an
alternative use, and decided to draft the formal proposal.

Once we saw that Taproot is likely to activate next, AJ started adapting
it to integrate nicely with Taproot, and renamed it to anyprevout.

I'd like to point out that the original noinput could be implemented
with as little as 3-5 lines of code in Bitcoin Core, and there are
experimental branches implementing APO, which isn't significantly more
complex than the original proposal.

In addition Richard Myers has implemented a PoC of eltoo on top of one
of these experimental branches. So with all this I don't see how APO
could be considered "not ready".

The reason that neither noinput nor APO have a section on activation is
that we want to allow bundling with other soft-forks, and we want to
minimize the surface for potential conflicts. Also as the Taproot
activation has shown activation is a whole another discussion, that is
mostly unrelated to the soft-fork being activated.

Why aren't we yelling about the advantages of APO over other soft-forks
or asking for immediate activation? Because we want to be respectful of
everyone's time. We know review capacity is very limited, and developer
time expensive. By now most devs will be aware of the many improvements
(on LN, eltoo, MPC, channel factories, statechains, spacechains, etc)
anyprevout would enable, so there is little point in annoying everyone
by constantly talking about it. The people interested in exploring this
venue are already working on it, and we just need to wait for an
opportune moment to start the activation discussion with other
soft-forks.

I also see people comparing OP_CTV with APO, which may or may not work
out in the end. It seems possible to emulate APO using OP_CTV, but at
what cost? APO does not have any overhead in the transaction size, which
is not the case for OP_CTV, and I therefore consider the two proposals
complementary, and not competing (APO does best what APO does best,
while OP_CTV enables use-cases beyond APO's scope). While I'd prefer APO
for eltoo, due to its lack of overhead, I'm also happy to go wih OP_CTV
if only one gets activated (But then why would we? We've done much more
obscure things to save bytes in a TX).

Finally I see people mentioning that APO is insufficient to get
eltoo. That's also not true, since in fact we can implement a poor-man's
version of eltoo right now:

 - When updating:
   - Iterate through all prior update TXs
   - Bind the new update TX to each of the prior ones
   - Sign using `sighash_all`
   - Collect all sinatures and send to peer (message size O(n), but
     semantics are preserved, while APO enable O(1) making it actually
     reasonable to implement).

There may be some extensions, such as layered commitments that may be
added at a later stage, but they are not required to get the first
versions off the ground. Pretending that they're required would be like
saying that the protocol in the LN paper hasn't changed since it was
first written (definitely not the case).

Overall I agree with Michael's sentiment that soft-fork activations have
to be carefully planned, and kept at a reasonable pace. This is in order
to ensure that the activated features will work as expected (building
PoCs is important here) and that review time is kept efficient (bundling
may help here). For these reasons we omitted the activation discussion
in BIP118 and have trimmed the proposal to the bare minimum.

Sorry for the longish rant, but I felt I needed to clarify this
situation a bit.

Cheers,
Christian