summaryrefslogtreecommitdiff
path: root/4c/0be82060a6298a2878ad6cc42bc5c5800b6c67
blob: 76c61a2556f39373936565f77cd93103c677ccae (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
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
Return-Path: <christophera@gmail.com>
Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])
 by lists.linuxfoundation.org (Postfix) with ESMTP id 03AEDC002D
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Fri,  1 Jul 2022 17:38:12 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by smtp1.osuosl.org (Postfix) with ESMTP id AB95C846DA
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Fri,  1 Jul 2022 17:38:12 +0000 (UTC)
DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org AB95C846DA
Authentication-Results: smtp1.osuosl.org;
 dkim=pass (2048-bit key) header.d=lifewithalacrity-com.20210112.gappssmtp.com
 header.i=@lifewithalacrity-com.20210112.gappssmtp.com header.a=rsa-sha256
 header.s=20210112 header.b=CjHb/d6D
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: 0.001
X-Spam-Level: 
X-Spam-Status: No, score=0.001 tagged_above=-999 required=5
 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001,
 HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001]
 autolearn=no autolearn_force=no
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 cl2ci0Ojshy1
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Fri,  1 Jul 2022 17:38:11 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.8.0
DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 2B56A846D7
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com
 [IPv6:2a00:1450:4864:20::12d])
 by smtp1.osuosl.org (Postfix) with ESMTPS id 2B56A846D7
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Fri,  1 Jul 2022 17:38:11 +0000 (UTC)
Received: by mail-lf1-x12d.google.com with SMTP id j21so5073652lfe.1
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Fri, 01 Jul 2022 10:38:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=lifewithalacrity-com.20210112.gappssmtp.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=F5Ez8fvN0wpG88XnHg4kTYildKzebU2r8SJ3cEsz+ac=;
 b=CjHb/d6DSPLPi0U9oNV5sifZZhG6b9AmQS0D4SaJzjjg8C16f57b6vivvs9xB9lTUU
 1iUfWLvcENo3pLRMXiIHnuEC94drUtVM+pcYnx+7BSu8yly2BV4uVQ5BxtNYDaSXvTaZ
 /BTGpgfMTnOOdNNio5MtkIUO+3Govs3G2lKhBDzx1XLNBh79YWbK50M/f8taNrFIgNfU
 XWi3su+oX/M7U/aah3y88p0trqZD2OdJCI06UpyQovvmmb8GqbuPCbQLUa+wmtXlVmAm
 NEp/n4HbC3Ppu+x56EU92o2nC0UYZpV89+XXuA+9OUbB+B+JdJqx2dwCHNN+XINxYAkc
 JFCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=F5Ez8fvN0wpG88XnHg4kTYildKzebU2r8SJ3cEsz+ac=;
 b=uQMfjlrFAJ5ITx4GK0AHbdfpMnvuDokrOjdqyEA8jJzoWfdusracV3e741+lG2qnNM
 a6APtUlVrAnKvBdDEONA6R4Le6t/ZiU6sfR8yhJUb35GUQJgvizTSDqJS+gcjydwChi0
 ulOB4OHwqwp++/nIoj62BkwxfsdZ7KxKl1Djo0LKqMR46y4BepJgeCQBmFYgwydc1DhE
 TJY4sHxqrbYaEtNX6nZGbVBeWj3ZvXO/Wdpzvg6VtMk4h5g9OY/ZW6nRxZCyS1cf8ybS
 rhpt+eFww94oq6rIbvqFwZYUvVjTK16dSqkr0pYzVQKRTCjrMm4p+YrTEWoWLgc0K7mt
 jWTA==
X-Gm-Message-State: AJIora/l1MQt1mTcFon+mm7ZwJl8B+mFbHCt/OiiWcxTISJGwGDfOw0O
 Ca3GNB1BqplT8bgqw8YF6POblS1RryRNHPSifPY=
X-Google-Smtp-Source: AGRyM1snQ5qH6frMudyxHWp/O26G5InFQt7PJ7G9Y6ONjfJabM9QwWNSUalKhUD2HQs9r2aF6RTvPb2Nap13AbB4e98=
X-Received: by 2002:a05:6512:3d86:b0:47f:9adc:cc27 with SMTP id
 k6-20020a0565123d8600b0047f9adccc27mr9838313lfv.608.1656697088824; Fri, 01
 Jul 2022 10:38:08 -0700 (PDT)
MIME-Version: 1.0
References: <rH1Js_T_UWcAg9lS9NDw_Qb6Js5bgs8rPILej69BjqsEZcJZwsvHhZRilkkOQZRGXabai63hrGgbTP2Yk99ojKEN6fU6HT4TmukiafqiKjo=@protonmail.com>
 <CAHGSxGvfe_quLxrFTPtsHsrtw25h6LiT4m_xrT8aiG-pUf=AYg@mail.gmail.com>
 <ssSz15zsnav_kwhbS29ErU1VEi1DleCTSVuahEbHvAsA7sGWIAJswrai3f51PrO7JH6w8qmN1BdFd5cuNrFt-6NmC-13TI6Q4aayS-DACfs=@protonmail.com>
In-Reply-To: <ssSz15zsnav_kwhbS29ErU1VEi1DleCTSVuahEbHvAsA7sGWIAJswrai3f51PrO7JH6w8qmN1BdFd5cuNrFt-6NmC-13TI6Q4aayS-DACfs=@protonmail.com>
From: Christopher Allen <ChristopherA@lifewithalacrity.com>
Date: Fri, 1 Jul 2022 10:37:57 -0700
Message-ID: <CACrqygB9djLPibhRPoTmN-fDtdSBtBhjOtQTdccJKr=j4P-LfQ@mail.gmail.com>
To: Alfred Hodler <alfred_hodler@protonmail.com>, 
 Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary="0000000000007adb0105e2c1d93d"
X-Mailman-Approved-At: Fri, 01 Jul 2022 18:42:04 +0000
Cc: Wolf McNally <wolf@wolfmcnally.com>
Subject: Re: [bitcoin-dev] [BIP proposal] Private Payments
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: Fri, 01 Jul 2022 17:38:13 -0000

--0000000000007adb0105e2c1d93d
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Jul 1, 2022 at 5:43 AM Alfred Hodler via bitcoin-dev <
bitcoin-dev@lists.linuxfoundation.org> wrote:

> I agree with your proposal to use bech32 instead of base58. It looks soun=
d
> to me and as you said, the standard would benefit from more compact QR
> codes.


The most important thing to get more compact QR codes is to not use
lowercase letters, and certain other characters, as if you can avoid them
the QRs will auto-compress.

It happens that the core of bech32 works if all caps, and you are careful
with the human readable portion.

See
https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-0=
03-uri-binary-compatibility.md
for more details, but a big offender is base64 which not only doesn=E2=80=
=99t
auto-compress but also can trigger binary mode that almost doubled the size
of the QR.

We have a number of standards & libraries focused on bitcoin QRs, including
support of animated QRs for things like PSBTs, but if you care about QR
size you should take a look at the techniques we use our swift library
https://github.com/BlockchainCommons/QRCodeGenerator which are also in
https://www.nayuki.io/page/qr-code-generator-library.

Basically both of these libraries support =E2=80=9Coptimal encoding using s=
egments=E2=80=9D
that if they encounter a set of characters that must be encoded in binary
(In particularly $ % * + / :) that would in most default platform QR
implementations  cause the entire QR to double in size. Instead will only
encode the small segment as binary, letting the rest of the QR leverage
auto-compression.

If your are interested in our other Airgap QR and TorGap UR efforts, see
our video from last year:
https://youtu.be/RYgOFSdUqWY We have much more on the way, including NFC
encrypted Airgap & crypto-request/response flows.

I=E2=80=99d love to see proposals for various payment and invoice QRs that =
leverage
these wallet interoperability standards we have been offering. Let us know
if you are interested, or join discussions at
https://github.com/BlockchainCommons/Airgapped-Wallet-Community

=E2=80=94 Christopher Allen, Blockchain Commons

>

--0000000000007adb0105e2c1d93d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div>On Fri, Jul 1, 2022 at 5:43 AM Alfred Hodler via bitcoin-dev &lt;<a hr=
ef=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.linux=
foundation.org</a>&gt; wrote:<br></div><div><div class=3D"gmail_quote"><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left=
-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(2=
04,204,204)" dir=3D"auto">I agree with your proposal to use bech32 instead =
of base58. It looks sound to me and as you said, the standard would benefit=
 from more compact QR codes.</blockquote><div dir=3D"auto"><br></div><div d=
ir=3D"auto">The most important thing to get more compact QR codes is to not=
 use lowercase letters, and certain other characters, as if you can avoid t=
hem the QRs will auto-compress.</div><div dir=3D"auto"><br></div><div dir=
=3D"auto">It happens that the core of bech32 works if all caps, and you are=
 careful with the human readable portion.</div><div dir=3D"auto"><br></div>=
<div dir=3D"auto"><div dir=3D"auto">See <a href=3D"https://github.com/Block=
chainCommons/Research/blob/master/papers/bcr-2020-003-uri-binary-compatibil=
ity.md">https://github.com/BlockchainCommons/Research/blob/master/papers/bc=
r-2020-003-uri-binary-compatibility.md</a> for more details, but a big offe=
nder is base64 which not only doesn=E2=80=99t auto-compress but also can tr=
igger binary mode that almost doubled the size of the QR.</div><div dir=3D"=
auto"><br></div><div dir=3D"auto">We have a number of standards &amp; libra=
ries focused on bitcoin QRs, including support of animated QRs for things l=
ike PSBTs, but if you care about QR size you should take a look at the tech=
niques we use our swift library=C2=A0<div dir=3D"auto"><a href=3D"https://g=
ithub.com/BlockchainCommons/QRCodeGenerator">https://github.com/BlockchainC=
ommons/QRCodeGenerator</a> which are also in =C2=A0<div dir=3D"auto"><a hre=
f=3D"https://www.nayuki.io/page/qr-code-generator-library">https://www.nayu=
ki.io/page/qr-code-generator-library</a>.=C2=A0</div><div dir=3D"auto"><br>=
</div><div dir=3D"auto">Basically both of these libraries support =E2=80=9C=
optimal encoding using segments=E2=80=9D that if they encounter a set of ch=
aracters that must be encoded in binary (In particularly $ % * + / :) that =
would in most default platform QR implementations =C2=A0cause the entire QR=
 to double in size. Instead will only encode the small segment as binary, l=
etting the rest of the QR leverage auto-compression.</div><div dir=3D"auto"=
><br></div><div dir=3D"auto">If your are interested in our other Airgap QR =
and TorGap UR efforts, see our video from last year:=C2=A0<div><div dir=3D"=
auto"><a href=3D"https://youtu.be/RYgOFSdUqWY">https://youtu.be/RYgOFSdUqWY=
</a> We have much more on the way, including NFC encrypted Airgap &amp; cry=
pto-request/response flows.=C2=A0</div><div dir=3D"auto"><br></div><div dir=
=3D"auto">I=E2=80=99d love to see proposals for various payment and invoice=
 QRs that leverage these wallet interoperability standards we have been off=
ering. Let us know if you are interested, or join discussions at=C2=A0<div>=
<a href=3D"https://github.com/BlockchainCommons/Airgapped-Wallet-Community"=
>https://github.com/BlockchainCommons/Airgapped-Wallet-Community</a></div><=
/div><div dir=3D"auto"><br></div><div dir=3D"auto">=E2=80=94 Christopher Al=
len, Blockchain Commons=C2=A0</div></div></div></div></div></div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width=
:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204=
,204)" dir=3D"auto"></blockquote></div></div>

--0000000000007adb0105e2c1d93d--