¿Qué es un Filtro de Bloom?
Averigüemos Filtro de Bloom de la palabra clave, definición en el mundo cripto, ¿Qué es un Filtro de Bloom y todos los demás datos detallados.
Un filtro de Bloom, desarrollado en 1970 por Burton Howard Bloom, informa al usuario de si un determinado elemento pertenece o no a un conjunto. Sin embargo, el filtro sólo puede mostrar con total certeza que un elemento no está en el conjunto. Si indica que el elemento está en el conjunto, en algunos casos podría estar equivocado.
Debido a su eficiencia en el ahorro de espacio, los filtros de Bloom son atractivos para una gran variedad de aplicaciones. En el mundo de las criptomonedas, se utilizan ampliamente en la Verificación Simplificada de Pagos (SPV), especialmente cuando se trata de Bitcoin.
Los usuarios pueden emplear la red Bitcoin sin operar nodos completos utilizando un cliente SPV. Es difícil ejecutar nodos completos en dispositivos de baja potencia, como los smartphones, porque tienen requisitos específicos de almacenamiento y procesamiento. Por tanto, los clientes SPV sólo pueden solicitar a los nodos completos información sobre sus monederos.
La forma más sencilla de obtener esta información es hacer que los nodos completos conozcan las claves del usuario. De esta forma, sólo se les transmitirían las transacciones relevantes. Sin embargo, esta es una mala opción porque la privacidad del usuario se vería comprometida de esta forma.
Aunque descargar todas las transacciones sólo para borrar la mayoría de ellas tampoco sería una buena opción porque desperdiciaría mucho ancho de banda. Ahí es donde un filtro de Bloom entra en juego.
Imaginemos que Anna es un cliente y John es un nodo completo. Anna tiene una transacción costosa, pero no quiere que John se entere. Por tanto, necesita encontrar una forma de "enmascarar" su transacción. Para ello, crea un filtro de Bloom. Supongamos que se ve así:
3 4 2 1 6 8 7 5 0 9
Ella ejecuta los datos de la transacción a través de dos funciones hash distintas. Cada una de estas funciones termina eligiendo dos valores de la cadena de números que puedes ver arriba. Digamos que estos valores resultan ser 2 y 8.
3 4 2 1 6 8 7 5 0 9
A continuación, Anna envía el filtro a John. Es obvio que no hay posibilidad de saber qué datos ha enviado Anna al filtro basándose únicamente en esta cuadrícula.
Aunque si John tuviera todo el conjunto que contiene los datos de Anna, podría hacer un hash y buscar similitudes en el filtro. Si hubiera una coincidencia, es posible que fueran los datos que Anna pidió.
Sin embargo, es probable que varias entradas se refieran a 2 y 8 al mismo tiempo. Por lo tanto, Juan no podría saber qué parte de los datos le interesa realmente a Ana. Por lo tanto, devolvería todas las coincidencias, que Ana ordenaría.
Obviamente, el proceso es mucho más complejo. Sin embargo, ilustra el hecho de que el filtro de Bloom oculta los intereses reales del cliente.
Puede que el filtro de Bloom no sea el mejor método para recuperar la información deseada, porque también plantea algunos problemas de privacidad. Sin embargo, sigue siendo una opción mejor que simplemente enviar una solicitud sin disfrazar a un nodo.