Привет всем, меня зовут Александр, я специалист по данным в Clain. Мы анализируем транзакции блокчейна на предмет их связи с преступной деятельностью, такой как обналичивание денег, кражи, финансирование терроризма и тому подобное.
Правила криптовалют с каждым годом становятся все строже, и теперь компании обязаны соблюдать политику AML\KYC. Примерно тем же самым занимается компания «Эллиптик», которая в начале августа 2019 г.
опубликовано помеченный набор данных о 200 тысячах биткойн-транзакций.
Основная цель их публикации — предоставить криптосообществу реальные данные для тестирования новых подходов к выявлению сомнительных транзакций, используя как набор стандартных атрибутов (количество входов и выходов, передаваемые суммы, комиссии майнерам и т. д.), так и топология графа построена на основе этих транзакций.
Набор данных анонимизирован и имеет 167 атрибутов.
Все они имеют нулевое среднее и единичную дисперсию, кроме первого, который является ID, и второго, характеризующего время от 1 до 49, что соответствует компонентам графа транзакций.
Используя данные файла elliptic_txs_edgelist.csv, вы можете построить ориентированный граф и вычислить степень входящего и исходящего txId каждой транзакции.
Это позволяет нам приблизительно (поскольку граф вырезается из всего блокчейна и часть связей теряется) оценить количество адресов отправителя и получателя для каждой транзакции.
В таблице elliptic_txs_features.csv назовем столбцы в виде V1 — V167 и сразу заменим V1 на txId, V2 на elliptic_time. Некоторые атрибуты лучше других коррелируют со значением входящей и исходящей степени графа: cor(out-grade,V16) = 0,689, cor(out-grade,V7) = 0,680, cor(in-grade,V6) = 0,589, cor(в градусах,V8) = 0,582. Давайте посмотрим на эти переменные.
Диаграмма рассеяния переменной смещения V6 и степени входящего графика из elliptic_txs_edgelist На графике видно, что для каждого значения в степени существует верхний предел значений V6, кроме того, если отсортировать V6 и найти разницу между близкими значениями, то она изменится как целое число, умноженное на константу:
Уникальные значения изменения отсортированного V6 (diff_V6), встречающаяся частота (Freq) значений diff_V6 и отношение diff_V6 к минимальному значению из diff_V6. В таблице изменений V6 видно, что 0,075038 встречается гораздо чаще других значений и, вероятно, связано с изменением значения in-grade на 1. Учитывая тот факт, что минимальное количество входов в транзакции равно 1 (если это не coinbase-транзакция), пишем: inputs_count_V6 = (V6 - мин(V6)) / мин(diff_V6) + 1. После аналогичного анализа для V7, V8, V16:
- inputs_count_V6 = 13,3266685112665 * V6 + 2,62544842444139,
- inputs_unique_count_V8 = 11,9243179897452 * V8 + 2,34747189219164,
- outputs_count_V7 = 50,3777694891647 * V7 + 4,21030186142152,
- outputs_unique_count_V16 = 49,3957564403755 * V16 + 4,121809499973.
Может возникнуть вопрос: почему inputs_count отображается в V6, а не в V8? Ответ прост, всегда inputs_count > = inputs_unique_count, а подставив значения V6 и V8 из elliptic_txs_features.csv в указанные формулы, можно убедиться в выполнении неравенства (13.3266685112665 V6 + 2,62544842444139) > = (11,9243179897452 V8+2.34747189219164) всегда выполняется одинаково, что позволяет правильно коррелировать V6, V8, inputs_count и inputs_unique_count друг с другом.
То же самое для выходов_count и выходов_уникальный_count. Как только мы нашли количество входов и выходов, а также количество уникальных входов и уникальных выходов, мы можем найти транзакции, в которых комбинации указанных чисел встречаются только один раз за всю историю Биткойна (до тех пор, пока не был опубликован эллиптический набор данных).
).
Это позволяет вам находить уникальные транзакции и приблизительное время для каждого значения elliptic_time:
Дата уникальных транзакций, найденных для каждого elliptic_time. На графике выше видно, что дата линейно зависит от elliptic_time:
приблизительное_время = 1450468509,80488 + 1155672,19512195 * эллиптическое_время.
Здесь приблизительное_время — приблизительное unixtime для каждого эллиптического_времени.
А поскольку elliptic_time варьируется от 1 до 49, дата приблизительного времени изменяется с 01.01.2016 на 04.10.2017 с шагом 1155672,19512195/3600/24 = 13,37584 дня.
Принимая во внимание временные ограничения возможных транзакций и комбинации уникального количества входов и выходов, можно найти 189 транзакций, которые соответствуют этим условиям и происходят только один раз во всей цепочке блоков Биткойна.
Например, есть только одна транзакция с 1 входом и 13107 выходами — dd9f6bbf80ab36b722ca95d93268667a3ea6938288e0d4cf0e7d2e28a7a91ab3. Теперь вы можете найти другие характеристики транзакции, такие как комиссия, а также общий объем ввода (total_in_value) и вывода (total_out_value) в сатоши.
Поиск корреляций и линейная регрессия помогают сделать это быстро; Приведу лишь окончательные формулы:
- плата_V4 = 81341,4537626213 + 386323,710952989 * V4,
- total_out_value_V3 = 2742460603,92287 + 15853961614,9796 * V3.
Общая найденная информация позволяет нам идентифицировать 92,9% всех транзакций в наборе данных Elliptic. Остальную часть можно выявить, воспользовавшись графом транзакций из elliptic_txs_edgelist.csv, сравнив его с графиком, построенным на множестве совпадающих транзакций с их связями, записанными в блокчейне, это добавляет еще 6,6%.
Таким способом легко раскрывается 99,5% всех анонимных транзакций, оставшиеся 0,5% также могут быть идентифицированы, но время, потраченное на их деанонимизацию, скорее всего, будет сопоставимо со временем, затраченным на уже раскрытую часть транзакций.
Вы можете просмотреть деанонимизированный набор данных Здесь .
А здесь Эллиптические исходные данные.
Теги: #Криптовалюты #Открытые данные #биткоин клейн эллиптический
-
Usb В Virtualbox
19 Oct, 24 -
Jsoc: Как Готовить Инциденты
19 Oct, 24 -
Блоги! Недорого! Не Стесняйся.
19 Oct, 24 -
Интерактивный Пол На Android
19 Oct, 24