Privacidad a nivel de red

Bitcoin Core, más específicamente los nodos completos, se consideran el pináculo del nivel de red privado y en las carteras de Bitcoin que ningún otro tipo de cartera puede acercarse. No es difícil ver por qué: los nodos completos descargan todo el Blockchain y establecen los saldos de su billetera localmente, por lo que no hay ninguna posibilidad de que un tercero descubra qué direcciones están en su billetera y cuáles no.
Compare esto con otras billeteras ligeras, que consultan a un servidor backend para obtener información sobre direcciones específicas o utilizan el protocolo de billetera SPV de filtrado de flores BIP37, que probablemente sea incluso peor. Y está Electrum, que envía sus direcciones a servidores Electrum aleatorios.

La visión de una billetera liviana que no filtre demasiada información mientras establece el conjunto UTXO del usuario ha perseguido a los desarrolladores de Bitcoin durante siglos.
De hecho, incluso BIP37 comenzó como una mejora de la privacidad, simplemente resultó no ser una más tarde.
Pero hubo intentos decentes: algunos desarrolladores, como Jonas Schnelli, el equipo de Stratis y yo, creamos un software de billetera que solo descargaron bloques de la creación de la billetera del usuario.
Algunos desarrolladores, como Nicolas Dorier, intentaron parchear el BIP37 y algunos otros, como los chicos de Lightning Labs, idearon una arquitectura de billetera liviana completamente nueva: BIP157-158.
La gente de MoneroWorld quiere que delegue la ejecución de su nodo en la nube.
También hubo otros, como Chris Belcher, que dijo: “A la mierda” y creó EPS que le permite conectar su cliente Electrum a su nodo completo.
Finalmente, he notado una tendencia positiva recientemente de empresas que venden cajas que ejecutarán un nodo completo para usted.

Y luego, está Wasabi Wallet, que es una billetera liviana de filtrado del lado del cliente BIP157 y también se integra parcialmente a su nodo completo. Lo que me lleva al tema de este artículo: Hace solo unas horas, con Wasabi Wallet, logramos el mejor nivel de privacidad de red que es posible con el Bitcoin actual.

Terminología

V. Significa Verificación o Validación . Se usan indistintamente, pero estoy bastante seguro de que uno de ellos es correcto. Veridación?

FN, Nodo completo, Nodo de verificación completa. Descarga y verifica todos los bloques de Bitcoin que se hayan creado, pero para nuestros propósitos (privacidad) solo importa la parte de descarga.
Nodo SPV, Nodo de verificación de pago simplificado. Solo sincroniza la cadena de encabezado (sea lo que sea) y puede verificar que tiene una transacción aplicando algo de magia merkle. Sin embargo, nada de esto nos importa. Lo importante es notar que SPV no tiene nada que ver con la privacidad, en realidad es solo una forma de asegurarse de que las transacciones ocurran.
Por extensión, un nodo completo tampoco tiene nada que ver con la privacidad. Solo describe cómo el nodo se asegura de que ocurran las transacciones. Verifica toda la cadena de bloques, por supuesto, para hacerlo, tiene que descargar toda la cadena de bloques, lo que permite la recuperación de la billetera UTXO localmente, que es la forma más privada de hacerlo. Espera, ¿tiene algo que ver con la privacidad después de todo?
Full-SPV, Full-Block SPV, Full Block Downloading SPV Node. Descarga todos los bloques desde la creación de la billetera y realiza la verificación SPV en ellos. Espera, ¿acabo de doblar la palabra V allí? Sí, los desarrolladores son así de inconsistentes. También espero que nadie construya una billetera SPV completa que descargue todos los bloques, pero que realice una validación centralizada, porque es imposible encontrar un término adecuado para eso.

¿Todavía estás confundido? Bueno. Ahora que reconoció la naturaleza matizada del tema, me perdonará más si acabo con el resto de esta sección con enormes simplificaciones:

Nodo completo híbrido. Es un nodo ligero hasta que se sincroniza el nodo completo. Quiero que Wasabi sea esa billetera en el futuro.
BIP37. El cliente envía el filtro de floración a los nodos completos, los nodos completos devuelven datos que coinciden con el filtro de floración.
Filtro de floración. Le permite probar si un elemento está en un conjunto sin revelar el conjunto en sí. .
Filtros Golomb-Rice. Filtros de floración más pequeños, utilizados por BIP158.
Filtrado del lado del cliente, filtrado de neutrinos, BIP157, BIP158. La idea de que los clientes no tienen que enviar filtros a nodos completos, sino que hacen lo contrario: los nodos completos crean filtros y los envían a los clientes. Desde aquí, los clientes pueden descargar bloques de otras fuentes. Es una forma decentemente privada de establecer el estado UTXO de la billetera.
Neutrino. Implementación de Lightning Lab del protocolo de filtrado del lado del cliente.
Lo que sea que esté haciendo Wasabi. Nuestra implementación del protocolo de filtrado del lado del cliente.

Reducir

Vale la pena señalar que la privacidad a nivel de red es solo la mitad de la batalla. La otra mitad es la privacidad a nivel de blockchain, que está fuera del alcance de este artículo.

Además, la privacidad a nivel de red consta de dos subcategorías:

Bitcoin Core

Recuperación de UTXO privada

Bitcoin Core descarga todos los bloques que se hayan creado y establece los saldos de su billetera localmente.

Difusión de transacciones privadas

Bitcoin Core transmite transacciones a otros pares en clearnet, sin cifrar.
Otros pares no pueden averiguar qué transacción se origina en un nodo específico, porque Core no solo transmite sus propias transacciones, sino que también propaga todas las demás transacciones que llegan es mempool.
Sin embargo, algunos artículos señalan que no es a prueba de balas:

La propagación de transacciones de Bitcoin no oculta muy bien la fuente de una transacción, especialmente contra un “supernodo” que escucha a escondidas que forma una gran cantidad de conexiones salientes a nodos accesibles en la red [1,2,3].

Si bien en la práctica sospecho que no importa mucho, este artículo pretende examinar los detalles para comparar Core con Wasabi, por lo que comienzo a recopilar los adversarios identificados relevantes a partir de aquí:

Adversarios identificados

Bitcoin Core + Tor

Puede usar Bitcoin Core con Tor, que resuelve el problema mencionado anteriormente. En este caso, un supernodo no puede rastrear transacciones hasta su dirección IP.

Consideraré cualquier entidad que pueda romper Tor, un adversario universal, sin embargo, tenga en cuenta que esto es inexacto. Por ejemplo, la mayoría de los ataques Tor no son posibles si los nodos de salida no están involucrados. Esta y otras cosas como la configurabilidad de Core complicarían demasiado el análisis, por eso elijo trazar la línea aquí.
Supongo que esta entidad puede romper el enrutamiento de cebolla, no el cifrado de Tor en sí mismo.

Adversarios identificados

Cartera Wasabi

Difusión de transacciones privadas

Wasabi anteriormente no mantenía sus conexiones P2P sobre Tor. Dado que Wasabi es un nodo que no escucha, la transmisión de transacciones a través de otros nodos P2P a través de clearnet le permitiría al par vincular su dirección IP a la transacción. Es por eso que estábamos transmitiendo nuestras transacciones a nuestro servidor backend a través de Tor.

Ahora, también comenzamos a canalizar todo nuestro tráfico P2P a través de Tor:

Recuperación de UTXO privada

Finalmente llegamos a la parte interesante. Antes de la implementación P2P Tor, Wasabi estaba haciendo lo siguiente:
El servidor backend servía una tabla de filtro constante a todos los clientes a través de Tor. A partir de esos filtros, los clientes podían averiguar en qué bloques estaban interesados ​​y descargar estos bloques y algunos bloques falsos positivos de sus pares. Un bloque por par. Cuando se adquirió un bloque, el par se desconectó.
Hubo dos problemas con esto.
¿Qué pasa si todos los pares a los que Wasabi se conectó fueran la misma entidad durante un período de tiempo prolongado? Entonces, la entidad atacante de Sybil sabría todos los bloques que le interesan a un cliente, de los cuales se podría haber obtenido alguna información. ¿Surge la pregunta? ¿Cómo se asegura de ser el único par al que se conecta un cliente durante un período prolongado de tiempo?
El segundo problema es, ¿qué sucede si su ISP lo está espiando durante un período prolongado de tiempo? Esto es más plausible. De hecho, la calificación de privacidad de Wasabi en la lista de Bitcoin.org casi se calificó como la misma que la billetera Bread, debido a esto, lo que, por supuesto, hubiera sido ridículo, ya que Bread es una billetera BIP37. Lo que salvó la calificación fue que noté que, si el ISP es un adversario, entonces Bitcoin Core habría fallado de una manera más espectacular, ya que las transacciones se transmiten a través de clearnet e incluso si el nodo está escuchando, la única transacción que no lo hace ‘ Entra, pero solo sale de la billetera debe ser la que se origina en el nodo.
De todos modos, Wasabi hace esto a través de Tor ahora. Debido al cifrado de extremo a extremo de la red de cebolla, inmediatamente derrota al adversario del ISP y hace que el ya imposible trabajo del adversario de Sybil sea aún más imposible. ¿Cómo Sybil durante un período prolongado de tiempo, todos los nodos que se conectan a Wasabi? ¿O incluso solo un nodo? El cliente se esconde detrás de Tor. Ni siquiera puede unir dos conexiones del cliente, ya que el cliente se conecta a todas sus Sybils a través de una transmisión Tor diferente.
El único adversario que posiblemente podría superar esto tendría que configurar miles de nodos completos sobre cebolla y también romper Tor sí mismo.

Adversarios identificados

Wasabi Wallet + Nodo completo

Recuperación de UTXO privada

Si tiene un nodo completo de escucha ejecutándose en segundo plano (no solo Bitcoin Core, cualquier nodo completo), Wasabi lo recoge automáticamente y, en lugar de pedir bloques a sus compañeros, solicita bloques de su propio nodo. El uso de Wasabi de esta manera da como resultado el mismo modelo de privacidad que el de Bitcoin Core con respecto a la recuperación de UTXO privada.

Poniéndolo todo junto

Conclusión

Para que sean útiles, las métricas de seguridad deben reflejar la dificultad que tiene un adversario para superarlas. – entropista

Debido a que contra todos los adversarios razonables, una comparación entre Bitcoin Core y Wasabi Wallet en la privacidad a nivel de red no tiene sentido, podría pensar que este artículo fue una pérdida de tiempo. Pero estás muy equivocado. Este artículo seguramente me ayudará a ganar discusiones en Internet. Y, al final, ¿no es eso lo que realmente importa?