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