<oembed><type>rich</type><version>1.0</version><author_name>npub1f2nvlx49er5c7sqa43src6ssyp6snd4qwvtkwm5avc2l84cs84esecrwet</author_name><author_url>https://nostr.ae/npub1f2nvlx49er5c7sqa43src6ssyp6snd4qwvtkwm5avc2l84cs84esecrwet</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2018-06-08&#xA;📝 Original message:On Fri, Jun 8, 2018 at 5:03 AM, Olaoluwa Osuntokun via bitcoin-dev&#xA;&lt;bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&gt; As someone who&#39;s written and reviews code integrating the proposal all the&#xA;&gt; way up the stack (from node to wallet, to application), IMO, there&#39;s no&#xA;&gt; immediate cost to deferring the inclusion/creation of a filter that includes&#xA;&gt; prev scripts (b) instead of the outpoint as the &#34;regular&#34; filter does now.&#xA;&gt; Switching to prev script in the _short term_ would be costly for the set of&#xA;&gt; applications already deployed (or deployed in a minimal or flag flip gated&#xA;&gt; fashion) as the move from prev script to outpoint is a cascading one that&#xA;&gt; impacts wallet operation, rescans, HD seed imports, etc.&#xA;&#xA;It seems to me that you&#39;re making the argument against your own case&#xA;here: I&#39;m reading this as a &#34;it&#39;s hard to switch so it should be done&#xA;the inferior way&#34;.  That in argument against adopting the inferior&#xA;version, as that will contribute more momentum to doing it in a way&#xA;that doesn&#39;t make sense long term.&#xA;&#xA;&gt; Such a proposal would need to be generalized enough to allow several components to be committed,&#xA;&#xA;I don&#39;t agree at all, and I can&#39;t see why you say so.&#xA;&#xA;&gt; likely have versioning,&#xA;&#xA;This is inherent in how e.g. the segwit commitment is encoded, the&#xA;initial bytes are an identifying cookies. Different commitments would&#xA;have different cookies.&#xA;&#xA;&gt; and also provide the necessary extensibility to allow additional items to be committed in the future&#xA;&#xA;What was previously proposed is that the commitment be required to be&#xA;consistent if present but not be required to be present.  This would&#xA;allow changing whats used by simply abandoning the old one.  Sparsity&#xA;in an optional commitment can be addressed when there is less than&#xA;100% participation by having each block that includes a commitment&#xA;commit to the missing filters ones from their immediate ancestors.&#xA;&#xA;Additional optionality can be provided by the other well known&#xA;mechanisms,  e.g. have the soft fork expire at a block 5 years out&#xA;past deployment, and continue to soft-fork it in for a longer term so&#xA;long as its in use (or eventually without expiration if its clear that&#xA;it&#39;s not going away).&#xA;&#xA;&gt; wallets which wish to primarily use the filters for rescan purposes can&#39;t&#xA;&gt; just construct them locally for this particular use case independent of&#xA;&gt; what&#39;s currently deployed on the p2p network.&#xA;&#xA;Absolutely, but given the failure of BIP37 on the network-- and the&#xA;apparent strong preference of end users for alternatives that don&#39;t&#xA;scan (e.g. electrum and web wallets)-- supporting making this&#xA;available via P2P was already only interesting to many as a nearly&#xA;free side effect of having filters for local scanning.  If it&#39;s a&#xA;different filter, it&#39;s no longer attractive.&#xA;&#xA;It seems to me that some people have forgotten that this whole idea&#xA;was originally proposed to be a committed data-- but with an added&#xA;advantage of permitting expirementation ahead of the commitment.&#xA;&#xA;&gt; Maintaining the outpoint also allows us to rely on a &#34;single honest peer&#34;security model in the short term.&#xA;&#xA;You can still scan blocks directly when peers disagree on the filter&#xA;content, regardless of how the filter is constructed-- yes, it uses&#xA;more bandwidth if you&#39;re attacked, but it makes the attack ineffective&#xA;and using outpoints considerably increases bandwidth for everyone&#xA;without an attack.  These ineffective (except for increasing&#xA;bandwidth) attacks would have to be common to offset the savings. It&#xA;seems to me this point is being overplayed, especially considering the&#xA;current state of non-existing validation in SPV software (if SPV&#xA;software doesn&#39;t validate anything else they could be validating, why&#xA;would they implement a considerable amount of logic for this?).</html></oembed>