Content
@
0 reply
0 recast
0 reaction
Dan Tehrani
@dantehrani.eth
Creddd search got a lot faster 1/n
1 reply
1 recast
2 reactions
Dan Tehrani
@dantehrani.eth
The problem: To keep a user’s Ethereum addresses private from others (including from the Personae team), creddd.xyz searches for eligible creddd on the client-side; the user’s addresses never leave the device.
1 reply
0 recast
1 reaction
Dan Tehrani
@dantehrani.eth
A naive implementation of client-side creddd search requires the client to download the entire mapping of addresses to eligible creddd. The mapping can be 50~100MB large which takes a noticeably long time to download and process (30~50s).
1 reply
0 recast
1 reaction
Dan Tehrani
@dantehrani.eth
To counter this, we utilized a probabilistic data structure called “Bloom filter”. A Bloom filter allows probabilistically checking membership in a set without downloading the entire set. It has false positives with a certain probability, but never outputs false negatives.
1 reply
0 recast
1 reaction
Dan Tehrani
@dantehrani.eth
Hence, the client only needs to download the sets the Bloom filter indicates that it's a member of. By using Bloom filters, we reduced client-side creddd search from 30~50 seconds to 1~5 seconds. Check out your creddd with the updated creddd search here: https://www.creddd.xyz/
1 reply
0 recast
1 reaction
Dan Tehrani
@dantehrani.eth
Huge thanks to @jmall for a deep-dive research on private transaction retrieval where we acquired the idea of using Bloom filters for client-side membership check! https://forum.aztec.network/t/note-discovery-proposal-rfp/3247/1
0 reply
0 recast
1 reaction