summaryrefslogtreecommitdiff
path: root/dd/14c443f39cb7237ce3ad5ba497a800adb618c4
blob: 9938afd9d13b9c42ae39991fe800d383b5ce0260 (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
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194]
	helo=mx.sourceforge.net)
	by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <mark@friedenbach.org>) id 1YxLtv-0004Ru-Jo
	for bitcoin-development@lists.sourceforge.net;
	Tue, 26 May 2015 20:56:39 +0000
X-ACL-Warn: 
Received: from mail-ig0-f177.google.com ([209.85.213.177])
	by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1YxLtq-0001gb-Cz
	for bitcoin-development@lists.sourceforge.net;
	Tue, 26 May 2015 20:56:39 +0000
Received: by igbpi8 with SMTP id pi8so68796454igb.1
	for <bitcoin-development@lists.sourceforge.net>;
	Tue, 26 May 2015 13:56:27 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=PJtssXAapL9kf7EvgSDZ+WTrR4twkDEcWlJZJuePsaw=;
	b=c9JKkUNboDh0YY8t+egY5cDtwPLR4hNUYRzqBWg512ykQW8oG5t5jshiXbPsWVie6m
	oEhBfI/h3cwKuSe0hWIxj/BMgU5PaF5KNfBeFGJTfoW/2OWUgI2EBF+ZwEeRDis0qa2R
	UBH9JJamCAkr/70vGoEbCwMt5x3zbl1lA18XMGjjBgTCO7SYda4sJhnMKxob9tctVfE0
	M/IkpB7cIPBjaAYDMf63yZqOZx7IhiNcWrMiscAB/oob4bbeG20R0mKCxnYJE19SeFFZ
	8aM8nigN5aRtETL1CQg5s6Bx4EOJm711p199vlin1a72hJqa1RAmO9/5E5ieLN2uQOQf
	FUGg==
X-Gm-Message-State: ALoCoQlhrr4K8/QNiFuvf6dl6yFoTd/FE4VxBG0Z3/kbv/RWCdsy8fZmLg2tkOSU8/FYOvwZRCdQ
X-Received: by 10.50.85.113 with SMTP id g17mr32163183igz.46.1432673786943;
	Tue, 26 May 2015 13:56:26 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.10.197 with HTTP; Tue, 26 May 2015 13:56:06 -0700 (PDT)
X-Originating-IP: [96.90.217.22]
In-Reply-To: <475dfb44d4e54649839e6438ad748b59@airmail.cc>
References: <CANe1mWzBy8-C+CWfwaOLxJ2wokjy8ytQUh2TkRY_Ummn1BpPzw@mail.gmail.com>
	<CANEZrP0DL8yA=neK0DTq0npEqc0q+RvTQD57OndNVg0vi2=yMg@mail.gmail.com>
	<20150525212638.GB12430@savin.petertodd.org>
	<CANEZrP1k-rUBSj2GMKqOEZsOuHp=axKUSxShOiN01DorzkFODQ@mail.gmail.com>
	<20150526001034.GF21367@savin.petertodd.org>
	<475dfb44d4e54649839e6438ad748b59@airmail.cc>
From: Mark Friedenbach <mark@friedenbach.org>
Date: Tue, 26 May 2015 13:56:06 -0700
Message-ID: <CAOG=w-vmYh_KJk7zpVP0=gvKTod7yYy9jhORNQJNRg=rDBHDOA@mail.gmail.com>
To: joliver@airmail.cc
Content-Type: multipart/alternative; boundary=089e014954e02671d80517025c5b
X-Spam-Score: 1.0 (+)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	1.0 HTML_MESSAGE           BODY: HTML included in message
X-Headers-End: 1YxLtq-0001gb-Cz
Cc: Bitcoin Development <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] Cost savings by using replace-by-fee,
	30-90%
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: Tue, 26 May 2015 20:56:39 -0000

--089e014954e02671d80517025c5b
Content-Type: text/plain; charset=UTF-8

Please let's at least have some civility and decorum on this list.

On Tue, May 26, 2015 at 1:30 PM, <joliver@airmail.cc> wrote:

> You're the Chief Scientist of __ViaCoin__ a alt with 30 second blocks
> and you have big banks as clients. Shit like replace-by-fee and leading
> the anti-scaling mob is for your clients, not Bitcoin. Get the fuck out.
>
> Peter Todd - 8930511 Canada Ltd.
> 1214-1423 Mississauga Valley Blvd.
> Mississauga ON L5A 4A5
> Canada
>
>
> https://www.ic.gc.ca/app/scr/cc/CorporationsCanada/fdrlCrpDtls.html?corpId=8930511
>
> On 2015-05-26 00:10, Peter Todd wrote:
> > On Tue, May 26, 2015 at 12:03:09AM +0200, Mike Hearn wrote:
> >> CPFP also solves it just fine.
> >
> > CPFP is a significantly more expensive way of paying fees than RBF,
> > particularly for the use-case of defragmenting outputs, with cost
> > savings ranging from 30% to 90%
> >
> >
> > Case 1: CPFP vs. RBF for increasing the fee on a single tx
> > ----------------------------------------------------------
> >
> > Creating an spending a P2PKH output uses 34 bytes of txout, and 148
> > bytes of txin, 182 bytes total.
> >
> > Let's suppose I have a 1 BTC P2PKH output and I want to pay 0.1 BTC to
> > Alice. This results in a 1in/2out transaction t1 that's 226 bytes in
> > size.
> > I forget to click on the "priority fee" option, so it goes out with the
> > minimum fee of 2.26uBTC. Whoops! I use CPFP to spend that output,
> > creating a new transaction t2 that's 192 bytes in size. I want to pay
> > 1mBTC/KB for a fast confirmation, so I'm now paying 418uBTC of
> > transaction fees.
> >
> > On the other hand, had I use RBF, my wallet would have simply
> > rebroadcast t1 with the change address decreased. The rules require you
> > to pay 2.26uBTC for the bandwidth consumed broadcasting it, plus the
> > new
> > fee level, or 218uBTC of fees in total.
> >
> > Cost savings: 48%
> >
> >
> > Case 2: Paying multiple recipients in succession
> > ------------------------------------------------
> >
> > Suppose that after I pay Alice, I also decide to pay Bob for his hard
> > work demonstrating cryptographic protocols. I need to create a new
> > transaction t2 spending t1's change address. Normally t2 would be
> > another 226 bytes in size, resulting in 226uBTC additional fees.
> >
> > With RBF on the other hand I can simply double-spend t1 with a
> > transaction paying both Alice and Bob. This new transaction is 260
> > bytes
> > in size. I have to pay 2.6uBTC additional fees to pay for the bandwidth
> > consumed broadcasting it, resulting in an additional 36uBTC of fees.
> >
> > Cost savings: 84%
> >
> >
> > Case 3: Paying multiple recipients from a 2-of-3 multisig wallet
> > ----------------------------------------------------------------
> >
> > The above situation gets even worse with multisig. t1 in the multisig
> > case is 367 bytes; t2 another 367 bytes, costing an additional 367uBTC
> > in fees. With RBF we rewrite t1 with an additional output, resulting in
> > a 399 byte transaction, with just 36uBTC in additional fees.
> >
> > Cost savings: 90%
> >
> >
> > Case 4: Dust defragmentation
> > ----------------------------
> >
> > My wallet has a two transaction outputs that it wants to combine into
> > one for the purpose of UTXO defragmentation. It broadcasts transaction
> > t1 with two inputs and one output, size 340 bytes, paying zero fees.
> >
> > Prior to the transaction confirming I find I need to spend those funds
> > for a priority transaction at the 1mBTC/KB fee level. This transaction,
> > t2a, has one input and two outputs, 226 bytes in size. However it needs
> > to pay fees for both transactions at once, resulting in a combined
> > total
> > fee of 556uBTC. If this situation happens frequently, defragmenting
> > UTXOs is likely to cost more in additional fees than it saves.
> >
> > With RBF I'd simply doublespend t1 with a 2-in-2-out transaction 374
> > bytes in size, paying 374uBTC. Even better, if one of the two inputs is
> > sufficiently large to cover my costs I can doublespend t1 with a
> > 1-in-2-out tx just 226 bytes in size, paying 226uBTC.
> >
> > Cost savings: 32% to 59%, or even infinite if defragmentation w/o RBF
> >               costs you more than you save
> >
> >
> ------------------------------------------------------------------------------
> > One dashboard for servers and applications across
> > Physical-Virtual-Cloud
> > Widest out-of-the-box monitoring support with 50+ applications
> > Performance metrics, stats and reports that give you Actionable
> > Insights
> > Deep dive visibility with transaction tracing using APM Insight.
> > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> >
> > _______________________________________________
> > Bitcoin-development mailing list
> > Bitcoin-development@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>

--089e014954e02671d80517025c5b
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Please let&#39;s at least have some civility and decorum o=
n this list.<br></div><div class=3D"gmail_extra"><br><div class=3D"gmail_qu=
ote">On Tue, May 26, 2015 at 1:30 PM,  <span dir=3D"ltr">&lt;<a href=3D"mai=
lto:joliver@airmail.cc" target=3D"_blank">joliver@airmail.cc</a>&gt;</span>=
 wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bor=
der-left:1px #ccc solid;padding-left:1ex">You&#39;re the Chief Scientist of=
 __ViaCoin__ a alt with 30 second blocks<br>
and you have big banks as clients. Shit like replace-by-fee and leading<br>
the anti-scaling mob is for your clients, not Bitcoin. Get the fuck out.<br=
>
<br>
Peter Todd - 8930511 Canada Ltd.<br>
1214-1423 Mississauga Valley Blvd.<br>
Mississauga ON L5A 4A5<br>
Canada<br>
<br>
<a href=3D"https://www.ic.gc.ca/app/scr/cc/CorporationsCanada/fdrlCrpDtls.h=
tml?corpId=3D8930511" target=3D"_blank">https://www.ic.gc.ca/app/scr/cc/Cor=
porationsCanada/fdrlCrpDtls.html?corpId=3D8930511</a><br>
<div class=3D"HOEnZb"><div class=3D"h5"><br>
On 2015-05-26 00:10, Peter Todd wrote:<br>
&gt; On Tue, May 26, 2015 at 12:03:09AM +0200, Mike Hearn wrote:<br>
&gt;&gt; CPFP also solves it just fine.<br>
&gt;<br>
&gt; CPFP is a significantly more expensive way of paying fees than RBF,<br=
>
&gt; particularly for the use-case of defragmenting outputs, with cost<br>
&gt; savings ranging from 30% to 90%<br>
&gt;<br>
&gt;<br>
&gt; Case 1: CPFP vs. RBF for increasing the fee on a single tx<br>
&gt; ----------------------------------------------------------<br>
&gt;<br>
&gt; Creating an spending a P2PKH output uses 34 bytes of txout, and 148<br=
>
&gt; bytes of txin, 182 bytes total.<br>
&gt;<br>
&gt; Let&#39;s suppose I have a 1 BTC P2PKH output and I want to pay 0.1 BT=
C to<br>
&gt; Alice. This results in a 1in/2out transaction t1 that&#39;s 226 bytes =
in<br>
&gt; size.<br>
&gt; I forget to click on the &quot;priority fee&quot; option, so it goes o=
ut with the<br>
&gt; minimum fee of 2.26uBTC. Whoops! I use CPFP to spend that output,<br>
&gt; creating a new transaction t2 that&#39;s 192 bytes in size. I want to =
pay<br>
&gt; 1mBTC/KB for a fast confirmation, so I&#39;m now paying 418uBTC of<br>
&gt; transaction fees.<br>
&gt;<br>
&gt; On the other hand, had I use RBF, my wallet would have simply<br>
&gt; rebroadcast t1 with the change address decreased. The rules require yo=
u<br>
&gt; to pay 2.26uBTC for the bandwidth consumed broadcasting it, plus the<b=
r>
&gt; new<br>
&gt; fee level, or 218uBTC of fees in total.<br>
&gt;<br>
&gt; Cost savings: 48%<br>
&gt;<br>
&gt;<br>
&gt; Case 2: Paying multiple recipients in succession<br>
&gt; ------------------------------------------------<br>
&gt;<br>
&gt; Suppose that after I pay Alice, I also decide to pay Bob for his hard<=
br>
&gt; work demonstrating cryptographic protocols. I need to create a new<br>
&gt; transaction t2 spending t1&#39;s change address. Normally t2 would be<=
br>
&gt; another 226 bytes in size, resulting in 226uBTC additional fees.<br>
&gt;<br>
&gt; With RBF on the other hand I can simply double-spend t1 with a<br>
&gt; transaction paying both Alice and Bob. This new transaction is 260<br>
&gt; bytes<br>
&gt; in size. I have to pay 2.6uBTC additional fees to pay for the bandwidt=
h<br>
&gt; consumed broadcasting it, resulting in an additional 36uBTC of fees.<b=
r>
&gt;<br>
&gt; Cost savings: 84%<br>
&gt;<br>
&gt;<br>
&gt; Case 3: Paying multiple recipients from a 2-of-3 multisig wallet<br>
&gt; ----------------------------------------------------------------<br>
&gt;<br>
&gt; The above situation gets even worse with multisig. t1 in the multisig<=
br>
&gt; case is 367 bytes; t2 another 367 bytes, costing an additional 367uBTC=
<br>
&gt; in fees. With RBF we rewrite t1 with an additional output, resulting i=
n<br>
&gt; a 399 byte transaction, with just 36uBTC in additional fees.<br>
&gt;<br>
&gt; Cost savings: 90%<br>
&gt;<br>
&gt;<br>
&gt; Case 4: Dust defragmentation<br>
&gt; ----------------------------<br>
&gt;<br>
&gt; My wallet has a two transaction outputs that it wants to combine into<=
br>
&gt; one for the purpose of UTXO defragmentation. It broadcasts transaction=
<br>
&gt; t1 with two inputs and one output, size 340 bytes, paying zero fees.<b=
r>
&gt;<br>
&gt; Prior to the transaction confirming I find I need to spend those funds=
<br>
&gt; for a priority transaction at the 1mBTC/KB fee level. This transaction=
,<br>
&gt; t2a, has one input and two outputs, 226 bytes in size. However it need=
s<br>
&gt; to pay fees for both transactions at once, resulting in a combined<br>
&gt; total<br>
&gt; fee of 556uBTC. If this situation happens frequently, defragmenting<br=
>
&gt; UTXOs is likely to cost more in additional fees than it saves.<br>
&gt;<br>
&gt; With RBF I&#39;d simply doublespend t1 with a 2-in-2-out transaction 3=
74<br>
&gt; bytes in size, paying 374uBTC. Even better, if one of the two inputs i=
s<br>
&gt; sufficiently large to cover my costs I can doublespend t1 with a<br>
&gt; 1-in-2-out tx just 226 bytes in size, paying 226uBTC.<br>
&gt;<br>
&gt; Cost savings: 32% to 59%, or even infinite if defragmentation w/o RBF<=
br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0costs you more t=
han you save<br>
&gt;<br>
</div></div><span class=3D"im HOEnZb">&gt; --------------------------------=
----------------------------------------------<br>
&gt; One dashboard for servers and applications across<br>
&gt; Physical-Virtual-Cloud<br>
&gt; Widest out-of-the-box monitoring support with 50+ applications<br>
&gt; Performance metrics, stats and reports that give you Actionable<br>
&gt; Insights<br>
&gt; Deep dive visibility with transaction tracing using APM Insight.<br>
&gt; <a href=3D"http://ad.doubleclick.net/ddm/clk/290420510;117567292;y" ta=
rget=3D"_blank">http://ad.doubleclick.net/ddm/clk/290420510;117567292;y</a>=
<br>
&gt;<br>
</span><div class=3D"HOEnZb"><div class=3D"h5">&gt; _______________________=
________________________<br>
&gt; Bitcoin-development mailing list<br>
&gt; <a href=3D"mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-d=
evelopment@lists.sourceforge.net</a><br>
&gt; <a href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-develo=
pment" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitco=
in-development</a><br>
<br>
---------------------------------------------------------------------------=
---<br>
_______________________________________________<br>
Bitcoin-development mailing list<br>
<a href=3D"mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-develo=
pment@lists.sourceforge.net</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-development=
" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-de=
velopment</a><br>
</div></div></blockquote></div><br></div>

--089e014954e02671d80517025c5b--