BOLT11发票过期怎样判断? 图 1
BOLT11发票过期怎样判断? · 图 1

BOLT11发票过期怎样判断,先看两个数:发票中的创建时间timestamp,以及表示有效秒数的expiry。把它们相加得到的是这张发票的截止时点。钱包显示的倒计时有助于理解,但核验应回到编码字段;同样是闪电网络发票,显式有效期不同,截止时点也可能不同。本文依据2026年10月11日核验的BOLT 11与BOLT 4,解释字段和判断方法,不确认任何现实付款已经完成。

先找到时间,再找有效秒数

BOLT11包含timestamp,x标签表达expiry秒数。如果发票没有x字段,规范给出的默认expiry是3600秒。这句话有一个必须保留的条件:没有给出x字段。看到一张发票时,不能先假设它一小时过期,再把实际字段当作次要信息。发票若明确写入另一组秒数,计算应使用该值。

解码结果中,创建时间、有效期和截止时间可能被钱包分别展示,也可能只出现换算后的本地时间。核验时把原始字段与显示结果并排记录:创建时间是什么,是否存在x字段,采用的秒数是多少,展示的是哪个时区。这样能定位差异来自发票本身还是显示层。这里没有保证所有钱包使用同样的标签名称或布局,具体界面仍需核对产品的当前说明。

核验对象应保留的信息常见误读
timestamp发票的创建时点把打开二维码的时间当成创建时间
x / expiry明确给定的有效秒数,或缺失时的默认值所有发票统一一小时
截止时点创建时间加有效秒数把倒计时当成链上支付结果
展示时区UTC或本地时区标识两个时区的钟面直接比较

一个只用于演算的时间例子

假设一张发票的创建时点是UTC 2026年10月11日04:00:00,解码得到expiry为1800秒。这里的数字是人为设置的教学样本,不是从真实发票取得。1800秒等于30分钟,截止时点就是同日UTC 04:30:00;按北京时间展示,则分别是12:00:00与12:30:00。改变的是显示时区,发票对应的时点没有因此改变。

如果另一个假设样本没有x字段,才采用3600秒默认值,在同样的创建时点下得到UTC 05:00:00。两个例子用同一创建时间,是为了让区别只来自有效秒数。实际检查时要保存“字段存在或缺失”的证据,否则事后看到一个3600,无法知道它是发票明确指定还是解码器补出的默认值。

可以把核验式写成“截止时点=timestamp+expiry秒数”。做系统接入时,应明确解析结果的时间单位,并避免把秒数当成分钟或把时间字符串当成可直接相加的数值。换算本身只能检验显示是否一致,不能说明付款路由、余额或收款状态正常。

另一个带expiry字样的字段为何不能相加

BOLT11还定义min_final_cltv_expiry_delta。它与x字段都涉及时间约束,却不是同一只钟。x字段描述发票在创建时间之后可使用多少秒;min_final_cltv_expiry_delta描述最终HTLC所要求的CLTV差值。BOLT 4会把最终节点收到的incoming cltv_expiry与current_block_height加该差值比较,这里的比较依据是区块高度维度。

因此,不能把min_final_cltv_expiry_delta直接加入timestamp,也不能拿它替代x字段计算发票截止日期。一个解码器同时列出两个字段时,应该分别标明单位与用途。前者回答“最终HTLC的高度约束怎样检查”,后者回答“这张发票从创建起有效多久”。把两者合成一个倒计时,会丢失协议语义。

若需要先了解发票还携带哪些信息,可阅读BOLT11发票字段解读;对支付网络的背景问题,比特币闪电网络基础提供另一条阅读路径。这两类材料可以帮助理解付款场景,但不会替代当前发票的字段核验。

到期以后,哪些结论有依据

BOLT11建议,在timestamp加expiry之后,付款方不要尝试支付,收款方不要接受支付。面对已经过期的发票,较清楚的处理方式是暂停付款,并与收款方核对是否需要重新开票;新发票应作为新的核验对象,不能把旧发票的时间字段套到新编码上。

“发票已过期”与“支付失败”是不同结论。前者来自创建时间、有效秒数和当前时点的比较,后者需要付款结果证据。已完成支付也不能仅因原发票后来过期就被认定自动撤销。本文的事实范围没有覆盖任何付款个案,无法据此判断某笔资金是否返还,更不能给出必然到账或必然退款的承诺。

若钱包在临界时点仍提供付款按钮,按钮可点击也不构成协议或收款实现保证。应先核对钱包说明与收款方状态,不要为了赶倒计时反复尝试。对于同名资产,还需确认实际使用的是预期网络;比特币链上状态、闪电付款结果、平台入账和钱包展示分别需要对应证据,不能互相替代。

留下可复查的记录

付款前保存原始发票、解码时间、timestamp、x是否存在、采用的expiry和展示时区。若发生争议,再补充付款结果记录,而不要只留下一个显示“过期”的截图。敏感记录应妥善保管,不公开个人付款信息。本文仅提供协议字段教育,不构成投资建议;数字资产价格可能剧烈波动并损失本金,时间计算正确也不能消除付款操作与对手方风险,请自行核实并独立决策。