<oembed><type>rich</type><version>1.0</version><author_name>npub1r3san9v5njl6798hvauyu9ntm6r9c7u8s0t65wls58gpfdcvqp5sa48d0u</author_name><author_url>https://nostr.ae/npub1r3san9v5njl6798hvauyu9ntm6r9c7u8s0t65wls58gpfdcvqp5sa48d0u</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-11-25&#xA;📝 Original message:Looks like I&#39;m the long dissenting voice here? As the originator of the&#xA;name CHECKSEQUENCEVERIFY, perhaps I can explain why the name was&#xA;appropriately chosen and why the proposed alternatives don&#39;t stand up.&#xA;&#xA;First, the names are purposefully chosen to illustrate what they do:&#xA;&#xA;What does CHECKLOCKTIMEVERIFY do? It verifies the range of tx.nLockTime.&#xA;What does CHECKSEQUENCEVERIFY do? It verifies the range of txin.nSequence.&#xA;&#xA;Second, the semantics are not limited to relative lock-time / maturity&#xA;only. They both leave open ranges with possible, but currently undefined&#xA;future consensus-enforced behavior. We don&#39;t know what sort of future&#xA;behavior these values might trigger, but the associated opcodes are generic&#xA;enough to handle them:&#xA;&#xA;CHECKLOCKTIMEVERIFY will pass an nSequence between 1985 and 2009, even&#xA;though such constraints have no meaning in Bitcoin.&#xA;CHECKSEQUENCEVERIFY is explicitly written to permit a 5-byte push operand,&#xA;while checking only 17 of the available 39 bits of both the operand and the&#xA;nSequence. Indeed the most recent semantic change of CSV was justified in&#xA;part because it relaxes all constraints over the values of these bits&#xA;freeing them for other purposes in transaction validation and/or future&#xA;extensions of the opcode semantics.&#xA;&#xA;Third, single-byte opcode space is limited. There are less than 10 such&#xA;opcodes left. Maybe space won&#39;t be so precious in a post-segwitness world,&#xA;but I don&#39;t want to presume that just yet.&#xA;&#xA;&#xA;As for the alternatives, they capture only the initial use case of&#xA;nSequence. My objection would relax if nSequence were renamed, but I think&#xA;that would be too disruptive and unnecessary. In any case, the imagined use&#xA;cases for CHECKSEQUENCEVERIFY has to do with sequencing execution pathways&#xA;of script, so it&#39;s not a stretch in meaning. Previously CHECKMATURITYVERIFY&#xA;was a hypothicated opcode that directly checked the minimum age of inputs&#xA;of a transaction. The indirect naming of CHECKSEQUENCEVERIFY on the other&#xA;hand is due to its indirect behavior. RELATIVELOCKTIMEVERIFY was also a&#xA;hypothicated opcode that would check a ficticious nRelativeLockTime field,&#xA;which does not exist. Again my objection would go away if we renamed&#xA;nSequence, but I actually think the nSequence name is better...&#xA;&#xA;On Tue, Nov 24, 2015 at 2:30 AM, Btc Drak via bitcoin-dev &lt;&#xA;bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&#xA;&gt; BIP68 introduces relative lock-time semantics to part of the nSequence&#xA;&gt; field leaving the majority of bits undefined for other future applications.&#xA;&gt;&#xA;&gt; BIP112 introduces opcode CHECKSEQUENCEVERIFY (OP_CSV) that is specifically&#xA;&gt; limited to verifying transaction inputs according to BIP68&#39;s relative&#xA;&gt; lock-time[1], yet the _name_ OP_CSV is much boarder than that. We spent&#xA;&gt; months limiting the number of bits used in BIP68 so they would be available&#xA;&gt; for future use cases, thus we have acknowledged there will be completely&#xA;&gt; different usecases that take advantage of unused nSequence bits.&#xA;&gt;&#xA;&gt; For this reason I believe the BIP112 should be renamed specifically for&#xA;&gt; it&#39;s usecase, which is verifying the time/maturity of transaction inputs&#xA;&gt; relative to their inclusion in a block.&#xA;&gt;&#xA;&gt; Suggestions:-&#xA;&gt;&#xA;&gt; CHECKMATURITYVERIFY&#xA;&gt; RELATIVELOCKTIMEVERIFY&#xA;&gt; RCHECKLOCKTIMEVERIFY&#xA;&gt; RCLTV&#xA;&gt;&#xA;&gt; We could of course softfork additional meaning into OP_CSV each time we&#xA;&gt; add new sequence number usecases, but that would become obscure and&#xA;&gt; confusing. We have already shown there is no shortage of opcodes so it&#xA;&gt; makes no sense to cram everything into one generic opcode.&#xA;&gt;&#xA;&gt; TL;DR: let&#39;s give BIP112 opcode a name that reflects it&#39;s actual usecase&#xA;&gt; rather than focusing on the bitcoin internals.&#xA;&gt;&#xA;&gt; [1]&#xA;&gt; https://github.com/bitcoin/bitcoin/pull/6564/files#diff-be2905e2f5218ecdbe4e55637dac75f3R1223&#xA;&gt;&#xA;&gt; _______________________________________________&#xA;&gt; bitcoin-dev mailing list&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20151125/25ab2f56/attachment-0001.html&gt;</html></oembed>