ブルームフィルターとは?
無料エアドロップシーズン7開催中! 楽しいクイズに答えたり、簡単なタスクをこなして、3万ドルのBitDegree賞金プールから報酬を獲得! 今すぐ参加 ! 🔥
ブルームフィルターの意味や仮想通貨における定義、ブルームフィルターとは?、その他の詳細な事実すべてを見てみましょう。
ブルームフィルターは1970年にバートン・ハワード・ブルームによって開発され、あるアイテムが集合に属するかどうかをユーザーに通知する機能を備えています。ただし、このフィルターが確実に示すことができるのは、あるアイテムが集合に含まれないということだけです。もしそのアイテムが集合に属すると示したとしても、場合によっては間違っていることもあります。
ブルームフィルターは省スペースの効率性から、様々なアプリケーションで利用されています。仮想通貨の世界では、特にBitcoinに関しては、SPV (Simplified Payment Verification) で広く使われています。
ユーザーはSPVクライアントを利用することで、フルノードを運用することなくビットコインネットワークを利用することができます。スマートフォンのような低電力デバイスでは、特定のストレージや処理要件があるため、フルノードを動作させることは難しいです。そのため、SPVクライアントはウォレットに関する情報のみをフルノードに要求することができます。
この情報を得る最も簡単な方法は、フルノードにユーザーの鍵を認識させることです。そうすることで、関連するトランザクションのみがフルノードに送信されます。しかし、この方法ではユーザーのプライバシーが損なわれてしまいます。
トランザクションの大部分を削除するためだけに、すべてのトランザクションをダウンロードし、帯域幅を大量に浪費することになるため、良い選択肢とは言えません。そこで役立つのが、ブルームフィルターです。
アンナという名前のクライアントがいて、ジョンがフルノードだとします。アンナは高価なトランザクションを保持していますが、それをジョンに知られたくありません。そのため、彼女は自分のトランザクションを「隠す」方法を見つける必要があります。そこで良い方法がブルーム・フィルターを作成することです。次の例を見てみましょう。
3 4 2 1 6 8 7 5 0 9
アンナは2つの異なるハッシュ関数を通じて、トランザクションデータを実行します。各関数は、最終的には上記の数値列から2つの値を選択します。これらの値が2と8になったとします。
3 4 2 1 6 8 7 5 0 9
その後、アンナはフィルターをジョンに送ります。このグリッドだけでは、アンナがどのようなデータをフィルターに送信したかを知る可能性がないことは明らかです。
しかし、ジョンがアンナのデータを含むセット全体を持っていれば、それをハッシュ化し、フィルターで類似点を検索することができます。もし一致するものがあれば、それがアンナの要求したデータである可能性があります。
しかし、複数の入力が同時に2と8を参照している可能性があり、ジョンには、アンナが実際に興味を持っているデータがどの部分なのかを見分けることはできないでしょう。そのため、ジョンは一致するデータをすべて返し、アンナがそれを分類することになります。
もちろん、このプロセスはさらに複雑です。しかし、これはブルームフィルターがクライアントの実際の興味を隠してしまうという事実を示します。
ブルームフィルターはプライバシー問題もあるため、目的の情報を取得するのに最適な方法ではないかもしれません。しかし、単に偽装されていないリクエストをノードに送るよりはましな選択肢であるといえます。