闪电模块V2协议

fedimint 发布于 2025-02-18 阅读 68

本文介绍了 Lightning Module V2 协议,该协议扩展了闪电网络到 Federation 中,并对比 V1 进行了改进。

接收

在接收时,网关使用 HOLD 发票 而非 HTLC 拦截 来确定一笔支付是否指向某个 Fedimint。用户不再在报价中提供预映像用于“出售”,而是直接创建 IncomingContract 并将其发送给特定网关。网关负责创建 Bolt11 发票,而非 Fedimint 客户端。网关使用从联邦收到的解密份额来解密预映像。

sequenceDiagram;
    participant r as 收款方
    participant f as 联邦
    participant g as 网关
    participant gl as 网关的闪电网络节点
    participant s as 付款方
    g-->>gl: 订阅支付更新
    r->>g: 创建 IncomingContract 并发送给网关
    g->>r: 返回 Bolt11 发票
    par 支付流程
        r->>s: 发票(含预映像的哈希值)
        s->>gl: 支付(含预映像的哈希值)
        gl->>g: 支付(含预映像的哈希值)
        g->>f: 为进入合约提供资金
        f->>g: 预映像的解密份额
        f->>g: 
        f->>g: 
        g->>g: 解密预映像
        g->>gl: 使用预映像<br>索取支付
        gl->>s: 预映像
    and 索取支付
        r->>f: 等待进入合约
        f->>r: 
        r->>f: 索取合约
        f->>r: 电子现金
    end

发送

V2 发送协议与 V1 发送协议非常相似。与 V1 的主要区别在于:如果网关未能支付发票,在 V2 中它会向客户端返回一个没收签名,客户端可以在指定超时之前使用该签名来索取锁在 OutgoingContract 中的电子现金。而在 V1 中,网关需要提交一笔 Fedimint 交易来修改 OutgoingContract 以使其变得“可取消”。

在 V1 和 V2 中,支付 Bolt 11 发票的顺利路径保持不变:

sequenceDiagram;
    participant s as 付款方
    participant f as 联邦
    participant g as 网关
    participant gl as 网关的闪电网络节点
    participant r as 收款方

    r->>s: 发票(含预映像的哈希值)
    s->>f: 为外出合约提供资金
    f->>s: 
    s->>g: 指示支付发票
    g->>f: 检查外出合约是否存在
    f->>g: 
    g->>gl: 支付发票
    gl->>r: 支付(含预映像的哈希值)
    r->>gl: 预映像
    gl->>g: 预映像
    g->>f: 使用预映像<br>索取外出合约
    f->>g: 电子现金
    s->>f: 等待外出<br>合约被索取
    f->>s: 预映像
  • 原文链接: github.com/fedimint/fedi...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论