summaryrefslogtreecommitdiff
path: root/4f/6cacdf7efa2fa3db856c500c8fa0336d7402ba
blob: a126f7c3eda9eff428a79cd6c825b449b9e377e1 (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
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
Return-Path: <kanzure@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id C47F1A5E
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed,  5 Jun 2019 14:26:17 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-vs1-f54.google.com (mail-vs1-f54.google.com
	[209.85.217.54])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id D8FD64C3
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed,  5 Jun 2019 14:26:16 +0000 (UTC)
Received: by mail-vs1-f54.google.com with SMTP id m8so6715744vsj.0
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 05 Jun 2019 07:26:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
	h=mime-version:references:in-reply-to:from:date:message-id:subject:to; 
	bh=BsIe7dokFCJC2W1GMnp3eQ8CMkVIVIPYI1Q94r2CARQ=;
	b=S83Btg2jBreurcSt5OkhSW6I0v5WnBNGu/LT8fU3AZQtW4fUIIzHXH2g/+DiWD+Tqd
	oEtIZqxhjeY4XzssUmSO/UBVDkzE7dmF6VQciaMdNYyCLjx2k1nX5G4skeQbfdPQTTrI
	J0PmShUPCODXZyxFwka8eTWD1HY8PQaDS6o/ewWQShroOoEuhqRKK9/91+rs9GF1JZ6T
	t50YjBeSFDSJI2tGSibq6Nlmcd0oJPj/W6DLUkqi74lFaVzQMEbe+L81PpikfgFoyhWl
	qcEmAnQ8PcQ7gmZLwfhjQ2+YEEq1SXShXRx+TczdO/A2ADTJfCN6rIqW/1EOKJyKlCZW
	KQuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20161025;
	h=x-gm-message-state:mime-version:references:in-reply-to:from:date
	:message-id:subject:to;
	bh=BsIe7dokFCJC2W1GMnp3eQ8CMkVIVIPYI1Q94r2CARQ=;
	b=elPBJekL0k0Xnnp3vYMvpe9OPdTnhsR0+LpCpiV0fHwaaUTWdCEoJDQnLmP1Yx0EeI
	sPa1WNraoc6MmZ5eMeU2Qn6QhWllekqw5ltCPbZDFm0vCNJ9x2YUGJDnU8TZE2CCLO7W
	2lUJ5GytKC3OxJUs9vLQJiXzYeBrdAUxRgVeDgflz2rQRG/w2M/yUv8lJt2TC9d2MFL1
	3je4qylTiyucpby5MX5MtNqkWCZNNc8Bq2rAaIJPoRtMdAAQS0dRHcNSSrLpAoN5zSbI
	zNNdU/gYlNxBdpUpP7vp2536Epg6WMJZJjmxyRK/qsKicEIoMbluUZwsZVFMdTYtMg2o
	U3nA==
X-Gm-Message-State: APjAAAWCuRiQdO+Z0AcE2r0lmXlzFt95hCZl3sXTSNoAjZ/yH0pgqz/J
	xFm8Y82OAUtC1nJvdT0QlzT7d5YULIuK2DqdEslh6WXV
X-Google-Smtp-Source: APXvYqxJTfOadmmN3GjFSSQREaH9zN8uEWwm0+/ft6iUyB3OcHYlLA6GCARVi1iMUa7Ov4l9Bd7V8vmVkBjVUutlRCI=
X-Received: by 2002:a67:8901:: with SMTP id l1mr973741vsd.3.1559744775623;
	Wed, 05 Jun 2019 07:26:15 -0700 (PDT)
MIME-Version: 1.0
References: <8736konncj.fsf@jb55.com>
In-Reply-To: <8736konncj.fsf@jb55.com>
From: Bryan Bishop <kanzure@gmail.com>
Date: Wed, 5 Jun 2019 09:24:29 -0500
Message-ID: <CABaSBawj6Su1i0F0-fL4Q1O+wU5rnC41qCno7BF3M2nVFMnVRw@mail.gmail.com>
To: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary="0000000000004a9cef058a9461c0"
X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE,
	RCVD_IN_DNSWL_NONE autolearn=ham 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, 05 Jun 2019 14:26:28 +0000
Subject: [bitcoin-dev] Fwd: [ots-dev] miniOTS: ots proofs that fit in a tweet
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, 05 Jun 2019 14:26:17 -0000

--0000000000004a9cef058a9461c0
Content-Type: text/plain; charset="UTF-8"

---------- Forwarded message ---------
From: William Casarin <jb55@jb55.com>
Date: Wed, Jun 5, 2019 at 9:13 AM
Subject: [ots-dev] miniOTS: ots proofs that fit in a tweet
To: <ots-dev@lists.opentimestamps.org>



Hello OTS people,

Following from my previous post about cleartext OTS proof sharing[1],
I've been working on a new OTS format called miniOTS, which is
minimal/compressed format that allows attestations to fit in a tweet[2]
and for other space constrained contexts.

Just stripping out additional attestations in the standard format only
gets it down to just above ~280 bytes when base58 encoded, which is too
much for a tweet, so I decided to roll a custom format that is a bit
more efficient with attestation and op tags.

The goal was to have small enoughs proofs that I could reply to a tweet
with the stamp of the previous message, instead of relying on external
sites such as @otsproofbot


Current format (210 bytes, 288 bytes base58-encoded):

00000000: 004f 7065 6e54 696d 6573 7461 6d70 7300  .OpenTimestamps.
00000010: 0050 726f 6f66 00bf 89e2 e884 e892 9401  .Proof..........
00000020: 08cb 2d4a f572 8d44 a5b0 7c7b f1ff 78a9  ..-J.r.D..|{..x.
00000030: 1818 7270 13f1 9bbd f4b0 344b 9e93 0c6b  ..rp......4K...k
00000040: 39f0 1020 34fe cad9 edef bab0 3420 e4ee  9.. 4.......4 ..
00000050: d3a7 c608 fff0 107c 31f7 da6c dbf2 3271  .......|1..l..2q
00000060: 904c c5dd f58d eb08 f120 e4f7 3eaf a747  .L....... ..>..G
00000070: 324a f096 1aa0 928d e1c1 91bf 3c38 237d  2J..........<8#}
00000080: d412 c1c0 e94c d4ae 3f76 08f1 045c 4cb3  .....L..?v...\L.
00000090: a4f0 08f7 834d 4b14 68fd 41ff 0083 dfe3  .....MK.h.A.....
000000a0: 0d2e f90c 8e2c 2b68 7474 7073 3a2f 2f62  .....,+https://b
000000b0: 6f62 2e62 7463 2e63 616c 656e 6461 722e  ob.btc.calendar.
000000c0: 6f70 656e 7469 6d65 7374 616d 7073 2e6f  opentimestamps.o
000000d0: 7267                                     rg

miniOTS format (133 bytes, 183 bytes base58-encoded):

00000000: 6f74 7301 8a20 34fe cad9 edef bab0 3420  ots.. 4.......4
00000010: e4ee d3a7 c683 8a7c 31f7 da6c dbf2 3271  .......|1..l..2q
00000020: 904c c5dd f58d eb83 8be4 f73e afa7 4732  .L.........>..G2
00000030: 4af0 961a a092 8de1 c191 bf3c 3823 7dd4  J..........<8#}.
00000040: 12c1 c0e9 4cd4 ae3f 7683 8b5c 4cb3 a48a  ....L..?v..\L...
00000050: f783 4d4b 1468 fd41 9a2b 6874 7470 733a  ..MK.h.A.+https:
00000060: 2f2f 626f 622e 6274 632e 6361 6c65 6e64  //bob.btc.calend
00000070: 6172 2e6f 7065 6e74 696d 6573 7461 6d70  ar.opentimestamp
00000080: 732e 6f72 67                             s.org


base58 before:

12j6JNmon36jC1MMcpvC8nHqg5p8DAT2mmPQ5aLaBmAbk8naEVt8HFVohRqkuMXZF2Wo2n9kv
5ByeL17yUww4NHuFyCT6PXsGxRuEZ12Z33gsLbXL5FuFmnvMLd3tzf76n69J7qxLPxmoAgm1z
9NEMi2MRypDNKy1GypGN5NLwerzy1nU5g5dZxV6TZ5rBs4gYqnMNJn9VMkfKeDSZ9M8aoMWrL
ShokXUpnS1qrqkTvTwyKMx17fhKfcP9FyhNkb81t8dwYLtBsN4QuP9UAktMUvjEoBzHt

base58 after:

6gQjQUehytgUevKLRtAFYbC6UJX72LCDgVWxAUPsCt3tqEVTEQfmUB1T1Y1GTyY8sugiPY97K
gWRPPXYJmH3J5jqVtyNLrzdkySM6VAYDVckya9BxbUbFB8Gs4U3LHEauTmgCPEhGhiRdC3eFW
63SwfAvKB8Q8Ku8ZM9uASCwWZ8K2AoVabuAn


You can check it out here:

  git clone https://git.sr.ht/~jb55/ots-tool

This is still a work in progress, I haven't built the miniOTS -> OTS
decoder yet.

make
./otsmini file.ots


Cheers,
Will


[1] id:878t1fzn0v.fsf@jb55.com
[2] https://twitter.com/jb55/status/1136260220521336832


-- 
- Bryan
http://heybryan.org/
1 512 203 0507

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

<div dir=3D"ltr"><br><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">---------- Forwarded message ---------<br>From: <strong cla=
ss=3D"gmail_sendername" dir=3D"auto">William Casarin</strong> <span dir=3D"=
ltr">&lt;<a href=3D"mailto:jb55@jb55.com">jb55@jb55.com</a>&gt;</span><br>D=
ate: Wed, Jun 5, 2019 at 9:13 AM<br>Subject: [ots-dev] miniOTS: ots proofs =
that fit in a tweet<br>To:  &lt;<a href=3D"mailto:ots-dev@lists.opentimesta=
mps.org">ots-dev@lists.opentimestamps.org</a>&gt;<br></div><br><br><br>
Hello OTS people,<br>
<br>
Following from my previous post about cleartext OTS proof sharing[1],<br>
I&#39;ve been working on a new OTS format called miniOTS, which is<br>
minimal/compressed format that allows attestations to fit in a tweet[2]<br>
and for other space constrained contexts.<br>
<br>
Just stripping out additional attestations in the standard format only<br>
gets it down to just above ~280 bytes when base58 encoded, which is too<br>
much for a tweet, so I decided to roll a custom format that is a bit<br>
more efficient with attestation and op tags.<br>
<br>
The goal was to have small enoughs proofs that I could reply to a tweet<br>
with the stamp of the previous message, instead of relying on external<br>
sites such as @otsproofbot<br>
<br>
<br>
Current format (210 bytes, 288 bytes base58-encoded):<br>
<br>
00000000: 004f 7065 6e54 696d 6573 7461 6d70 7300=C2=A0 .OpenTimestamps.<br=
>
00000010: 0050 726f 6f66 00bf 89e2 e884 e892 9401=C2=A0 .Proof..........<br=
>
00000020: 08cb 2d4a f572 8d44 a5b0 7c7b f1ff 78a9=C2=A0 ..-J.r.D..|{..x.<br=
>
00000030: 1818 7270 13f1 9bbd f4b0 344b 9e93 0c6b=C2=A0 ..rp......4K...k<br=
>
00000040: 39f0 1020 34fe cad9 edef bab0 3420 e4ee=C2=A0 9.. 4.......4 ..<br=
>
00000050: d3a7 c608 fff0 107c 31f7 da6c dbf2 3271=C2=A0 .......|1..l..2q<br=
>
00000060: 904c c5dd f58d eb08 f120 e4f7 3eaf a747=C2=A0 .L....... ..&gt;..G=
<br>
00000070: 324a f096 1aa0 928d e1c1 91bf 3c38 237d=C2=A0 2J..........&lt;8#}=
<br>
00000080: d412 c1c0 e94c d4ae 3f76 08f1 045c 4cb3=C2=A0 .....L..?v...\L.<br=
>
00000090: a4f0 08f7 834d 4b14 68fd 41ff 0083 dfe3=C2=A0 .....MK.h.A.....<br=
>
000000a0: 0d2e f90c 8e2c 2b68 7474 7073 3a2f 2f62=C2=A0 .....,+<a href=3D"h=
ttps://b" rel=3D"noreferrer" target=3D"_blank">https://b</a><br>
000000b0: 6f62 2e62 7463 2e63 616c 656e 6461 722e=C2=A0 ob.btc.calendar.<br=
>
000000c0: 6f70 656e 7469 6d65 7374 616d 7073 2e6f=C2=A0 opentimestamps.o<br=
>
000000d0: 7267=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0rg=
<br>
<br>
miniOTS format (133 bytes, 183 bytes base58-encoded):<br>
<br>
00000000: 6f74 7301 8a20 34fe cad9 edef bab0 3420=C2=A0 ots.. 4.......4 <br=
>
00000010: e4ee d3a7 c683 8a7c 31f7 da6c dbf2 3271=C2=A0 .......|1..l..2q<br=
>
00000020: 904c c5dd f58d eb83 8be4 f73e afa7 4732=C2=A0 .L.........&gt;..G2=
<br>
00000030: 4af0 961a a092 8de1 c191 bf3c 3823 7dd4=C2=A0 J..........&lt;8#}.=
<br>
00000040: 12c1 c0e9 4cd4 ae3f 7683 8b5c 4cb3 a48a=C2=A0 ....L..?v..\L...<br=
>
00000050: f783 4d4b 1468 fd41 9a2b 6874 7470 733a=C2=A0 ..MK.h.A.+https:<br=
>
00000060: 2f2f 626f 622e 6274 632e 6361 6c65 6e64=C2=A0 //bob.btc.calend<br=
>
00000070: 6172 2e6f 7065 6e74 696d 6573 7461 6d70=C2=A0 ar.opentimestamp<br=
>
00000080: 732e 6f72 67=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"http://s.org=
" rel=3D"noreferrer" target=3D"_blank">s.org</a><br>
<br>
<br>
base58 before:<br>
<br>
12j6JNmon36jC1MMcpvC8nHqg5p8DAT2mmPQ5aLaBmAbk8naEVt8HFVohRqkuMXZF2Wo2n9kv<b=
r>
5ByeL17yUww4NHuFyCT6PXsGxRuEZ12Z33gsLbXL5FuFmnvMLd3tzf76n69J7qxLPxmoAgm1z<b=
r>
9NEMi2MRypDNKy1GypGN5NLwerzy1nU5g5dZxV6TZ5rBs4gYqnMNJn9VMkfKeDSZ9M8aoMWrL<b=
r>
ShokXUpnS1qrqkTvTwyKMx17fhKfcP9FyhNkb81t8dwYLtBsN4QuP9UAktMUvjEoBzHt<br>
<br>
base58 after:<br>
<br>
6gQjQUehytgUevKLRtAFYbC6UJX72LCDgVWxAUPsCt3tqEVTEQfmUB1T1Y1GTyY8sugiPY97K<b=
r>
gWRPPXYJmH3J5jqVtyNLrzdkySM6VAYDVckya9BxbUbFB8Gs4U3LHEauTmgCPEhGhiRdC3eFW<b=
r>
63SwfAvKB8Q8Ku8ZM9uASCwWZ8K2AoVabuAn<br>
<br>
<br>
You can check it out here:<br>
<br>
=C2=A0 git clone <a href=3D"https://git.sr.ht/~jb55/ots-tool" rel=3D"norefe=
rrer" target=3D"_blank">https://git.sr.ht/~jb55/ots-tool</a><br>
<br>
This is still a work in progress, I haven&#39;t built the miniOTS -&gt; OTS=
<br>
decoder yet.<br>
<br>
make<br>
./otsmini file.ots<br>
<br>
<br>
Cheers,<br>
Will<br>
<br>
<br>
[1] <a href=3D"mailto:id%3A878t1fzn0v.fsf@jb55.com" target=3D"_blank">id:87=
8t1fzn0v.fsf@jb55.com</a><br>
[2] <a href=3D"https://twitter.com/jb55/status/1136260220521336832" rel=3D"=
noreferrer" target=3D"_blank">https://twitter.com/jb55/status/1136260220521=
336832</a><br>
</div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr" class=3D"gma=
il_signature" data-smartmail=3D"gmail_signature">- Bryan<br><a href=3D"http=
://heybryan.org/" target=3D"_blank">http://heybryan.org/</a><br>1 512 203 0=
507</div></div>

--0000000000004a9cef058a9461c0--