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 风险,后续进行了改进以规避该问题。
➡️

继续阅读