Как проследить транзакции Биткоин кошелька. Визуализация транзакций Bitcoin. Часть 2
Life-Hack [Жизнь-Взлом]/ХакингПродолжим и теперь сделаем анализ на два уровня:
python3 ./orbit.py -s 1CeePVnmoGD3xpDtnFtshLHqA2jNrCNeEr -d 2
В самом начале получаем такую схему:

Давайте проведём небольшой анализ. Начнём с поиска интересующего кошелька, вводим 1CeePVnmoGD3xpDtnFtshLHqA2jNrCNeEr и нажимаем кнопку Find. Искомый элемент будет выделен жёлтым, я вытащу его из общей группы, чтобы всегда знать, где он:

Теперь нажимаем кнопку Make Clusters, чтобы сформировать кластеры на основе алгоритма определения сообществ. После этого используем Color Clusters, чтобы назначить кластерам разные цвета. Наконец нажимаем Spacify, чтобы исправить перекрывающиеся узлы и грани:

Стало заметно лучше.
Продолжу анализ. Для демонстрации интересных находок, я удалю некоторые «кусты». Можно удалять узлы по одному, для этого нажмите в меню кнопку Delete. Также можно выделять сразу несколько используя инструмент Lasso:

Посмотрите на выделенный зелёным треугольник:

Все полученные биткоины я обналичиваю в обменниках (мне не нужны биткоины, мне нужно платить по счетам). То есть этот «кучерявый» узел, который я обозначил буквой B — это обменник. Свой кошелёк я обозначил буквой A. Следовательно, можно сделать вывод: жертвователь (кстати, спасибо ему за поддержку, и вообще, спасибо всем, кто поддерживает, особенно материально!), так вот, жертвователь купил биткоины в этом обменнике (они пришли в узел C), а затем отправил на другой кошелёк (D) и затем часть суммы отправил мне.
Исходя из графика можно подумать, что мы одновременно воспользовались одним обменником — но это необязательно так, поскольку на графике показаны вообще все транзакции, которые когда-либо были сделаны моим кошельком. Ещё один вариант — транзакция AB это тоже пожертвование, которое было сделано кем-то напрямую через обменник.
Немного перераспределил узлы, посмотрите на точку B — она связана с теми же узлами, что и мой кошелёк (A), то есть с D, E, F, G. От пользователя B пришло пожертвование, то есть он где-то на обменнике купил Биткоины, и отправил часть суммы мне, а я вернул эти биткоины обратно на обменники.

Это же самое можно сказать и про точку C, этот пользователь покупает-продаёт на обменниках и однажды часть суммы прислал мне. Как вариант, эти кошельки получили средства из другого источника (не обменники), но обналичивали их через них, и также прислали мне несколько баксов.
По умолчанию глубина поиска равна трём, то есть если запустить без опции -d:
python3 ./orbit.py -s 1CeePVnmoGD3xpDtnFtshLHqA2jNrCNeEr
то можно получить примерно такую картину:

По умолчанию Orbit обрабатывает только последние 50 транзакций от каждого кошелька. Вы можете изменить это значение опцией -l. Можно как уменьшить, так и увеличить количество охватываемых переводов.
Кошельки, которые сделали всего пару взаимодействий с нашей целью, могут быть неважны, можно сказать Orbit обходить топ N кошельков на каждом уровне, это делается опцией -t.
Если вы хотите просмотреть собранные данные просмотрщиком графов по вашему выбору, вы можете использовать опцию -o. После неё нужно указать один из поддерживаемых форматов:
- graphml (поддерживается большинством просмотрщиков графов)
- json (для сырой оработки)
Заключение
Инструмент Orbit не предназначен для деанонимизации пользователей Биткоин, но он может помочь собрать интересную информацию. Например, как выяснилось, мир довольно тесен, и я вместе с другими пользуемся примерно одними и теми же обменниками.
Под пристальным вниманием находятся биткоины с интересной «судьбой» или происхождением. Например, общественность наблюдает за самыми первыми биткоинами, которые намайнил автор Bitcoin. Этих биткоинов много, и попытка обналичить вполне может раскрыть загадку, кто изобрёл Биткоин. Также общественность наблюдает за биткоинами, которые захватила ФБР у Silk Road и разными криминальными биткоинами.
Это возможно благодаря тому, что анонимность и децентрализация находятся в конфликте. В качестве меры противодействия такому анализу можно создавать уникальные адреса кошельков для каждой транзакции, например, wikileaks генерирует уникальный адрес кошелька для каждого жертвователя. Но если затем они сливаются (на любом этапе) в один кошелёк, то эта мера теряет смысл.
Можно предположить другие проблемы связанные с прозрачностью блокчейна: например, кому-то (допустим мне, в пожертвовании на сайт), перевели криминальные биткоины. А я без задней мысли поменял их на рубли через обменник, где указал номер своей карты. Получается, у правоохранительных органов ко мне могут, как минимум, возникнуть вопросы…