nSequence
一句话定义: 每个交易输入的字段:原为部分交易更新设计,BIP 68 起被重新用于编码相对时间锁与 RBF 信号。
nSequence 是比特币中每个交易输入上的一个 32 位字段。它最初在比特币的最早设计里是「部分替换」机制,后来被 BIP 68(以及 BIP-125 RBF 的信号机制)重新启用,用来编码:
- 相对时间锁。 低 16 位编码自该输入引用的 UTXO 被确认以来的区块数或时间延迟。
- 类型标志。 第 22 位选择按区块还是按时间解释。
- 禁用标志。 第 31 位置 1 时,对该输入禁用相对时间锁。
- RBF 信号。 任何小于
0xfffffffe的nSequence值都表示选择加入 BIP-125 的替换手续费(RBF)。
当前默认值为 0xfffffffd(启用 BIP-125 RBF 信号)或 0xffffffff(无相对时间锁、无 RBF 信号),取决于钱包。
这些语义在几个用户真会碰到的场合里要紧:
- 支持 RBF 的钱包把
nSequence设为0xfffffffd,交易就可以通过 BIP-125 被替换。 - 闪电承诺交易用特定的
nSequence值编码通道关闭延迟窗口,由 OP_CHECKSEQUENCEVERIFY 执行。 - 带相对时间锁的脚本合约把
nSequence设为延迟值,并在锁定脚本里配一个 CSV 检查。
nSequence 是那种多数用户永远不会直接打交道的协议细节,却默默支撑着闪电网络、金库和大多数高级多方构造。它从「部分替换」到「相对时间锁 + RBF 信号」的重新启用史,是比特币务实地复用字段语义的一个小小例证。
相对时间锁语义见 BIP 68,更广的基于时间的脚本框架见锁时间。
相关词条: 绝对时间锁(Absolute Locktime) · BIP 65(OP_CHECKLOCKTIMEVERIFY) · BIP 68(相对时间锁) · BIP 113 · CLTV(CheckLockTimeVerify) · CSV(CheckSequenceVerify) · 延迟惩罚交易(Delayed Justice) · 锁时间(Locktime) · MTP(中位时间过去) · nLockTime · 时间锁合约(Time-Locked Contract) · 交易(Transaction)