Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 56A63143C for ; Thu, 17 Sep 2015 07:43:05 +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 60AD0AF for ; Thu, 17 Sep 2015 07:43:04 +0000 (UTC) Received: from localhost ([::1]:32904 helo=server47.web-hosting.com) by server47.web-hosting.com with esmtpa (Exim 4.85) (envelope-from ) id 1ZcTqQ-0016Jq-SR; Thu, 17 Sep 2015 03:43:02 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Thu, 17 Sep 2015 03:43:02 -0400 From: jl2012@xbt.hk To: Mark Friedenbach In-Reply-To: References: <55DA6470.9040301@thinlink.com> Message-ID: <52804bf0fb44a77efb3610e6bdf978e4@xbt.hk> 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: Thu, 17 Sep 2015 07:43:05 -0000 How many years of relative lock time do we need? It really depends why we need a relative lock time in the first place, what what does it offer in addition to CHECKLOCKTIMEVERIFY. The only case I know is when the confirmation taking too long, CLTV may expire before the tx is confirmed. For use case like this, 1 year of relative lock time is much more than enough, since Bitcoin is basically worthless if it takes months to confirm a tx with a reasonable fee. Is there any other use case of CSV that is irreplaceable by CLTV? There is only one example in the BIP CSV draft. For the timebased relative lock time, 256 seconds of granularity is more than enough since the block interval is 600s. Although it is not impossible to reduce the block interval in the future, that will be a hardfork anyway and we may just hardfork BIP68/CSV at the same time. Mark Friedenbach via bitcoin-dev 於 2015-08-27 19:32 寫到: > So I've created 2 new repositories with changed rules regarding > sequencenumbers: > > https://github.com/maaku/bitcoin/tree/sequencenumbers2 [2] > > This repository inverts (un-inverts?) the sequence number. nSequence=1 > means 1 block relative lock-height. nSequence=LOCKTIME_THRESHOLD means > 1 second relative lock-height. nSequence>=0x80000000 (most significant > bit set) is not interpreted as a relative lock-time. > > https://github.com/maaku/bitcoin/tree/sequencenumbers3 [3] > > This repository not only inverts the sequence number, but also > interprets it as a fixed-point number. This allows up to 5 year > relative lock times using blocks as units, and saves 12 low-order bits > for future use. Or, up to about 2 year relative lock times using > seconds as units, and saves 4 bits for future use without second-level > granularity. More bits could be recovered from time-based locktimes by > choosing a higher granularity (a soft-fork change if done correctly). > > On Tue, Aug 25, 2015 at 3:08 PM, Mark Friedenbach > wrote: > >> To follow up on this, let's say that you want to be able to have up >> to 1 year relative lock-times. This choice is somewhat arbitrary and >> what I would like some input on, but I'll come back to this point. >> >> * 1 bit is necessary to enable/disable relative lock-time. >> >> * 1 bit is necessary to indicate whether seconds vs blocks as the >> unit of measurement. >> >> * 1 year of time with 1-second granularity requires 25 bits. >> However since blocks occur at approximately 10 minute intervals on >> average, having a relative lock-time significantly less than this >> interval doesn't make much sense. A granularity of 256 seconds would >> be greater than the Nyquist frequency and requires only 17 bits. >> >> * 1 year of blocks with 1-block granularity requires 16 bits. >> >> So time-based relative lock time requires about 19 bits, and >> block-based relative lock-time requires about 18 bits. That leaves >> 13 or 14 bits for other uses. >> >> Assuming a maximum of 1-year relative lock-times. But what is an >> appropriate maximum to choose? The use cases I have considered have >> only had lock times on the order of a few days to a month or so. >> However I would feel uncomfortable going less than a year for a hard >> maximum, and am having trouble thinking of any use case that would >> require more than a year of lock-time. Can anyone else think of a >> use case that requires >1yr relative lock-time? >> >> TL;DR >> >> On Sun, Aug 23, 2015 at 7:37 PM, Mark Friedenbach >> wrote: >> >> A power of 2 would be far more efficient here. The key question is >> how long of a relative block time do you need? Figure out what the >> maximum should be ( I don't know what that would be, any ideas?) and >> then see how many bits you have left over. >> >> On Aug 23, 2015 7:23 PM, "Jorge Timón" >> wrote: >> On Mon, Aug 24, 2015 at 3:01 AM, Gregory Maxwell via bitcoin-dev >> wrote: >>> Seperately, to Mark and Btcdrank: Adding an extra wrinkel to the >>> discussion has any thought been given to represent one block with >> more >>> than one increment? This would leave additional space for future >>> signaling, or allow, for example, higher resolution numbers for a >>> sharechain commitement. >> >> No, I don't think anybody thought about this. I just explained this >> to >> Pieter using "for example, 10 instead of 1". >> He suggested 600 increments so that it is more similar to >> timestamps. >> _______________________________________________ >> 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 > [2] https://github.com/maaku/bitcoin/tree/sequencenumbers2 > [3] https://github.com/maaku/bitcoin/tree/sequencenumbers3 > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev