Consensus-enforced transaction replacement via sequence numbers



Summary:

In an email sent on May 28, 2015, Tier Nolan asked for an update to be made in transactions so that it only applies to transactions with version number 3 and higher. He suggested that changing the meaning of a field is exactly what the version numbers are for. Additionally, he proposed decoding version 3 transactions like that. Version 3 transactions have a sequence number of 0xFFFFFFFF and the sequence number field is re-purposed for relative lock time. This means that legacy transactions that have already been signed but have a locktime in the future will still be able to enter the blockchain. According to Peter Todd's reply, instead of treating this as a version change, it should be treated as a feature flag. He pointed out that nSequence is potentially useful for coordinating multiple signatures to ensure they can only be used in certain combinations which may not be compatible with the idea of relative lock. Furthermore, nSequence is currently the only thing in CTxIn's that the signature signs that can be freely changed and he would not be surprised if other uses for it are found. However, he stated that it is not yet clear whether the proposal is useful or not without fleshed-out examples.


Updated on: 2023-06-09T21:39:01.647187+00:00