BOLT 11:闪电支付发票协议

  • lightning
  • 发布于 2025-06-04 12:57
  • 阅读 17

本文档是关于闪电网络支付请求的发票协议 BOLT 11 的详细规范。它描述了用于请求闪电网络支付的简单、可扩展且适用于 QR 码的协议,包括编码概述、人类可读部分、数据部分以及支付者/收款人互动等方面的要求和实现细节,还提供了多个有效和无效发票的示例。

BOLT #11:闪电支付的发票协议

一个简单、可扩展、可用于二维码的协议,用于通过闪电网络请求支付。

目录

编码概述

闪电发票的格式使用 bech32 编码, 它已经被用于比特币隔离见证。它可以被简单地 重用于闪电发票,即便它的 6 字符校验和针对手动输入进行了优化, 但考虑到闪电发票的长度,手动输入不太可能发生。

如果需要 URI 方案,目前的建议是使用 'lightning:' 作为 BOLT-11 编码的前缀(注意:不是 'lightning://'),或者为了回退到比特币支付,按照 BIP-21 使用 bitcoin:,键为 'lightning',值为 BOLT-11 编码。

要求

编写者:

  • 必须使用 Bech32 编码支付请求(参见 BIP-0173)
  • 应该对 QR 码使用大写字母(参见 BIP-0173)
  • 可以超过 BIP-0173 中指定的 90 字符限制。

阅读者:

  • 必须按照 BIP-0173 的规定,将地址解析为 Bech32 (也不受字符长度限制)。
    • 注意:这包括按照 BIP-0173 的规定处理大写字母
  • 如果校验和不正确:
    • 必须使支付失败。

人类可读部分

闪电发票的人类可读部分由两部分组成:

  1. prefixln + BIP-0173 货币前缀(例如,比特币主网为 lnbc, 比特币测试网为 lntb,比特币 signet 为 lntbs,比特币 regtest 为 lnbcrt
  2. amount:可选的该货币数量,后跟一个可选的 multiplier 字母。此处编码的单位是支付单位的“社会”惯例 —— 在比特币的情况下,单位是“比特币”而不是聪。

定义了以下的 multiplier 字母:

  • m (milli):乘以 0.001
  • u (micro):乘以 0.000001
  • n (nano):乘以 0.000000001
  • p (pico):乘以 0.000000000001

要求

编写者:

  • 必须使用成功支付所需的货币编码 prefix
  • 如果成功支付需要特定的最小 amount
    • 必须包含该 amount
    • 必须将 amount 编码为不带前导 0 的正十进制整数。
    • 如果使用 p 乘数,则 amount 的最后一位必须是 0
    • 应该通过使用最大的 乘数或省略乘数来使用最短的可能表示形式。

阅读者:

  • 如果它不理解 prefix
    • 必须使支付失败。
  • 如果 amount 为空:
    • 应该向付款人指示金额未指定。
  • 否则:
    • 如果 amount 包含非数字,或者后跟除 multiplier 以外的任何内容(参见上表):
      • 必须使支付失败。
    • 如果 multiplier 存在:
      • 必须将 amount 乘以 multiplier 值,以得出 支付所需的金额。
      • 如果乘数是 p 并且 amount 的最后一位不是 0:
      • 必须使支付失败。

理由

amount 被编码到人类可读的部分中,因为它相当 可读,并且是有用的请求金额的指示。

捐赠地址通常没有关联的金额,因此在这种情况下 amount 是可选的。通常,对于提供的任何回报,都需要最低付款。

p 乘数允许指定亚毫聪金额,这无法在网络上传输,因为 HTLC 以毫聪为单位。 要求尾随 0 小数位确保 amount 表示整数毫聪数。

数据部分

闪电发票的数据部分由多个部分组成:

  1. timestamp:自 1970 年以来的秒数(35 位,大端)
  2. 零个或多个标签部分
  3. signature:上述内容的比特币样式的签名(520 位)

要求

编写者:

  • 必须将 timestamp 设置为自 UTC 1970 年 1 月 1 日午夜以来的秒数,采用大端
  • 必须将 signature 设置为人类可读部分的 SHA2 256 位哈希的有效 512 位 secp256k1 签名,表示为 UTF-8 字节,与数据部分(不包括签名)连接,并附加 0 位以将数据填充到下一个字节边界,以及包含恢复 ID(0、1、2 或 3)的尾随字节。

阅读者:

  • 必须检查 signature 是否有效(参见下面指定的 n 标签字段)。

理由

signature 覆盖了确切的字节数,即便 SHA2 标准实际上支持位边界中的哈希,因为它没有被广泛 实现。恢复 ID 允许公钥恢复,因此可以暗示收款人节点的身份。

标签字段

每个标签字段的格式为:

  1. type (5 位)
  2. data_length(10 位,大端)
  3. data (data_length x 5 位)

当前定义的标签字段有:

  • p (1): data_length 52. 256 位 SHA256 payment_hash。该哈希的前像是付款的证明。
  • s (16): data_length 52. 这个 256 位的密钥可防止转发节点探测付款接收者。
  • d (13): data_length 可变。付款目的的简短描述(UTF-8),例如“1 杯咖啡”或“ナンセンス 1杯”
  • m (27): data_length 可变。附加到 付款的附加元数据。请注意,此字段的大小受到最大跳 payload 大小的限制。长的元数据字段会减少最大路由长度。
  • n (19): data_length 53. 收款人节点的 33 字节公钥
  • h (23): data_length 52. 付款目的的 256 位描述(SHA256)。这用于提交到超过 639 字节的相关联的描述,但在这种情况下,该描述的传输机制是传输特定的,并且未在此处定义。
  • x (6): data_length 可变。expiry 的时间(秒,大端)。如果未指定,则默认为 3600(1 小时)。
  • c (24): data_length 可变。用于路由中最后一个 HTLC 的 min_final_cltv_expiry。如果未指定,则默认为 18。
  • f (9): data_length 可变,取决于版本。后备链上地址:对于比特币,这以 5 位的 version 开头,并包含一个见证程序或 P2PKH 或 P2SH 地址。
  • r (3): data_length 可变。包含私有路由的额外路由信息的一个或多个条目;可以有多个 r 字段
    • pubkey (264 位)
    • short_channel_id (64 位)
    • fee_base_msat(32 位,大端)
    • fee_proportional_millionths(32 位,大端)
    • cltv_expiry_delta(16 位,大端)
  • 9 (5): data_length 可变。一个或多个包含用于接收此付款的支持或需要的特性的 5 位值。 请参阅特性位

要求

编写者:

  • 必须恰好包含一个 p 字段。
  • 必须恰好包含一个 s 字段。
  • 必须将 payment_hash 设置为 将作为付款回报提供的 payment_preimage 的 SHA2 256 位哈希。
  • 必须恰好包含一个 d 或恰好一个 h 字段。
    • 如果包含 d
      • 必须将 d 设置为有效的 UTF-8 字符串。
      • 应该使用付款目的的完整描述。
    • 如果包含 h
      • 必须通过某些未指定的方式提供 h 中哈希描述的前像。
      • 应该使用付款目的的完整描述。
  • 可以包含一个 x 字段。
    • 如果包含 x
      • 应该使用最小的可能的 data_length
  • 必须包含一个 c 字段 (min_final_cltv_expiry)。
    • 必须将 c 设置为它将接受的最后 HTLC 的最小 cltv_expiry
    • 应该使用最小的可能的 data_length
  • 可以包含一个 n 字段。(否则需要执行签名恢复)
    • 必须将 n 设置为用于创建 signature 的公钥。
  • 可以包含一个或多个 f 字段。
    • 对于比特币付款:
      • 必须将 f 字段设置为有效的见证版本和程序,或者设置为 17 ,然后是公钥哈希,或者设置为 18 ,然后是脚本哈希。
  • 如果没有与其公钥关联的公共通道:
    • 必须包含至少一个 r 字段。
      • r 字段必须包含一个或多个有序的条目,指示从 公共节点到最终目的地的转发路由。
      • 注意:对于每个条目,pubkey 是通道起点的节点 ID; short_channel_id 是用于标识通道的短通道 ID 字段; fee_base_msatfee_proportional_millionthscltv_expiry_deltaBOLT #7 中指定的。
    • 可以包含多个 r 字段以提供多个路由选项。
  • 如果 9 包含非零位:
    • 应该使用最小的可能的 data_length
  • 否则:
    • 必须完全省略 9 字段。
  • 必须使用 0 填充字段数据,使其成为 5 位的倍数。
  • 如果编写者提供多个任何字段类型,则:
    • 必须首先指定最首选的字段,然后按顺序指定较不首选的字段。

阅读者:

  • 必须跳过未知字段,或者具有未知 versionf 字段,或者 phsn 字段,这些字段的 data_length 分别不是 52、52、52 或 53。
  • 如果 9 字段包含未知的非零的奇数位:
    • 必须忽略该位。
  • 如果 9 字段包含未知的非零的偶数位:
    • 必须使支付失败。
    • 应该向用户指示未知的位。
  • 必须检查 h 字段中的 SHA2 256 位哈希是否与哈希的 描述完全匹配。
  • 如果提供了有效的 n 字段:
    • 必须使用 n 字段来验证签名,而不是执行签名恢复。
  • 如果存在有效的 s 字段:
  • 如果未提供 c 字段 (min_final_cltv_expiry):
    • 在付款时,必须使用至少 18 的过期增量
  • 如果提供了 m 字段:

理由

type-and-length 格式允许将来的扩展向后 兼容。data_length 始终是 5 的倍数,便于 编码和解码。读取器还会忽略不同长度的字段, 原因是期望的字段可能会更改。

p 字段支持当前的 256 位支付哈希,但将来的 规范可能会添加不同长度的新变体:在这种情况下, 编写者可以同时支持旧变体和新变体,而旧读取器将 忽略不正确的长度变体。

d 字段允许内联描述,但可能不足以用于 复杂的订单。因此,h 字段允许摘要:尽管 描述的服务方式尚未指定,并且 可能会依赖于传输。h 格式将来可能会通过 更改长度来更改,因此如果读取器不是 256 位,则会忽略它。

m 字段允许将元数据附加到付款。这支持 接收者不保留任何付款上下文的应用程序。

n 字段可用于显式指定目标节点 ID, 而无需签名恢复。

x 字段给出有关何时拒绝付款的警告: 主要是为了避免混淆。选择默认值对于大多数付款都是合理的,并且 如果必要,允许有足够的时间进行链上付款。

c 字段允许目标节点要求对其传入的 HTLC 指定的 最小 CLTV 过期时间。目标节点可以使用此 来要求比默认值更高、更保守的值(取决于 它们的费用估算策略以及它们对时间锁的敏感性)。请注意,路由中的远程节点在其 channel_update 消息中指定了所需的 cltv_expiry_delta,它们可以随时更新。

f 字段允许链上回退; 但是,这对于微小的或时间敏感的付款可能没有意义。有可能出现新的 地址形式;因此,多个 f 字段(以隐含的首选顺序)有助于过渡,版本 19-31 的 f 字段将被读取器忽略。

r 字段允许有限的路由辅助:如指定的,它仅 允许使用私有通道的最低信息,但是,它也可以 在将来的部分知识路由中提供帮助。

付款描述的安全考虑因素

付款描述是用户定义的,并为 注入攻击提供了潜在途径:在呈现和持久化过程中。

付款描述应始终在 HTML/Javascript 上下文(或任何其他动态解释的渲染 框架)中显示之前进行清理。当解码和显示付款描述时,实施者应格外注意反射 XSS 攻击的可能性。在所有 验证、检查和清理过程成功完成之前,避免乐观地呈现付款请求的内容。

此外,请考虑使用预处理语句、输入验证和/或转义,以防止 支持 SQL 或其他动态解释的查询语言的持久性引擎中出现注入漏洞。

不要像 Little Bobby Tables 的学校那样。

特性位

特性位允许向前和向后兼容,并遵循 是奇数是可以的的规则。适用于在 9 字段中使用的特性在 BOLT 9 中标记。

该字段是大端。最低有效位编号为 0, 它是偶数,下一个最高有效位编号为 1, 它是奇数

要求

编写者:

读取者:

  • 如果特性向量未设置所有已知的、传递的特性依赖项:
    • 不得尝试付款。
  • 如果发票中提供了 basic_mpp 特性:
  • 否则:

付款人 / 收款人互动

这些通常由 Lightning BOLT 系列的其余部分定义, 但值得注意的是,BOLT #4 指定收款人应该 接受高达预期 amount 的两倍,因此付款人可以通过添加细微的变化来使 付款更难跟踪。

目的是付款人从签名中恢复收款人的节点 ID, 并在检查诸如费用、过期时间和区块超时等条件可接受后,尝试付款。如有必要,它可以 使用 r 字段来扩充其路由信息,以到达最终节点。

如果付款成功,但后来发生争议,付款人可以 证明收款人的签名报价和成功的 付款。

付款人 / 收款人要求

付款人:

  • timestamp 加上 expiry 过去后:
    • 不应该尝试付款。
  • 否则:
    • 如果闪电付款失败:
      • 可以尝试使用它理解的第一个 f 字段中给出的地址进行付款。
  • 可以使用由 r 字段指定的通道序列来路由到收款人。
  • 应该在发起付款之前考虑费用金额和付款超时。
  • 应该使用它没有跳过的第一个 p 字段作为支付哈希。

收款人:

  • timestamp 加上 expiry 过去后:
    • 不应接受付款。

实现

https://github.com/rustyrussell/lightning-payencode

示例

注意:以下所有示例均使用 priv_key=e126f68f7eafcc8b74f54d269fe206be715000f94dac067d1c04a8ca3b2db734 签名。 所有发票都包含一个 payment_secret=1111111111111111111111111111111111111111111111111111111111111111,除非另有说明。

请使用 payment_hash 0001020304050607080900010203040506070809000102030405060708090102 向我捐款任意金额@03e7156ae33b0a208d0744199163177e909e80176e55d97a2f221ede0f934dd9ad

lnbc1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpl2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq9qrsgq357wnc5r2ueh7ck6q93dj32dlqnls087fxdwk8qakdyafkq3yap9us6v52vjjsrvywa6rt52cm9r9zqt8r2t7mlcwspyetp5h2tztugp9lfyql

分解:

  • lnbc:前缀,比特币主网上的闪电网络
  • 1: Bech32 分隔符
  • pvjluez: 时间戳 (1496314658)
  • s: 支付密钥
    • p5: data_length (p = 1, 5 = 20; 1 * 32 + 20 == 52)
    • zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs: 支付密钥 1111111111111111111111111111111111111111111111111111111111111111
  • p: 支付哈希
    • p5: data_length (p = 1, 5 = 20; 1 * 32 + 20 == 52)
    • qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypq: 支付哈希 0001020304050607080900010203040506070809000102030405060708090102
  • d: 简短描述
    • pl: data_length (p = 1, l = 31; 1 * 32 + 31 == 63)
    • 2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq: '请考虑支持这个项目'
  • 9: 特性
    • qr: data_length (q = 0, r = 3; 0 * 32 + 3 == 3)
    • sgq: b100000100000000
  • 357wnc5r2ueh7ck6q93dj32dlqnls087fxdwk8qakdyafkq3yap9us6v52vjjsrvywa6rt52cm9r9zqt8r2t7mlcwspyetp5h2tztugp: 签名
  • 9lfyql: Bech32 校验和
  • 签名分解:
    • 8d3ce9e28357337f62da0162d9454df827f83cfe499aeb1c1db349d4d81127425e434ca29929406c23bba1ae8ac6ca32880b38d4bf6ff874024cac34ba9625f1 签名数据的十六进制 (32 字节 r, 32 字节 s)
    • 1 (int) 包含在 signature 中的恢复标志
    • 6c6e62630b25fe64500d04444444444444444444444444444444444444444444444444444444444444444021a00008101820283038404800081018202830384048000810182028303840480810343f506c6561736520636f6e736964657220737570706f7274696e6720746869732070726f6a6563740500e08000 要签名数据的十六进制 (在分隔符后直到签名开始之前的前缀 + 数据)
    • 6daf4d488be41ce7cbb487cab1ef2975e5efcea879b20d421f0ef86b07cbb987 前像的 SHA256 的十六进制

请在 1 分钟内将一杯咖啡的 3 美元发送给同一个对等方

lnbc2500u1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5xysxxatsyp3k7enxv4jsxqzpu9qrsgquk0rl77nj30yxdy8j9vdx85fkpmdla2087ne0xh8nhedh8w27kyke0lp53ut353s06fv3qfegext0eh0ymjpf39tuven09sam30g4vgpfna3rh

分解:

  • lnbc: 前缀, 在 Bitcoin mainnet 上的闪电网络
  • 2500u: 金额 (2500 微比特币)
  • 1: Bech32 分隔符
  • pvjluez: 时间戳 (1496314658)
  • s: 支付密钥...
  • p: 支付哈希...
  • d: 简短描述
    • q5: data_length (q = 0, 5 = 20; 0 * 32 + 20 == 20)
    • xysxxatsyp3k7enxv4js: '1 cup coffee'
  • x: 过期时间
    • qz: data_length (q = 0, z = 2; 0 * 32 + 2 == 2)
    • pu: 60 秒 (p = 1, u = 28; 1 * 32 + 28 == 60)
  • 9: 特性
    • qr: data_length (q = 0, r = 3; 0 * 32 + 3 == 3)
    • sgq: b100000100000000
  • uk0rl77nj30yxdy8j9vdx85fkpmdla2087ne0xh8nhedh8w27kyke0lp53ut353s06fv3qfegext0eh0ymjpf39tuven09sam30g4vgp: 签名
  • fna3rh: Bech32 校验和
  • 签名分解:
    • e59e3ffbd3945e4334879158d31e89b076dff54f3fa7979ae79df2db9dcaf5896cbfe1a478b8d2307e92c88139464cb7e6ef26e414c4abe33337961ddc5e8ab1 签名数据的十六进制 (32 字节 r, 32 字节 s)
    • 1 (int) 包含在 signature 中的恢复标志
    • 6c6e626332353030750b25fe64500d04444444444444444444444444444444444444444444444444444444444444444021a000081018202830384048000810182028303840480008101820283038404808103414312063757020636f66666565030041e140382000 要签名数据的十六进制 (在分隔符后直到签名开始之前的前缀 + 数据)
    • 047e24bf270b25d42a56d57b2578faa3a10684641bab817c2851a871cb41dbc0 前像的 SHA256 的十六进制

现在在 1 分钟内将 0.0025 BTC 发送给同一个对等方购买一杯 nonsense (ナンセンス 1杯)

lnbc2500u1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpquwpc4curk03c9wlrswe78q4eyqc7d8d0xqzpu9qrsgqhtjpauu9ur7fw2thcl4y9vfvh4m9wlfyz2gem29g5ghe2aak2pm3ps8fdhtceqsaagty2vph7utlgj48u0ged6a337aewvraedendscp573dxr

分解:

  • lnbc: 前缀, 在 Bitcoin mainnet 上的闪电网络

  • 2500u: 金额 (2500 微比特币)

  • 1: Bech32 分隔符

  • pvjluez: 时间戳 (1496314658)

  • s: 支付密钥...

  • p: 支付哈希...

  • d: 简短描述

    • pq: data_length (p = 1, q = 0; 1 * 32 + 0 == 32)
    • uwpc4curk03c9wlrswe78q4eyqc7d8d0: 'ナンセンス 1杯'
  • x: 过期时间

    • qz: data_length (q = 0, z = 2; 0 * 32 + 2 == 2)
    • pu: 60 秒 (p = 1, u = 28; 1 * 32 + 28 == 60)
  • 9: 特性

    • qr: data_length (q = 0, r = 3; 0 * 32 + 3 == 3)
    • sgq: b100000100000000
  • htjpauu9ur7fw2thcl4y9vfvh4m9wlfyz2gem29g5ghe2aak2pm3ps8fdhtceqsaagty2vph7utlgj48u0ged6a337aewvraedendscp: 签名

  • 573dxr: Bech32 校验和

  • 签名分解:

    • bae41ef385e0fc972977c7ea42b12cbd76577d2412919da8a8a22f9577b6507710c0e96dd78c821dea16453037f717f44aa7e3d196ebb18fbb97307dcb7336c3 签名数据的十六进制 (32 字节 r, 32 字节 s)
    • 1 (int) 包含在 signature 中的恢复标志
    • 6c6e626332353030750b25fe64500d04444444444444444444444444444444444444444444444444444444444444444021a000081018202830384048000810182028303840480008101820283038404808103420e3838ae383b3e382bbe383b3e382b92031e69daf30041e14038200 要签名数据的十六进制 (在分隔符后直到签名开始之前的前缀 + 数据)
    • f140d992ba419578ba9cfe1af85f92df90a76f442fb5e6e09b1f*lnbc`:前缀,比特币主网上的闪电网络
  • 20m:金额(20 毫比特币)

  • 1:Bech32 分隔符

  • pvjluez:时间戳(1496314658)

  • s:支付密钥...

  • p:支付哈希...

  • h:带标签的字段:描述的哈希

    • p5data_lengthp = 1,5 = 20;1 * 32 + 20 == 52)
    • 8yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqs:'One piece of chocolate cake, one icecream cone, one pickle, one slice of swiss cheese, one slice of salami, one lollypop, one piece of cherry pie, one sausage, one cupcake, and one slice of watermelon'的 SHA256
  • 9:功能

    • qrdata_lengthq = 0,r = 3;0 * 32 + 3 == 3)
    • sgq:b100000100000000
  • 7ea976txfraylvgzuxs8kgcw23ezlrszfnh8r6qtfpr6cxga50aj6txm9rxrydzd06dfeawfk6swupvz4erwnyutnjq7x39ymw6j38gp:签名

  • 7ynn44:Bech32 校验和

  • 签名分解:

    • f67a5f696648fa4fb102e1a07b230e54722f8e024cee71e80b4847ac191da3fb2d2cdb28cc32344d7e9a9cf5c9b6a0ee0582ae46e9938b9c81e344a4dbb5289d 签名数据的十六进制(32 字节 r,32 字节 s)
    • 1 (int) 包含在 signature 中的恢复标志
    • 6c6e626332306d0b25fe64500d04444444444444444444444444444444444444444444444444444444444444444021a000081018202830384048000810182028303840480008101820283038404808105c343925b6f67e2c340036ed12093dd44e0368df1b6ea26c53dbe4811f58fd5db8c10280704000 用于签名的数据的十六进制(前缀 + 分隔符后的数据,直到签名的开始)
    • e2ffa444e2979edb639fbdaa384638683ba1a5240b14dd7a150e45a04eea261d preimage 的 SHA256 的十六进制

相同内容,在测试网上,使用 fallback 地址 mk2QpYatsKicvFVuTAQLBryyccRXMUaGHP

lntb20m1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygshp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqfpp3x9et2e20v6pu37c5d9vax37wxq72un989qrsgqdj545axuxtnfemtpwkc45hx9d2ft7x04mt8q7y6t0k2dge9e7h8kpy9p34ytyslj3yu569aalz2xdk8xkd7ltxqld94u8h2esmsmacgpghe9k8

分解:

  • lntb:前缀,比特币测试网上的闪电网络

  • 20m:金额(20 毫比特币)

  • 1:Bech32 分隔符

  • pvjluez:时间戳(1496314658)

  • h:带标签的字段:描述的哈希...

  • s:支付密钥...

  • p:支付哈希...

  • f:带标签的字段:fallback 地址

    • ppdata_lengthp = 1;1 * 32 + 1 == 33)
    • 3 = 17,所以是 P2PKH 地址
    • x9et2e20v6pu37c5d9vax37wxq72un98:160 位 P2PKH 地址
  • 9:功能...

  • dj545axuxtnfemtpwkc45hx9d2ft7x04mt8q7y6t0k2dge9e7h8kpy9p34ytyslj3yu569aalz2xdk8xkd7ltxqld94u8h2esmsmacgp:签名

  • ghe9k8:Bech32 校验和

  • 签名分解:

    • 6ca95a74dc32e69ced6175b15a5cc56a92bf19f5dace0f134b7d94d464b9f5cf6090a18d48b243f289394d17bdf89466d8e6b37df5981f696bc3dd5986e1bee1 签名数据的十六进制(32 字节 r,32 字节 s)
    • 1 (int) 包含在 signature 中的恢复标志
    • 6c6e746232306d0b25fe64500d044444444444444444444444444444444444444444444444444444444444444442e1a1c92db7b3f161a001b7689049eea2701b46f8db7513629edf2408fac7eaedc608043400010203040506070809000102030405060708090001020304050607080901020484313172b5654f6683c8fb146959d347ce303cae4ca728070400 用于签名的数据的十六进制(前缀 + 分隔符后的数据,直到签名的开始)
    • 33bc6642a336097c74299cadfdfdd2e4884a555cf1b4fda72b095382d473d795 preimage 的 SHA256 的十六进制

在主网上,fallback 地址为 1RustyRX2oai4EYYDpQGWvEL62BBGqN9T,带有额外的路由信息,通过节点 029e03a901b85534ff1e92c43c74431f7ce72046060fcf7a95c37e148f78c77255,然后是 039e03a901b85534ff1e92c43c74431f7ce72046060fcf7a95c37e148f78c77255

lnbc20m1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqhp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqsfpp3qjmp7lwpagxun9pygexvgpjdc4jdj85fr9yq20q82gphp2nflc7jtzrcazrra7wwgzxqc8u7754cdlpfrmccae92qgzqvzq2ps8pqqqqqqpqqqqq9qqqvpeuqafqxu92d8lr6fvg0r5gv0heeeqgcrqlnm6jhphu9y00rrhy4grqszsvpcgpy9qqqqqqgqqqqq7qqzq9qrsgqdfjcdk6w3ak5pca9hwfwfh63zrrz06wwfya0ydlzpgzxkn5xagsqz7x9j4jwe7yj7vaf2k9lqsdk45kts2fd0fkr28am0u4w95tt2nsq76cqw0

分解:

  • lnbc:前缀,比特币主网上的闪电网络

  • 20m:金额(20 毫比特币)

  • 1:Bech32 分隔符

  • pvjluez:时间戳(1496314658)

  • s:支付密钥...

  • p:支付哈希...

  • h:带标签的字段:描述的哈希...

  • f:带标签的字段:fallback 地址

    • ppdata_lengthp = 1;1 * 32 + 1 == 33)
    • 3 = 17,所以是 P2PKH 地址
    • qjmp7lwpagxun9pygexvgpjdc4jdj85f:160 位 P2PKH 地址
  • r:带标签的字段:路由信息

    • 9ydata_length9 = 5,y = 4;5 * 32 + 4 == 164)
    • q20q82gphp2nflc7jtzrcazrra7wwgzxqc8u7754cdlpfrmccae92qgzqvzq2ps8pqqqqqqpqqqqq9qqqvpeuqafqxu92d8lr6fvg0r5gv0heeeqgcrqlnm6jhphu9y00rrhy4grqszsvpcgpy9qqqqqqgqqqqq7qqzq
      • pubkey:029e03a901b85534ff1e92c43c74431f7ce72046060fcf7a95c37e148f78c77255
      • short_channel_id:66051x263430x1800
      • fee_base_msat:1 毫聪
      • fee_proportional_millionths:20
      • cltv_expiry_delta:3
      • pubkey:039e03a901b85534ff1e92c43c74431f7ce72046060fcf7a95c37e148f78c77255
      • short_channel_id:197637x395016x2314
      • fee_base_msat:2 毫聪
      • fee_proportional_millionths:30
      • cltv_expiry_delta:4
  • 9:功能...

  • dfjcdk6w3ak5pca9hwfwfh63zrrz06wwfya0ydlzpgzxkn5xagsqz7x9j4jwe7yj7vaf2k9lqsdk45kts2fd0fkr28am0u4w95tt2nsq:签名

  • 76cqw0:Bech32 校验和

  • 签名分解:

    • 6a6586db4e8f6d40e3a5bb92e4df5110c627e9ce493af237e20a046b4e86ea200178c59564ecf892f33a9558bf041b6ad2cb8292d7a6c351fbb7f2ae2d16b54e 签名数据的十六进制(32 字节 r,32 字节s)
    • 0 (int) 包含在 signature 中的恢复标志
    • 6c6e626332306d0b25fe64500d04444444444444444444444444444444444444444444444444444444444444444021a000081018202830384048000810182028303840480008101820283038404808105c343925b6f67e2c340036ed12093dd44e0368df1b6ea26c53dbe4811f58fd5db8c104843104b61f7dc1ea0dc99424464cc4064dc564d91e891948053c07520370aa69fe3d258878e8863ef9ce408c0c1f9ef52b86fc291ef18ee4aa020406080a0c0e1000000002000000280006073c07520370aa69fe3d258878e8863ef9ce408c0c1f9ef52b86fc291ef18ee4aa06080a0c0e101214000000040000003c00080500e08000 用于签名的数据的十六进制(前缀 + 分隔符后的数据,直到签名的开始)
    • b342d4655b984e53f405fe4d872fb9b7cf54ba538fcd170ed4a5906a9f535064 preimage 的 SHA256 的十六进制

在主网上,fallback (P2SH) 地址为 3EktnHQD7RiAE6uzMj2ZifT9YgRrkSgzQX

lnbc20m1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygshp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqfppj3a24vwu6r8ejrss3axul8rxldph2q7z99qrsgqz6qsgww34xlatfj6e3sngrwfy3ytkt29d2qttr8qz2mnedfqysuqypgqex4haa2h8fx3wnypranf3pdwyluftwe680jjcfp438u82xqphf75ym

分解:

  • lnbc:前缀,比特币主网上的闪电网络

  • 20m:金额(20 毫比特币)

  • 1:Bech32 分隔符

  • pvjluez:时间戳(1496314658)

  • s:支付密钥...

  • h:带标签的字段:描述的哈希...

  • p:支付哈希...

  • f:带标签的字段:fallback 地址

    • ppdata_lengthp = 1;1 * 32 + 1 == 33)
    • j = 18,所以是 P2SH 地址
    • 3a24vwu6r8ejrss3axul8rxldph2q7z9:160 位 P2SH 地址
  • 9:功能...

  • z6qsgww34xlatfj6e3sngrwfy3ytkt29d2qttr8qz2mnedfqysuqypgqex4haa2h8fx3wnypranf3pdwyluftwe680jjcfp438u82xqp:签名

  • hf75ym:Bech32 校验和

  • 签名分解:

    • 16810439d1a9bfd5a65acc61340dc92448bb2d456a80b58ce012b73cb5202438020500c9ab7ef5573a4d174c811f669885ae27f895bb3a3be52c243589f87518 签名数据的十六进制(32 字节 r,32 字节 s)
    • 1 (int) 包含在 signature 中的恢复标志
    • 6c6e626332306d0b25fe64500d044444444444444444444444444444444444444444444444444444444444444442e1a1c92db7b3f161a001b7689049eea2701b46f8db7513629edf2408fac7eaedc608043400010203040506070809000102030405060708090001020304050607080901020484328f55563b9a19f321c211e9b9f38cdf686ea0784528070400 用于签名的数据的十六进制(前缀 + 分隔符后的数据,直到签名的开始)
    • 9e93321a775f7dffdca03e61d1ac6e0e356cc63cecd3835271200c1e5b499d29 preimage 的 SHA256 的十六进制

在主网上,fallback (P2WPKH) 地址为 bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4

lnbc20m1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygshp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqfppqw508d6qejxtdg4y5r3zarvary0c5xw7k9qrsgqt29a0wturnys2hhxpner2e3plp6jyj8qx7548zr2z7ptgjjc7hljm98xhjym0dg52sdrvqamxdezkmqg4gdrvwwnf0kv2jdfnl4xatsqmrnsse

  • lnbc:前缀,比特币主网上的闪电网络

  • 20m:金额(20 毫比特币)

  • 1:Bech32 分隔符

  • pvjluez:时间戳(1496314658)

  • s:支付密钥...

  • h:带标签的字段:描述的哈希...

  • p:支付哈希...

  • f:带标签的字段:fallback 地址

    • ppdata_lengthp = 1;1 * 32 + 1 == 33)
    • q:0,所以 witness version 0
    • w508d6qejxtdg4y5r3zarvary0c5xw7k:160 位 = P2WPKH。
  • 9:功能...

  • t29a0wturnys2hhxpner2e3plp6jyj8qx7548zr2z7ptgjjc7hljm98xhjym0dg52sdrvqamxdezkmqg4gdrvwwnf0kv2jdfnl4xatsq:签名

  • mrnsse:Bech32 校验和

  • 签名分解:

    • 5a8bd7b97c1cc9055ee60cf2356621f8752248e037a953886a1782b44a58f5ff2d94e6bc89b7b514541a3603bb33722b6c08aa1a3639d34becc549a99fea6eae 签名数据的十六进制(32 字节 r,32 字节 s)
    • 0 (int) 包含在 signature 中的恢复标志
    • 6c6e626332306d0b25fe64500d044444444444444444444444444444444444444444444444444444444444444442e1a1c92db7b3f161a001b7689049eea2701b46f8db7513629edf2408fac7eaedc60804340001020304050607080900010203040506070809000102030405060708090102048420751e76e8199196d454941c45d1b3a323f1433bd628070400 用于签名的数据的十六进制(前缀 + 分隔符后的数据,直到签名的开始)
    • 44fbec32cdac99a1a3cd638ec507dad633a1e5bba514832fd3471e663a157f7b preimage 的 SHA256 的十六进制

在主网上,fallback (P2WSH) 地址为 bc1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3qccfmv3

lnbc20m1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygshp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqfp4qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q9qrsgq9vlvyj8cqvq6ggvpwd53jncp9nwc47xlrsnenq2zp70fq83qlgesn4u3uyf4tesfkkwwfg3qs54qe426hp3tz7z6sweqdjg05axsrjqp9yrrwc

  • lnbc:前缀,比特币主网上的闪电网络

  • 20m:金额(20 毫比特币)

  • 1:Bech32 分隔符

  • pvjluez:时间戳(1496314658)

  • s:支付密钥...

  • h:带标签的字段:描述的哈希...

  • p:支付哈希...

  • f:带标签的字段:fallback 地址

    • p4data_lengthp = 1,4 = 21;1 * 32 + 21 == 53)
    • q:0,所以 witness version 0
    • rp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q:260 位 = P2WSH。
  • 9:功能...

  • 9vlvyj8cqvq6ggvpwd53jncp9nwc47xlrsnenq2zp70fq83qlgesn4u3uyf4tesfkkwwfg3qs54qe426hp3tz7z6sweqdjg05axsrjqp:签名

  • 9yrrwc:Bech32 校验和

  • 签名分解:

    • 2b3ec248f80301a421817369194f012cdd8af8df1c279981420f9e901e20fa3309d791e11355e609b59ce4a220852a0cd55ab862b1785a83b206c90fa74d01c8 签名数据的十六进制(32 字节 r,32 字节 s)
    • 1 (int) 包含在 signature 中的恢复标志
    • 6c6e626332306d0b25fe64500d044444444444444444444444444444444444444444444444444444444444444442e1a1c92db7b3f161a001b7689049eea2701b46f8db7513629edf2408fac7eaedc608043400010203040506070809000102030405060708090001020304050607080901020486a01863143c14c5166804bd19203356da136c985678cd4d27a1b8c63296049032620280704000 用于签名的数据的十六进制(前缀 + 分隔符后的数据,直到签名的开始)
    • 865a2cc6730e1eeeacd30e6da8e9ab0e9115828d27953ec0c0f985db05da5027 preimage 的 SHA256 的十六进制

请在一周内为一份商品清单支付 0.00967878534 BTC,金额以 pico-BTC 为单位

lnbc9678785340p1pwmna7lpp5gc3xfm08u9qy06djf8dfflhugl6p7lgza6dsjxq454gxhj9t7a0sd8dgfkx7cmtwd68yetpd5s9xar0wfjn5gpc8qhrsdfq24f5ggrxdaezqsnvda3kkum5wfjkzmfqf3jkgem9wgsyuctwdus9xgrcyqcjcgpzgfskx6eqf9hzqnteypzxz7fzypfhg6trddjhygrcyqezcgpzfysywmm5ypxxjemgw3hxjmn8yptk7untd9hxwg3q2d6xjcmtv4ezq7pqxgsxzmnyyqcjqmt0wfjjq6t5v4khxsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygsxqyjw5qcqp2rzjq0gxwkzc8w6323m55m4jyxcjwmy7stt9hwkwe2qxmy8zpsgg7jcuwz87fcqqeuqqqyqqqqlgqqqqn3qq9q9qrsgqrvgkpnmps664wgkp43l22qsgdw4ve24aca4nymnxddlnp8vh9v2sdxlu5ywdxefsfvm0fq3sesf08uf6q9a2ke0hc9j6z6wlxg5z5kqpu2v9wz

分解:

  • lnbc:前缀,比特币主网上的闪电网络
  • 9678785340p:金额(9678785340 皮可比特币 = 967878534 毫聪)
  • 1:Bech32 分隔符
  • pwmna7l:时间戳(1572468703)
  • s:支付密钥...
  • p:支付哈希
    • p5data_lengthp = 1,5 = 20;1 * 32 + 20 == 52)
    • gc3xfm08u9qy06djf8dfflhugl6p7lgza6dsjxq454gxhj9t7a0s:支付哈希 462264ede7e14047e9b249da94fefc47f41f7d02ee9b091815a5506bc8abf75f
  • d:简短描述
    • 8ddata_length8 = 7,d = 13;7 * 32 + 13 == 237)
    • `gfkx7cmtwd68yetpd5s9xar0wfjn5gpc8qhrsdfq24f5ggrxdaezqsnvda3kkum5wfjkzmfqf3jkgem9wgsyuctwdus9xgrcyqcjcgpzgfskx6eqf9hzqnteypzxz7fzypfhg6trddjhygrcyqezcgpzfysywmm5ypxxjemgw3hxjmn8yptk7untd9### 相同,但全部大写。 LNBC25M1PVJLUEZPP5QQQSYQCYQ5RQWZQFQQQSYQCYQ5RQWZQFQQQSYQCYQ5RQWZQFQYPQDQ5VDHKVEN9V5SXYETPDEESSP5ZYG3ZYG3ZYG3ZYG3ZYG3ZYG3ZYG3ZYG3ZYG3ZYG3ZYG3ZYG3ZYGS9Q5SQQQQQQQQQQQQQQQQSGQ2A25DXL5HRNTDTN6ZVYDT7D66HYZSYHQS4WDYNAVYS42XGL6SGX9C4G7ME86A27T07MDTFRY458RTJR0V92CNMSWPSJSCGT2VCSE3SGPZ3UAPA

相同,但包含必须忽略的字段。

lnbc25m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5vdhkven9v5sxyetpdeessp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9q5sqqqqqqqqqqqqqqqqsgq2qrqqqfppnqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqppnqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpp4qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqhpnqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqhp4qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqspnqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsp4qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqnp5qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqnpkqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqz599y53s3ujmcfjp5xrdap68qxymkqphwsexhmhr8wdz5usdzkzrse33chw6dlp3jhuhge9ley7j2ayx36kawe7kmgg8sv5ugdyusdcqzn8z9x

分解:

  • lnbc:前缀,比特币主网上的闪电网络
  • 25m:金额 (25 milli-bitcoin)
  • 1:Bech32 分隔符
  • pvjluez:时间戳 (1496314658)
  • p:支付哈希...
  • d:简短描述
    • q5data_length (q = 0, 5 = 20; 0 * 32 + 20 == 20)
    • vdhkven9v5sxyetpdees: 'coffee beans'
  • s:支付密钥
    • p5data_length (p = 1, 5 = 20; 1 * 32 + 20 == 52)
    • zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs:0x1111111111111111111111111111111111111111111111111111111111111111
  • 9:特性
    • q5data_length (q = 0, 5 = 20; 0 * 32 + 20 == 20)
    • sqqqqqqqqqqqqqqqqsgq:b1000....00000100000100000000
  • 2:未知字段
    • qrdata_length (q = 0, r = 3; 0 * 32 + 3 == 3)
    • qqq:零
  • f:标记字段:回退地址
    • ppdata_length (p = 1, p = 1; 1 * 32 + 1 == 33)
    • nqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq:回退地址类型 19(忽略)
  • p:支付哈希
    • pndata_length (p = 1, n = 19; 1 * 32 + 19 == 51) (忽略)
    • qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
  • p:支付哈希
    • p4data_length (p = 1, 4 = 21; 1 * 32 + 21 == 53) (忽略)
    • qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
  • h:描述的哈希
    • pndata_length (p = 1, n = 19; 1 * 32 + 19 == 51) (忽略)
    • qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
  • h:描述的哈希
    • p4data_length (p = 1, 4 = 21; 1 * 32 + 21 == 53) (忽略)
    • qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
  • s:支付密钥
    • pndata_length (p = 1, n = 19; 1 * 32 + 19 == 51) (忽略)
    • qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
  • s:支付密钥
    • p4data_length (p = 1, 4 = 21; 1 * 32 + 21 == 53) (忽略)
    • qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
  • n:节点 ID
    • p5data_length (p = 1, 5 = 20; 1 * 32 + 20 == 52) (忽略)
    • qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
  • n:节点 ID
    • pkdata_length (p = 1, k = 22; 1 * 32 + 22 == 54) (忽略)
    • qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
  • z599y53s3ujmcfjp5xrdap68qxymkqphwsexhmhr8wdz5usdzkzrse33chw6dlp3jhuhge9ley7j2ayx36kawe7kmgg8sv5ugdyusdcq:签名
  • zn8z9x:Bech32 校验和

请发送 0.01 BTC,附带支付元数据 0x01fafaf0

lnbc10m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdp9wpshjmt9de6zqmt9w3skgct5vysxjmnnd9jx2mq8q8a04uqsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9q2gqqqqqqsgq7hf8he7ecf7n4ffphs6awl9t6676rrclv9ckg3d3ncn7fct63p6s365duk5wrk202cfy3aj5xnnp5gs3vrdvruverwwq7yzhkf5a3xqpd05wjc

分解:

  • lnbc:前缀,比特币主网上的闪电网络
  • 10m:金额 (10 milli-bitcoin)
  • 1:Bech32 分隔符
  • pvjluez:时间戳 (1496314658)
  • p:支付哈希
    • p5data_length (p = 1, 5 = 20; 1 * 32 + 20 == 52)
    • qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypq:支付哈希 0001020304050607080900010203040506070809000102030405060708090102
  • d:简短描述
    • p9data_length (p = 1, 9 = 5; 1 * 32 + 5 == 37)
    • wpshjmt9de6zqmt9w3skgct5vysxjmnnd9jx2:'payment metadata inside'
  • m:元数据
    • q8data_length (q = 0, 8 = 7; 0 * 32 + 7 == 7)
    • q8a04uq:0x01fafaf0
  • s:支付密钥
    • p5data_length (p = 1, 5 = 20; 1 * 32 + 20 == 52)
    • zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs:0x1111111111111111111111111111111111111111111111111111111111111111
  • 9:特性
    • q2data_length (q = 0, 2 = 10; 0 * 32 + 10 == 10)
    • gqqqqqqsgq:[b01000000000000000000000000000000000100000100000000] = 8 + 14 + 48
  • 7hf8he7ecf7n4ffphs6awl9t6676rrclv9ckg3d3ncn7fct63p6s365duk5wrk202cfy3aj5xnnp5gs3vrdvruverwwq7yzhkf5a3xqp:签名
  • d05wjc:Bech32 校验和

无效发票的示例

相同,但添加了无效的未知特性 100

lnbc25m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5vdhkven9v5sxyetpdeessp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9q4psqqqqqqqqqqqqqqqqsgqtqyx5vggfcsll4wu246hz02kp85x4katwsk9639we5n5yngc3yhqkm35jnjw4len8vrnqnf5ejh0mzj9n3vz2px97evektfm2l6wqccp3y7372

分解:

  • lnbc:前缀,比特币主网上的闪电网络
  • 25m:金额 (25 milli-bitcoin)
  • 1:Bech32 分隔符
  • pvjluez:时间戳 (1496314658)
  • p:支付哈希...
  • d:简短描述
    • q5data_length (q = 0, 5 = 20; 0 * 32 + 20 == 20)
    • vdhkven9v5sxyetpdees:'coffee beans'
  • s:支付密钥
    • p5data_length (p = 1, 5 = 20; 1 * 32 + 20 == 52)
    • zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs:0x1111111111111111111111111111111111111111111111111111111111111111
  • 9:特性
    • q4data_length (q = 0, 4 = 21; 0 * 32 + 21 == 21)
    • psqqqqqqqqqqqqqqqqsgq:b000011000....00000100000100000000
  • tqyx5vggfcsll4wu246hz02kp85x4katwsk9639we5n5yngc3yhqkm35jnjw4len8vrnqnf5ejh0mzj9n3vz2px97evektfm2l6wqccp:签名
  • 3y7372:Bech32 校验和

Bech32 校验和无效。

lnbc2500u1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpquwpc4curk03c9wlrswe78q4eyqc7d8d0xqzpuyk0sg5g70me25alkluzd2x62aysf2pyy8edtjeevuv4p2d5p76r4zkmneet7uvyakky2zr4cusd45tftc9c5fh0nnqpnl2jfll544esqchsrnt

格式错误的 bech32 字符串(没有 1)

pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpquwpc4curk03c9wlrswe78q4eyqc7d8d0xqzpuyk0sg5g70me25alkluzd2x62aysf2pyy8edtjeevuv4p2d5p76r4zkmneet7uvyakky2zr4cusd45tftc9c5fh0nnqpnl2jfll544esqchsrny

格式错误的 bech32 字符串(混合大小写)

LNBC2500u1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpquwpc4curk03c9wlrswe78q4eyqc7d8d0xqzpuyk0sg5g70me25alkluzd2x62aysf2pyy8edtjeevuv4p2d5p76r4zkmneet7uvyakky2zr4cusd45tftc9c5fh0nnqpnl2jfll544esqchsrny

签名无法恢复。

lnbc2500u1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5xysxxatsyp3k7enxv4jsxqzpusp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9qrsgqwgt7mcn5yqw3yx0w94pswkpq6j9uh6xfqqqtsk4tnarugeektd4hg5975x9am52rz4qskukxdmjemg92vvqz8nvmsye63r5ykel43pgz7zq0g2

字符串太短。

lnbc1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpl2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6na6hlh

无效的 multiplier

lnbc2500x1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5xysxxatsyp3k7enxv4jsxqzpusp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9qrsgqrrzc4cvfue4zp3hggxp47ag7xnrlr8vgcmkjxk3j5jqethnumgkpqp23z9jclu3v0a7e0aruz366e9wqdykw6dxhdzcjjhldxq0w6wgqcnu43j

无效的亚毫聪精度。

lnbc2500000001p1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5xysxxatsyp3k7enxv4jsxqzpusp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9qrsgq0lzc236j96a95uv0m3umg28gclm5lqxtqqwk32uuk4k6673k6n5kfvx3d2h8s295fad45fdhmusm8sjudfhlf6dcsxmfvkeywmjdkxcp99202x

作者

[ FIXME: ]

Creative Commons License <br> 本作品采用Creative Commons Attribution 4.0 International License进行许可。

  • 原文链接: github.com/lightning/bol...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
lightning
lightning
江湖只有他的大名,没有他的介绍。