166 / 691LNURL

LNURL

付款、提现与登录的协议流程

LNURL 通过网页请求连接钱包与服务。外观相似的二维码可能表示付款、提现或登录。

LNURL 是 LUD 文档定义的一组可选 Lightning 应用流程,在钱包与服务间传递参数和请求;它不是 Bitcoin 共识规则,也不是一种通用授权。

LNURL 包含付款用的 payRequest、提现用的 withdrawRequest、登录用的 login 以及其他扩展。不同钱包支持不同 LUD 子集。因此,“支持 LNURL”不代表所有操作都可用,也不代表批准它们会产生相同效果。 [LNURL — LUD index] [Lightning Labs — LNURL glossary]

LUD-01 的基础 LNURL 把 HTTPS 或 onion URL 编码为 Bech32。这不是加密,也不是 BOLT 11 账单。类型由 URL 中的 tag 或 GET 后 JSON 响应中的 tag 决定。钱包须识别域名与操作;二维码的外观不能证明收款方。 [LNURL — LUD-01 encoding]

payRequest 返回 callback、minSendable、maxSendable 和 metadata。限额与选择的 amount 以 msat 计,1000 msat 等于一个 satoshi。用户批准条件后,钱包请求 pr 中的账单,付款前核实金额。静态链接本身不是付款证明。 [LNURL — LUD-06 payRequest]

Metadata 是包含 JSON 数组的字符串,必须有 text/plain 条目,其他类型可选。应结合域名与金额阅读描述。基础 LNURL 解释 JSON 正文,而非单凭 HTTP 状态码;ERROR 或收到 pr 账单都不能当成支付成功。 [LNURL — LUD-01 encoding] [LNURL — LUD-06 payRequest]

withdrawRequest 返回 k1、callback 和以 msat 计的 minWithdrawable/maxWithdrawable。你的钱包创建收款账单,以 pr 交给应付款的服务。Status OK 表示请求已接受,钱包仍需等待实际收款。提现链接可能携带权限,因此不应视为公开付款联系方式。 [LNURL — LUD-03 withdrawRequest]

带 tag login 的 LNURL-auth 使用挑战 k1 和域名专属 linkingKey。经同意后,钱包用 secp256k1 上的 ECDSA 签名,不会向服务发送种子。Action 可表示注册、登录、关联或其他授权。签署挑战不是 bitcoin 支付,也不会自动证明人的真实身份。 [LNURL — LUD-04 authentication]

HTTPS 保护传输,但服务仍可能知道请求及其时间。重复使用可能被关联。Auth 根据完整域名派生密钥,更改子域名会改变 linkingKey,可能对应另一个账户。由于派生方式不同,钱包间的登录可移植性没有保证。LNURL 本身不决定 bitcoin 的托管方式。 [LNURL — LUD-01 encoding] [LNURL — LUD-04 authentication]

可选 LUD-21 增加 verify URL,响应区分 settled true/false,并可能返回 preimage。仅有 status OK 不代表 settled true。应核实它对应具体账单,并检查钱包状态。丢失响应后不要盲目再次付款;服务可用性、收款流动性和同意范围是独立条件。 [LNURL — LUD index] [LNURL — LUD-21 verification]

要获得更完整的理解,请将本词条与以下词条结合阅读: BOLT 11, BOLT 12, Lightning Network, Lightning Address, Bitcoin 隐私, Satoshi. 反向关联还来自: BOLT 12, Lightning Address.

DOC · 001LNURL — LUD index规范DOC · 002LNURL — LUD-01 encoding规范DOC · 003LNURL — LUD-06 payRequest规范DOC · 004LNURL — LUD-03 withdrawRequest规范DOC · 005LNURL — LUD-04 authentication规范DOC · 006LNURL — LUD-21 verification规范DOC · 007Lightning Labs — LNURL glossary文档
来源优先 · 非投资建议