CKB RBF 设计和实现

CKB RBF 设计和实现

💡 原文中文,约2100字,阅读约需5分钟。
📝

内容提要

CKB 引入了替换费用(RBF)机制,以解决低费用交易未被处理的问题。RBF 允许用新交易替换旧交易,并合并多个支付,优先处理高费用交易,减少手动提高费用的需求。遵循比特币的检查规则,确保新交易费用更高且符合条件,从而解决并发问题并规避潜在攻击风险。

🎯

关键要点

  • CKB 引入替换费用(RBF)机制以解决低费用交易未被处理的问题。

  • RBF 允许用新交易替换旧交易,并合并多个支付,优先处理高费用交易。

  • 引入 RBF 的原因是为了提高在交易池中费用较低的交易的处理速度。

  • 新的 multi_index_map 重构后,交易在 pending 阶段会根据交易的 score 优先处理。

  • RBF 可能将多个老的交易替换为一个新交易,简化支付过程。

  • 中本聪的 Bitcoin 最初版本中引入了 nSequence 字段,但存在滥用风险,因此后续版本进行了改进。

  • CKB 在 RBF 的实现中进行了两次调研,改造了交易池以支持优先队列。

  • 新增 RBF 的流程包括 pre-check 和检查规则,确保交易的有效性。

  • RBF 的检查规则参考 Bitcoin 的六条,确保新交易费用高于旧交易。

  • 修改 tx-pool 的 submit_entry 函数以处理冲突交易,确保检查完成后再进行删除和写操作。

  • 在初始实现中发现并发 bug,后续修复了 RBF 的冲突检查逻辑。

  • RBF 可能引入 cycling attack 风险,后续进行了改进以规避该问题。

延伸问答

什么是替换费用(RBF)机制?

替换费用(RBF)机制允许用新交易替换旧交易,以提高低费用交易的处理速度。

CKB引入RBF的原因是什么?

CKB引入RBF是为了处理低费用交易未被处理的问题,提高交易的处理速度。

RBF如何优先处理高费用交易?

在新的multi_index_map重构后,交易在pending阶段会根据交易的score优先处理,通常费用高的交易score也会高。

RBF的实现过程中有哪些检查规则?

RBF的检查规则包括新交易费用必须高于旧交易费用,并且符合其他六条规则。

RBF可能带来哪些风险?

RBF可能引入cycling attack风险,通过构造新交易使支付路径上的中间节点无法按时上链。

CKB在RBF的实现中做了哪些改进?

CKB在RBF的实现中进行了两次调研,改造了交易池以支持优先队列,并修复了并发bug。

🏷️

标签

➡️

继续阅读