summaryrefslogtreecommitdiff
path: root/f6/4b0666e06c1e1f44246d5257b082735064fc93
blob: 3b9448135f950163b6969c053683d168b45bd27d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Return-Path: <luke@dashjr.org>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 0C677DF2
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 23 Sep 2016 22:35:09 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-1.7.6
Received: from zinan.dashjr.org (unknown [192.3.11.21])
	by smtp1.linuxfoundation.org (Postfix) with ESMTP id 872881F6
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 23 Sep 2016 22:35:08 +0000 (UTC)
Received: from ishibashi.localnet (unknown
	[IPv6:2001:470:5:265:61b6:56a6:b03d:28d6])
	(Authenticated sender: luke-jr)
	by zinan.dashjr.org (Postfix) with ESMTPSA id E2F7538AB81A;
	Fri, 23 Sep 2016 22:34:44 +0000 (UTC)
X-Hashcash: 1:25:160923:bitcoin-dev@lists.linuxfoundation.org::mPx2JHxAgNQIIVzP:aUsOx
X-Hashcash: 1:25:160923:tomz@freedommail.ch::X=2jxHNZ1kYk2Fdu:a/UgC
From: Luke Dashjr <luke@dashjr.org>
To: bitcoin-dev@lists.linuxfoundation.org,
 Tom <tomz@freedommail.ch>
Date: Fri, 23 Sep 2016 22:34:41 +0000
User-Agent: KMail/1.13.7 (Linux/4.4.21-gentoo; KDE/4.14.24; x86_64; ; )
References: <201609230957.03138.luke@dashjr.org> <2403444.9CSRyRIcH2@garp>
In-Reply-To: <2403444.9CSRyRIcH2@garp>
X-PGP-Key-Fingerprint: E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F
X-PGP-Key-ID: BD02942421F4889F
X-PGP-Keyserver: hkp://pgp.mit.edu
MIME-Version: 1.0
Content-Type: Text/Plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Message-Id: <201609232234.43689.luke@dashjr.org>
X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,RDNS_DYNAMIC
	autolearn=no version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
Subject: Re: [bitcoin-dev] BIP draft: OP_CHECKBLOCKATHEIGHT
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Protocol 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: Fri, 23 Sep 2016 22:35:09 -0000

Joe sends Alice 5 BTC (UTXO 0).
Fred sends Alice 4 BTC (UTXO 1).
Alice sends Bob 4 BTC using UTXO 1 (creating UTXO 2).
Fred double-spends UTXO 1 with UTXO 1-B. This invalidates Alice's transfer to 
Bob.
Alice has UTXO 0 which she can send to Bob (UTXO 3), but if she does so, it is 
possible that UTXO 0 could be mined, and then both UTXO 2 and UTXO 3 which 
would result in her giving Bob a total of 8 BTC rather than merely 4 BTC.
Even if Alice waits until Fred's UTXO 1-B confirms 10 blocks deep, it is not 
impossible for a reorganization to reverse those 10 blocks and confirm UTXO 1 
again.
Using OP_CHECKBLOCKATHEIGHT, however, Alice can create UTXO 3 such that it is 
valid only in the blockchain where Fred's UTXO 1-B has confirmed. This way, if 
that block is reorganized out, UTXO 3 is invalid, and either Bob receives only 
the original UTXO 2, or Alice can create a UTXO 3-B which is valid in the 
reorganized blockchain if it again confirms the UTXO 1-B double-spend.

Luke

On Friday, September 23, 2016 2:37:39 PM Tom via bitcoin-dev wrote:
> On Friday 23 Sep 2016 09:57:01 Luke Dashjr via bitcoin-dev wrote:
> > This BIP describes a new opcode (OP_CHECKBLOCKATHEIGHT) for the Bitcoin
> > scripting system to address reissuing bitcoin transactions when the coins
> > they spend have been conflicted/double-spent.
> > 
> > https://github.com/luke-jr/bips/blob/bip-cbah/bip-cbah.mediawiki
> 
> Can you walk us through a real live usecase which this solves?  I read it
> and I think I understand it, but I can't see the attack every giving the
> attacker any benefit (or the attacked losing anything).
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev