Return-Path: <elombrozo@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 72095901
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 25 Nov 2015 01:15:19 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-pa0-f46.google.com (mail-pa0-f46.google.com
	[209.85.220.46])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id E8ED0149
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 25 Nov 2015 01:15:18 +0000 (UTC)
Received: by padhx2 with SMTP id hx2so39247796pad.1
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Tue, 24 Nov 2015 17:15:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=from:to:subject:cc:date:message-id:in-reply-to:reply-to:user-agent
	:mime-version:content-type;
	bh=N9XqxPKPC4S9ab8pdXjYKjNgZoieVSPHhE94SUIvyTs=;
	b=E4OiyOi1Uq6NA8AAfZvbgwbErZJxZSp/TOwOeT2HnP8Juhdf4IBdnJ6Lu4cduy11G3
	384igB1nBR6Ok9BoGgscxM+9RkgQ/uKay0ldF6ZwqTF0fT6f3pLfKlm1wOa2o8pJCKFZ
	9mc8BBzDxawlupv9ZNoQrfUZH89UgVjxivaya6m+SxPH3vEOY4WmjfCAGjukwnzxwXIN
	raZDMArc9+NGm5d+gtcZuq/2LJW8CdYYzxM3EBiHEr+d6uD27VLFdcj+xHc0PNm8hLvq
	yxEN0TLXby6d8AeWU/PUlvS3zT1v+y28Yoam+fJ+yGIP5Rb6sdAter3LKHm0Oxr8+lmF
	0Gcw==
X-Received: by 10.98.70.141 with SMTP id o13mr27723188pfi.44.1448414118658;
	Tue, 24 Nov 2015 17:15:18 -0800 (PST)
Received: from [192.168.1.108] (cpe-76-167-237-202.san.res.rr.com.
	[76.167.237.202]) by smtp.gmail.com with ESMTPSA id
	186sm16760534pfa.24.2015.11.24.17.15.17
	(version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
	Tue, 24 Nov 2015 17:15:18 -0800 (PST)
From: "Eric Lombrozo" <elombrozo@gmail.com>
To: =?utf-8?q?Jorge=20Tim=c3=b3n?= <jtimon@jtimon.cc>, "Btc Drak"
	<btcdrak@gmail.com>
Date: Wed, 25 Nov 2015 01:14:55 +0000
Message-Id: <em80f319b9-ff7c-4a88-85c7-efdb0333ada1@platinum>
In-Reply-To: <CABm2gDqoq4pkXLS=4rKGOLGU0_0mq1_yMOHmLw73m=apiMRMpg@mail.gmail.com>
Reply-To: "Eric Lombrozo" <elombrozo@gmail.com>
User-Agent: eM_Client/6.0.23181.0
Mime-Version: 1.0
Content-Type: multipart/alternative;
	boundary="------=_MB2CC52C3C-758E-4813-8CEA-D5AEF5558DBF"
X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,HTML_MESSAGE,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
X-Mailman-Approved-At: Wed, 25 Nov 2015 01:23:53 +0000
Cc: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] Alternative name for CHECKSEQUENCEVERIFY (BIP112)
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Development Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 01:15:19 -0000


--------=_MB2CC52C3C-758E-4813-8CEA-D5AEF5558DBF
Content-Type: text/plain; format=flowed; charset=utf-8
Content-Transfer-Encoding: quoted-printable

From a system developer standpoint, CHECKMATURITYVERIFY ties together=20
the semantics of this opcode with another existing feature in the system=
=20
(coinbase maturity).

HOWEVER...

from an application developer standpoint, I think the concept of a=20
timelock is more relevant. Maturity is a concept that was introduced for=
=20
the sake of reducing the disruptive impact of reorgs. Miners would=20
prefer to be able to spend the coins immediately, but instead they are=20
forced to wait due to inherent limitations of the system. Timelocks, on=20
the other hand, are typically used to control when funds can be moved.=20
In these use cases, one or more of the parties involved explicitly want=20
there to be a delay even if there were an idealized situation in which=20
consensus is always reached instantaneously and there were never any=20
reorgs.

Moreover, since we already have CLTV, adding RCLTV or some variant=20
thereof makes the relationship between the two more explicit.

So my vote goes to RCLTV or RCHECKLOCKTIMEVERIFY.

As for whether to explicitly use CHECK_..._VERIFY, consider that with=20
segregated witness it will be possible to add opcodes that can push=20
values onto the stack (rather than just hard failing or NOP), so there's=
=20
something to be said for naming consistency.

- Eric



------ Original Message ------
From: "Jorge Tim=C3=B3n" <bitcoin-dev@lists.linuxfoundation.org>
To: "Btc Drak" <btcdrak@gmail.com>
Cc: "Bitcoin Dev" <bitcoin-dev@lists.linuxfoundation.org>
Sent: 11/24/2015 4:31:55 AM
Subject: Re: [bitcoin-dev] Alternative name for CHECKSEQUENCEVERIFY=20
(BIP112)

>I agree, I believe the first name that an op with equivalent=20
>functionality had was simply op_maturity.
>At least I remember we discussed such an opcode when discussing pegged=20
>sidechains' design.
>
>I kind of dislike the check_x_verify naming pattern. We want all new=20
>operands to return if whatever they're checking/verifying fails, fine.=20
>Do we have to repeat this redundant naming pattern forever due to that=20
>discovery?
>I hope not, but if that's the case my vote is for CMV.
>As said before, I believe the documentation and code comments can=20
>become much more clear with this change.
>
--------=_MB2CC52C3C-758E-4813-8CEA-D5AEF5558DBF
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<HTML><HEAD>
<STYLE id=3DeMClientCss>blockquote.cite { margin-left: 5px; margin-right:=
 0px; padding-left: 10px; padding-right:0px; border-left: 1px solid #cccccc=
 }
blockquote.cite2 {margin-left: 5px; margin-right: 0px; padding-left: 10px;=
 padding-right:0px; border-left: 1px solid #cccccc; margin-top: 3px; paddin=
g-top: 0px; }
.plain pre, .plain tt { font-family: monospace; font-size: 100%; font-weigh=
t: normal; font-style: normal; white-space: pre-wrap; }
a img { border: 0px; }body {font-family: Tahoma;font-size: 12pt;}
.plain pre, .plain tt {font-family: Tahoma;font-size: 12pt;}
</STYLE>

<STYLE></STYLE>
</HEAD>
<BODY scroll=3Dauto class>
<DIV>From a system developer standpoint, CHECKMATURITYVERIFY ties together=
 the semantics of this opcode with another existing feature in the system=
 (coinbase maturity).</DIV>
<DIV>&nbsp;</DIV>
<DIV>HOWEVER...</DIV>
<DIV>&nbsp;</DIV>
<DIV>from an application developer standpoint, I think the concept of a =
timelock is more relevant. Maturity is a concept that was introduced for=
 the sake of reducing the disruptive impact of reorgs. Miners would prefer=
 to be able to spend the coins immediately, but instead they are forced =
to wait due to inherent limitations of the system. Timelocks, on the other=
 hand, are typically used to control when funds can be moved. In these use=
 cases, one or more of the parties involved explicitly want there to be =
a delay even if there were an idealized situation in which consensus is =
always reached instantaneously and there were never any reorgs.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Moreover, since we already have CLTV, adding RCLTV or some variant =
thereof makes the relationship between the two&nbsp;more explicit.</DIV>
<DIV>&nbsp;</DIV>
<DIV>So my vote goes to RCLTV or RCHECKLOCKTIMEVERIFY.</DIV>
<DIV>&nbsp;</DIV>
<DIV>As for whether to explicitly use CHECK_..._VERIFY, consider that with=
 segregated witness it will be possible to add opcodes that can push values=
 onto the stack (rather than just hard failing or NOP), so there's somethin=
g to be said for naming consistency.</DIV>
<DIV>&nbsp;</DIV>
<DIV>- Eric</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>------ Original Message ------</DIV>
<DIV>From: "Jorge Tim=C3=B3n" &lt;<A href=3D"mailto:bitcoin-dev@lists.linux=
foundation.org">bitcoin-dev@lists.linuxfoundation.org</A>&gt;</DIV>
<DIV>To: "Btc Drak" &lt;<A href=3D"mailto:btcdrak@gmail.com">btcdrak@gmail.=
com</A>&gt;</DIV>
<DIV>Cc: "Bitcoin Dev" &lt;<A href=3D"mailto:bitcoin-dev@lists.linuxfoundat=
ion.org">bitcoin-dev@lists.linuxfoundation.org</A>&gt;</DIV>
<DIV>Sent: 11/24/2015 4:31:55 AM</DIV>
<DIV>Subject: Re: [bitcoin-dev] Alternative name for CHECKSEQUENCEVERIFY=
 (BIP112)</DIV>
<DIV>&nbsp;</DIV>
<DIV id=3Dxe40f4e1a28394eee96200b907d68005b>
<BLOCKQUOTE class=3Dcite2 cite=3DCABm2gDqoq4pkXLS=3D4rKGOLGU0_0mq1_yMOHmLw7=
3m=3DapiMRMpg@mail.gmail.com type=3D"cite">
<P dir=3Dltr>I agree, I believe the first name that an op with equivalent=
 functionality had was simply op_maturity.<BR>At least I remember we discus=
sed such an opcode when discussing pegged sidechains' design.</P>
<P dir=3Dltr>I kind of dislike the check_x_verify naming pattern. We want=
 all new operands to return if whatever they're checking/verifying fails,=
 fine. Do we have to repeat this redundant naming pattern forever due to=
 that discovery?<BR>I hope not, but if that's the case my vote is for CMV.<=
BR>As said before, I believe the documentation and code comments can become=
 much more clear with this change.</P></BLOCKQUOTE></DIV></BODY></HTML>
--------=_MB2CC52C3C-758E-4813-8CEA-D5AEF5558DBF--