Re: The (not so) great base-encoding debate of 2020 (was: Re: Question on use of base64 vs base64url in modern specifications)

On Mon, Apr 27, 2020 at 9:27 PM Manu Sporny <msporny@digitalbazaar.com>
wrote:

> So, the priorities that I've heard most often are:
>
> 1. Ease of copy/paste for developers.
> 2. Encodes directly as a file on a file system.
> 3. Size efficiency.
> 4. Human readability.
>
> Is this an esoteric discussion? Absolutely... but it goes to the heart
> of why developers feel strongly about this particular choice. They live
> and breath how this stuff is encoded and it has a direct impact on their
> productivity and the correctness of the programs that they write and run.
>

We've made some good progress on a methodology for encoding large bitcoin
transactions for airgapped communication between a secure offline device
(aka offline wallet) and a networked device that communities with the
blockchain (aka network wallet).

In summary, we are leveraging very simple CBOR for the binary encoding,
something close to bech32 with its benefits for the ASCII safe encoding,
but is also QR code optimized, URL friendly, and is double-clickable, and
the final result being 20% more efficient (in QR codes) than base65URL is
for random data. We are taking advantage of the fact that the QR standard
has special handling and compression of uppercase alphanumeric values.


https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-0005-ur.md

The big open question now is the best method for doing some form of
fountain code for redundancy and reliability in animated QRs. Qualcomm has
some nasty patents in the fountain code territory that we'll need to avoid,
but we think it is feasible. Discussion on that topic is in issue:

    https://github.com/BlockchainCommons/AirgappedSigning/issues/4

We understand that Dave Longley of Digital Bazaar did some research on this
in their qram proposal — we'd like to do something similar but not at the
binary level like qram does, and would love Digital Bazaars input.

There are a number of prospective DID/VC use cases and protocols that
exceed the practical limits of QR codes that might find these
specifications useful. Even those these emerging specifications are
currently for bitcoin wallets, we welcome your commentary and/or
contributions!

— Christopher Allen

Received on Friday, 8 May 2020 08:05:21 UTC