Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id C47F1A5E for ; 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 ; Wed, 5 Jun 2019 14:26:16 +0000 (UTC) Received: by mail-vs1-f54.google.com with SMTP id m8so6715744vsj.0 for ; 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 Date: Wed, 5 Jun 2019 09:24:29 -0500 Message-ID: To: Bitcoin Dev 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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 Date: Wed, Jun 5, 2019 at 9:13 AM Subject: [ots-dev] miniOTS: ots proofs that fit in a tweet To: 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


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

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

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


base58 before:

12j6JNmon36jC1MMcpvC8nHqg5p8DAT2mmPQ5aLaBmAbk8naEVt8HFVohRqkuMXZF2Wo2n9kv 5ByeL17yUww4NHuFyCT6PXsGxRuEZ12Z33gsLbXL5FuFmnvMLd3tzf76n69J7qxLPxmoAgm1z 9NEMi2MRypDNKy1GypGN5NLwerzy1nU5g5dZxV6TZ5rBs4gYqnMNJn9VMkfKeDSZ9M8aoMWrL ShokXUpnS1qrqkTvTwyKMx17fhKfcP9FyhNkb81t8dwYLtBsN4QuP9UAktMUvjEoBzHt

base58 after:

6gQjQUehytgUevKLRtAFYbC6UJX72LCDgVWxAUPsCt3tqEVTEQfmUB1T1Y1GTyY8sugiPY97K gWRPPXYJmH3J5jqVtyNLrzdkySM6VAYDVckya9BxbUbFB8Gs4U3LHEauTmgCPEhGhiRdC3eFW 63SwfAvKB8Q8Ku8ZM9uASCwWZ8K2AoVabuAn


You can check it out here:

=C2=A0 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:87= 8t1fzn0v.fsf@jb55.com
[2] https://twitter.com/jb55/status/1136260220521= 336832


--
- Bryan
http://heybryan.org/
1 512 203 0= 507
--0000000000004a9cef058a9461c0--