GitHub
深入技术
交易加速

交易加速

交易加速只能发生在原交易仍在内存池中, 由于支付的交易费过低而仍停留在内存池中未被打包进区块的情况下。实现交易加速, 只能通过提升交易优先级的方法。

有两种方式可以提升交易优先级:

  • RBF (Replace-By-Fee)

  • CPFP (Child-Pays-For-Parent)

RBF

要启用 RBF, 原交易的交易输入中, 至少有一个交易输入的 Sequence 值小于 0xFFFFFFFE(通常设置为 0xFFFFFFFD), 这样的交易也被称为可替换交易。

构造的新交易与原交易具有相同的输入, 但具有不同的输出, 通常是减少输出金额以增加交易费用。

当节点接收到新交易时, 判断新交易是否符合 RBF 规则(如更高的费用), 如果符合, 则会将原交易从内存池中移除, 并将新交易添加到内存池中, 以确保内存池中的交易都是有效的, 不会发生冲突。

CPFP

当交易没有启用 RBF 时, 只能使用 CPFP 来提高交易的优先级。

CPFP 原理是利用了内存池可以同时存在父子交易的特性。子交易可以花费同样在内存池中的父交易输出, 但要打包子交易, 必须先打包父交易。

为了提高父交易的优先级, 构造一个子交易, 并设置更高的交易费用, 以激励矿工尽快打包父交易。

例如, 当前网络的平均费用是 5 sat/vbyte, 父交易的费用是 1 sat/vbyte, 构造的子交易的费用设置为 20 sat/vbyte。矿工为了获得子交易的交易费, 就会尽快打包父交易, 以争取在下一个区块打包子交易。

Copyright © 2024 HeapUp