Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to Base64 encoding for the consignments #10

Closed
dr-orlovsky opened this issue Nov 16, 2022 · 1 comment
Closed

Switch to Base64 encoding for the consignments #10

dr-orlovsky opened this issue Nov 16, 2022 · 1 comment
Assignees
Milestone

Comments

@dr-orlovsky
Copy link
Member

dr-orlovsky commented Nov 16, 2022

Consignments currently use Bech32m encoding for ASCII armoring.

The main features of Bech32 is reduction of probability of typing mistakes. This is achieved by:

  • use of only non-delimiter characters (helps selecting text with a single click);
  • avoiding visually-ambiguous characters;
  • checksums (works up to 512 bytes, otherwise have restricted use)

All these features make sense only for short data, which can be read in voice and typed by hand. Even small RGB contract genesis doesn't fit that limit and they would not be transferred in voice.

However, Bech32 makes sense only for short data, while the cost of Bech32 features is the increase of the textual representation (twice longer than in Base64).

Thus, it is advisable to switch to Base64 as the most short representation, which is already used in similar cases (for instance, PSBTs).

To differentiate from PSBT it is advised to start using ASCII armoring like it is used in PGP/GPG. A 120-bit checksum should also be added to the standard.

Depends on upstream: LNP-BP/rust-lnpbp#224

@dr-orlovsky
Copy link
Member Author

Completed with addition of Bindles

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant