Investor's wiki

Blomfilter

Blomfilter

Ett Bloom-filter Ă€r en datastruktur som kan anvĂ€ndas för att informera anvĂ€ndaren om ett visst objekt Ă€r en del av en uppsĂ€ttning. Även om det inte kan sĂ€ga med sĂ€kerhet om ett element Ă€r i mĂ€ngden, kan det med sĂ€kerhet sĂ€ga om elementet inte Ă€r det.

Bloom-filter skapades av Burton Howard Bloom 1970 och Àr ett attraktivt erbjudande för en rad applikationer pÄ grund av deras effektivitet i utrymmesanvÀndning. I vissa kryptovalutor (frÀmst Bitcoin) spelar de en integrerad roll i Simplified Payment Verification, eller SPV.

Genom att anvÀnda en SPV-klient kan anvÀndare interagera med Bitcoin-nÀtverket utan att köra en full nod. FullstÀndiga noder kommer med vissa lagrings- och berÀkningskrav som gör dem svÄrhanterliga att köra pÄ lÄgeffektsenheter som smartphones. SPV-klienter, Ä andra sidan, frÄgar helt enkelt hela noder för information som Àr relevant för anvÀndarens plÄnbok(ar).

Den enklaste lösningen för att vidarebefordra denna data till anvĂ€ndaren skulle vara att göra fullstĂ€ndiga noder medvetna om klientens nycklar, sĂ„ att endast relevanta transaktioner skickas till dem. Uppenbarligen Ă€r detta en undermĂ„lig lösning eftersom kundens integritet skulle offras. Å andra sidan skulle det vara ett slöseri med bandbredd att ladda ner alla transaktioner bara för att kassera majoriteten av dem. Ange Bloom-filter.

LÄt oss illustrera. Anta att en klient, Alice, har en transaktion av högt vÀrde som hon inte vill att Bob, som kör en hel nod, ska vara medveten om. Hon konstruerar ett Bloom-filter, som vi illustrerar som ett 10x1 rutnÀt:

Hon skickar transaktionsdata hon Àr intresserad av genom tvÄ olika hashfunktioner, som matar ut tvÄ nummer mellan 0 och 9. LÄt oss kalla dem 4 och 7. Hon skickar filtret till Bob.

NĂ€r du tittar pĂ„ det hĂ€r rutnĂ€tet har du ingen aning om vilken data Alice har skickat till filtret. Om du hade en uppsĂ€ttning dĂ€r data fanns i, skulle du kunna hasha den och jĂ€mföra den med filtret – om det finns en matchning finns det en möjlighet att det var informationen som Alice begĂ€rde.

Samtidigt kommer det sannolikt att finnas mÄnga ingÄngar som kommer att mappas till 4 och 7, sÄ Bob kan inte avgöra vilken del av data Alice Àr intresserad av. Han returnerar helt enkelt alla matcherna och Alice filtrerar dem pÄ hennes sida.

Detta Àr naturligtvis en grov överförenkling, men det visar konceptet: Bloom-filter fördunklar kundens verkliga intressen. Det Àr inte en perfekt metod (det finns fortfarande oro över dess integritet), men det Àr en förbÀttring jÀmfört med en oskÀrmad begÀran till en nod.