BOLT11
LN invoice
The Lightning Invoice
bolts/11-payment-encoding.md at master · lightning/bolts
lnbook/15_payment_requests.asciidoc at develop · lnbook/lnbook
prefix + amount + bach32(timestamp + data + signature)
data
bolts/11-payment-encoding.md at master · lightning/bolts
bolts/11 example
pp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypq
p は payment hash の flag
5bit
2^5=32
つまり bech32 での一桁
p5 が長さ(どちらも bech32) で考える
p=1
5=20
つまり 32*1 + 20= 52
p は bech32 での32 の位なので 1*32
data_length
bech32 にすると2桁
つまり 10bits で表現する
data を bech32 変換した後の長を示している
data size = data_length * 5bit
5bit = bech32 1桁は 32(2**5bit)
したがって、data の max size は
bech32 1023文字分
1023=31*32+31
1023*5bit/8bit=639byte
bolts/11-payment-encoding.md at master · lightning/bolts
日本語の多くは 3byte なので 213 文字まで
pubkey
n
含まなくてもよい
lightning network - What is "signature recovery"? - Bitcoin Stack Exchange
key recovery について
ecdsa - How to determine first byte (recovery ID) for signatures (message signing)? - Bitcoin Stack Exchange
transactions - During ECDSA signing, how do I generate the Recovery ID? - Ethereum Stack Exchange
route hint
r
route hint が含まれる invoice のサンプル
bolts/11-payment-encoding.md at master · lightning/bolts
feature bit
9
fallback onchain address
f
description
d
max lenght
仕様では決まっていない?data_lenght で指定できる長さまで?
LND は長すぎるとエラーになるらしいが、、、