summaryrefslogtreecommitdiff
path: root/89/7ec755524b32e86a5ceddace8a8441c0c49ec3
blob: 6d84701fd603fba183e89ee79c2d7ee5264495d1 (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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192]
	helo=mx.sourceforge.net)
	by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <etotheipi@gmail.com>) id 1Ucbo5-0007Jb-Lw
	for bitcoin-development@lists.sourceforge.net;
	Wed, 15 May 2013 13:31:49 +0000
Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of gmail.com
	designates 209.85.223.176 as permitted sender)
	client-ip=209.85.223.176; envelope-from=etotheipi@gmail.com;
	helo=mail-ie0-f176.google.com; 
Received: from mail-ie0-f176.google.com ([209.85.223.176])
	by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1Ucbo4-00072N-Gm
	for bitcoin-development@lists.sourceforge.net;
	Wed, 15 May 2013 13:31:49 +0000
Received: by mail-ie0-f176.google.com with SMTP id at1so3632730iec.35
	for <bitcoin-development@lists.sourceforge.net>;
	Wed, 15 May 2013 06:31:43 -0700 (PDT)
X-Received: by 10.50.72.113 with SMTP id c17mr5501484igv.51.1368624703245;
	Wed, 15 May 2013 06:31:43 -0700 (PDT)
Received: from [192.168.1.85] (c-76-111-96-126.hsd1.md.comcast.net.
	[76.111.96.126]) by mx.google.com with ESMTPSA id
	wn10sm29733266igb.2.2013.05.15.06.31.42
	for <bitcoin-development@lists.sourceforge.net>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Wed, 15 May 2013 06:31:42 -0700 (PDT)
Message-ID: <51938E35.8040604@gmail.com>
Date: Wed, 15 May 2013 09:31:33 -0400
From: Alan Reiner <etotheipi@gmail.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:17.0) Gecko/20130329 Thunderbird/17.0.5
MIME-Version: 1.0
To: bitcoin-development@lists.sourceforge.net
References: <20130515113827.GB26020@savin> <20130515121950.GC26020@savin>
In-Reply-To: <20130515121950.GC26020@savin>
X-Enigmail-Version: 1.5.1
Content-Type: multipart/alternative;
	boundary="------------030705080809040303060408"
X-Spam-Score: -0.6 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
	(etotheipi[at]gmail.com)
	-0.0 SPF_PASS               SPF: sender matches SPF record
	1.0 HTML_MESSAGE           BODY: HTML included in message
	-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
	author's domain
	0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
	not necessarily valid
	-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
X-Headers-End: 1Ucbo4-00072N-Gm
Subject: Re: [Bitcoin-development] 2BTC reward for making probabalistic
 double-spending via conflicting transactions easy
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Wed, 15 May 2013 13:31:49 -0000

This is a multi-part message in MIME format.
--------------030705080809040303060408
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

You can do this right now, with Armory.   If you switch Armory to Expert
usermode, you can combine coin-control with unsigned transactions to do
exactly this.  It's because Armory doesn't "lock" coins used in previous
unsigned transactions, until they're actually broadcast and confirmed to
be "out in the wild".  This was done for simplicity to avoid people
getting arbitrarily-locked coins, even though it means you end up
accidentally double-spending if you try to create two different unsigned
transactions from the same wallet without sign&broadcasting the first one.

So here's what you do:
(1) Switch to "Expert" usermode in Armory
(2) Open any wallet (you don't need a watch-only wallet, full wallet is
fine)
(3) In the "Send Bitcoins" window, click coin-control
(4) Create a transaction using one sufficiently large input
(5) Click "Create Unsigned Transaction" and save it
(6) Repeat 3-5 with the same coin, but sending to yourself, specify a
larger fee
(7) Go into "Offline Transactions" and "Sign and Broadcast Transactions"
(8) Load tx1, sign & broadcast
(9) Load tx2, sign & broadcast

This only works if your Bitcoin-Qt/bitcoind client has the
replace-by-fee patch, since Armory uses Bitcoin-Qt/bitcoind as a gateway
to the network. Otherwise, the second tx will be DOA.  But you don't
have to mess with Armory other than switching it to Expert mode to get
to the coin-control feature.

- -Alan

P.S. -- If you try this, Armory is likely to not show the second tx as
having ever happened (Bitcoin-Qt will send it back to us and we ignore
it because we already have a tx).  But if your Bitcoin node has the
modification, it /will/ reach the network


On 05/15/2013 08:19 AM, Peter Todd wrote:
> On Wed, May 15, 2013 at 07:38:27AM -0400, Peter Todd wrote:
>> So I'm offering 2BTC for anyone who comes up with a nice and easy to use
>> command line tool that lets you automagically create one version of the
>> transaction sending the coins to the desired recipient, and another
>> version sending all the coins back to you, both with the same
>> transaction inputs. In addition to creating the two versions, you need
>> to find a way to broadcast them both simultaneously to different nodes
>> on the network. One clever approach might be to use blockchain.info's
>> raw transaction POST API, and your local Bitcoin node.
>
> Oh, and while we're at it, a good starting point for your work would be
> Gavin's spendfrom utility in the contrib/spendfrom directory in the
> Bitcoin-QT respository.
>
> Also please do keep in mind that it's much better for the community if
> an attack is demonstrated first, followed by releasing the code some
> time later.
>
>
>
>
------------------------------------------------------------------------------
> AlienVault Unified Security Management (USM) platform delivers complete
> security visibility with the essential security capabilities. Easily and
> efficiently configure, manage, and operate all of your security controls
> from a single console and one unified framework. Download a free trial.
> http://p.sf.net/sfu/alienvault_d2d
>
>
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJRk441AAoJEBHe6b77WWmFZNQP/02t6cQkhih/CcA1oSCM72np
KMRW0Z+piHShORxLyhMX3cIpi3ICJ2lJ/Pm6GfDn74oSHq8wipIFoV88xhy810bL
MnJtbPH900v8PHh/ji2nWMig9NibeUa1zV9/tp31rYjUT3mmMoC4yQlyxKII8GWK
iignkAHV/UL5kQGmhmr1RKN127cthSMeIzAYWXfIWVObPNm85pvizVZdgqzSK73h
vwdfeFOelNbVn8ZCNT19OsxWfAKZSaBMywAX95wQBs0BtY2ZgDRmeXa6MdQKpXGW
KP3O2zjjJC2CKc4+L6elMfsoL1doEsk35w/GuI4HZK4MLAI8BChi6ZPnAYjdRvir
eHeszyxkKDCEaJ9JPLA/AszqkYHIB+56wTtrpVb1duyTwuqgVT5dcpMPIH8bDqjq
k3I8C9zCSeQ6JgyvOd8grKJchRtq0SOWYt2bB3ytePzwOs+W+6mRenb/WtMt2dQg
ntDTEIG7pCsWHenipeTBzvJNqeSsAAoIXnkGY20iDxCB+uFkTzisoCQqpOIglArm
vD+Cl2nv3OKU3NTVTUt2VinoFskezI7xvsxHD8xs2V/hrlpPbPRAo+l7ER6aTazj
wrONfmllHSE2XCM7wb/bX3gBNmsM3zUIgSBmNSH/SQeTy8PvwvlkZ/RRYmtVSmHL
rUTp7x4U63JiIDO1jj+T
=JiPo
-----END PGP SIGNATURE-----


--------------030705080809040303060408
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <br>
    -----BEGIN PGP SIGNED MESSAGE-----<br>
    Hash: SHA1<br>
    <br>
    You can do this right now, with Armory.&nbsp;&nbsp; If you switch Armory to
    Expert usermode, you can combine coin-control with unsigned
    transactions to do exactly this.&nbsp; It's because Armory doesn't "lock"
    coins used in previous unsigned transactions, until they're actually
    broadcast and confirmed to be "out in the wild".&nbsp; This was done for
    simplicity to avoid people getting arbitrarily-locked coins, even
    though it means you end up accidentally double-spending if you try
    to create two different unsigned transactions from the same wallet
    without sign&amp;broadcasting the first one.<br>
    <br>
    So here's what you do:<br>
    (1) Switch to "Expert" usermode in Armory<br>
    (2) Open any wallet (you don't need a watch-only wallet, full wallet
    is fine)<br>
    (3) In the "Send Bitcoins" window, click coin-control<br>
    (4) Create a transaction using one sufficiently large input<br>
    (5) Click "Create Unsigned Transaction" and save it<br>
    (6) Repeat 3-5 with the same coin, but sending to yourself, specify
    a larger fee<br>
    (7) Go into "Offline Transactions" and "Sign and Broadcast
    Transactions"<br>
    (8) Load tx1, sign &amp; broadcast<br>
    (9) Load tx2, sign &amp; broadcast<br>
    <br>
    This only works if your Bitcoin-Qt/bitcoind client has the
    replace-by-fee patch, since Armory uses Bitcoin-Qt/bitcoind as a
    gateway to the network. Otherwise, the second tx will be DOA.&nbsp; But
    you don't have to mess with Armory other than switching it to Expert
    mode to get to the coin-control feature.<br>
    <br>
    - -Alan<br>
    <br>
    P.S. -- If you try this, Armory is likely to not show the second tx
    as having ever happened (Bitcoin-Qt will send it back to us and we
    ignore it because we already have a tx).&nbsp; But if your Bitcoin node
    has the modification, it /will/ reach the network<br>
    <br>
    <br>
    On 05/15/2013 08:19 AM, Peter Todd wrote:<br>
    <span style="white-space: pre;">&gt; On Wed, May 15, 2013 at
      07:38:27AM -0400, Peter Todd wrote:<br>
      &gt;&gt; So I'm offering 2BTC for anyone who comes up with a nice
      and easy to use<br>
      &gt;&gt; command line tool that lets you automagically create one
      version of the<br>
      &gt;&gt; transaction sending the coins to the desired recipient,
      and another<br>
      &gt;&gt; version sending all the coins back to you, both with the
      same<br>
      &gt;&gt; transaction inputs. In addition to creating the two
      versions, you need<br>
      &gt;&gt; to find a way to broadcast them both simultaneously to
      different nodes<br>
      &gt;&gt; on the network. One clever approach might be to use
      blockchain.info's<br>
      &gt;&gt; raw transaction POST API, and your local Bitcoin node.<br>
      &gt;<br>
      &gt; Oh, and while we're at it, a good starting point for your
      work would be<br>
      &gt; Gavin's spendfrom utility in the contrib/spendfrom directory
      in the<br>
      &gt; Bitcoin-QT respository.<br>
      &gt;<br>
      &gt; Also please do keep in mind that it's much better for the
      community if<br>
      &gt; an attack is demonstrated first, followed by releasing the
      code some<br>
      &gt; time later.<br>
      &gt;<br>
      &gt;<br>
      &gt;<br>
      &gt;
------------------------------------------------------------------------------<br>
      &gt; AlienVault Unified Security Management (USM) platform
      delivers complete<br>
      &gt; security visibility with the essential security capabilities.
      Easily and<br>
      &gt; efficiently configure, manage, and operate all of your
      security controls<br>
      &gt; from a single console and one unified framework. Download a
      free trial.<br>
      &gt; <a class="moz-txt-link-freetext" href="http://p.sf.net/sfu/alienvault_d2d">http://p.sf.net/sfu/alienvault_d2d</a><br>
      &gt;<br>
      &gt;<br>
      &gt; _______________________________________________<br>
      &gt; Bitcoin-development mailing list<br>
      &gt; <a class="moz-txt-link-abbreviated" href="mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-development@lists.sourceforge.net</a><br>
      &gt;
      <a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/bitcoin-development">https://lists.sourceforge.net/lists/listinfo/bitcoin-development</a></span><br>
    <br>
    -----BEGIN PGP SIGNATURE-----<br>
    Version: GnuPG v1.4.11 (GNU/Linux)<br>
    Comment: Using GnuPG with Thunderbird - <a class="moz-txt-link-freetext" href="http://www.enigmail.net/">http://www.enigmail.net/</a><br>
    <br>
    iQIcBAEBAgAGBQJRk441AAoJEBHe6b77WWmFZNQP/02t6cQkhih/CcA1oSCM72np<br>
    KMRW0Z+piHShORxLyhMX3cIpi3ICJ2lJ/Pm6GfDn74oSHq8wipIFoV88xhy810bL<br>
    MnJtbPH900v8PHh/ji2nWMig9NibeUa1zV9/tp31rYjUT3mmMoC4yQlyxKII8GWK<br>
    iignkAHV/UL5kQGmhmr1RKN127cthSMeIzAYWXfIWVObPNm85pvizVZdgqzSK73h<br>
    vwdfeFOelNbVn8ZCNT19OsxWfAKZSaBMywAX95wQBs0BtY2ZgDRmeXa6MdQKpXGW<br>
    KP3O2zjjJC2CKc4+L6elMfsoL1doEsk35w/GuI4HZK4MLAI8BChi6ZPnAYjdRvir<br>
    eHeszyxkKDCEaJ9JPLA/AszqkYHIB+56wTtrpVb1duyTwuqgVT5dcpMPIH8bDqjq<br>
    k3I8C9zCSeQ6JgyvOd8grKJchRtq0SOWYt2bB3ytePzwOs+W+6mRenb/WtMt2dQg<br>
    ntDTEIG7pCsWHenipeTBzvJNqeSsAAoIXnkGY20iDxCB+uFkTzisoCQqpOIglArm<br>
    vD+Cl2nv3OKU3NTVTUt2VinoFskezI7xvsxHD8xs2V/hrlpPbPRAo+l7ER6aTazj<br>
    wrONfmllHSE2XCM7wb/bX3gBNmsM3zUIgSBmNSH/SQeTy8PvwvlkZ/RRYmtVSmHL<br>
    rUTp7x4U63JiIDO1jj+T<br>
    =JiPo<br>
    -----END PGP SIGNATURE-----<br>
    <br>
  </body>
</html>

--------------030705080809040303060408--