Hello List,
The reason why we use bech32 for invoice addresses and raw hex encoded pubkeys
and has long puzzled me. Let's take a sample testnet invoice
>>> "lntb20m1pvjluezhp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqfpp3x9et2e20v6pu37c5d9vax37wxq72un98kmzzhznpurw9sgl2v0nklu2g4d0keph5t7tj9tcqd8rexnd07ux4uv2cjvcqwaxgj7v4uwn5wmypjd5n69z2xm3xgksg28nwht7f6zspwp3f9t"
<<<
of length 271 from the BOLT 11 RFC for consideration. While the bech32 format
has its advantages being base 32, easy to read out over phone and stuff like
that, I wonder if it is optimised for this specific use case since BIP-173
states
>>>
The specific code chosen here is the result of:
1. Starting with an exhaustive list of 159605 BCH codes designed to detect 3 or
4 errors up to length 93, 151, 165, 341, 1023, and 1057.
2. From those, requiring the detection of 4 errors up to length 71, resulting
in 28825 remaining codes.
<<<
(what's important here is the second part on lengths)
Now, I am no expert on error encoding formats, but I think that bech32 is under
optimised for invoices (whose lengths are greater than 71). Related to this, is
there a reason why we use hex encoded pubkeys in lightning? Unless I'm missing
something, I think bech32 is better to use in this context. Please correct me
if I'm wrong.
Have a nice day,
Varunram
_______________________________________________
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev