{"type":"rich","version":"1.0","author_name":"npub1ncnj8arudstdxzfhxk7k4nwgkrw3hyw8sgt0wqqmm5hh2c4knmgs2lqt2n","author_url":"https://nostr.ae/npub1ncnj8arudstdxzfhxk7k4nwgkrw3hyw8sgt0wqqmm5hh2c4knmgs2lqt2n","provider_name":"njump","provider_url":"https://nostr.ae","html":"📅 Original date posted:2018-05-17\n📝 Original message:\u003e\n\u003e I think lite clients cross checking is something which very likely\n\u003e will never be implemented by anyone, and probably not stay working\n\u003e (due to under-usage) if it is implemented.  This thought is driven by\n\u003e three things  (1) the bandwidth overhead of performing the check, (2)\n\u003e thinking about the network-interacting-state-machine complexity of it,\n\u003e and by the multitude of sanity checks that lite clients already don't\n\u003e implement (e.g. when a lite client noticed a split tip it could ask\n\u003e peers for the respective blocks and check at least the stateless\n\u003e checks, but none has ever done that), and...\n\u003e\n\nIn my opinion, it's overly pessimistic to design the protocol in an\ninsecure way because some light clients historically have taken shortcuts.\nIf the protocol can provide clients the option of getting additional\nsecurity, it should.\n\nOn the general topic, Peter makes a good point that in many cases filtering\nby txid of spending transaction may be preferable to filtering by outpoint\nspend, which has the nice benefit that there are obviously fewer txs in a\nblock than txins. This wouldn't work for malleable transactions though.\n\nI'm open to the idea of splitting the basic filter into three separate\nfilters based on data type, but there are some bandwidth concerns. First,\nthe GCS encoding gets better compression with a greater number of elements,\nthough as I recall in my analysis, that starts to tail off at ~1000\nelements per filter with P=20, in which case it's not as much of a concern\ngiven current block sizes. The other is that clients need to download\nand/or store the filter header chain for each filter type, which are 32\nbytes each per block. So if a client is expected to download all three\nfilter types anyway, or even two of three, it's less efficient in these\nterms. It would be possible though to split the filters themselves, but\nstill have the basic filter header cover all three filters. This would mean\nthat full nodes could not support just a subset of the basic filters --\nthey'd have to compute all of them to compute the filter header.\n-------------- next part --------------\nAn HTML attachment was scrubbed...\nURL: \u003chttp://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20180517/c25d9cf4/attachment.html\u003e"}
