简化承诺 - Simplified Commitments

也涵盖锚定输出(Anchor Outputs)

锚定输出 是闪电网络(LN)承诺交易中的特殊输出,设计目的是允许对交易进行费用提升。这个提案的早期名称是简化承诺(Simplified Commitments)

每次LN通道中的余额发生变化时,就会创建并由参与方签署一个_承诺交易(commitment transaction)_。只有当一方决定单方面关闭通道时(例如,因为另一方无响应),才会广播该交易。由于承诺交易的广播可能发生在创建后很长时间,所以承诺交易可能会支付过多或过少的交易费用。支付过低的费率可能会阻止承诺交易在其中包含的任何时间锁定(timelocks)到期前确认,从而导致资金被盗取。

解决方案是让承诺交易支付最低额度的费用,然后允许任一通道参与方对交易进行费用提升。早期使用替换费用提升(Replace-by-Fee, RBF)策略的设计遇到了交易钉扎(Transaction Pinning)的问题。后续设计使用子支付父(Child Pays For Parent, CPFP)费用提升策略,并依赖于CPFP carve-out来规避钉扎问题。

截至目前,最新的设计方案在承诺交易中为每个LN方添加了两个输出,并要求承诺交易中的所有其他输出的脚本都被1 OP_CHECKSEQUENCEVERIFY(CSV)条件所束缚,防止它们在至少一个区块内被花费。

为了充分发挥效果,该协议还依赖于比特币全节点实现打包转发(Package Relay),以便在交易费率低于节点的最低转发费用时,仍有办法使用CPFP对承诺交易进行费用提升。但在打包转发可用之前,LN节点可以为他们的承诺交易支付稍高的费率,以确保它们被节点接受。

主要代码与文档

Optech 新闻简报和网站提及

2023

2022

2021

2020

2019

2018

参见

Last updated