Según tengo entendido, los filtros de floración se pueden definir con algunos hash objetivo y una tasa de falsos positivos. Al filtrar la cadena de bloques, se garantiza que se encontrarán todas las transacciones de destino, pero también se devolverán muchos falsos positivos al cliente por diseño.
Suponga que un atacante puede monitorear muchas especificaciones de filtro de floración enviadas por un cliente SPV a sus pares. ¿Podrá finalmente eliminar todos los falsos positivos realizando la comparación de subconjuntos en todas las transacciones que coincidan con los filtros?
Como ejemplo, dejemos que el conjunto de todas las transacciones sean los números enteros del 1 al 100, y supongamos que un cliente está interesado en las transacciones 4, 8 y 15. La primera vez que se conecta a la red, transmite un ajuste de filtro de floración ( 1, 4, 7, 8, 15, 27, 44, 73); la segunda vez, su filtro coincide (3, 4, 6, 8, 15, 27, 66). Un atacante podría reducir inmediatamente las posibles transacciones a (4, 8, 15, 27); después de varias invocaciones más, encontraría la respuesta correcta.
¿Estoy malinterpretando cómo funcionan los filtros de floración (por ejemplo, los falsos positivos no cambian entre conexiones), o es una preocupación teórica o incluso práctica?
Vea este documento para una buena discusión:
Sobre las disposiciones de privacidad de los filtros Bloom en clientes ligeros de Bitcoin
Sí, está malinterpretando cómo funcionan los filtros de floración vainilla/canónicos. Para la definición estándar, los falsos positivos no cambian entre conexiones: el conjunto devuelto en una segunda solicitud, si es diferente, será un superconjunto del primer conjunto.
Además, los filtros Vanilla Bloom no se utilizan como soluciones a los problemas de seguridad/caída de escuchas; son una optimización de compensación de cálculo frente a acceso al disco (pienso en ellos como un subconjunto de algoritmos de almacenamiento en caché). Puede usar un filtro de floración local para verificar si una URL determinada es maliciosa, para evitar realizar una costosa llamada/búsqueda de red en cada acceso a la URL, y solo realice la llamada de red cuando obtenga una respuesta positiva.
Dicho esto, existen técnicas para hacer estructuras similares a filtros de floración, que son más robustas/tienen características de seguridad más sólidas. No creo que ninguno de ellos se haya aplicado a las implementaciones de bitcoin.
lxgr
blueberryfields