Для тех, кто хочет знать все о мировом финансовом рынке, рынке ценных бумаг, криптовалютах, участниках финансового рынка и его структуре.

Приватность и криптовалюты, часть I: насколько конфиденциален Биткойн?

8

Если вы активист или журналист, то вас вполне можете занимать вопрос, насколько безопасно пользоваться биткойнами и поможет ли это укрыться от нежелательного внимания со стороны правительства или корпораций. Биткойн конфиденциален лишь отчасти: протокол не знает вашего имени, но транзакции можно связать с вами множеством способов. Компании, занимающиеся блокчейн-аналитикой, специализируются на деанонимизации Биткойн-активности и продают полученные данные корпорациям и правоохранительным органам. Ясное понимание того, как работает система, использование таких инструментов, как Tor, Coin Control, CoinJoin-транзакции, а также недопущение повторного использования адресов, может иметь решающее значение для сохранения конфиденциальности ваших действий. Цель этой статьи – представить руководство по конфиденциальности Биткойна для активистов и журналистов, особенно для тех из них, кто работает в регионах с ограниченными экономическими и политическими свободами.

Почему криптовалюты?

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

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

Несмотря на это, можно констатировать, что в странах со значительными ограничениями экономических свобод скорость принятия криптовалют – и особенно Биткойна – быстро растёт. Хотя освободительные и демократические аспекты криптовалют вполне очевидны, особенно в той степени, в которой они обеспечивают существование устойчивых к цензуре транзакционных сетей и монетарных политик, неподвластных разнообразным формам саботажа со стороны правительств, ни одно из этих преимуществ не является особенно полезным до тех пор, пока авторитарные режимы могут деанонимизировать и подвергнуть преследованию пользователей этих валют.

Отношение оборота LocalBitcoins к числу подключенных к интернету экономически активных граждан по странам. ()

Руководство по конфиденциальности Биткойна

Биткойн не является ни совершенно анонимным, ни полностью прозрачным. Ответ на вопрос о приватности Биткойна находится где-то в серой зоне, где конфиденциальность пользовательской активности в конечном счёте зависит от возможностей его оппонента, технической грамотности самого пользователя и инструментов, которыми они пользуются. Идеального решения для обеспечения конфиденциальности в интернете не существует, и во многих случаях выбор в вопросах приватности неизбежно связан с рядом компромиссов в отношении как стоимости, так и простоты использования. Более того, приватность никогда не является статичной целью, но непрерывно изменяется в процессе гонки между теми, кто создаёт инструменты для защиты конфиденциальности и теми, кто создаёт инструменты для её разрушения.

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

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

Отслеживание транзакций

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

Следы, не записываемые в блокчейн

Совершая транзакции в сети Bitcoin, время от времени вы получаете (отправляете) деньги от (в) организации, которой известно, кто вы. Следовательно, эта сущность будет обладать вне-блокчейн-знанием, которое связывает вашу личность с вашими биткойн-транзакциями.

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

Но есть и бесчисленное множество других способов связать ваши транзакции с вашей личностью даже без операций с теми, кому известны ваши личные данные, поскольку Биткойн-транзакции обычно отправляются через интернет в незашифрованных пакетах, и это позволяет определить IP-адрес а сразу несколькими способами. Для того чтобы определить исходный IP-адрес для транзакций, отправленных через полные узлы – такие как Bitcoin Core, – требуется произвести некоторую триангуляцию или анализ трафика, тогда как другие «лёгкие» кошельки – например, мобильные (Mycelium, Blockchain Wallet, Coinbase Wallet) – часто передают транзакции пользователей через принадлежащие компании сервера, и могут видеть ваш IP-адрес напрямую, равно как и полную историю транзакций. Это же относится и к большинству аппаратных кошельков (Ledger, Trezor) при сохранении настроек по умолчанию.

Базы данных геолокации IP-адресов позволяют узнать ваше приблизительное местоположение. Точность результатов вы можете проверить и сами, воспользовавшись, например, этой ссылкой, а затем введя полученные координаты в онлайн-картах по выбору. Что ещё более важно, по IP-адресу мгновенно узнаётся ваш интернет-провайдер, которому, в свою очередь, известна личность владельца IP-адреса, и часто провайдер по закону обязан хранить эту информацию в течение нескольких месяцев.

Даже если вы используете для передачи транзакций публичные Wi-Fi-сети, вы всё равно можете случайно связать свою личность с этим IP через посещаемые с него веб-сайты и фоновые службы, к которым подключается ваше устройство. Как только вы включите ноутбук, ваше локальное приложение Dropbox с готовностью свяжется с серверами компании, связав соответствующий IP-адрес с вашим аккаунтом в логах на серверах Dropbox. То же самое произойдёт и при входе в аккаунт на любом сайте. Даже если вы не входите в свои персональные аккаунты, файлы cookie, локально хранящиеся на вашем ноутбуке, могут раскрыть вашу личность владельцам просматриваемого вами веб-сайта через ассоциирование файлов cookie с предыдущей историей просмотров. Многие веб-сайты позволяют третьим сторонам отслеживать пользователей таким образом с целью сбора аналитических данных — один только Google по оценкам отслеживает действия пользователей на 80% сайтов всей мировой сети.

Даже если вы очистите cookie, у оператора сайта сохранится возможность отслеживать ваши действия на принадлежащих ему сайтах через уникальный отпечаток браузера и таким образом связать с вами соответствующий IP-адрес. И даже если на вашем устройстве нет запущенных служб и вы не просматриваете никаких страниц, интернет-провайдер может получить MAC-адрес вашего устройства, который можно связать с вашей личностью при помощи более сложных методов. Таким образом, даже если IP-адрес не приведёт к вам напрямую через логи вашего интернет-провайдера, используя персональные устройства с выходом в интернет, вы с большой вероятностью оставите другие следы, позволяющие вас деанонимизировать.

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

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

Лучший из известных на сегодняшний день способов скрыть данные об используемом устройстве и IP-адресе при передаче транзакций или поиске информации о них – это использование скрытых сервисов Tor (Tor hidden services). Во многих кошельках, включая Bitcoin Core, такая возможность предусмотрена в качестве дополнительной опции, в некоторых других она используется по умолчанию. Сам браузер Tor тоже может быть полезным инструментом для связанной с Биткойном веб-активности, поскольку он, помимо того, что скрывает ваш IP-адрес, очищает cookie при каждом выходе, препятствует сохранению сторонних файлов cookie и устойчив к большинству методов получения отпечатка браузера.

Следы, сохраняемые в блокчейне

Простой способ понять, какого рода информация хранится в блокчейне Биткойна в открытом виде – это использовать блок-эксплорер (обозреватель блоков). В этом упражнении мы будем использовать бесплатный эксплорер blockstream.info.

Последний на момент подготовки статьи блок (#563899) содержал 2122 транзакции. Давайте посмотрим, какие данные раскрывает случайно выбранная транзакция.

Транзакции имеют входы и выходы и идентифицируются по индивидуальному ID (вверху слева на картинке выше), который присваивается каждой из них при отправке.

При самом поверхностном взгляде о транзакции можно сказать следующее:

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

Давайте рассмотрим каждый из этих элементов для показанной выше транзакции, e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8.

Время

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

Приблизительное время, когда рассматриваемая транзакция была включена в блок, можно узнать из заголовка блока (в нашем случае это блок #563899 от 20.02.2019, 14:45 UTC).

Адреса получателей и отправленные им суммы

Адреса получателей в данном случае:

1: 32Z63LVtUERdEEwz275JHt3o4cewPfE8YC: 0,26119849 BTC

2: 31w3iWUN5EMJMW2YRCc5m4RFqm3zN61xK2: 0,2214705 BTC

Адрес несёт в себе больше информации, чем может показаться. Проще всего рассматривать биткойн-адреса как «неудобочитаемые email-адреса, только для биткойнов», однако они не всегда просто указывают на пару криптографических ключей определённого пользователя. В действительности адреса представляют собой криптографические дескрипторы правил расходования для следующего раза, когда кто-то захочет переместить эти биткойны в сети.

Например, если вы отправите биткойны на 37k7toV1Nv4DfmQbmZ8KuZDQCYK9x5KpzP, то конфигурация этого адреса такова, что вы отправите не биткойны владельцу определённого секретного ключа, но скорее правило расходования, которое освобождает эти монеты в пользу того, кто сможет предоставить две различные строки, имеющие одинаковый хеш SHA-1 (это бы означало, что хеш-функция SHA-1, какой она была в 2017 году, нарушена, поэтому не нужно ничего отправлять на этот адрес!). Что стоит отметить, так это то, что многие форматы адресов, используемые сегодня, хешируются, когда мы отправляем на них биткойны, и обычно мы не можем сказать, каковы эти правила расходования до тех пор, пока кто-то потратит биткойны с этого адреса, так как для ему этого потребуется раскрыть хешированные данные.

Что касается рассматриваемой нами транзакции, то в блокчейне есть записи о том, что биткойны с обоих адресов были потрачены, поэтому правила расходования для этих адресов известны. 32Z63LVtUERdEEwz275JHt3o4cewPfE8YC оказался адресом из мультиподписи «2-из-2» (когда транзакцию должны подписать оба из двух заранее определённых адресов), что стало ясно после того, как эти монеты были потрачены в транзакции f491dfe9867c36e85950116a90a6128060d6070866ad0f3598d70d146750162f. О том, как именно раскрывается эта информация, мы поговорим в следующем разделе.

Аналогичным образом, в отношении 31w3iWUN5EMJMW2YRCc5m4RFqm3zN61xK2 обнаружилось, что этот адрес часто используется в мультиподписи «2-из-3» и на момент подготовки статьи на нём содержалось около 2700 BTC (~10,6 млн долларов). Более продвинутые инструменты блокчейн-анализа, такие как oxt.me, могут даже построить диаграмму баланса кошелька на основе исторических данных и приблизительно отобразить, в какие часы этот адрес по статистике наиболее активен.

История баланса и активность адреса 31w3iWUN5EMJMW2YRCc5m4RFqm3zN61xK2 (oxt.me).

Поскольку 18:00–22:00 UTC – часы наименьшей активности этого адреса, можно предположить, что они соответствуют ночному времени с 01:00 до 05:00 или с 02:00 до 06:00 для региона, из которого адрес контролируется. С учётом часов активности, оборота средств и конфигурации мультиподписи, можно предположить, что этот адрес принадлежит криптовалютной бирже, работающей в часовом поясе GMT+7 или GMT+8.

Хорошим правилом для соблюдения конфиденциальности считается никогда не использовать биткойн-адрес больше одного раза, так как это существенно затрудняет установление связи между транзакциями пользователя. Это было бы хорошей идеей и для всех пользователей P2SH-адресов (всех адресов, начинающихся на «3», и 62-значных адресов, начинающихся на «bc»), потому что к тому времени, как вы раскроете правила расходования для одного адреса, вы будете получать биткойны уже на другой, хешированный адрес, для которого правила расходования ещё не раскрыты.

Кошельки, известные как HD (иерархически детерминистические) кошельки, могут генерировать много адресов, при этом для восстановления кошелька на новом устройстве и доступа к средствам достаточно одной парольной фразы. Эти кошельки также автоматически генерируют для вас новый адрес каждый раз, когда вы получаете транзакцию.

Давайте посмотрим на транзакцию ещё раз. Что ещё мы можем узнать из неё об отправленных монетах.

Биткойн-транзакции, как правило, отправляются на два адреса. Один из выходов транзакции является фактическим платежом, а другой обычно называют «выходом для сдачи (остатка)» – эти средства возвращаются отправителю. Это похоже на то, как, когда вы платите за что-то стоимостью 3 доллара 5-долларовой банкнотой, это создаёт две операции: в одной из них вы передаёте продавцу 3 $, а во второй получаете обратно 2 $ сдачи.

Для того чтобы идентифицировать выход транзакции как выход для сдачи, нужно использовать эвристику. Примерами эвристических правил, которые можно использовать для идентификации выхода для остатка от другого платежа, являются использование круглых чисел (в биткойнах или фиатной валюте на момент создания транзакции), порядок выходов в теле транзакции и так далее. В рассматриваемой нами транзакции выход для сдачи обнаружить легко, потому что она возвращается на тот же адрес, который использовался для получения монет, расходуемых в этой транзакции, как мы убедимся ниже.

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

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

средств для транзакции

В биткойн-транзакциях «ами средств» всегда являются другие «неизрасходованные» транзакции, или, если точнее, неизрасходованные выходы транзакций (UTXO). Стоит иметь в виду, что то, что видно в блок-эксплорере, представляет собой комбинацию декодированных необработанных блокчейн-данных и производных данных. Один блок-эксплорер может отображать транзакции таким образом:

: blockchain.com

Здесь « средств» отображается как адрес. В эксплорере Blockstream это отображается несколько иначе. Здесь средств отображается как транзакция:

Причина, по которой эксплорер Blockstream не отображает в качестве а средств адрес, заключается в том, что адреса технически не являются частью входов в транзакцию, и вывести исходный адрес не всегда оказывается возможным (пример). Более того, поскольку повторное использование адресов не рекомендуется, хорошо было бы нарушить и унаследованные от традиционных платёжных систем когнитивные модели и не способствовать закреплению идеи о том, что деньги могут или должны возвращаться отправителю на тот же адрес и только адрес должен отображаться в качестве отправителя.

Давайте попробуем ненадолго углубиться в технические подробности и взглянем на дешифрованные необработанные данные транзакции, которые вы можете получить из собственной локальной копии блокчейна Биткойна, если поддерживаете полный узел (либо через доверенный веб-интерфейс). Вот как это выглядит:

Дешифрованная транзакция e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8 (обработано вручную).

средств описывается в массиве «vin». Он не содержит отсылки к конкретному адресу. Вместо этого он ссылается на выход предыдущей транзакции, 593e2d5c65b3505d897a13033741037d6c59e683b3345314a58253a8f1572758, где «vout: 0″ относится к первому выходу той транзакции («vout: 1″ означал бы её второй выход, и т.д.). Этот неизрасходованный выход транзакции (UTXO) и является ом средств.

Я повторю ещё раз, это важно: ом средств для транзакции является не адрес, но транзакция. средств – это конкретный выход конкретной предыдущей транзакции. Как мы увидим в следующих разделах, это знание важно для сохранения конфиденциальности при пользовании Биткойном.

средств для транзакции e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8.

Чтобы узнать об е средств больше, мы можем проанализировать и другие фрагменты дешифрованных необработанных данных этой транзакции, как, например, «txinwitness». Последняя шестнадцатеричная строка в «txinwitness» содержит скрипт мультиподписи «2-из-3», и это позволяет предположить, что речь, вероятнее всего, идёт о кошельке биржи.

Две другие шестнадцатеричные строки в «txinwitness» представляют собой просто подписи, удовлетворяющие этому условию «2-из-3» (т.е. транзакция получила две подписи из трёх заранее определённых кошельков).

Теперь, когда мы определили средств, мы можем увидеть, что в нашем примере это выход на 0,48298999 BTC (~1850 $), хотя сумма отправленного платежа составляла лишь ~1000 $. У этого аспекта есть нежелательное последствие: представьте ситуацию, в которой знакомый отправил 10 $, но эта транзакция раскрывает, что он обладатель миллиона долларов и может распорядиться ими немедленно и без ограничений – не очень-то конфиденциально. Если, отправляя кому-то транзакцию, вы не хотите раскрывать информацию о количестве имеющихся у вас биткойнов, то вам нужно знать, какие входы используются в ваших транзакциях (подробнее об этом ниже).

Комбинирование знаний

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

Некоторые адреса идентифицированы и известны в Биткойн-среде – такие как холодный кошелёк Bitfinex или со средствами, конфискованными у Silk Road. Адрес может стать достоянием общественности намеренно – например, когда организация (коммерческая или нет) раскрывает адреса для депозитов или пожертвований на своём сайте – или ненамеренно – например, когда связь с адресом раскрывается из-за сообщения на форуме или из отчёта правоохранительных органов. Компании, специализирующиеся в блокчейн-аналитике, постоянно ищут в интернете в том числе и подобную информацию.

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

Кластеризация

Вернёмся к нашей транзакции из предыдущих примеров, e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8. Из графа транзакции мы сразу видим, что и средств для нашей транзакции, и сама наша транзакция (красные точки), использовались для финансирования третьей транзакции (большая синяя точка).

Граф транзакции e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8 (oxt.me).

А именно, для финансирования этой транзакции использовались второй выход транзакции финансирования и первый выход нашей транзакции. Ранее они были отправлены на эти адреса:

  • 3Qt1YaJwQwtHMb4mjJ41DZVawWXih9LGMq
  • 32Z63LVtUERdEEwz275JHt3o4cewPfE8YC

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

Граф транзакции f491dfe9867c36e85950116a90a6128060d6070866ad0f3598d70d146750162f, обозначенной ранее синей точкой (oxt.me)

Блокчейн-аналитики используют такого рода эвристические правила для создания гигантских кластеров. Блокчейн-эксплорер WalletExplorer зафиксировал два адреса как принадлежащие к кластеру из в общей сложности 162 787 адресов. Аналитические фирмы маркируют такие кластеры всеми идентификаторами (IP-адресами, пользовательскими аккаунтами, организациями, реальными именами), с какими только удаётся их связать, и составляют карту экосистемы транзакций Биткойна. Затем они продают доступ к этим данным другим компаниям и правоохранительным органам.

Многие аналитические компании получают информацию о транзакциях пользователей непосредственно от собственных клиентов, таких как криптовалютные биржи. Однако две крупнейшие аналитические компании, Chainalysis и Elliptic, утверждали, что не отслеживают транзакции до конкретных частных лиц, но только до бирж и прочих организаций (1, 2).

Для деанонимизации всего кластера достаточно деанонимизировать один из входящих в него адресов.

Нарушение эвристики

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

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

Вот неисчерпывающий список некоторых таких примеров:

  • Рандомизация порядка выходов при создании транзакций с целью снижения точности обнаружения выхода для остатка.
  • Избегание повторного использования адресов с помощью HD кошельков.
  • PayNym – сервис, позволяющий создавать ID, на который можно получать платежи по несвязанным между собой, но контролируемым вами, адресам, которые становятся известны только вам и отправителю. PayNym позволяет получать новый адрес для каждого платежа без необходимости для вас обновлять его каждый раз вручную. Это отличная опция, если вы хотите удобным и приватным образом получать в биткойнах, скажем, пожертвования.
  • Coin selection/coin control – кошельки могут быть разработаны таким образом, чтобы ставить в приоритет, когда это возможно, кластеризацию меньшего числа адресов путём более тщательного выбора входов для транзакций либо позволять пользователям выбирать входы для транзакций вручную, чтобы избежать раскрытия права обладания определёнными монетами.

Функция coin control в кошельке Bitcoin Core: пользователь может сам выбрать и средств для транзакции.

Более продвинутый способ повышения конфиденциальности – CoinJoin-транзакции. CoinJoin – это схема, по которой множество входов от многих пользователей объединяются в одну комбинированную транзакцию до того, как она будет передана в сеть.

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

средств для транзакции e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8.

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

CoinJoin-транзакция (72046c65fa25724f11c91f35799f69b66072bc07b2b4e3fc363852c2506b2b90), созданная в кошельке Wasabi.

Здесь выходы разделены на множество равных по сумме частей, так что невозможно с уверенностью определить, каким из входов обеспечивается какой платёж. В результате каждый отдельный платёж может иметь множество вероятных «ов средств», неотличимых друг от друга, а также множество возможных направлений платежа. Это технически не скрывает средств или пункт назначения платежа, но перемешивает их среди нескольких транзакций, так что становится трудно доказать, кто в действительности финансировал какой из этих платежей и чьи именно биткойны в нём передавались.

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

CoinJoin-транзакции, созданные в кошельке Wasabi. ID транзакций, слева направо: 72046c65fa25724f11c91f35799f69b66072bc07b2b4e3fc363852c2506b2b90, d7a428a8e3d69f236519cb999dbcb47b3b283548875371da567259be806e35ea, 20cf4fa2f685167f46682dd30c7720a06618656939fadbd1f20e3d471d08dfbb (oxt.me).

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

Однако в недавнем изобретении, называемом PayJoin или Pay-to-EndPoint (P2EP), тот же принцип используется для создания транзакций, неотличимых от обычных. В этом новом типе транзакций смешиваются входы отправителя и получателя, и сумма платежа перемещается от выхода отправителя к выходу получателя во время реального платежа за что-либо.

Шаблон PayJoin-транзакции, в которой отправитель платит получателю 0,5 BTC и в процессе их входы перемешиваются.

Эта транзакция не обладает большим анонимным множеством для эффективного микширования, но она вызывает ошибку в кластеризации на основании общих входов. Что ещё более важно, это вызывает ошибку в эвристике, не оставляя аналитикам никаких подсказок в отношении того, что на основании этих входов не следует строить кластеры, а значит, это лишает их способа избежать ложных срабатываний. Если PayJoin-транзакции получат широкое распространение, доля ложных срабатываний при кластеризации на основании общих входов станет настолько велика, что сама эта эвристика станет ненадёжной, и это будет большой помехой для инструментов блокчейн-аналитики.

Lightning Network

Lightning Network – это бета-технология, разрабатываемая поверх протокола Биткойна для обеспечения недорогих мгновенных платежей. Сеть Lightning доступна пользователям кошельков Lightning. Lightning-транзакции во многом отличаются от транзакций уровня основного блокчейна и имеют ряд преимуществ с точки зрения конфиденциальности:

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

Lightning Network – это система платёжных каналов, которые требуют ликвидности. Продавцы и пользователи, принимающие lightning-платежи, на сегодняшний день представляют собой немногочисленное подмножество в общем числе пользователей Биткойна, и не все платежи (особенно крупные) можно осуществить через систему каналов, но ожидается, что со временем эта ситуация будет улучшаться. Это также означает, что, хотя Lightning может обеспечить улучшенную приватность для транзакций в своей системе каналов, эти каналы по-прежнему должны финансироваться обычными биткойн-транзакциями, проблемам конфиденциальности которых посвящена эта статья.

Ещё одна проблема заключается в том, что, в отличие от получателей биткойн-платежей базового уровня, получатели lightning-платежей должны иметь активный lightning-узел. Ваш узел взаимодействует с другими lightning-узлами через протокол TCP/IP. Всякий раз, когда ваш узел взаимодействует с сетью (отправляя, получая или участвуя в маршрутизации других платежей), кто-то узнаёт о существовании вашего узла, его открытый ключ и IP-адрес. По вашему открытому ключу элементарно узнать, какие платёжные каналы открыты между вами и другими узлами и какое количество биткойнов вы каждый раз фиксировали в этих каналах при их открытии. Для частных каналов, ваш IP-адрес раскрывается только тем, с кем у вас есть действующие каналы, но IP-адрес обладателя публичного канала раскрывается всей сети и сторонний человек может даже проверить текущие балансы каналов, чтобы выяснить, имеет ли смысл их атаковать.

При запуске lightning-узла вам следует исходить из того, что балансы ваших каналов известны и что они могут связаны с вашим IP-адресом. По этой причине хорошим решением для сохранения конфиденциальности представляется запуск и использование lightning-узла через Tor.

Lightning Network в настоящее время довольно бурно развивается, и многие её свойства могут подвергнуться изменениям уже в ближайшем будущем.

Изменения протокола

В стадии разработки находятся несколько повышающих конфиденциальность технологий для основного протокола Биткойна. Вот несколько таких примеров:

  • Подписи Шнорра – схема подписи транзакций, которая, среди прочего, делает адреса с мультиподписью неотличимыми от остальных.
  • Scriptless scripts («скрипты-без-скриптов») – метод, позволяющий использовать скрипты без раскрытия фактических правил расходования средств.
  • Taproot – технология, использование которой потенциально может сделать транзакции с любыми типами правил расходования неотличимыми друг от друга.

Заключение

Задача этой статьи – дать читателю базовое представление о конфиденциальности использования сети Биткойна. Псевдонимная, но прозрачная природа блокчейна Биткойна создаёт среду, в которой приватность системы в конечном счёте зависит от применяемых пользователем инструментов и действий блокчейн-аналитиков. Пользователи, не предпринимающие мер предосторожности для защиты своей конфиденциальности, вероятнее всего, допустят утечки финансовой информации, достаточно серьёзные, чтобы они могли нести в себе потенциальную опасность при условии слежки со стороны анализирующих данные сети людей или организаций.

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

Подписывайтесь на BitNovosti в Telegram!

Делитесь вашим мнением об этой статье в комментариях ниже.

Источник: bitnovosti.com