<oembed><type>rich</type><version>1.0</version><author_name>npub1ncnj8arudstdxzfhxk7k4nwgkrw3hyw8sgt0wqqmm5hh2c4knmgs2lqt2n</author_name><author_url>https://nostr.ae/npub1ncnj8arudstdxzfhxk7k4nwgkrw3hyw8sgt0wqqmm5hh2c4knmgs2lqt2n</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2018-06-01&#xA;📝 Original message:To address the at-least-one-honest peer security assumption for light&#xA;clients, I think this is a rather good security model for light clients.&#xA;First it significantly reduces the chances that an attacker can eclipse a&#xA;client just by chance, and clients can implement measures like ensuring&#xA;connectivity to peers from different subnets. But even if, as you suggest,&#xA;a network attacker controls the target&#39;s local network, peers still can&#xA;have good security guarantees by requiring authenticated connections to&#xA;semi-trusted peers. A client can select a set of N servers that it believes&#xA;will not collude to attack it, and only sync filters if connected to a&#xA;threshold of them. So even if the network is malicious, the attacker cannot&#xA;forge the authenticated responses. The level of trust in these designated&#xA;parties again is quite low because only one has to be honest. This would&#xA;require something like BIP 150.&#xA;&#xA;Even if clients are uncomfortable with whitelisting required peers, it&#xA;could have a policy of requiring a certain number of connections to peers&#xA;that have honestly served it filters in the past. This is sort of like&#xA;trust-on-first-use. This type of scheme, however, would require nodes to&#xA;advertise a pubkey per address, which BIP 150/151 does not support at&#xA;present.&#xA;&#xA;All in all, I think this is an acceptable security model for light clients.&#xA;Without the ability to verify filter validity, a client would have to stop&#xA;syncing altogether in the presence of just one malicious peer, which is&#xA;unacceptable.&#xA;&#xA;The other concern you raise, Greg, is using a filter for P2P communications&#xA;that we expect may be replaced in the future. You also raise the point that&#xA;full node wallets can use the smaller filters for rescans because the&#xA;filter validity is not in question. I&#39;d perfectly fine with the idea of&#xA;defining two filter types in the BIP, one that is output script + outpoint&#xA;and the other output script + prev script. But I imagine some people would&#xA;object to the idea of full nodes storing two different filters that overlap&#xA;in contents. If we had to pick just one though, I&#39;m strongly in support of&#xA;output script + outpoint so that BIP 157 can be deployed ASAP without a&#xA;consensus change. It&#39;s entirely possible we will learn even more about&#xA;optimal filter design through deployment and adoption.&#xA;&#xA;On Fri, Jun 1, 2018 at 5:22 PM Gregory Maxwell &lt;greg at xiph.org&gt; wrote:&#xA;&#xA;&gt; On Sat, Jun 2, 2018 at 12:01 AM, Olaoluwa Osuntokun &lt;laolu32 at gmail.com&gt;&#xA;&gt; wrote:&#xA;&gt; &gt;&gt; A typical network attacker (e.g.  someone on your lan or wifi segmet, or&#xA;&gt; &gt;&gt; someone who has compromised or operates an upstream router) can be all&#xA;&gt; of&#xA;&gt; &gt;&gt; your peers.&#xA;&gt; &gt;&#xA;&gt; &gt; This is true, but it cannot make us accept any invalid filters unless the&#xA;&gt; &gt; attacker is also creating invalid blocks w/ valid PoW.&#xA;&gt;&#xA;&gt; I wish that were the true, but absent commitments that wouldn&#39;t be the&#xA;&gt; case unless you were always downloading all the blocks-- since you&#xA;&gt; wouldn&#39;t have any sign that there was something wrong with the&#xA;&gt; filter-- and downloading all the blocks would moot using the filters&#xA;&gt; in the first place. :)&#xA;&gt;&#xA;&gt; Or have I misunderstood you massively here?&#xA;&gt;&#xA;&gt; For segwit originally I had proposed adding additional commitments&#xA;&gt; that would make it possible to efficiently prove invalidity of a&#xA;&gt; block; but that got stripped because many people were of the view that&#xA;&gt; the &#34;assume you have at least one honest peer who saw that block and&#xA;&gt; rejected it to tell you that the block was invalid&#34; security&#xA;&gt; assumption was of dubious value. Maybe it&#39;s more justifiable to make&#xA;&gt; use of a dubious assumption for a P2P feature than for a consensus&#xA;&gt; feature?  Perhaps,  I&#39;d rather have both filter types from day one so&#xA;&gt; that things not implementing the comparison techniques don&#39;t get the&#xA;&gt; efficiency loss or the extra work to change filter types for a&#xA;&gt; consensus one.&#xA;&gt;&#xA;&gt; [I think now that we&#39;re much closer to a design that would be worth&#xA;&gt; making a consensus committed version of than we were a few months ago&#xA;&gt; now, since we are effectively already on a second generation of the&#xA;&gt; design with the various improvements lately]&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180601/b99c927d/attachment-0001.html&gt;</html></oembed>