summaryrefslogtreecommitdiff
path: root/43/55214a7b4cb1ace54216998eb6f8ab1d295e06
blob: b50cae9885842ee21ac88160974cef68bedf00b5 (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
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
Return-Path: <eric@voskuil.org>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id F2B9A932
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed,  4 Jan 2017 06:06:35 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-it0-f51.google.com (mail-it0-f51.google.com
	[209.85.214.51])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 64198FE
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed,  4 Jan 2017 06:06:34 +0000 (UTC)
Received: by mail-it0-f51.google.com with SMTP id o141so293365810itc.0
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Tue, 03 Jan 2017 22:06:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=voskuil-org.20150623.gappssmtp.com; s=20150623;
	h=mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=J2ISpB60xm58SgLy/pJre6hiTvzlEBui1O2hSSfo9uU=;
	b=mqX373Y7e9LyrokYCTPlNqAYYN+OU6RM72pAwY4gWK4fJNVWSIEuZTMR2YFjU6RRDk
	bdlzjbpcVeFNtcyE1ynWu1wqVRdilszEc1JEgr53cbWXA39vY4UQuqDVlrqbToikqNO+
	TNmim9RmmLNH//d/eJfxnAkj3Hiez/Cxr1a9iTWtQr5+1HMh5UYHii0PweelGwFJ6Xu+
	R2o6eRVVzdeMtqsFZBhHuYrabnoyykdmdKTafN4Glf/lsHRE+zr9w4Er85u0r7IUgSV3
	pBM//3hGl8gGzwRkT4J8EoL1wNhDrag/gDSTxrVBS41l9egZ+MiuzN9cqE+IR9yUmKTW
	BZYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20161025;
	h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc
	:content-transfer-encoding:message-id:references:to;
	bh=J2ISpB60xm58SgLy/pJre6hiTvzlEBui1O2hSSfo9uU=;
	b=SYzZB+X1qA//2LHiFyu//X+liImQNTD5BY2+E5E4vmVHhvrY7dgrZJvzdYhwaCW33b
	9967eUFp1M4TaUglj00ZVS2jUWQmnhqY3otIKyW7DtzYTtWSVHcEY7/IgWpzEGOQ/s+F
	s7JD7uJFSPzn3/wyWWkkHM+1cWmWhDeHzxrF/GQrSvKBVT+ctM6uTU7AkdsVnRQLoIa+
	Xk2P718clXoqvyWY12RK3//DStiVT2bxYBEPqgQzYAwwJNTS7e5vjwqUJqr6scXEkKKp
	letauPHN/i0e2WaS/gdhlERpu32aSpuP2dC1xZ3SQAFWMqzTQVMkS0V29MBs4mMU92l3
	7vCg==
X-Gm-Message-State: AIkVDXLJGog2NYskK5YbpURktOjPF2B+4+q6emwhpBZd/xdYJnWE1+JwhBGB/XtaPBnPFQ==
X-Received: by 10.36.64.21 with SMTP id n21mr51619807ita.27.1483509993726;
	Tue, 03 Jan 2017 22:06:33 -0800 (PST)
Received: from ?IPv6:2601:600:9000:d69e:2443:5ad0:902b:5a3b?
	([2601:600:9000:d69e:2443:5ad0:902b:5a3b])
	by smtp.gmail.com with ESMTPSA id c9sm6407137ioc.2.2017.01.03.22.06.32
	(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
	Tue, 03 Jan 2017 22:06:32 -0800 (PST)
Content-Type: multipart/alternative;
	boundary=Apple-Mail-6EBFF3C9-346E-4C8E-A7CA-7F30229947C9
Mime-Version: 1.0 (1.0)
From: Eric Voskuil <eric@voskuil.org>
X-Mailer: iPhone Mail (14B100)
In-Reply-To: <CACq0ZD4==ePkuR_dMALABDJcyyWe0x=21-w80cTp0CLe47_Emg@mail.gmail.com>
Date: Tue, 3 Jan 2017 22:06:31 -0800
Content-Transfer-Encoding: 7bit
Message-Id: <25735AD4-CDCC-4632-AE03-1B657643E757@voskuil.org>
References: <71d822e413ac457a530e1c367811cc24@cock.lu>
	<77b6dd25-0603-a0bd-6a9e-38098e5cb19d@jonasschnelli.ch>
	<74aeb4760316b59a3db56c0d16d11f28@cock.lu>
	<CACq0ZD7XT_h8ADptKA0uBT7617fvvgh3uGndkc08RZUSQM2yQg@mail.gmail.com>
	<CAKEeUhiQiUA_E6JF22foV11-WnGZH+kEzfUhROm=gvVN1qMr4A@mail.gmail.com>
	<CACq0ZD5WV7ORmEJgGSquyRzndH_XP9FrLbwSNKQC5Zuh08NVDw@mail.gmail.com>
	<22b7d05fb2b8a7a0f1c2fa0b6b375f7e@cock.lu>
	<CACq0ZD4==ePkuR_dMALABDJcyyWe0x=21-w80cTp0CLe47_Emg@mail.gmail.com>
To: Aaron Voisine <voisine@gmail.com>,
	Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID,HTML_MESSAGE,MIME_QP_LONG_LINE,RCVD_IN_DNSWL_LOW,
	RCVD_IN_SORBS_SPAM 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, 04 Jan 2017 07:09:50 +0000
Subject: Re: [bitcoin-dev] Committed bloom filters for improved wallet
	performance and SPV security
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: Wed, 04 Jan 2017 06:06:36 -0000


--Apple-Mail-6EBFF3C9-346E-4C8E-A7CA-7F30229947C9
Content-Type: text/plain;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

Credit card reversals involve an escrow agent with control over the entire n=
etwork and with a strong interest in preserving the network. A better analog=
y would be blind acceptance of any slip of paper under the assumption that i=
t is sufficient currency. It may or may not be so, but you are on your own i=
n either case.

e

> On Jan 3, 2017, at 4:36 PM, Aaron Voisine via bitcoin-dev <bitcoin-dev@lis=
ts.linuxfoundation.org> wrote:
>=20
> Knowing that a transaction is property formatted and that it has been broa=
dcast to the gossip network is useful in many situations. You're only thinki=
ng about whether you can know a transaction is valid and/or settled. This is=
 not the only possible useful information in actual real world use. Any situ=
ation where credit card transactions are accepted today for instance, it is u=
seful to know that a transaction has been initiated, even though it can be r=
eversed at any time up to 60 days later.
>=20
> Aaron Voisine
> co-founder and CEO
> breadwallet
>=20
>> On Tue, Jan 3, 2017 at 4:10 PM, <bfd@cock.lu> wrote:
>> Unfortunately a non validating SPV wallet has absolutely no idea if
>> the information about an unconfirmed transaction they are seeing is
>> anything but properly formatted. They are connecting to an easily
>> manipulated, sybil attacked, and untrusted network and then asking
>> them for financial information. Seeing an unconfirmed transaction in a
>> wallet that's not also fully validating is at best meaningless.
>>=20
>>=20
>>> On 2017-01-03 15:46, Aaron Voisine wrote:
>>> If the sender doesn't control the receiver's network connection, then
>>> the information the receiver gains by watching the mempool is if the
>>> transaction has propagated across the bitcoin network. This is useful
>>> to know in all kinds of situations.
>>>=20
>>> Aaron Voisine
>>> co-founder and CEO
>>> breadwallet [2]
>>>=20
>>> On Tue, Jan 3, 2017 at 3:06 PM, adiabat <rx@awsomnet.org> wrote:
>>>=20
>>>> Mempool transactions have their place, but "unconfirmed" and "SPV"
>>>> don't belong together.  Only a full node can tell if a transaction
>>>> may get confirmed, or is nonsense.  Unfortunately all the light /
>>>> SPV wallets I know of show mempool transactions, which makes it hard
>>>> to go back... (e.g. "why doesn't your software show 0-conf! your
>>>> wallet is broken!", somewhat akin to people complaining about RBF)
>>>>=20
>>>> So, this is easy, just don't worry about mempool filtering.  Why are
>>>> light clients looking at the mempool anyway?  Maybe if there were
>>>> some way to provide SPV proofs of all inputs, but that's a bit of a
>>>> mess for full nodes to do.
>>>>=20
>>>> Without mempool filtering, I think the committed bloom filters would
>>>> be a great improvement over the current bloom filter setup,
>>>> especially for lightning network use cases (with lightning, not
>>>> finding out about a transaction can make you lose money).  I want to
>>>> work on it and may be able to at some point as it's somewhat related
>>>> to lightning.
>>>>=20
>>>> Also, if you're running a light client, and storing the filters the
>>>> way you store block headers, there's really no reason to go all the
>>>> way back to height 0.  You can start grabbing headers at some point
>>>> a while ago, before your set of keys was generated.  I think it'd be
>>>> very worth it even with GB-scale disk usage.
>>>>=20
>>>> -Tadge
>>>>=20
>>>> On Tue, Jan 3, 2017 at 5:18 PM, Aaron Voisine via bitcoin-dev
>>>> <bitcoin-dev@lists.linuxfoundation.org> wrote:
>>>>=20
>>>> Unconfirmed transactions are incredibly important for real world
>>>> use. Merchants for instance are willing to accept credit card
>>>> payments of thousands of dollars and ship the goods despite the fact
>>>> that the transaction can be reversed up to 60 days later. There is a
>>>> very large cost to losing the ability to have instant transactions
>>>> in many or even most situations. This cost is typically well above
>>>> the fraud risk.
>>>>=20
>>>> It's important to recognize that bitcoin serves a wide variety of
>>>> use cases with different profiles for time sensitivity and fraud
>>>> risk.
>>>>=20
>>>> Aaron
>>>>=20
>>>> On Tue, Jan 3, 2017 at 12:41 PM bfd--- via bitcoin-dev
>>>> <bitcoin-dev@lists.linuxfoundation.org> wrote:
>>>> The concept combined with the weak blocks system where miners commit
>>>>=20
>>>> to potential transaction inclusion with fractional difficulty blocks
>>>>=20
>>>> is possible. I'm not personally convinced that unconfirmed
>>>> transaction
>>>>=20
>>>> display in a wallet is worth the privacy trade-off. The user has
>>>> very
>>>>=20
>>>> little to gain from this knowledge until the txn is in a block.
>>>>=20
>>>> On 2017-01-01 13:01, Jonas Schnelli via bitcoin-dev wrote:
>>>>=20
>>>>> Hi
>>>>=20
>>>>>> We introduce several concepts that rework the lightweight Bitcoin
>>>>=20
>>>>>> client model in a manner which is secure, efficient and privacy
>>>>=20
>>>>>> compatible.
>>>>=20
>>>>>>=20
>>>>=20
>>>>>> The BFD can be used verbatim in replacement of BIP37, where the
>>>> filter
>>>>=20
>>>>>> can be cached between clients without needing to be recomputed.
>>>> It can
>>>>=20
>>>>>> also be used by normal pruned nodes to do re-scans locally of
>>>> their
>>>>=20
>>>>>> wallet without needing to have the block data available to scan,
>>>> or
>>>>=20
>>>>>> without reading the entire block chain from disk.
>>>>=20
>>>>> I started exploring the potential of BFD after this specification.
>>>>=20
>>>>>=20
>>>>=20
>>>>> What would be the preferred/recommended way to handle
>>>> 0-conf/mempool
>>>>=20
>>>>> filtering =E2=80=93 if & once BDF would have been deployed (any type,
>>>>=20
>>>>> semi-trusted oracles or protocol-level/softfork)?
>>>>=20
>>>>>=20
>>>>=20
>>>>> =46rom the user-experience perspective, this is probably pretty
>>>> important
>>>>=20
>>>>> (otherwise the experience will be that incoming funds can take
>>>> serval
>>>>=20
>>>>> minutes to hours until they appear).
>>>>=20
>>>>> Using BIP37 bloom filters just for mempool filtering would
>>>> obviously
>>>>=20
>>>>> result in the same unwanted privacy-setup.
>>>>=20
>>>>>=20
>>>>=20
>>>>> </jonas>
>>>>=20
>>>>>=20
>>>>=20
>>>>>=20
>>>>=20
>>>>> _______________________________________________
>>>>=20
>>>>> bitcoin-dev mailing list
>>>>=20
>>>>> bitcoin-dev@lists.linuxfoundation.org
>>>>=20
>>>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev [1]
>>>>=20
>>>> _______________________________________________
>>>>=20
>>>> bitcoin-dev mailing list
>>>>=20
>>>> bitcoin-dev@lists.linuxfoundation.org
>>>>=20
>>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev [1]
>>>>=20
>>>> _______________________________________________
>>>> bitcoin-dev mailing list
>>>> bitcoin-dev@lists.linuxfoundation.org
>>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev [1]
>>>=20
>>>=20
>>>=20
>>> Links:
>>> ------
>>> [1] https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>> [2] http://breadwallet.com
>=20
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

--Apple-Mail-6EBFF3C9-346E-4C8E-A7CA-7F30229947C9
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
utf-8"></head><body dir=3D"auto"><div></div><div>Credit card reversals invol=
ve an escrow agent with control over the entire network and with a strong in=
terest in preserving the network. A better analogy would be blind acceptance=
 of any slip of paper under the assumption that it is sufficient currency. I=
t may or may not be so, but you are on your own in either case.</div><div><b=
r></div><div>e</div><div><br>On Jan 3, 2017, at 4:36 PM, Aaron Voisine via b=
itcoin-dev &lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitc=
oin-dev@lists.linuxfoundation.org</a>&gt; wrote:<br><br></div><blockquote ty=
pe=3D"cite"><div><div dir=3D"ltr">Knowing that a transaction is property for=
matted and that it has been broadcast to the gossip network is useful in man=
y situations. You're only thinking about whether you can know a transaction i=
s valid and/or settled. This is not the only possible useful information in a=
ctual real world use. Any situation where credit card transactions are accep=
ted today for instance, it is useful to know that a transaction has been ini=
tiated, even though it can be reversed at any time up to 60 days later.<br><=
div class=3D"gmail_extra"><br><div><div class=3D"gmail_signature" data-smart=
mail=3D"gmail_signature"><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div di=
r=3D"ltr"><div>Aaron Voisine</div><div>co-founder and CEO<br><a href=3D"http=
://breadwallet.com" target=3D"_blank">breadwallet</a></div></div></div></div=
></div></div></div></div>
<br><div class=3D"gmail_quote">On Tue, Jan 3, 2017 at 4:10 PM,  <span dir=3D=
"ltr">&lt;<a href=3D"mailto:bfd@cock.lu" target=3D"_blank">bfd@cock.lu</a>&g=
t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex">Unfortunately a non validat=
ing SPV wallet has absolutely no idea if<br>
the information about an unconfirmed transaction they are seeing is<br>
anything but properly formatted. They are connecting to an easily<br>
manipulated, sybil attacked, and untrusted network and then asking<br>
them for financial information. Seeing an unconfirmed transaction in a<br>
wallet that's not also fully validating is at best meaningless.<span class=3D=
""><br>
<br>
<br>
On 2017-01-03 15:46, Aaron Voisine wrote:<br>
</span><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><span class=3D"">
If the sender doesn't control the receiver's network connection, then<br>
the information the receiver gains by watching the mempool is if the<br>
transaction has propagated across the bitcoin network. This is useful<br>
to know in all kinds of situations.<br>
<br>
Aaron Voisine<br>
co-founder and CEO<br></span>
breadwallet [2]<div><div class=3D"h5"><br>
On Tue, Jan 3, 2017 at 3:06 PM, adiabat &lt;<a href=3D"mailto:rx@awsomnet.or=
g" target=3D"_blank">rx@awsomnet.org</a>&gt; wrote:<br>
<br>
</div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bor=
der-left:1px #ccc solid;padding-left:1ex"><div><div class=3D"h5">
Mempool transactions have their place, but "unconfirmed" and "SPV"<br>
don't belong together.&nbsp; Only a full node can tell if a transaction<br>
may get confirmed, or is nonsense.&nbsp; Unfortunately all the light /<br>
SPV wallets I know of show mempool transactions, which makes it hard<br>
to go back... (e.g. "why doesn't your software show 0-conf! your<br>
wallet is broken!", somewhat akin to people complaining about RBF)<br>
<br>
So, this is easy, just don't worry about mempool filtering.&nbsp; Why are<br=
>
light clients looking at the mempool anyway?&nbsp; Maybe if there were<br>
some way to provide SPV proofs of all inputs, but that's a bit of a<br>
mess for full nodes to do.<br>
<br>
Without mempool filtering, I think the committed bloom filters would<br>
be a great improvement over the current bloom filter setup,<br>
especially for lightning network use cases (with lightning, not<br>
finding out about a transaction can make you lose money).&nbsp; I want to<br=
>
work on it and may be able to at some point as it's somewhat related<br>
to lightning.<br>
<br>
Also, if you're running a light client, and storing the filters the<br>
way you store block headers, there's really no reason to go all the<br>
way back to height 0.&nbsp; You can start grabbing headers at some point<br>=

a while ago, before your set of keys was generated.&nbsp; I think it'd be<br=
>
very worth it even with GB-scale disk usage.<br>
<br>
-Tadge<br>
<br>
On Tue, Jan 3, 2017 at 5:18 PM, Aaron Voisine via bitcoin-dev<br>
&lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blan=
k">bitcoin-dev@lists.linuxfounda<wbr>tion.org</a>&gt; wrote:<br>
<br>
Unconfirmed transactions are incredibly important for real world<br>
use. Merchants for instance are willing to accept credit card<br>
payments of thousands of dollars and ship the goods despite the fact<br>
that the transaction can be reversed up to 60 days later. There is a<br>
very large cost to losing the ability to have instant transactions<br>
in many or even most situations. This cost is typically well above<br>
the fraud risk.<br>
<br>
It's important to recognize that bitcoin serves a wide variety of<br>
use cases with different profiles for time sensitivity and fraud<br>
risk.<br>
<br>
Aaron<br>
<br>
On Tue, Jan 3, 2017 at 12:41 PM bfd--- via bitcoin-dev<br>
&lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blan=
k">bitcoin-dev@lists.linuxfounda<wbr>tion.org</a>&gt; wrote:<br>
The concept combined with the weak blocks system where miners commit<br>
<br>
to potential transaction inclusion with fractional difficulty blocks<br>
<br>
is possible. I'm not personally convinced that unconfirmed<br>
transaction<br>
<br>
display in a wallet is worth the privacy trade-off. The user has<br>
very<br>
<br>
little to gain from this knowledge until the txn is in a block.<br>
<br>
On 2017-01-01 13:01, Jonas Schnelli via bitcoin-dev wrote:<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
Hi<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
We introduce several concepts that rework the lightweight Bitcoin<br>
</blockquote></blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
client model in a manner which is secure, efficient and privacy<br>
</blockquote></blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
compatible.<br>
</blockquote></blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
</blockquote></blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The BFD can be used verbatim in replacement of BIP37, where the<br>
</blockquote></blockquote>
filter<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
can be cached between clients without needing to be recomputed.<br>
</blockquote></blockquote>
It can<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
also be used by normal pruned nodes to do re-scans locally of<br>
</blockquote></blockquote>
their<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
wallet without needing to have the block data available to scan,<br>
</blockquote></blockquote>
or<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
without reading the entire block chain from disk.<br>
</blockquote></blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
I started exploring the potential of BFD after this specification.<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
What would be the preferred/recommended way to handle<br>
</blockquote>
0-conf/mempool<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
filtering =E2=80=93 if &amp; once BDF would have been deployed (any type,<br=
>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
semi-trusted oracles or protocol-level/softfork)?<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
=46rom the user-experience perspective, this is probably pretty<br>
</blockquote>
important<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
(otherwise the experience will be that incoming funds can take<br>
</blockquote>
serval<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
minutes to hours until they appear).<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
Using BIP37 bloom filters just for mempool filtering would<br>
</blockquote>
obviously<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
result in the same unwanted privacy-setup.<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
&lt;/jonas&gt;<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
______________________________<wbr>_________________<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
bitcoin-dev mailing list<br>
</blockquote>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">b=
itcoin-dev@lists.linuxfoundat<wbr>ion.org</a><br>
</blockquote>
<br>
</div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bor=
der-left:1px #ccc solid;padding-left:1ex">
<a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" r=
el=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.<wbr>org/m=
ailman/listinfo/bitcoin-d<wbr>ev</a> [1]<br>
</blockquote><span class=3D"">
<br>
______________________________<wbr>_________________<br>
<br>
bitcoin-dev mailing list<br>
<br>
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">b=
itcoin-dev@lists.linuxfoundat<wbr>ion.org</a><br>
<br>
</span><a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin=
-dev" rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.<wb=
r>org/mailman/listinfo/bitcoin-d<wbr>ev</a> [1]<span class=3D""><br>
<br>
______________________________<wbr>_________________<br>
bitcoin-dev mailing list<br>
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">b=
itcoin-dev@lists.linuxfoundat<wbr>ion.org</a><br>
</span><a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin=
-dev" rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.<wb=
r>org/mailman/listinfo/bitcoin-d<wbr>ev</a> [1]<br>
</blockquote>
<br>
<br>
<br>
Links:<br>
------<br>
[1] <a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-de=
v" rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.<wbr>o=
rg/mailman/listinfo/bitcoin-d<wbr>ev</a><br>
[2] <a href=3D"http://breadwallet.com" rel=3D"noreferrer" target=3D"_blank">=
http://breadwallet.com</a><br>
</blockquote>
</blockquote></div><br></div></div>
</div></blockquote><blockquote type=3D"cite"><div><span>____________________=
___________________________</span><br><span>bitcoin-dev mailing list</span><=
br><span><a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-de=
v@lists.linuxfoundation.org</a></span><br><span><a href=3D"https://lists.lin=
uxfoundation.org/mailman/listinfo/bitcoin-dev">https://lists.linuxfoundation=
.org/mailman/listinfo/bitcoin-dev</a></span><br></div></blockquote></body></=
html>=

--Apple-Mail-6EBFF3C9-346E-4C8E-A7CA-7F30229947C9--