内容提要
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。