Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 57B2684 for ; Mon, 24 Aug 2015 07:00:40 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from s47.web-hosting.com (s47.web-hosting.com [199.188.200.16]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id E4081EE for ; Mon, 24 Aug 2015 07:00:39 +0000 (UTC) Received: from localhost ([::1]:58160 helo=server47.web-hosting.com) by server47.web-hosting.com with esmtpa (Exim 4.85) (envelope-from ) id 1ZTlkE-0044Nh-4L; Mon, 24 Aug 2015 03:00:38 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Mon, 24 Aug 2015 03:00:37 -0400 From: jl2012@xbt.hk To: Mark Friedenbach In-Reply-To: References: <55DA6470.9040301@thinlink.com> <85537faedb1e601d243e3edb666fa844@xbt.hk> Message-ID: X-Sender: jl2012@xbt.hk User-Agent: Roundcube Webmail/1.0.5 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - server47.web-hosting.com X-AntiAbuse: Original Domain - lists.linuxfoundation.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - xbt.hk X-Get-Message-Sender-Via: server47.web-hosting.com: authenticated_id: jl2012@xbt.hk X-Source: X-Source-Args: X-Source-Dir: X-From-Rewrite: unmodified, already matched X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Bitcoin Dev Subject: Re: [bitcoin-dev] [BIP-draft] CHECKSEQUENCEVERIFY - An opcode for relative locktime X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Development Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Aug 2015 07:00:40 -0000 Your proposal also permanently burns a sequence bit. It depends on how we value a nSequence bit and a nVersion bit. I think there is a trade-off here: 1. nSequence is signed by each TxIn individually, while all TxIns must share the same nVersion 2. If nVersion is used to indicate the meaning of nSequence (as I suggested): Pros: It saves a nSequence bit and allows more space for redefining the nSequence Cons: It burns a nVersion bit. All TxIns in a tx must share the same meaning for their nSequence 3. If nSequence is used to indicate the meaning of itself (as you suggested): Pros: It saves a nVersion bit Different TxIn may have different meaning with their nSequence Cons: It burns a nSequence bit, thus less space for extension I don't think there is a perfect choice. However, I still prefer my proposal because: 1. nSequence is signed by each TxIn individually and could be more interesting than nVersion. 2. If nVersion is expected to be a monotonic number, 2 bytes = 65536 versions is enough for 65 millenniums if it ticks once per year. 4 bytes is an overkill. Why don't we spend a bit if there is a good reason? Most softforks (e.g. OP_CLTV, OP_CSV, BIP66) are not optional. These kind of optional new functions would not be common and should never use up the version bits. (or, could you suggest a better use of the tx version bits?) Mark Friedenbach 於 2015-08-23 22:54 寫到: > Sorry this was meant for the list: > > There are only 32 bits in the version field. If you're going to spend > a bit for perpetuity to indicate whether or not a feature is active, > you'd better have a good reason to make that feature optional. > > I haven't seen a compelling use case for having BIP 68 be optional in > that way. As you note, BIP 68 semantics is already optional by > toggling the most significant bit, and that doesn't permanently burn a > version bit.