nSequence multiple uses

nSequence multiple uses
2016-01-23  4:10 ` David A. Harding
  
From: Andrew C @ 2016-01-22 16:36 UTC (permalink / raw)
  To: Bitcoin development mailing list

[-- Attachment #1: Type: text/plain, Size: 719 bytes --]

With 0.12 and opt-in RBF, nSequence will have multiple uses. It can be used
for locktime and now signaling for opting in to RBF. However, there is
nothing that I could find that distinguishes the uses for nSequence.
Spending a time locked output requires setting nSequence to less than
MAX_INT but opting into RBF also requires setting nSequence to less than
MAX_INT. By spending a time locked output, you would also be opting into
RBF, which may not be desired behavior. Since using nSequence to signal a
certain behavior will probably be used in the future, is there any plan to
change nSequence so that the features the transaction is using can be
distinguished? Perhaps something like version bits?

Thanks,
Andrew

[-- Attachment #2: Type: text/html, Size: 807 bytes --]

 permalink raw reply	[|nested]
2016-01-22 16:36 [bitcoin-dev] nSequence multiple uses Andrew C

  2016-01-23  4:41   ` Andrew C
  
From: David A. Harding @ 2016-01-23  4:10 UTC (permalink / raw)
  To: Andrew C;  Bitcoin development mailing list

[-- Attachment #1: Type: text/plain, Size: 623 bytes --]

On Fri, Jan 22, 2016 at 04:36:58PM +0000, Andrew C via bitcoin-dev wrote:
> Spending a time locked output requires setting nSequence to less than
> MAX_INT but opting into RBF also requires setting nSequence to less than
> MAX_INT. 

Hi Andrew,

Opt-in RBF requires setting nSequence to less than MAX-1 (not merely
less than MAX), so an nSequence of exactly MAX-1 (which appears in
hex-encoded serialized transactions as feffffff) enables locktime
enforcement but doesn't opt in to RBF.

For more information, please see BIP125:

    https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki

-Dave


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

 permalink raw reply	[|nested]
2016-01-23  4:10 ` David A. Harding

  
From: Andrew C @ 2016-01-23  4:41 UTC ( / )
  To: David A. Harding;  Bitcoin development mailing list



Ahh. I see. Thanks, I must have missed that when going through the BIP.
Guess I need to read more carefully next time.

Thanks,
Andrew

On Fri, Jan 22, 2016 at 11:11 PM David A. Harding <dave@dtrt•org> wrote:

> On Fri, Jan 22, 2016 at 04:36:58PM +0000, Andrew C via bitcoin-dev wrote:
> > Spending a time locked output requires setting nSequence to less than
> > MAX_INT but opting into RBF also requires setting nSequence to less than
> > MAX_INT.
>
> Hi Andrew,
>
> Opt-in RBF requires setting nSequence to less than MAX-1 (not merely
> less than MAX), so an nSequence of exactly MAX-1 (which appears in
> hex-encoded serialized transactions as feffffff) enables locktime
> enforcement but doesn't opt in to RBF.
>
> For more information, please see BIP125:
>
>     https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki
>
> -Dave
>
>