El uso del filtro Bloom en los nodos SPV

Sé lo que es Bloom Filter (BF), y estoy al tanto de esta publicación y este documento . Pero no entiendo cómo se usa en bitcoin.

Puedo imaginar que un nodo SPV codifica la(s) transacción(es) en las que está interesado, en un BF y lo envía al nodo completo. Lo que no entiendo es que ¿qué hace el nodo completo después de eso?

¿Recorre todas las transacciones anteriores y verifica cuál está en el BF y lo envía al nodo SPV?

Además, no está claro qué tan privado sería el enfoque, porque al final el nodo completo recupera lo que quiere el nodo SPV y lo envía al nodo, para que sepa lo que le interesa.


Si el objetivo es preservar la privacidad de la consulta del SPV, entonces se deben usar algunos enfoques sofisticados, como la recuperación de información privada o la memoria RAM olvidada, pero no son eficientes para la configuración de bitcoin.

Respuestas (1)

Puedo imaginar que un nodo SPV codifica la(s) transacción(es) en las que está interesado, en un BF y lo envía al nodo completo. Lo que no entiendo es que ¿qué hace el nodo completo después de eso?

El nodo completo pasa por cada transacción en la cadena de bloques. (O, al menos, cada transacción que ocurrió después de que se creó la billetera). Verifica las siguientes cosas contra el filtro de floración.

  1. Pruebe el hash de la transacción en sí.
  2. Para cada salida, pruebe cada elemento de datos del script de salida. Esto significa que cada hash y clave en el script de salida se prueba de forma independiente. Importante: si una salida coincide mientras se prueba una transacción, es posible que el nodo deba actualizar el filtro insertando la estructura serializada COtPoint. Consulte a continuación para obtener más detalles.
  3. Para cada entrada, pruebe la estructura COtPoint serializada.
  4. Para cada entrada, pruebe cada elemento de datos del script de entrada (nota: los scripts de entrada solo contienen elementos de datos).
  5. De lo contrario no hay coincidencia.

( Fuente .)

Si coincide, se envía al nodo SPV. El nodo SPV descarta los falsos positivos.

Si el objetivo es preservar la privacidad de la consulta del SPV, entonces se deben usar algunos enfoques sofisticados, como la recuperación de información privada o la memoria RAM olvidada, pero no son eficientes para la configuración de bitcoin.

No conozco ningún protocolo privado que no requiera que el nodo completo escanee toda la cadena de bloques para cada solicitud.

Si sabes de uno, házmelo saber. :) Siempre interesado en escuchar sobre ese tipo de cosas.

Gracias por la respuesta y la fuente. En los enlaces que proporcioné en mi pregunta, se dice que el filtro Bloom también se usa para ocultar (hasta cierto punto) la consulta de los nodos SPV, pero no me queda claro cómo se logra.
Los filtros Bloom naturalmente tienen falsos positivos. Si una clave coincide con un filtro de floración, no puede saber si coincide porque esa clave está en la billetera del usuario o porque es un falso positivo aleatorio. Sin embargo, hay formas de socavar esto, como verificar tanto la clave como el pubkeyhash, como describe el documento que vinculó.