2015-12-10 IRC 会议摘要

概述

日志

主题

  • BIP 68 语义更改

BIP 68 语义更改

背景

BIP 68 通过序列号进行共识强制交易替换,以及当前的 实现
BIP 68 将先前未使用的序列号字段的含义更改为相对锁定时间。
当创建区块时,矿工会包含时间戳。这个时间戳必须介于前 11 个区块的中位数和网络调整时间 + 2 小时之间。因此,这个时间戳可能与实际时间相差很大。
随着锁定时间交易的引入,这些交易只有在某个时间之后才有效,矿工因此有动机撒谎关于时间,以便包含本应无效的锁定时间交易(及其费用)。
BIP113 允许在锁定时间交易中使用前一个区块的 GetMedianTimePast(前 11 个区块的中位数),以对抗这种行为。用户可以通过在其锁定时间中添加 1 小时(6 个区块)来弥补这种行为。

会议评论

即使不考虑 BIP113,直接为 BIP68 使用 MedianTimePast 也是合理的,尽管 BIP 113 仍然需要改变 nLockTime 的语义。实现 由 Morcos 完成。
BIP 68 会使最近在 #6898 中实现的 CreateNewBlock 性能提升失效,关于修复方案的讨论在 #7176 中进行,针对新方法(始终使用 MedianTimePast)的修复讨论和提交在 #7187 上进行。
GUI 显示当前锁定交易可能存在一些问题。如果一个区块变成孤块,一个已确认的输入变成未确认,它可能会导致内存池中删除一个先前可接受的交易,你可能需要告知用户该交易已锁定(与不可见不同)。
Morcos 建议暂时保留这个问题,并在软分叉之后进行清理,因为这个问题似乎没有重要到需要进行回滚。UI/钱包变更通常与软分叉变更分开。
顺着这条思路,morcos 提出一个问题:是否有人考虑过或反对放松内存池的当前行为,只包含对下一个区块有效的交易。btcdrak 提到了 ajtowns 为 BIP68+CSV 编写了一些 Python 演示,这对测试人员很有用。

会议结论

查看 #7184 中的 BIP68 方法。
查看 #7187 中针对上述方法的 CreateNewBlock 性能修复。

参与者

morcos          Alex Morcos   
btcdrak         btcdrak  
wumpus          Wladimir J. van der Laan  
BlueMatt        Matt Corallo   
gmaxwell        Gregory Maxwell   
jonasschnelli   Jonas Schnelli   
sdaftuar        Suhas Daftuar  
gavinandresen   Gavin Andresen  
Lightsword      Lightsword

鸣谢

这个摘要最初由 Stefan Gilis(又名“G1lius”)编撰,并发布到 bitcoin-discuss 邮件列表 中,并带有免责声明:“请注意,我不是开发者,所以有些事情可能是错误的或完全错误的。”,并将版权归属于公有领域。