Как я могу настроить Биткойн, чтобы он был анонимным с Tor?

Биткойн оплачивается многими вещами, среди которых высоко ценится его анонимность. Хотя верно то, что транзакция не идентифицирует пользователя или кошелек, последние новости показывают, что существует возможность частичного нарушения конфиденциальности методом «обоснованного предположения», который может определить IP-адрес инициатора транзакции.

Как мне настроить использование Биткойн полностью анонимно с помощью Tor?

Ответы (4)

Это не полное обучение работе с Tor, а только показано, как настроить его для совместной работы с Bitcoin Core.

Bitcoin Core включает интеграцию с Tor

Когда Tor правильно настроен в вашей системе, Bitcoin Core автоматически идентифицирует Tor и создает анонимный сервис. Требуется небольшая конфигурация, чтобы быть «вне сети», и совсем чуть-чуть больше, чтобы быть полностью анонимным, если это важно для вас, и ни один из вашего биткойн-трафика не выходит в общедоступный Интернет.

Используя эти шаги, вы можете стать анонимным всего за пять минут.

С полной настройкой конфиденциальности транзакции, конечно, по-прежнему будут транслироваться, но на самом деле они будут транслироваться в общедоступный Интернет только другими узлами Биткойн. При стандартной настройке Tor «вне сети» ваш биткойн-трафик будет направляться через анонимную сеть Tor, прежде чем он попадет в общедоступный Интернет и другие узлы биткойнов в сети Tor и за ее пределами, чтобы его нельзя было отследить.

Настройка Bitcoin Core и Tor

Эти инструкции работают в Fedora 23>29 и предполагают установку по умолчанию Bitcoin Core v0.15.1 и Tor v0.2.7.1 или новее ( и были протестированы для работы с Bitcoin Core v0.16.0 в Fedora 27 с Tor v0.3.1. 9 ). Fedora — это современная операционная система, которая будет работать на большинстве стандартных современных аппаратных средств. Конфигурация в Windows такая же, но инструкции другие. Несколько инструкций по настройке Tor в Windows можно найти здесь .

Дальнейшие инструкции для других систем на базе *nix доступны здесь . ПРИМЕЧАНИЕ. Вам не нужно настраивать клиент Tor в качестве ретранслятора или выходного узла для работы Tor, поэтому вы можете пропустить шаг «Поместите файл конфигурации /etc/tor/torrc в место:» в этом руководстве. Вам все равно нужно будет выполнить все следующие шаги в этом руководстве.

  1. Настроить Тор

  2. Установите тор-пакет:

       sudo dnf install tor
    
  3. Запустите демон tor и убедитесь, что он запускается при загрузке:

       sudo systemctl enable tor
       sudo systemctl start tor
    
  4. Выясните, где находится ваш torrcфайл ( /etc/tor/torrcэто одна из возможностей).

  5. Откройте torrcфайл для редактирования:

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

    или же

     sudo nano /etc/tor/torrc
    
  6. Добавьте эти строки в свой torrc(или убедитесь, что они не закомментированы):

     ControlPort 9051
     CookieAuthentication 1
     CookieAuthFileGroupReadable 1
    
  7. Вам нужно выяснить, какую группу использует Tor. В Fedora 23 это toranon. Выполните следующую команду:

     ps -eo user,group,comm |egrep 'tor' |awk '{print "tor group: " $2}'
    
  8. Вам нужно выяснить, под каким пользователем работает bitcoind или bitcoin-qt. Запустите следующую команду во время работы Биткойна:

     ps -eo user,group,comm |egrep 'bitcoind|bitcoin-qt' |awk '{print "Bitcoin user: " $1}'
    
  9. Выполните следующую команду от имени пользователя root, которая добавит вашего пользователя Bitcoin в группу tor. Замените TOR_GROUP и BITCOIN_USER фактической информацией, найденной выше:

     sudo usermod -a -G TOR_GROUP BITCOIN_USER
    

Если вы не измените какие-либо другие настройки, Bitcoin Core обычно будет подключаться через обычный Интернет, но также будет разрешать подключения к скрытому сервису Tor и обратно.

  1. Чтобы Bitcoin Core подключался только через Tor (для стандартной настройки «вне сети»), добавьте эти строки в bitcoin.conf. В Bitcoin Core перейдите в «Настройки» -> «Параметры» -> «Открыть файл конфигурации». Bitcoin Core по умолчанию использует изоляцию потока Tor:

     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. (необязательно) Если хотите, вы можете добавить несколько одноранговых узлов onion-сервиса для подключения. Это поможет, особенно если вы выполните все следующие дополнительные настройки. Добавьте следующие строки в ваш bitcoin.confфайл. Bitcoin Core будет подключаться не более чем к восьми из них одновременно случайным образом, в зависимости от того, какие из них находятся в сети (начиная с версии 22.0, Bitcoin Core поддерживает только скрытые сервисы Tor версии 3 (Tor v3). Адреса Tor v2 игнорируются Bitcoin Core и ни ретранслируется, ни хранится.Список адресов Tor v3 можно найти здесь ):

     #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
    

Если вы дополнительно хотите, чтобы Bitcoin Core подключался только к скрытым службам Tor и даже не подключался к узлам IPv4/IPv6 в общедоступном Интернете через сетевой прокси-сервер Tor:

  1. (необязательно) Также добавьте это bitcoin.confдля полной анонимности (особенно не рекомендуется) * :

    onlynet=onion
    

* Примечание. Bitcoin Core по-прежнему будет запрашивать одноранговые адреса через поиск DNS, если адресов мало. Это также можно отключить с помощью следующей опции. Однако возможно, что ваш узел не сможет найти другие узлы для подключения.

* Примечание. В настоящее время Bitcoin Core v0.15.1, по-видимому, устанавливает некоторые исходящие соединения IPv4 при запуске узла, даже если onlynet=onionпосле первоначального запуска не наблюдалось ни одного. Эти подключения должны выполняться через ваш луковый прокси-сервер, однако было замечено, что использование следующего параметра предотвращает их.

  1. (необязательно) (дополнительно) Если вы также хотите отключить поиск DNS для запроса адресов одноранговых узлов, добавьте следующее в примечание bitcoin.conf(не особенно рекомендуется) : если вы используете эту опцию, ваш узел может не найти одноранговых узлов, пока вы не добавите хороший одноранговые узлы с addnode=параметром. :

    dnsseed=0
    dns=0
    
  2. Перезапустите тор:

    sudo systemctl stop tor
    sudo systemctl start tor
    
  3. Выйдите из своего пользователя, войдите снова (это сделано для того, чтобы ваши новые разрешения группы пользователей были эффективными, я не знаю, на каком пользователе вы используете Bitcoin Core).

  4. Перезапустите биткойн-ядро. Начиная с версии Tor 0.2.7.1 и новее, версия графического интерфейса Bitcoin Core, называемая bitcoin-qt, автоматически регистрирует ваш скрытый сервис Tor и делает его доступным в сети onion. Для версии Bitcoin Core для командной строки, bitcoind, добавьте в командную строку следующий параметр:

    >bitcoind -listenonion
    

Переадресация портов не требуется для того, чтобы все работало с Tor, включая входящие соединения через скрытый сервис Tor, для этого вам не нужно переадресовывать какие-либо порты для Bitcoin Core или Tor.

Если вы хотите, чтобы ваш биткойн-узел по-прежнему оставался общедоступным через общедоступный Интернет для входящих подключений, вам все равно нужно будет перенаправить порт 8333 для Bitcoin Core.

Проверяем все работает

Есть только две вещи, чтобы проверить, что все работает. Проверяя информацию об одноранговых узлах в окне отладки bitcoin-qt, вы должны увидеть, что соединения с одноранговыми узлами IPv4/IPv6 теперь имеют некоторую дополнительную информацию о соединении «через» вместе с адресом однорангового узла, когда вы нажимаете на одноранговый узел. Onion адресует только маршрут через Tor.

Проверив то же самое через консоль или CLI для getnetworkinfo, вы должны увидеть для каждого типа сети информацию о прокси, и, сверившись с getpeerinfoвами, вы должны увидеть, что addrlocalинформация является удаленным адресом для каждого узла. Луковые одноранговые узлы не имеют, addrlocalа имеют только свое имя луковой службы для addr.

Второе, что нужно проверить, это то, что ваш луковый сервис для входящих соединений Tor запущен и все настройки на месте. Посмотрите в свой debug.logфайл, вы должны увидеть несколько записей после самого последнего перезапуска узла, которые соответствуют следующему:

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)

Эта advertising serviceинформация — ваш луковый сервисный адрес.

В debug.log, подключения к луковым пирам будут выглядеть только следующим образом, но по-прежнему будут отображаться на вкладке пиров в окне отладки на bitcoin-qt:

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

Для работы Tor не обязательно настраивать переадресацию портов на модеме/маршрутизаторе. Если вы находитесь за ограничительным брандмауэром, может потребоваться настроить исходящие соединения, чтобы позволить Tor подключаться к другим узлам Tor. Tor можно настроить для подключения только через порт 80/443, если это поможет. См. Приложение 1 — Мониторинг Tor и доступ к nyxполным параметрам конфигурации Tor.

Трудно быть полностью анонимным, поскольку отправитель и получатель знают, однако вы можете запутать источник своей транзакции, чтобы ваши данные нельзя было отследить по IP-адресу без нарушения сети Tor. Проведите небольшое исследование, onlynet=onionэто более безопасно.

Кроме того, было проведено исследование [1] [2] по построению графика блокчейна в попытке отследить все BTC до их происхождения, потенциально идентифицируя источник<-кошелек<-покупку и в зависимости от комбинации UTXO, потенциально идентифицирующих баланс кошелька или кошелек. балансовые подмножества. Привязка данных — это проблема конфиденциальности, которая может беспокоить всех нас . В этой статье обсуждается использование биткойн-миксеров , а также в этой серии твитов .

Выполнено! Наслаждайтесь анонимностью!

Приложение 1 - Мониторинг Tor

Вы можете отслеживать (и в дальнейшем настраивать/сломать) Tor с помощью nyx .

Доступно несколько способов установки. В Федоре 27:

sudo dnf install nyx

Чтобы запустить nyx, просто введите nyxконсоль, и он подключится к Tor, если он запущен.

Сноски

После правильной настройки большинство проблем с синхронизацией связано с вашим оборудованием. Смотрите этот ответ для получения дополнительной информации.

Доступны дополнительные параметры конфигурации и дополнительные способы поддержки сети Tor. Для получения информации см. несколько страниц, доступных здесь .

Спасибо en.bitcoin.it за отличное руководство , которое помогло мне начать работу над этим.

Дополнительную информацию можно получить из проекта биткойн здесь .

Для еще более высокого уровня анонимности можно настроить Tor в качестве преобразователя DNS и настроить сетевую конфигурацию вашей системы для использования Tor для разрешения DNS-запросов.

*по умолчанию Tor будет участвовать в сети Tor.

Ожидание экспертной оценки, прежде чем пометить как принятое.
Если вы не очень осторожны с настройкой DNS, это может выдать тот факт, что ваш кошелек взаимодействует с узлами кошелька на основе tor. tor.stackexchange.com/questions/8/…
@MaxVernon Хорошо, оцените риск. Этот ответ , по-видимому, указывает на то, что Tor обрабатывает разрешение DNS для запросов через выходной узел. Однако, если клиент напрямую разрешает DNS, я сомневаюсь, что это будет обработано. Мне нужно будет вытащить мой старый сетевой журнал, чтобы проверить, что на самом деле происходит. Как вы думаете, я должен переформулировать ответ? Тем не менее, вся информация о транзакциях передается только Tor, поэтому цель достигнута. Даже если можно определить, что на конкретном IP-адресе работает биткойн-кошелек и/или Tor, трафик данных невозможно идентифицировать.
@MaxVernon добавил возможность отключить поиск DNS.
Откуда вы взяли этот список узлов tor?
Отличный гайд, спасибо! Обратите внимание, что bitcoind сохраняет файл onion_private_keyв своей домашней папке (по умолчанию ~/.bitcoin/). Пока этот файл находится в папке данных bitcoind, ваш *.onionадрес останется прежним при перезапусках и перезагрузках. Удаление этого файла заставит биткойн (или tor) сгенерировать новый onion_private_keyи, следовательно, новый*.onion
@MrHash Этот список исходит от ФБР ;-) Вы можете просто взять свой собственный список из битнодов , если хотите. Те, что в конце, имеют лучшее время безотказной работы.
В Ubuntu команда tor group возвращает «root» и «debian-+», но ни одна из них не является группой на машине, поэтому я не могу добавить пользователя в эти группы. Не знаю, что делать.
@wordsforthewise вы должны иметь возможность перечислять группы с чем-то вроде cut -d: -f1 /etc/group | grep toranon, если группа не существует, используйте это. Может быть это группа debian-tor?
Может ли кто-нибудь уточнить ошибку, которую я получаю: Issue: Authentication failed: unable to read '/run/tor/control.authcookie' ([Errno 13] Permission denied: '/run/tor/control.authcookie'). Это происходит, когда я пытаюсь запустить его как обычный пользователь. Он отлично работает sudo, но затем я получаю:Nyx is currently running with root permissions. This isn't a good idea, nor hould it be necessary.
@Ben Если вы правильно выполнили шаг 7, он должен работать, если что-то не изменилось в более новой версии Tor, я в конце концов проверю это.

Вот простое руководство о том, как создать и запустить свой собственный домашний узел через Tor.

https://github.com/bitembassy/home-узел

Сегодня перед заседанием клуба по связям с общественностью Bitcoin Core состоялось обсуждение поддержки Tor v3 . Я не просматривал приведенные выше ответы, чтобы прокомментировать, нуждается ли какой-либо из них в обновлении.

Но Джон Атак указал в IRC на некоторые хорошие дополнительные ресурсы для начала работы с Tor. Есть Bitcoin wiki и документация Bitcoin Core .

Он также объяснил, как можно создать и запустить службу Tor v3, используя этот проект PR 19954 (черновик на момент написания, сентябрь 2020 г.).

Если у вас настроен и запущен Tor, Биткойн автоматически создаст службу Tor даже с настройками по умолчанию. Вы можете получить debug.logинформацию о своем статусе Tor, установив debug=torв своем bitcoin.confфайле или запустивbitcoind -debug=tor

Вы можете наблюдать за своим узлом с помощью:

MacOS

./src/bitcoin-cli -netinfo 4

линукс

watch ./src/bitcoin-cli -netinfo 4

Существует довольно простой способ получить общесистемный TOR для Arch Linux. Возможно, стоит настроить зашифрованную виртуальную машину Arch Linux с TOR, а затем перейти к использованию биткойн-ядра из AUR.