5 ms·
> One proposed mechanism to make blocks less public on Bluesky is the use of bloom filters. The basic idea is to encode block relationships in a statistical dat
by preseinger 3y ago
> One proposed mechanism to make blocks less public on Bluesky is the use of bloom filters. The basic idea is to encode block relationships in a statistical data structure, and to distribute that data structure instead of the set of actual blocks. The data structure would make it easy to check if there was a block relationship between two specific accounts, but not make it easy to list all of the blocks.
a bloom filter provides no false negatives, but allows some false positives
how do you model an "A-blocks-B" relationship with this data structure?
specifically, how do you ensure that "A-blocks-B" blocks only B, and never C D or E?
- abracadaniel 3y agoAs I understand it, you enter a fact into the data structure (A blocks B). Now every time you query: is “A blocks B” in the data structure, it will always return True. But also very rarely it will return True for “A blocks C” or anything else that isn’t true. It would make it harder to dump the full list, but it doesn’t solve the case of “does this user block me?” Because you can still easily query that.
- preseinger 3y ago> But also very rarely it will return True for “A blocks C” or anything else that isn’t true. It would make it harder to dump the full list, but it doesn’t solve the case of “does this user block me?” Because you can still easily query that. if "A blocks C" returns true when A doesn't block C, then this is a problem, right? it means you can trust false responses (no false negatives), but you can't trust true responses (some false positives) if you get a true response, you have to confirm it's actually true through some other source, which must not return false positives that other source therefore must be authoritative, and must also be query-able by any client that can query the bloom filter -- it's no panacea a bloom filter is an optimization, not a source of truth