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
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
Delivery-date: Tue, 12 Nov 2024 09:02:52 -0800
Received: from mail-qt1-f190.google.com ([209.85.160.190])
by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
(Exim 4.94.2)
(envelope-from <bitcoindev+bncBAABBM4UZ24QMGQEFPIGPPY@googlegroups.com>)
id 1tAuI0-0008Jx-Co
for bitcoindev@gnusha.org; Tue, 12 Nov 2024 09:02:52 -0800
Received: by mail-qt1-f190.google.com with SMTP id d75a77b69052e-460b35f8214sf102134781cf.1
for <bitcoindev@gnusha.org>; Tue, 12 Nov 2024 09:02:52 -0800 (PST)
ARC-Seal: i=2; a=rsa-sha256; t=1731430966; cv=pass;
d=google.com; s=arc-20240605;
b=lORohlaJWJ1J7iNuGUDYtZS8v4DylHPJWmf+uJxRdz1PhZDfteyfznvFFEZvNq1QVG
3CyKYqko0XZIaUYNcrvTDszKkZOKRumhum0dtAZuZHEzWQC8d61zzhFtqT0wj6yphpIQ
J7BEzIjD0YXBDR7eP4LEK+ULSPEuDLzcCmOmZ6fUHp6LOkSjfW7jBV5fjJA435I61ELD
yTCpA7Af6OW/U7BJfIsJdXq/fSzStdJUHsyhwFurWtSI2+jUPa0nIB3toFixEW2jzBHU
ORpTZrFPNZqUtwYLswXp6Jr0wh447BgkIh8gIbwmGUIuNzmZYxM+BdByKhASNejx1Mk5
I+Mg==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:in-reply-to:content-language
:references:to:from:subject:mime-version:date:message-id:sender
:dkim-signature;
bh=oCYeH6jIbDc0NFbNMpFLdrcNLvqDXR9GsFMpunh7TmI=;
fh=0f+xMR2/CiMrnnng2ovr/TOxMiTjaZlSFvncsRjJEHk=;
b=lkiuWJoq3pX15oDTMGZvYH9nKEhzkHrzhWIrOXIdmkxwVVyE/YubSX2ePGifKDH2FO
KrTdCMxcIs+VBqsYMKQL4wQORoQdVperX3oYPXmo6SGsYAeGDmgSKRt3SlN1Lnc0qgrM
jnGzMInYUfbu7B5r1qYr8dvXDRRGVvb1sh/42tNNHwh6LXONq5xw9vKrV6G2/LQu98HD
6qVXOfXpuVgzPWEKRiRys/EUcwL2puoMrwUNXEmhi9heDUZn8CWxNPVN4VHzXO3f0oyw
6MhW92rFc4Vn5eSmoabtMWCycV0fkM/OM4R4a+9wTMUAhK9juXP1ABPTGoehfyqwcL4F
AO3Q==;
darn=gnusha.org
ARC-Authentication-Results: i=2; gmr-mx.google.com;
dkim=pass header.i=@mattcorallo.com header.s=1731426063 header.b=D45N5wnF;
dkim=pass header.i=@clients.mail.as397444.net header.s=1731426065 header.b=dyZXsb1l;
spf=pass (google.com: domain of lf-lists@mattcorallo.com designates 69.59.18.99 as permitted sender) smtp.mailfrom=lf-lists@mattcorallo.com;
dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=mattcorallo.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=googlegroups.com; s=20230601; t=1731430966; x=1732035766; darn=gnusha.org;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:x-original-authentication-results
:x-original-sender:in-reply-to:content-language:references:to:from
:subject:mime-version:date:message-id:sender:from:to:cc:subject:date
:message-id:reply-to;
bh=oCYeH6jIbDc0NFbNMpFLdrcNLvqDXR9GsFMpunh7TmI=;
b=BXfL0kblrEB8kzbhi7ZKumc8o3FDSgrleAVWk9RHTWiauQq3QyICSymkkxxLBu7gy7
4wZdwNG0JAlYY8AD/bKfTbE3z3jlUe/E0JIIcW/93vwU4QvKSpB30KNt52KYTAuTt3vn
096jz2NAZH++/ztBiwPAj6rcZpIyIvpojP6UZ/R9U/P3J8aDskmBWEdaUR5AMt6atfJq
In9V0K4iaCcqwlntct+lOrBd/yETDhpOTOQyIVYDos2LprBpsXtm1S7v95ItRQpRl672
1EMkLMu0o9Ff5/GRkSv4RcNJMZOCo2ITBoJKrVKJBtD57czesld91At+TOSzTipIcMWZ
ZokQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1731430966; x=1732035766;
h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post
:list-id:mailing-list:precedence:x-original-authentication-results
:x-original-sender:in-reply-to:content-language:references:to:from
:subject:mime-version:date:message-id:x-beenthere:x-gm-message-state
:sender:from:to:cc:subject:date:message-id:reply-to;
bh=oCYeH6jIbDc0NFbNMpFLdrcNLvqDXR9GsFMpunh7TmI=;
b=TNAEEK1i3YH79L4EHK6EVj9YWNyBwgFIwGlFsuAVhYMZfpO7kX3mJTEO/sEU+EMkxr
s3usS5catHYNxEXmrB+766vka6+aRNkXGkGuozHmPVJ2LiUF1hfDDiiQUmOvFSSQlWiM
my8koikJYCy4lwJL7Si2FrLYdCHgRT2Ig11t/t2LNBWSaGZZQW+GGfWGtSamujB5WPjq
gldbWhFZcP3tquQGKfZ4IZUZ57WEojL2Kqei/lriEaKBFv1QxjF0fZYGOUW8HZsqkKkB
uCfmbUFbkFolBi/JInpfMOMh3eWdh0m+srK/+uoJ0hWnS1Tj/xX6Ey4ZH3Kqa/ySQOn9
zpHw==
Sender: bitcoindev@googlegroups.com
X-Forwarded-Encrypted: i=2; AJvYcCWxH+8Lg06+bN7v51boSIpZe9Qa9qaOJCN9/NWGL1v03Z0N9S9EKVm72louH5sqMlbDXCGV2VNEgWo2@gnusha.org
X-Gm-Message-State: AOJu0YxiKHEWzRh1EM+WJnI4fauB+b0WKee5+ZUnmykxHWql9ayZOQnL
vT8Q55g7BAajNWEsmNW/Iuf9YMDey3WxCsB62AF/DbzwIJn8gUQZ
X-Google-Smtp-Source: AGHT+IGG1LajTi24gZSPwh5b1cJGyc84DbsPzWITWrAJvCDctqXx07xQNXjT1lQ9LLtxe6n8BdDleQ==
X-Received: by 2002:a05:622a:1a1b:b0:461:253e:c77b with SMTP id d75a77b69052e-46309382c52mr220523791cf.33.1731430965797;
Tue, 12 Nov 2024 09:02:45 -0800 (PST)
X-BeenThere: bitcoindev@googlegroups.com
Received: by 2002:a05:622a:2303:b0:462:c59c:a884 with SMTP id
d75a77b69052e-462fb3470aals81902021cf.2.-pod-prod-02-us; Tue, 12 Nov 2024
09:02:42 -0800 (PST)
X-Received: by 2002:a05:620a:24d5:b0:7b1:527f:cf4d with SMTP id af79cd13be357-7b331e5f189mr2532210785a.53.1731430962853;
Tue, 12 Nov 2024 09:02:42 -0800 (PST)
Received: by 2002:a05:620a:4ce:b0:7a1:c409:aa2c with SMTP id af79cd13be357-7b34c3c38a6ms85a;
Tue, 12 Nov 2024 08:07:08 -0800 (PST)
X-Received: by 2002:a05:6122:2515:b0:50d:2317:5b61 with SMTP id 71dfb90a1353d-51401bada42mr16054505e0c.6.1731427626830;
Tue, 12 Nov 2024 08:07:06 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1731427626; cv=none;
d=google.com; s=arc-20240605;
b=hSuRh12WWzVYsxGoWoJeMKjkCsbZTmR82/Qe04iLiDwdIGbQ3KTSCvkYcLZ5pQHX/i
g2HhEZzYe4tIhc4UVey53yarBQ6Gl2t8VN9Rf48WCxcilnpOXi5j9TlzeSOGnIh8fguP
k6erS3UrcXnn23zBRmKpJTcSguhnliECyAxM2SOPTDfNOnnhQ1fSdtxYbsnxGwaTO+4X
qbwqMEWIRUcv5ODe6me/CiCrlJpxc/ILQBlMgjQIxGGodQ1DE5+cBbjbg3VQR2pIFP9o
pRwHQgZ75rc1x+SlPUI1nxS/K27cy9fi5BPzF0cnBXAJSUTqAAo3z4YV8VNECnF5tyn7
B6ZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
h=content-transfer-encoding:in-reply-to:content-language:references
:to:from:subject:mime-version:date:message-id:dkim-signature
:dkim-signature;
bh=qNIeiOA+vApGgZqZm8HvhabTbx2iVM2DLNMeOrsYnYI=;
fh=DMP0F9ULS1guKiqimntQRCN8ZraraesEgQuVcn7F0Z0=;
b=EV8l57K7tNiX0hOMOJPxq2/n2uNpyn5Cr6iMwfUos6JFIYAns3LB3I9Rsf2B5SPB+L
5Fl//1fyURUhR177s4FdLySy7xWMJ1cZoJqWyubSRL6avfQSuH4rXdEnWUvSs4e3ZDl6
0/ACLnm+ugRKVaPLllNiDZC1dyYZh9B3Gwdzmsy5NJDuNPhinYgCoOVtzM+PSytcYIf6
kPKUifQ2sW6xBsww+0rXIow93+wV912FK/jAk1jU+EBauuUUZfz8a7/AYvpcHisWBGt/
s5tzKowOWElvTlp9HFvg3bgYW3OOByFz+7NpGsYtxm+bKhYHDUu5sxYHW9s6DEXDJCFI
00sw==;
dara=google.com
ARC-Authentication-Results: i=1; gmr-mx.google.com;
dkim=pass header.i=@mattcorallo.com header.s=1731426063 header.b=D45N5wnF;
dkim=pass header.i=@clients.mail.as397444.net header.s=1731426065 header.b=dyZXsb1l;
spf=pass (google.com: domain of lf-lists@mattcorallo.com designates 69.59.18.99 as permitted sender) smtp.mailfrom=lf-lists@mattcorallo.com;
dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=mattcorallo.com
Received: from mail.as397444.net (mail.as397444.net. [69.59.18.99])
by gmr-mx.google.com with ESMTPS id 71dfb90a1353d-513f30465ccsi798551e0c.0.2024.11.12.08.07.06
for <bitcoindev@googlegroups.com>
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Tue, 12 Nov 2024 08:07:06 -0800 (PST)
Received-SPF: pass (google.com: domain of lf-lists@mattcorallo.com designates 69.59.18.99 as permitted sender) client-ip=69.59.18.99;
X-DKIM-Note: Keys used to sign are likely public at
X-DKIM-Note: https://as397444.net/dkim/mattcorallo.com and
X-DKIM-Note: https://as397444.net/dkim/clients.mail.as397444.net
X-DKIM-Note: For more info, see https://as397444.net/dkim/
Received: by mail.as397444.net with esmtpsa (TLS1.3) (Exim)
(envelope-from <lf-lists@mattcorallo.com>)
id 1tAtQ1-00192i-1O for bitcoindev@googlegroups.com;
Tue, 12 Nov 2024 16:07:05 +0000
Message-ID: <a59ef220-b886-47e8-a279-5d3563f17423@mattcorallo.com>
Date: Tue, 12 Nov 2024 11:07:04 -0500
MIME-Version: 1.0
Subject: Re: [bitcoindev] BIP 21 Updates
From: Matt Corallo <lf-lists@mattcorallo.com>
To: Bitcoin Development Mailing List <bitcoindev@googlegroups.com>
References: <93c14d4f-10f3-48af-9756-7e39d61ba3d4@mattcorallo.com>
Content-Language: en-US
In-Reply-To: <93c14d4f-10f3-48af-9756-7e39d61ba3d4@mattcorallo.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
X-Original-Sender: lf-lists@mattcorallo.com
X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass
header.i=@mattcorallo.com header.s=1731426063 header.b=D45N5wnF;
dkim=pass header.i=@clients.mail.as397444.net header.s=1731426065
header.b=dyZXsb1l; spf=pass (google.com: domain of lf-lists@mattcorallo.com
designates 69.59.18.99 as permitted sender) smtp.mailfrom=lf-lists@mattcorallo.com;
dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=mattcorallo.com
Precedence: list
Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com
List-ID: <bitcoindev.googlegroups.com>
X-Google-Group-Id: 786775582512
List-Post: <https://groups.google.com/group/bitcoindev/post>, <mailto:bitcoindev@googlegroups.com>
List-Help: <https://groups.google.com/support/>, <mailto:bitcoindev+help@googlegroups.com>
List-Archive: <https://groups.google.com/group/bitcoindev
List-Subscribe: <https://groups.google.com/group/bitcoindev/subscribe>, <mailto:bitcoindev+subscribe@googlegroups.com>
List-Unsubscribe: <mailto:googlegroups-manage+786775582512+unsubscribe@googlegroups.com>,
<https://groups.google.com/group/bitcoindev/subscribe>
X-Spam-Score: -0.8 (/)
Quick update on this. There was various pushback on the idea of updating a "Final" BIP, so instead
this is gonna be a new BIP.
Since its a new BIP we have the opportunity to add a bit more, so I went ahead and added a "payment
info callback" parameter. Like the original proposed change this doesn't impact any existing
wallets, but it does provide a new (important) feature for some use-cases, especially things like
nostr zaps. The same PR is still where the new BIP lives, and there's examples and rationale, but to
higlight the new (normative) section, it is included below:
=== Proof of Payment ===
The URI MAY include a "pop" (or "req-pop") parameter whose value can be used to build a URI which
the wallet application can, after payment completes, "open" to provide proof the payment was
completed or other information about the payment.
The value of a "pop" (or "req-pop") parameter shall be a percent-encoded (per RFC 3986 section 2.1)
URI prefix. The wallet application, if it supports providing payment information SHOULD
percent-decode the provided URI once, append the query parameter key from which the payment
instructions used were read, append a single =, and finally append the Payment Information to the
resulting URI and open it with the default system handler for the URI. For payment instructions read
from the body of the URI, "onchain" SHALL be used in place of the key.
A wallet MUST validate that the provided URI's scheme is not (case-insensitive) "http", "https",
"file", "javascript", "mailto" or any other scheme which will open in a web browser prior to opening it.
If a wallet will not open the pop scheme (either because it does not support returning payment
information for the selected payment method or because it uses a URI scheme which should not be
opened) and the parameter was passed as a "req-pop" parameter, the wallet MUST NOT initiate payment.
For payments made using an on-chain transaction, the Payment Information shall be the full
(including witness data) Bitcoin transaction as it was broadcasted to the Bitcoin network, encoded
in hex.
For payments made using a BOLT 11 invoice (communicated via the `lightning` parameter), the Payment
Information shall be the hex-encoded payment preimage.
Other payment schemes will define their own Payment Information format. This BIP may be updated from
time to time with Payment Information formats for other payment schemes.
On 5/30/24 5:54 PM, Matt Corallo wrote:
> It was recently pointed out at [1] that BIP 21 mandates only base58 adresses, and doesn't allow for
> segwit or taproot addresses in the body of the URI. This is obviously somewhat nonsensical as nearly
> every wallet supporting BIP 21 today handles Segwit (and many even Taproot) just fine in that
> position today.
>
> Further, nearly every BIP 21-handling lightning wallet today also supports decoding lightning
> payment instructions in the query parameters. With Silent Payments and BOLT 12 starting to get
> adoption and BIP 21 being the obvious place to put extra payment instructions with an (optional) on-
> chain fallback, there needs to be a standard way to decide which query parameter describes which
> payment instruction, and BIP 21 should document this in-practice usage.
>
> Further, as future payment schemes (and existing ones like Silent Payments) may wish to not have the
> standard on-chain fallback, I'm also proposing the body of the URI be made optional.
>
> None of these changes impact any existing wallets, as wallets already support bech32 and bech32m
> addresses, new query parameters are ignored by any existing spec-compliant wallet, and a BIP 21 URI
> with no body would only exist to provide a URI *without* a fallback for existing wallets, which
> would correctly reject them as invalid.
>
> Thus, I'm proposing a change to (the already "Final") BIP 21. The relatively minimal change set is
> available at https://github.com/bitcoin/bips/pull/1555 but I'm open to discussion on it here as well.
>
> [1] https://github.com/bitcoin/bips/pull/1394
>
--
You received this message because you are subscribed to the Google Groups "Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bitcoindev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/a59ef220-b886-47e8-a279-5d3563f17423%40mattcorallo.com.
|