¿Cómo puedo configurar Bitcoin para que sea anónimo con Tor?

Bitcoin se factura como muchas cosas, entre ellas su anonimato es muy apreciado. Si bien es cierto que una transacción no identifica a un usuario o billetera, las noticias recientes muestran que existe la posibilidad de que la privacidad se vea parcialmente socavada por un método de "suposición fundamentada" que puede identificar la dirección IP del originador de la transacción.

¿Cómo configuro para usar Bitcoin de forma completamente anónima usando Tor?

Respuestas (4)

Esta no es una instrucción exhaustiva sobre Tor y solo muestra cómo configurarlo para que funcione junto con Bitcoin Core.

Bitcoin Core incluye integración con Tor

Cuando Tor está configurado correctamente en su sistema, Bitcoin Core identifica Tor automáticamente y crea un servicio anónimo. Se requiere poca configuración para estar 'fuera de la red' y, solo un poco más para ser completamente anónimo si eso es importante para usted, sin que su tráfico de Bitcoin llegue a la Internet pública.

Siguiendo estos pasos, puede ser anónimo en solo cinco minutos.

Con la configuración de privacidad completa, las transacciones, por supuesto, seguirán siendo transmitidas, pero solo serán transmitidas a la Internet pública por otros nodos de Bitcoin. Con la configuración estándar de Tor 'fuera de la red', su tráfico de Bitcoin se enrutará a través de la red Tor anónima antes de llegar a la Internet pública y a otros nodos de Bitcoin dentro y fuera de la red Tor para que no se pueda rastrear de manera efectiva.

Configuración de Bitcoin Core y Tor

Estas instrucciones funcionan en Fedora 23>29 y asumen una configuración predeterminada de Bitcoin Core v0.15.1 y Tor v0.2.7.1 o más reciente ( y se ha probado que funcionan con Bitcoin Core v0.16.0 en Fedora 27 con Tor v0.3.1. 9 ). Fedora es un sistema operativo moderno que se ejecutará en la mayoría del hardware moderno estándar. La configuración es la misma en Windows, pero las instrucciones son diferentes. Hay algunas instrucciones para configurar Tor en Windows aquí .

Más instrucciones para otros sistemas basados ​​en *nix están disponibles aquí . NOTA: No es necesario que configure su cliente Tor como un nodo de retransmisión o salida para que funcione Tor, por lo que puede omitir el paso de 'Colocar el archivo de configuración /etc/tor/torrc place:' en esa guía. Aún tendrá que seguir todos los pasos siguientes de esta guía.

  1. Configurar Tor

  2. Instale el paquete tor:

       sudo dnf install tor
    
  3. Inicie el demonio tor y asegúrese de que se inicia en el arranque:

       sudo systemctl enable tor
       sudo systemctl start tor
    
  4. Averigüe dónde está su torrcarchivo ( /etc/tor/torrces una posibilidad).

  5. Abra el torrcarchivo para editar:

     xhost +local: ## skip if earlier than v29 only needed for Wayland
     sudo gedit /etc/tor/torrc
    

    o

     sudo nano /etc/tor/torrc
    
  6. Agregue estas líneas a su torrc(o asegúrese de que no estén comentadas):

     ControlPort 9051
     CookieAuthentication 1
     CookieAuthFileGroupReadable 1
    
  7. Necesita averiguar qué grupo está usando tor. En Fedora 23 es toranon. Ejecute el siguiente comando:

     ps -eo user,group,comm |egrep 'tor' |awk '{print "tor group: " $2}'
    
  8. Debe averiguar con qué usuario se está ejecutando bitcoind o bitcoin-qt. Ejecute el siguiente comando mientras se ejecuta Bitcoin:

     ps -eo user,group,comm |egrep 'bitcoind|bitcoin-qt' |awk '{print "Bitcoin user: " $1}'
    
  9. Ejecute el siguiente comando como root, que agrega su usuario de Bitcoin al grupo tor. Reemplace TOR_GROUP y BITCOIN_USER con la información real que se encuentra arriba:

     sudo usermod -a -G TOR_GROUP BITCOIN_USER
    

Si no modifica ninguna otra configuración, Bitcoin Core generalmente se conectará a través de Internet normal, pero también permitirá conexiones hacia y desde el servicio Tor oculto.

  1. Para que Bitcoin Core solo se conecte a través de Tor (para la configuración estándar "fuera de la red"), agregue estas líneas a bitcoin.conf. En Bitcoin Core, vaya a Configuración -> Opciones -> Abrir archivo de configuración. Bitcoin Core utiliza el aislamiento de flujo de Tor de forma predeterminada:

     proxy=127.0.0.1:9050 #If you use Windows, this could possibly be 127.0.0.1:9150 in some cases.
     listen=1
     bind=127.0.0.1
    
  2. (opcional) Si lo desea, puede agregar algunos nodos del mismo nivel del servicio de cebolla para conectarse. Esto ayudará especialmente si realiza todas las siguientes configuraciones opcionales. Agregue las siguientes líneas a su bitcoin.confarchivo. Bitcoin Core solo se conectará a un máximo de ocho de estos a la vez de forma aleatoria, dependiendo de cuáles estén en línea (a partir de la versión 22.0, Bitcoin Core solo admite los servicios ocultos de la versión 3 de Tor (Tor v3). Bitcoin ignora las direcciones de Tor v2 Núcleo y ni retransmitido ni almacenado. Puede encontrar una lista de direcciones Tor v3 aquí ):

     #Add seed nodes
     seednode=wxvp2d4rspn7tqyu.onion
     seednode=bk5ejfe56xakvtkk.onion
     seednode=bpdlwholl7rnkrkw.onion
     seednode=hhiv5pnxenvbf4am.onion
     seednode=4iuf2zac6aq3ndrb.onion
     seednode=nkf5e6b7pl4jfd4a.onion
     seednode=xqzfakpeuvrobvpj.onion
     seednode=tsyvzsqwa2kkf6b2.onion
    
     #And/or add some nodes
     addnode=gyn2vguc35viks2b.onion
     addnode=kvd44sw7skb5folw.onion
     addnode=nkf5e6b7pl4jfd4a.onion
     addnode=yu7sezmixhmyljn4.onion
     addnode=3ffk7iumtx3cegbi.onion
     addnode=3nmbbakinewlgdln.onion
     addnode=4j77gihpokxu2kj4.onion
     addnode=546esc6botbjfbxb.onion
     addnode=5at7sq5nm76xijkd.onion
     addnode=77mx2jsxaoyesz2p.onion
     addnode=7g7j54btiaxhtsiy.onion
     addnode=a6obdgzn67l7exu3.onion
     addnode=ab64h7olpl7qpxci.onion
     addnode=am2a4rahltfuxz6l.onion
     addnode=azuxls4ihrr2mep7.onion
     addnode=bitcoin7bi4op7wb.onion
     addnode=bitcoinostk4e4re.onion
     addnode=bk7yp6epnmcllq72.onion
     addnode=bmutjfrj5btseddb.onion
     addnode=ceeji4qpfs3ms3zc.onion
     addnode=clexmzqio7yhdao4.onion
     addnode=gb5ypqt63du3wfhn.onion
     addnode=h2vlpudzphzqxutd.onion
     addnode=n42h7r6oumcfsbrs.onion:4176
     addnode=ncwk3lutemffcpc4.onion
     addnode=okdzjarwekbshnof.onion
     addnode=pjghcivzkoersesd.onion
     addnode=rw7ocjltix26mefn.onion
     addnode=uws7itep7o3yinxo.onion
     addnode=vk3qjdehyy4dwcxw.onion
     addnode=vqpye2k5rcqvj5mq.onion
     addnode=wpi7rpvhnndl52ee.onion
    

Si además desea que Bitcoin Core solo se conecte a los servicios ocultos de Tor y ni siquiera a los nodos IPv4/IPv6 en la Internet pública a través del proxy de la red Tor:

  1. (opcional) También agregue esto bitcoin.confpara anonimato completo (no particularmente recomendado) * :

    onlynet=onion
    

* Nota: Bitcoin Core aún consultará las direcciones de los pares a través de la búsqueda de DNS si hay pocas direcciones. Esto también se puede desactivar usando la siguiente opción. Sin embargo, es posible que su nodo no pueda encontrar ningún otro nodo al que conectarse.

* Nota: Bitcoin Core v0.15.1 actualmente parece realizar algunas conexiones IPv4 salientes en el inicio del nodo, incluso cuando onlynet=onionno se ha observado ninguna después del inicio inicial. Estas conexiones deben realizarse a través de su proxy de cebolla, sin embargo, se ha observado que el uso de la siguiente opción las previene.

  1. (opcional) (avanzado) Si también desea deshabilitar la búsqueda de DNS para consultar las direcciones de pares, agregue también lo siguiente a la nota bitcoin.conf(no especialmente recomendada) : si usa esta opción, es posible que su nodo no pueda encontrar pares hasta que agregue algunos buenos compañeros con el addnode=parámetro. :

    dnsseed=0
    dns=0
    
  2. Reiniciar para:

    sudo systemctl stop tor
    sudo systemctl start tor
    
  3. Cierre la sesión de su usuario, vuelva a iniciar sesión (esto es para que sus nuevos permisos de grupo de usuarios sean efectivos, no sé en qué usuario está ejecutando Bitcoin Core).

  4. Reinicie Bitcoin Core. Desde la versión 0.2.7.1 de Tor y posteriores, la versión GUI de Bitcoin Core llamada bitcoin-qt registra automáticamente su servicio oculto Tor y lo hace accesible en la red de cebolla. Para la versión de línea de comandos de Bitcoin Core, bitcoind, agregue el siguiente parámetro a su línea de comandos:

    >bitcoind -listenonion
    

No es necesario el reenvío de puertos para que todo funcione con Tor, incluidas las conexiones entrantes a través del servicio oculto de Tor, no es necesario reenviar ningún puerto para Bitcoin Core o Tor para esto.

Si desea que su nodo de Bitcoin siga siendo accesible públicamente a través de Internet público para las conexiones entrantes, deberá reenviar el puerto 8333 para Bitcoin Core.

Comprobando que todo funciona

Sólo hay dos cosas para comprobar que todo funciona. Al verificar la información de pares en la ventana de depuración de bitcoin-qt, debería ver que las conexiones a los pares IPv4/IPv6 ahora tienen alguna información extra conectada 'vía' junto con la dirección del par cuando hace clic en un par. Las direcciones de cebolla solo se enrutan a través de Tor.

Al verificar lo mismo a través de la consola o CLI para getnetworkinfo, debería ver para cada red, escriba la información del proxy y, al verificar con getpeerinfousted, debería ver que la addrlocalinformación es una dirección remota para cada par. Los pares de cebolla no tienen addrlocaly solo tienen su nombre de servicio de cebolla para addr.

Lo segundo que debe verificar es que su servicio de cebolla para conexiones Tor entrantes esté activo y que toda la configuración esté en su lugar. Eche un vistazo a su debug.logarchivo, debería ver algunas entradas después del reinicio del nodo más reciente que coincidan con lo siguiente:

2018-02-10 06:31:48 InitParameterInteraction: parameter interaction: -proxy set -> setting -upnp=0
2018-02-10 06:31:48 InitParameterInteraction: parameter interaction: -proxy set -> setting -discover=0
...
2018-02-10 06:32:13 Bound to 127.0.0.1:8333
...
2018-02-10 06:32:13 torcontrol thread start
2018-02-10 06:32:13 tor: Got service ID {onion}, advertising service {onion}.onion:8333
2018-02-10 06:32:13 AddLocal({onion}.onion:8333,4)

La advertising serviceinformación es su dirección de servicio de cebolla.

En el debug.log, las conexiones a los pares de cebolla solo se verán como las siguientes, pero seguirán apareciendo en la pestaña de pares de la ventana de depuración en bitcoin-qt:

2018-02-10 06:34:07 receive version message: /Satoshi:0.15.1/: version 70015, blocks=508469, us=[::]:0, peer=7

No es necesario configurar el reenvío de puertos en su módem/enrutador para que funcione Tor. Si está detrás de un firewall restrictivo, puede ser necesario configurar conexiones salientes para permitir que Tor se conecte a otros nodos de Tor. Tor se puede configurar para que solo se conecte usando el puerto 80/443 si eso ayuda. Consulte el Apéndice 1: Supervisión de Tor para obtener nyxacceso a las opciones de configuración completas de Tor.

Es difícil ser completamente anónimo ya que el remitente y el receptor lo saben, sin embargo, puede ofuscar el origen de su transacción para que sus datos no puedan ser rastreados por la dirección IP sin violar la red Tor. Investigue un poco, onlynet=oniones más seguro.

Además, se ha realizado una investigación [1] [2] sobre la representación gráfica de la cadena de bloques en un intento de rastrear todos los BTC hasta su origen, identificando potencialmente la fuente<-billetera<-compra y, dependiendo de la combinación de UTXO, identificando potencialmente los saldos de la billetera o la billetera. subconjuntos de equilibrio. La vinculación de datos es un problema de privacidad que nos puede preocupar a todos, este artículo analiza el uso de mezcladores de bitcoin y esta serie de tweets .

¡Hecho! ¡Disfruta siendo anónimo!

Apéndice 1 - Monitoreo de Tor

Puede monitorear (y modificar/romper más) Tor usando nyx .

Hay varios métodos de instalación disponibles. En Fedora 27:

sudo dnf install nyx

Para iniciar nyx, simplemente escriba nyxen la consola y se conectará a Tor si se está ejecutando.

notas al pie

Una vez configurado correctamente, la mayoría de los problemas de sincronización tienen que ver con su hardware. Ver esta respuesta para más información.

Hay más opciones de configuración disponibles y formas adicionales de admitir la red Tor. Consulte las diversas páginas disponibles aquí para obtener información.

Gracias a en.bitcoin.it por su excelente guía que me ayudó a comenzar con esto.

Hay información adicional disponible del proyecto bitcoin aquí .

Para un nivel aún más alto de anonimato, es posible configurar Tor como un solucionador de DNS y configurar la configuración de red de su sistema para usar Tor para resolver consultas de DNS.

*Por defecto, Tor participará en la red Tor.

Esperando la revisión por pares antes de marcar como aceptado.
Si no tiene mucho cuidado con la configuración de dns, puede traicionar el hecho de que su billetera se está comunicando con nodos de billetera basados ​​​​en tor. tor.stackexchange.com/questions/8/…
@MaxVernon De acuerdo, aprecia el riesgo. Esta respuesta parece indicar que Tor maneja la resolución de DNS para solicitudes a través del nodo de salida. Sin embargo, si el cliente resuelve directamente el DNS, dudo que esto se maneje. Tendré que arrastrar mi antiguo cuadro de registro de red para probar lo que realmente está sucediendo. ¿Crees que debería reformular la respuesta? Aún así, Tor solo transmite toda la información de la transacción para que se logre el objetivo. Incluso si es posible identificar que una IP en particular está ejecutando una billetera Bitcoin y/o Tor, el tráfico de datos no es identificable.
@MaxVernon agregó la opción para deshabilitar las búsquedas de DNS.
¿De dónde sacaste esta lista de nodos tor?
¡Gran guía, gracias! Tenga en cuenta que bitcoind guarda un archivo onion_private_keyen su carpeta de inicio (predeterminado ~/.bitcoin/). Mientras ese archivo esté en la carpeta de datos de bitcoind, su *.oniondirección seguirá siendo la misma, entre reinicios y reinicios. Eliminar ese archivo obligará a bitcoind (o tor) a generar un nuevo onion_private_keyy, por lo tanto, un nuevo*.onion
@MrHash Esa lista proviene del FBI ;-) Si lo desea, puede obtener su propia lista de bitnodes . Los que están al final tienen el mejor tiempo de actividad.
En ubuntu, el comando tor group devuelve 'root' y 'debian-+', pero ninguno de estos son grupos en la máquina, por lo que no puedo agregar al usuario a estos grupos. No estoy seguro de qué hacer.
@wordsforthewise debería poder enumerar grupos con algo como cut -d: -f1 /etc/group | grep toranonsi el grupo toranon existe, use eso. ¿Puede ser que el grupo sea debian-tor?
¿Alguien podría dar más detalles sobre el error que obtengo: Issue: Authentication failed: unable to read '/run/tor/control.authcookie' ([Errno 13] Permission denied: '/run/tor/control.authcookie'). Esto sucede cuando trato de ejecutarlo como un usuario normal. Funciona bien con sudopero luego obtengo:Nyx is currently running with root permissions. This isn't a good idea, nor hould it be necessary.
@Ben Si completó el paso 7 correctamente, debería funcionar, a menos que se cambie algo en una versión más nueva de Tor, lo verificaré eventualmente.

Aquí hay una guía simple sobre cómo construir y ejecutar su propio nodo doméstico detrás de un tor.

https://github.com/bitembassy/home-nodo

Ha habido cierta discusión hoy antes de la sesión del club de revisión de relaciones públicas de Bitcoin Core sobre el tema del soporte de Tor v3 . No he revisado las respuestas anteriores para comentar si alguna de ellas necesita actualización.

Pero Jon Atack señaló en IRC algunos buenos recursos adicionales para comenzar con Tor. Existe la wiki de Bitcoin y la documentación de Bitcoin Core .

También explicó cómo puede crear y ejecutar un servicio Tor v3 utilizando este borrador PR 19954 (borrador en el momento de la redacción, septiembre de 2020).

Si tiene Tor configurado y ejecutándose, Bitcoin creará automáticamente un servicio Tor incluso con la configuración predeterminada. Puede obtener debug.loginformación sobre su estado Tor configurando debug=toren su bitcoin.confarchivo o iniciandobitcoind -debug=tor

Puedes observar tu nodo con:

Mac OS

./src/bitcoin-cli -netinfo 4

linux

watch ./src/bitcoin-cli -netinfo 4

Hay una forma bastante sencilla de obtener TOR para todo el sistema para arch linux. Puede valer la pena configurar una máquina virtual Arch Linux encriptada con TOR y luego proceder a usar bitcoin-core desde AUR.