Приватность Bitcoin: анализ графа транзакций
В блокчейне не записано имя читателя, но это не означает отсутствие наблюдаемой истории. Суммы, адресные условия и связи входов с выходами позволяют строить граф. В уроке рассмотрим, как решения кошелька и сайта раскрывают связи, а затем определим разумную границу приватности библиотеки.
Все адреса и транзакции здесь условные. Мы не исследуем историю конкретных людей и не обращаемся к внешнему анализатору. Результат — модель данных собственного приложения и меры против лишнего раскрытия.
Связь адреса со счётом
Библиотека выдаёт отдельное назначение каждому счёту. Для стороннего наблюдателя это может уменьшить очевидное объединение всех продаж на одной строке адреса. Однако сама библиотека знает связь с заказом и кабинетом. Если её база раскрыта, адресный граф может связаться с персональными данными.
Поэтому отдельные адреса не отменяют защиту приложения. В таблице счетов хранятся необходимые сведения, доступ ограничен, а публичный статус не показывает чужие назначения по последовательному номеру заказа. Сетевые данные открыты, но их сопоставление с именами может быть чувствительным.
Повторное использование одного адреса облегчает связь поступлений. Наблюдатель видит повторяющееся условие получения. Для нашего каталога это также мешает точной связи оплаты со счётом, поэтому новая выдача адресов полезна одновременно для учёта и снижения лишней публичной связи.
Объединение входов
Когда транзакция расходует несколько UTXO, внешний анализатор часто предполагает общее управление входами. Это эвристика, а не обязательная истина: существуют совместно формируемые транзакции и другие исключения. Но в обычном кошельковом маршруте объединение создаёт наблюдаемую связь.
У читателя есть выход 80 000 от одного контекста и 20 000 от другого. Для оплаты 30 000 может хватить первого. Если кошелёк без необходимости объединяет оба, истории оказываются связаны одним расходованием. Номинальная цена курса не требует такого объединения.
У библиотеки похожая ситуация при сборе выручки. Один расход из десятков отдельных платежей может обозначить общую организационную принадлежность. Наличие разных адресов получения не предотвратило связь: она появилась позднее в выбранной структуре расходования.
Сдача и предположения
Наблюдатель может пытаться определить сдачу по типу адреса, размеру, новизне или форме транзакции. Такие признаки имеют ограничения. Нельзя использовать их в своём сервисе как доказательство личности плательщика или адреса возврата.
Для библиотеки возврат требует новое подтверждённое назначение. Входы могут принадлежать обслуживающей платформе, а предполагаемая сдача — иному протоколу. Автоматическое решение «вернём туда, откуда пришло» не определено однозначно в модели UTXO.
Подписант, напротив, может распознать собственную сдачу по ключевой политике. Это внутреннее знание отличается от внешней эвристики. В документации следует назвать основание: мы узнаём принадлежность по дескриптору, а не угадываем по красивой круглой сумме.
Запросы к источникам
Если сайт просит сторонний RPC или индексатор проверить один адрес, поставщик видит интерес к этому адресу и сетевые сведения запроса. Серия запросов может связать адреса даже тогда, когда они ещё не объединены в блокчейне. Собственный узел уменьшает определённые зависимости, но не гарантирует скрытие всего сетевого поведения.
Передача публичного расширенного ключа поставщику раскрывает семейство назначений. Это полезно для наблюдения, но имеет больший объём информации, чем один адрес. Политика доступа должна учитывать этот объём и не называть значение «безопасно публичным» только потому, что оно не тратит деньги.
Браузер также раскрывает посещаемые страницы оплаты и обращения к API. Если идентификатор счёта помещён в сторонние аналитические события или URL изображений, связь может уйти в другую систему. Сетевые секреты не единственный предмет защиты.
Метаданные приложения
В цепочку не помещаем электронную почту, имя читателя или текст заявки возврата. Даже хеш коротких предсказуемых данных может оказаться перебираемым. Неизменность публичной истории затрудняет последующее удаление случайно раскрытых сведений.
В журнале приложения достаточно хранить точную связь с выходом и доступные основания решения. Для публичной страницы можно показать сумму и состояние конкретного авторизованного счёта, не возвращая всю историю кошелька. Внутренние инструменты поддержки получают расширенные сведения по роли.
| Данные | Кто действительно должен их знать |
|---|---|
| Адрес счёта | Соответствующий читатель и наблюдатель |
| Полный публичный дескриптор | Необходимые внутренние компоненты |
| Личность покупателя | Прикладные уполномоченные процессы |
| Секрет подписи | Выделенный подписант |
Таблица не делает адрес секретом блокчейна. Она определяет, какие дополнительные связи библиотека распространяет осознанно и какие не должна раскрывать без необходимости.
Честная граница обещаний
В учебном интерфейсе избегаем слов «анонимная покупка», если система сохраняет кабинет, адрес, серверные журналы и внешний RPC. Можно точнее сказать, что приложение не публикует личные данные в транзакции и ограничивает передачу наблюдающей конфигурации.
Taproot, новые адреса и отдельный узел улучшают конкретные стороны модели, но не складываются автоматически в полное отсутствие связей. У каждого решения есть собственный наблюдатель и контекст. Разумная оценка перечисляет их, а не обещает универсальное скрытие.
Минимизация публичного ответа
Страница статуса одного счёта может вернуть требуемую сумму, наблюдаемую сумму, текущую стадию и время сверки. Ей не нужен полный список адресов кошелька или история других читателей. Даже когда эти транзакции публично доступны, готовая агрегация облегчает связь и раскрывает дополнительные сведения приложения. Уменьшение ответа также делает интерфейс проще и снижает нагрузку. Для поддержки расширенный журнал доступен через отдельную роль и фиксируемое обращение. Такой выбор не обещает исчезновение публичного графа, но уменьшает ненужное раскрытие со стороны сайта.
Обсуждение кошельковой модели и адресов есть в руководстве Bitcoin; условия публичного наблюдения описывает документация дескрипторов. Итог урока — схема утечек собственного проекта. Она помогает выбирать данные и источники без попытки превращать эвристики в достоверную идентификацию человека.