On Thu, May 28, 2015 at 3:59 PM, Mark Friedenbach <mark@friedenbach.org> wrote:

Why 3? Do we have a version 2?

I meant whatever the next version is, so you are right, it's version 2.

As for doing it in serialization, that would alter the txid making it a hard fork change.

The change is backwards compatible (since there is no restrictions on sequence numbers).   This makes it a soft fork.

That doesn't change the fact that you are changing what a field in the transaction represents.

You could say that the sequence number is no longer encoded in the serialization, it is assumed to be 0xFFFFFFFF for all version 2+ transactions and the relative locktime is a whole new field that is the same size (and position).

I think keeping some of the bytes for other uses is a good idea.  The entire top 2 bytes could be ignored when working out relative locktime verify.  That leaves them fully free to be set to anything. 

It could be that if the MSB of the bottom 2 bytes is set, then that activates the rule and the top 2 bytes are ignored.

Are there any use-cases which need a RLTV of more than 8191 blocks delay (that can't be covered by the absolute version)?