public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: jl2012@xbt•hk
To: Mark Friedenbach <mark@friedenbach•org>
Cc: Bitcoin Dev <bitcoin-dev@lists•linuxfoundation.org>
Subject: Re: [bitcoin-dev] The use of tx version field in BIP62 and 68
Date: Sat, 08 Aug 2015 15:18:54 -0400	[thread overview]
Message-ID: <44dcb2c03d0bc344ca7a32ee0ddf1f8d@xbt.hk> (raw)
In-Reply-To: <CAOG=w-twsTpVKzycPt_ZEFKzjnnTX1n83vdXcyxWsx11gSH5Tw@mail.gmail.com>

I think I have explained my motivation but let me try to make it 
clearer.

For example, BIP62 says "scriptPubKey evaluation will be required to 
result in a single non-zero value". If we had BIP62 before BIP16, P2SH 
could not be done in the current form because BIP16 leaves more than one 
element on the stake for non-upgrading nodes. BIP17 also violates BIP62.

BIP68 is "only enforced if the most significant bit of the sequence 
number field is set.", so it is optional, anyway. All I do is to move 
the flag from sequence number to version number.

The blocksize debate shows how a permanent softfork may cause trouble 
later. We need to be very careful when doing further softforks, making 
sure we will have enough flexibility for further development.

Mark Friedenbach 於 2015-08-08 14:56 寫到:
> It is not a bug that you are unable to selectively choose these
> features with higher version numbers. The version selection is in
> there at all because there is a possibility that there exists already
> signed transactions which would violate these new rules. We wouldn't
> want these transactions to become unspendable. However moving forward
> there is no reason to selectively pick and choose which of these new
> consensus rules you want to apply your transaction.
> On Aug 8, 2015 11:51 AM, "jl2012 via bitcoin-dev"
> <bitcoin-dev@lists•linuxfoundation.org> wrote:
> 
>> BIP68 rules and some of the BIP62 rules are applied only if the tx
>> version is >=2 and >=3 respectively. Therefore, it is not possible
>> to create a tx which follows BIP62 but not BIP68. If we introduce v4
>> tx later, BIP62 and BIP68 will all become mandatory.
>> 
>> Some rules, e.g. "scriptPubKey evaluation will be required to
>> result in a single non-zero value" in BIP62, will cause trouble when
>> we try to introduce a new script system with softfork.
>> 
>> I suggest to divide the tx version field into 2 parts: the higher 4
>> bits and lower 28 bits.
>> 
>> BIP62 is active for a tx if its highest bits are 0000, and the
>> second lowest bit is 1.
>> 
>> BIP68 is active for a tx if its highest bits are 0000, and the
>> third lowest bit is 1.
>> 
>> So it will be easier for us to re-purpose the nSequence, or to take
>> advantage of malleability in the future. If this is adopted, the
>> nSequence high bit requirement in BIP68 becomes unnecessary as we
>> could easily switch it off.
>> 
>> The low bits will allow 28 independent BIPs and should be ample for
>> many years. When they are exhausted, we can switch the high bits to
>> a different number (1-15) and redefine the meaning of low bits. By
>> that time, some of the 28 BIPs might have become obsoleted or could
>> be merged.
>> 
>> (I'm not sure if there are other draft BIPs with similar
>> interpretation of tx version but the comments above should also
>> apply to them)
>> _______________________________________________
>> bitcoin-dev mailing list
>> bitcoin-dev@lists•linuxfoundation.org
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev [1]
> 
> 
> Links:
> ------
> [1] https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev



      reply	other threads:[~2015-08-08 19:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-08 18:51 jl2012
2015-08-08 18:56 ` Mark Friedenbach
2015-08-08 19:18   ` jl2012 [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44dcb2c03d0bc344ca7a32ee0ddf1f8d@xbt.hk \
    --to=jl2012@xbt$(echo .)hk \
    --cc=bitcoin-dev@lists$(echo .)linuxfoundation.org \
    --cc=mark@friedenbach$(echo .)org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox