Перевод статьи Эрик Уолла, главного инвестиционного директора в Arcane Assets.
- Биткоин полуанонимный ― протокол не знает вашего настоящего имени, но транзакции можно связать с вами множеством способов;
- Аналитические блокчейн-компании специализируются на деанонимизации активности в блокчейне биткоина и продают эти данные корпорациям и правоохранительным органам.
- Понимание того, как работает система, и использование Tor, контроля монет, CoinJoin-транзакций и «одноразовых» адресов может иметь решающее значение для обеспечения анонимности в сети биткоина;
- Эта статья направлена на то, чтобы дать читателю общее представление об уровне анонимности биткоина. В следующих статьях из этой серии будут рассмотрены различные биткоин-кошельки, а также криптовалюты и обменные платформы в регионах с ограниченными экономическими и политическими свободами.
При изучении криптовалют на уровне протокола сразу становится ясно, что они более ориентированы на конфиденциальность, чем традиционные цифровые платежные системы. На базовом уровне этих протоколов, как правило, нет сопоставления между парами криптографических ключей пользователей и их личными данными.
Существует много точек зрения на криптовалюты в контексте денег, но в этих статьях мы в первую очередь сосредоточимся на теме конфиденциальности. Уровень конфиденциальности, которой обеспечивают криптовалюты, сильно варьируется в зависимости от конкретного выбора пользователя и использования вспомогательных технологий. Также мы увидим, что уровень принятия криптовалют ― в частности, биткоина ― увеличивается в странах, где экономическая свобода населения ограничена.
Конфиденциальность биткоина
Биткоин не является ни полностью анонимным, ни полностью прозрачным. Конфиденциальность биткоина существует в «серой зоне» и в конечном итоге зависит от навыков пользователя и возможностей блокчейн-аналитика. Не существует идеального решения для обеспечения конфиденциальности любого вида деятельности в интернете. Более того, конфиденциальность никогда не бывает статичной и непрерывно развивается в ходе битвы между теми, кто создает инструменты для защиты анонимности, и теми, кто создает инструменты для деанонимизации. Протокол биткоина не является исключением и постоянно развивается.
В результате активисты или журналисты, которые рассматривают возможность использования биткоина с целью скрыться от посторонних глаз авторитарного правительства или корпорации, должны понимать, какие типы следов они оставляют, когда используют биткоин.
Отслеживание транзакций
Когда вы совершаете биткоин-транзакцию, вы оставляете два типа следов. Их можно разделить на следы «в блокчейне» и следы «вне блокчейна». Информация, которая находится в блокчейне, не показывает прямой связи между вашей личностью и вашими транзакциями, но она содержит данные, которые могут помочь связать ваши транзакции. Следы, которые связывают вашу личность с транзакциями, принадлежат к второй категории «вне блокчейна».
- Что находится вне блокчейна
Когда вы совершаете транзакцию, вы чаще всего отправляете или получаете деньги от какой-либо организации, которая вас знает. Эта организация будет обладать информацией о вас вне блокчейна.
В результате кто-то при достаточной мотивации может выяснять, как вы используете свои биткоины, сколько их у вас и с кем вы совершали сделки.
Есть также бесчисленное множество способов связать вас с транзакцией, даже если вы заключите сделку с организацией, которая вас не знает, поскольку биткоин-транзакции обычно отправляются в незашифрованных пакетах через интернет, а IP-адрес источника может быть определен различными способами. Биткоин-транзакции, отправленные через полные ноды (Bitcoin Core) требуют перехвата и анализа сетевого трафика для определения исходного IP-адреса, однако «легкие» мобильные кошельки (Mycelium, Blockchain Wallet, Coinbase Wallet) будут транслировать транзакции через управляемые компанией серверы, которые могут напрямую видеть ваш IP-адрес, а также полную историю транзакций. Это же относится к большинству аппаратных кошельков (Ledger, Trezor) при их использовании «из коробки».
Что ещё более важно, так это то, что ваш IP-адрес показывает вашего интернет-провайдера, который, в свою очередь, знает реального владельца IP-адреса и часто имеет юридическое обязательства хранить эту информацию в течение нескольких месяцев.
Даже при использовании публичной сети Wi-Fi для передачи транзакций все равно можно случайно связать свою реальную личность с этим IP-адресом через веб-сайты, которые вы посещаете, и сервисы, к которым подключается ваше устройство. Ваше приложение Dropbox подключится к серверам компании Dropbox, когда вы включите свой ноутбук, который свяжет IP-адрес с вашим аккаунтом Dropbox. То же самое произойдет, когда вы перейдете в личный кабинет на любом веб-сайте. Даже если вы не посещаете какие-либо аккаунты в интернете, файлы cookie, хранящиеся на вашем ноутбуке, могут помочь определить вас по связи cookie с предыдущей историей просмотра. Многие веб-сайты позволяют отслеживать таких пользователей в аналитических целях ― по оценкам, только Google отслеживает пользователей на 80% сайтов.
Даже если вы удалите файлы cookie, операторы веб-сайтов могут отслеживать вас на разных сайтах через ваш уникальный отпечаток браузера и, таким образом, связать IP-адрес с вами. И даже если у вас нет запущенных сервисов, MAC-адрес вашего устройства может оказаться доступным интернет-провайдеру, и уже его можно связать с вами при помощи довольно сложных методов.
Вас также могут связать с адресом или транзакцией по простому поиску в интернете, поскольку не так много людей, кроме вас, будут искать определенную транзакцию или адрес просто так.
В настоящее время сеть Tor является лучшим из известных способов скрытия вашего устройства и IP-адреса при получении информации о транзакциях или при передаче транзакций. Многие кошельки, включая Bitcoin Core, предоставляют её в качестве настраиваемой опции.
Браузер Tor может быть полезным инструментом для маскировки вашей интернет-активности, так как он, помимо скрытия вашего IP-адреса, очищает cookie при каждом выходе и невосприимчив к большинству методов снятия отпечатка браузера.
- Что находится в блокчейне
Простой способ понять, какой тип информации содержит блокчейн биткоина, ― это использовать обозреватель блоков. Мы будем использовать обозреватель Blockstream.info.
Самый последний блок на момент написания статьи (#563899) в блокчейне биткоина содержит 2122 транзакций. Давайте посмотрим, что мы можем узнать о случайно выбранной транзакции.
Транзакции содержат входы и выходы и определяются по идентификатору транзакции (вверху на рисунке выше). Если ваш биткоин-кошелек отправил транзакцию, то она будет связана с таким идентификатором.
Кроме транзакции мы можем узнать:
- Примерное время, когда была совершена транзакция (из заголовка блока);
- Адреса, на которые были отправлены биткоины, и суммы («выходы»);
- Источник средств транзакции («входы»).
Давайте рассмотрим каждый из этих пунктов отдельно для транзакции выше: e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8.
Время
Блоки, а не транзакции, содержат метки времени. Эти метки не обязательно являются точными, но при условии, что большинство майнеров сообщают верное время, все блоки должны достаточно точно давать представление о времени в диапазоне нескольких часов. Это не означает, что метка времени блока обязательно должна быть точной в пределах нескольких часов от времени трансляции транзакции, поскольку иногда включение транзакции в блок может занять намного больше времени.
Некоторые обозреватели блоков дополняют данные отображением времени, когда они впервые увидели транзакцию в сети, чтобы дать более точное представление о времени трансляции транзакции.
Приблизительное время включения транзакции в блок можно определить, посмотрев на заголовок блока (в нашем случае это блок №563899 с меткой времени 2019-02-20, 14:45 UTC).
Адреса, на которые были отправлены биткоины, и суммы:
- 32Z63LVtUERdEEwz275JHt3o4cewPfE8YC 0.26119849 BTC
- 31w3iWUN5EMJMW2YRCc5m4RFqm3zN61xK2 0.2214705 BTC
Адрес ― это нечто большее, чем кажется на первый взгляд. Биткоин-адреса часто представляют как «трудно читаемые адреса электронной почты, только для биткоина», но адрес не является простым указателем на криптографическую пару ключей определенного пользователя. Адрес ― это криптографическое описание правил расходования на следующий раз, когда кто-то захочет переместить эти биткоины.
Например, если вы отправляете биткоины на 37k7toV1Nv4DfmQbmZ8KuZDQCYK9x5KpzP, конфигурация этого адреса такова, что вы отправляете биткоины не владельцу определенного закрытого ключа, а правилу расходования, которое выпускает монеты любому, кто может предоставить две разные строки, имеющие одинаковый хэш SHA-1. Следует отметить, что, поскольку многие форматы адресов, используемые сегодня, хэшируются, когда мы отправляем им биткоины, мы, как правило, не можем сказать, каковы эти правила расходования, пока кто-то не потратит биткоины с этого адреса, так как они должны раскрыть то, что было хэшировано.
В нашем примере транзакции биткоины были потрачены с обоих адресов, поэтому правила расходования для этих адресов известны. Было обнаружено, что 32Z63LVtUERdEEwz275JHt3o4cewPfE8YC является адресом с мультиподписью 2-из-2, когда он использовался в транзакции f491dfe9867c36e85950116a90a612806060608866ad0f3598d70d146750162f. Мы рассмотрим этот момент подробнее в следующем разделе.
Аналогично 31w3iWUN5EMJMW2YRCc5m4RFqm3zN61xK2 является часто используемым адресом с мультиподписью 2-из-3 и на момент написания содержит примерно 2700 биткоинов. Более продвинутые обозреватели блокчейна, такие как oxt.me, даже отображают баланс адреса с течением времени и то, в какие часы дня он является наиболее активным.
Поскольку 18:00-22:00 UTC ― это часы с наименьшей активностью для этого адреса, было бы разумно предположить, что эти часы представляют собой ночные часы 01:00-05: 00 или 02:00-06:00 в регионе, где этот адрес контролируется. Учитывая часы активности, объемы и функцию мультиподписи этого адреса, можно догадаться, что этот адрес принадлежит криптобирже в часовых поясах GMT+7/8.
Для повышения уровня анонимности не рекомендуется повторно использовать биткоин-адрес. Так называемые HD-кошельки могут генерировать много адресов, для доступа к которым требуется только один сид. Эти кошельки автоматически генерируют для вас новый адрес каждый раз, когда вы совершаете транзакцию.
Биткоин-транзакции направляются на два адреса, где один из выходных данных транзакции является фактическим платежом, а другой ― change output. Это «сдача», которая возвращается отправителю.
Идентифицировать эту «сдачу» и фактический адрес-получателя можно по использованию круглых чисел (в биткоинах или в фиатном эквиваленте на момент транзакции), порядку вывода в теле транзакции и т. д. В выбранной нами транзакции легко обнаружить «сдачу», поскольку она возвращается на тот же адрес.
В принципе, разные биткоин-кошельки оставляют различные следы в блокчейне ― подобно тому, как разные браузеры оставляют информацию о себе при просмотре сайтов. Из-за этого иногда можно определить транзакции из определенного кошелька. Каждый маленький кусочек информации помогает блокчейн-аналитику составить более точное представление о том, кто вы и что вы делаете.
Источник средств
В биткоин-транзакциях «источником средств» всегда являются другие транзакции или «неизрасходованные выходы транзакций» (известные как UTXO). Следует помнить, что каждый обозреватель показывает комбинацию данных блокчейна и производных данных. Один обозреватель может отображать транзакцию так:
Здесь «источник средств» отображается в виде адреса. В обозревателе Blockstream источником средств отображается транзакция:
Причина, по которой обозреватель Blockstream не показывает адрес в качестве источника средств, состоит в том, что адреса технически не являются частью входов для транзакции, и не всегда можно вывести исходный адрес (пример). Более того, поскольку повторное использование адресов не рекомендуется, полезно ментально отделять модель биткоин-транзакций от традиционных платежных систем, а не укреплять идею о том, что деньги могут или должны быть возвращены получателю по тому же адресу, показывая адреса в качестве отправителей.
Давайте немного подробнее разберемся с техническими стороной транзакции и рассмотрим данные транзакции, которые вы можете получить из собственной полной ноды биткоина (или этого веб-инструмента). Вот как это выглядит:
Источник средств описывается массивом «vin». Он не относится конкретно к адресу, а к выходу предыдущей транзакции; 593e2d5c65b3505d897a13033741037d6c59e683b3345314a58253a8f1572758, где «vout»: 0 относится к первому выходу этой транзакции («vout»: 1 будет означать ее второй выход и т. д.). Этот UTXO транзакции является источником средств.
Для ясности: источником средств для транзакции является ни адрес, ни транзакция. Источником средств является конкретный выход конкретной предыдущей транзакции. Знание этого поможет вам защитить вашу конфиденциальность при использовании биткоина (об этом подробнее в следующих разделах).
Последняя шестнадцатеричная строка в txinwitness раскрывает скрипт мультиподписи 2-из-3, который позволяет нам сделать вывод о том, что этот адрес может принадлежать бирже. Две другие шестнадцатеричные строки в txinwitness являются простыми подписями, которые выполняют условия мультиподписи 2-из-3.
Теперь, определив источник средств, мы видим, что этот выход 0,48298999 BTC (~$1850), хотя платеж был отправлен всего лишь на ~$1000. Это представляет собой нежелательное раскрытие данных о средствах: представьте себе ситуацию, в которой друг платит вам $10, но транзакция показывает, что фактически он владеет миллионом долларов и имеет к нему прямой доступ ― это явно не очень хорошо для конфиденциальности. Если вас беспокоит раскрытие информации о ваших биткоинах при отправке платежа кому-либо, вам необходимо знать, какие входы используются в ваших транзакциях.
Объединяя знания
Поскольку транзакции всегда представляют собой источник средств, они связаны между собой и вместе создают так называемый граф транзакций. Если вы платите другу в биткоинах, ваш друг не только увидит входы, которые вы использовали в транзакции; вы также сможете увидеть, когда ваш друг тратит эти монеты и по каким адресам он их отправляет.
Некоторые адреса широко известны в биткоин-сообществе ― например, холодный кошелек Bitfinex или конфискованные монеты Silk Road. Адрес может быть опубликован самой организацией в интернете ― аналитические компании регулярно собирают такую информацию.
Другие адреса определяются через кластеризацию.
Кластеризация
Давайте вернемся к нашей транзакции e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8. Здесь мы сразу видим, что, как источник средств нашей транзакции, так и наша транзакция (красные точки) были использованы для совместного финансирования третьей транзакции (большая синяя точка).
Но поскольку оба их закрытых ключа использовались для подписания транзакции с большой синей точкой, все эти адреса теперь принадлежат одному кластеру (наряду с 407 другими адресами, участвующими во входах транзакции). Это позволяет сделать предположение о том, что у них один владелец. Такую методологию определения транзакций сегодня называют эвристикой входов с общим владельцем.
Аналитические блокчейн-компании используют такую эвристику для создания гигантских кластеров. Обозреватель WalletExplorer отнес эти два адреса к кластеру из 162787 адресов. Аналитические компании помечают такие кластеры идентификаторами (IP-адресами, аккаунтами пользователей, организациями, реальными именами), чтобы наметить экосистему биткоин-транзакций. Затем они продают эти данные правоохранительным органам и другим компаниям.
Многие компании по блокчейн-анализу получают информацию о транзакциях непосредственно от своих клиентов (к примеру, криптовалютных бирж). Две крупнейшие аналитические компании, Chainalysis и Elliptic, заявляли о том, что они не отслеживают транзакции конкретных лиц, а только транзакции бирж или других бизнес-структур.
Деанонимизация одного адреса в кластере приводит к деанонимизации всего кластера.
Борьба с эвристикой
Теперь мы знаем, что существует множество способов связать вашу личность с определенным биткоин-адресом или транзакцией. В совокупности эти данные могут разрушить всю нашу финансовую конфиденциальность.
Некоторые пользователи биткоина намеренно пытаются усложнить работу блокчейн-аналитикам. Некоторые методы искажают эвристические данные, в то время как другие пытаются вообще избежать эвристики. Биткоин-кошельки могут помочь пользователям, автоматизируя некоторые из этих методов, или сделать их доступными через пользовательский интерфейс.
Вот неполный список этих методов:
- Случайный порядок выходов при создании транзакции (пример).
- Предотвращение повторного использования адресов (использование HD-кошельков).
- Использование PayNym ― общедоступного идентификатора, который позволяет вам получать платежи по разным адресам, которые вы контролируете и которые становятся известны только вам и отправителю. PayNym позволяет получать новый адрес для каждого платежа без необходимости вручную каждый раз представлять новый адрес.
- Выбор монет/управление монетами ― кошельки могут быть спроектированы таким образом, чтобы позволять пользователям выбирать входы для транзакций вручную. Это позволяет пользователю кошелька не показывать владение определенными монетами.
Более продвинутый пример техники повышения конфиденциальности ― CoinJoin-транзакции. CoinJoin ― это схема, которая добавляет множество входов от множества разных пользователей в общую транзакцию до её трансляции.
В нашем примере мы увидели, что вход транзакции всегда ссылается на конкретный выход предыдущей транзакции, а не на всю транзакцию:
Но входы и выходы в каждой отдельной транзакции никак не связаны друг с другом; транзакция возможна до тех пор, пока на входах достаточно биткоинов для покрытия всех выходов.
Выходы CoinJoin-транзакции с равными суммами, поэтому вы не можете быть уверены в том, какой вход финансирует определенный платеж. В результате платеж может иметь множество возможных «источников средств», неразличимых друг от друга, а также множество возможных мест назначения. Технически это не скрывает источник средств или место назначения, но смешивает их так, что становится трудно определить, кто и куда отправил биткоины.
Что интересно в этих видах транзакций, так это то, что они усложняют эвристику входов с общим владельцем. Все эти входы будут помечены как принадлежащие одному и тому же владельцу (хотя на самом деле это не так). На изображениях ниже показаны ложные кластеры независимых платежей в CoinJoin-транзакции.
Однако, поскольку все эти транзакции имеют странные выходы с одинаковыми суммами, их довольно легко обнаружить и исключить.
Однако тот же принцип используется для создания транзакций, которые неотличимы от обычных транзакций, в схеме под названием PayJoin, или Pay-to-EndPoint (P2EP). Этот тип транзакции смешивает входы от плательщика и получателя и выплачивает получателю.
Эту транзакция сложно назвать микшированием, но она усложняет эвристику входов с общим владельцем. Что еще более важно, она не оставляет никаких подсказок для блокчейн-аналитиков, которые могут исключить эти транзакции. Если использование PayJoin станет широко распространенным, сама эвристика с общим владельцем станет ненадежной, что станет серьезным ударом для компаний по блокчейн-анализу.
Lightning Network
Lightning Network ― это технология, которая разрабатывается на основе протокола биткоина для осуществления небольших и быстрых платежей. Lightning-транзакции во многих отношениях отличаются от транзакций в основной сети биткоина, в том числе с точки зрения конфиденциальности.
- Lightning-транзакции не хранятся в публичном реестре:
- Lightning-транзакции используют луковую маршрутизацию, которая не раскрывает остальной части сети конечного получателя.
- Lightning-транзакции не смешивают входы и не поддаются кластеризации.
Lightning Network ― это система каналов, которые требуют ликвидности; текущий набор продавцов и пользователей, которые принимают Lightning-платежи сегодня, является небольшим подмножеством общего набора пользователей биткоина в системе, и не все платежи (особенно крупные) пока могут проходить через систему каналов. Это также означает, что, хотя Lightning может обеспечить лучшую конфиденциальность для транзакций в своей системе каналов, эти каналы по-прежнему должны финансироваться за счет обычных биткоин-транзакций, которые имеют вышеописанные проблемы конфиденциальности.
Вывод
Цель этой статьи ― дать представление о конфиденциальности в биткоине. Псевдонимный и публичный блокчейн биткоина создает среду, в которой конфиденциальность системы в конечном счете зависит от инструментов, используемых пользователем и блокчейн-аналитиками. В следующей статье мы более подробно познакомимся с тем, как различные кошельки могут помочь вам повысить уровень анонимности в сети биткоина.
Будь в курсе! Подписывайся на Криптовалюта.Tech в Telegram.
Обсудить актуальные новости и события на Форуме