Galatine Связаться с нами

galatine / ru / txint

Сервис

TXINT

Один сервис для разбора движения средств в блокчейне вместо десяти вкладок с обозревателями. Вставьте адрес, идентификатор транзакции или имя ENS: TXINT определит, что это и в каких сетях встречается, соберет историю, восстановит граф кошельков и переводов и посмотрит на форму движения.

Как с ним работают

НаходкиОдно расследование: слева находки с уверенностью и объяснение раскрытой находки, посередине граф с ее подсвеченной цепочкой, справа выбранная запись. Сверху число узлов и связей в графе и предупреждения о том, где ответ неполон. Демонстрационный прогон: исследуемый кошелек acme-treasury.eth и его переводы вымышлены. Кошелек биржи, контракт моста, адрес из списка OFAC и роутер Tornado Cash настоящие: на них срабатывают метки из открытых наборов.

01

Назначение

Чтобы проследить путь средств, аналитик открывает один обозреватель, потом второй, потом третий и держит общую картину в голове. При такой работе связи между операциями теряются.

  • Скрытая форма движенияЦепочка из четырех посредников, расщепление, которое позже сводится обратно, кольцевые переводы: каждый шаг по отдельности выглядит обычным.
  • Объем кошелька биржиВместе с адресом биржи приходят сотни тысяч операций, и операции, ради которых адрес открыли, теряются среди них.
  • Неполный ответ под видом полногоПоставщик данных не ответил, обход уперся в предел. Если сервис об этом не сообщает, обрезанный граф читается как «больше ничего не было».

TXINT построен для этих трех задач: он показывает форму движения, держит крупные адреса закрытыми и называет, где ответ неполон.

02

Путь от адреса к находке

Пять стадий, и на каждой сбор может остановиться раньше времени. Место остановки сервис записывает в предупреждения.

  1. Ввод
  2. Определение сети
  3. История
  4. Граф
  5. Распознаватели

Ветка во вторую сеть проводится только тогда, когда сама транзакция депозита назвала сеть назначения и получателя, а приход затем найден там.

03

Возможности

  • Тринадцать сетей: определение и чтение

    Шесть сетей EVM (Ethereum, BNB Chain, Polygon, Base, Arbitrum и Optimism), Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, TRON, Solana и TON, а также имена ENS.

    Одна и та же строка адреса действительна сразу в нескольких сетях, поэтому ответ - это список кандидатов, упорядоченный по признакам. Сеть, для которой адаптер еще не написан, названа недоступной, и адрес в ней не выдается за адрес без активности.

    У транзакции EVM сервис разбирает потоки активов, чистые балансы, логи, а также дерево вызовов, если узел его отдает.

  • Форма движения

    Граф читают пятнадцать распознавателей. Четыре из них для примера: цепочка отщепления, кольцо, веерное расщепление с обратным сведением, проход средств через адреса-посредники.

    У каждой находки есть уверенность, объяснение, из чего она прочитана, и пороги, с которыми она получена. Распознаватели работают с сохраненным графом и ничего не спрашивают у сети, поэтому тот же граф с теми же порогами дает те же находки.

  • Полнота ответа

    У каждого предела своя названная причина, и ответ говорит, какой предел сработал и где. Находка, задевшая узел-концентратор или обрезанное расширение, идет с пониженной уверенностью и говорит об этом.

    Предупреждения читаются до графа: одна и та же картинка значит разное в зависимости от того, что в них написано. Граф обрывается оттого, что сработал предел, оттого, что источник не ответил, или оттого, что мост не объявил назначения. На экране все три случая выглядят одинаково: ребра просто нет.

  • Узловые адреса

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

    Проверка смотрит на историю, а не на счетчик операций учетной записи: у адреса, который только получал, тот счетчик равен нулю, а у контракта считает совсем другое. Такой счетчик пропустил бы ровно те адреса, ради которых проверка и заведена.

  • Переход между сетями: пять состояний

    «Подтвержден», «не подтвержден», «сеть не поддерживается», «не объявлено» и «не проверялось». Последнее состояние - такой же ответ, как остальные: чтобы подтвердить приход, нужна история в сети назначения. Без ключа к ней депозит все равно разбирается, а объявленное назначение показывается с пометкой «не проверялось».

    Каждый депозит перечислен в любом случае, и в выгрузку попадают и те, что никуда не привели. Без них из отчета не понять, смотрели мосты вообще или нет.

  • Выгрузка результата

    Выгрузка в JSON, CSV, Excel, Markdown или PDF, граф по API, поток событий о ходе построения. Интерфейс на двух языках, включая переведенные находки.

04

Как с ним работают

Сервис поднимается одной командой и работает без ключей. Ключи добавляются по мере надобности.

  1. 01Одна командаdocker compose up --build. Интерфейс на порту 3000, API на 8000, там же собранная документация API.
  2. 02Работать вообще без ключейОпределение сети, разбор имен ENS и сети Bitcoin, Litecoin и TON работают без ключей, и весь прогон тестов идет без сети.
  3. 03Добавлять ключи по мере надобностиОдин ключ Etherscan V2 открывает все шесть сетей EVM, поэтому его стоит получить первым. Каждый ключ личный, тарифицируется на один счет и не попадает ни в одну строку журнала.
  4. 04Спросить, что доступноОтвет о состоянии называет, какие ключи настроены, у каких сетей есть адаптер и отдаст ли узел дерево вызовов транзакции.
  5. 05Начинать узко и расширять по шагуГлубина и окно решают больше, чем все остальное: на одном адресе Bitcoin окно в тридцать дней дало 717 узлов и 27 находок, окно в десять лет - 2178 и 104. В сетях UTXO каждый выход транзакции становится узлом, поэтому пара сотен транзакций превращается в тысячи узлов. От шестисот находок пользы не больше, чем от тридцати: нужные теряются среди остальных.

05

Подробно

  1. МетодЧто ищут распознаватели, как считается уверенность находки и как задается уровень риска.
  2. ФорматЧто лежит в выгрузке и как получатель проверяет ее по журналу, который она несет.