Перевод Анонимность криптовалют: Обзор

Тема в разделе "Статьи", создана пользователем Mr. Pickles, 14 ноя 2019.

  1. Mr. Pickles

    Команда форума Модератор Редактор

    Регистрация:
    11 сен 2017
    Сообщения:
    556
    Симпатии:
    205
    1.jpg

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

    Представьте, что Элис заводит аккаунт Venmo, для чего от неё требуется указать и подтвердить своё имя. Поскольку Venmo известно её настоящее имя, потенциально служба может поделиться им с другими, и Элис утратит некоторую анонимность собственной личности. Если Боб переведёт Элис $20, воспользовавшись Venmo, и поделится этой информацией в её ленте, то информация о транзакции станет публичной, но она ещё сохранит некоторую анонимность относительно баланса, так как эта информация также будет известна Venmo. С другой стороны, предположим, что Элис создаёт адрес Bitcoin и просит Боба отправить ей $20 в BTC. Если сравнивать с Venmo, Элис получает некоторую анонимность личных данных, поскольку её имя никак не привязано к адресу Bitcoin. Тем не менее тот факт, что BTC были переведены с адреса Боба на адрес Элис, равно как и итоговый баланс по адресу Элис будут видны любому человеку в мире. Можно отметить, что, воспользовавшись Bitcoin, Элис получила анонимность в некотором смысле, но пожертвовала ею в остальных.

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

    Очень важно, является ли определённый атрибут анонимным, а это далеко не однозначный вопрос. Например, атрибут может быть известен одним наблюдателям и не известен другим, или же наблюдатели могут просто угадать его с некоторой долей вероятности, но не со стопроцентной гарантией. Такая неопределённость означает, что такие общие заявления, как «моя любимая монета гарантирует анонимность» или «моя анонимная монета более анонимна, чем ваша любимая монета», часто не имеют никакого смысла. С такими заявлениями надо быть осторожней, так как они приводят к путанице и неправильному пониманию, и они даже намеренно могут использоваться, чтобы вызвать замешательство. Мы уверены в том, что высказывания, подразумевающие наличие большего количества нюансов, имеют больше смысла, например, «у Monero суммы транзакций анонимны» или даже «в случае с ZCash адреса отправителей являются анонимными в пределах определённой анонимной группы». Как мы продемонстрируем далее, в некоторых случаях криптографические инструменты, такие как доказательства с нулевым разглашением конфиденциальной информации, могут помочь нам в количественной форме определить такие заявления и даже обеспечить их строгими доказательствами. А теперь мы погрузимся в каждый аспект анонимности, связанный с криптовалютой.

    Приватность личности (анонимность)

    Когда люди слышат о «приватности», они, в первую очередь, подразумевают анонимность, то есть невозможность привязки действий пользователя к его личности в реальном мире. Одну из версий такого типа приватности называют псевдонимностью, достичь которой довольно просто. По сути, мы уже широко пользуемся ею в ходе взаимодействия с различными онлайн сервисами, когда вместо своего настоящего имени указываем какой-нибудь псевдоним, например, bitcoinlover2008@gmail.com. В подобной ситуации физическая/юридическая личность bitcoinlover2008@gmail.com (допустим, Элис Джонс) в большинстве ситуаций не будет раскрыта в ходе взаимодействия с кем бы то ни было в рамках протокола.

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

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

    Во-первых, большинство пользователей приобретает Bitcoin на бирже, используя фиатную валюту. Проведение транзакции с фиатной валютой обычно требует взаимодействия с обычной банковской системой, а следовательно, подтверждения реальной личности. Поскольку все данные транзакций, в случае с Bitcoin, являются публичными (о чём будет говориться в следующем разделе), это позволяет любому, обладающему доступом к базе данных биржи, связать адреса с реальными именами. Например, если Элис выведет 0,1 BTC с Coinbase на контролируемый ею адрес, допустим, 36n452uGq1x4mK7bfyZR8wgE47AnBb2pzi, то Coinbase сможет связать её реальное имя с этим адресом. Если она затем отправит 0,2 BTC на незаконный спортивный онлайн тотализатор, то внешний наблюдатель сможет прийти к выводу (и предоставить безоговорочное публичное доказательство), что Элис участвует в незаконной деятельности, связанной с азартными играми. Технологии, подобные этой, называются анализом блокчейна, и ими пользуются такие компании, как Chainalysis, которые связывают публичные ключи с их владельцами, то есть привязывают их к реальной личности владельцев, и отслеживают потоки транзакций.

    2.jpg
    Ранний пример анализа блокчейна Bitcoin (2009–2012). Источник: https://doi.org/10.3390/fi8010007.

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

    Анонимность данных транзакций

    Когда люди говорят об анонимных криптовалютах, они обычно подразумевают, что некоторые аспекты транзакций являются анонимными. Грубо говоря, транзакция является действием, посредством которого пользователь изменяет состояние блокчейна. Например, Элис может отправить X монет с контролируемого ею адреса на адрес, контролируемый Бобом. Даже в случае с этим безобидным примером есть данные, которые узрит «божий глаз»:
    • один из адресов Элис, например, 36n452uGq1x4mK7bfyZR8wgE47AnBb2pzi
    • связь между адресами Элис и Боба;
    • один из адресов Боба;
    • передаваемое количество монет.
    Более сложные транзакции могут содержать другие типы информации, как, например, код смарт-контракта в случае с Ethereum. Различные блокчейны представляют все эти данные транзакций различными способами, и некоторые из этих вариантов представления позволяют скрыть различные аспекты от стороннего наблюдателя, который видит только сырые данные в блокчейне. Вот почему этот раздел называется «Анонимность данных транзакций», а не «Анонимность транзакций», ведь различные типы данных транзакций могут быть анонимными в различной мере.
    Наиболее важными атрибутами, анонимность которых может быть обеспечена, являются адреса Элис и Боба. Если они будут анонимными, то отправителя и получателя нельзя будет идентифицировать на основе самой транзакции. Это позволяет воспрепятствовать типу анализа блокчейна, о котором мы говорили ранее. То есть, если Элис купит Monero, валюту, обладающую этим свойством, на Binance, популярной бирже, и выведет их, Binance не сможет связать этот вывод с дальнейшими транзакциями Элис, которые она будет проводить с этими же монетами. И наоборот, если Боб получит Monero от Элис, он не сможет узнать, что они были куплены Элис на Binance.


    Теперь усложним: что если анонимные данные транзакции не являются двоичными. В примере с адресом Элис всё измеряется размером анонимной группы, который определяется наименьшим набором адресов, который отправитель транзакции может использовать исключительно на основе данных блокчейна. Чем больше будет анонимная группа, тем меньше информации об отправителе будет содержаться в данных блокчейна. Например, в случае с Bitcoin анонимная группа наиболее открытого типа предполагает, что размер транзакции будет равен 1, так как транзакция будет содержать сам адрес отправителя. Monero обеспечивает возможность использования анонимных групп гораздо большего размера.

    Анонимность состояния

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

    Несмотря на то, что знание пользователем определённого атрибута состояния блокчейна зависит только от протокола и знания транзакций, которые привели к такому состоянию, связь между ними может создать другие сложные взаимосвязи. Как результат, различные атрибуты состояния будут анонимными в различной степени. Вот несколько примеров:
    • список всех адресов;
    • баланс на определённом адресе, например, на 0x2569C92345013F55CFb47C633c57F2f5756B9acA лежит 1 ETH;
    • код смарт-контракта определённого адреса, например, код контракта CryptoKitties по адресу 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d
    • специфическое для контракта состояние, например, данные, сохранённые по контракту CryptoKitties.
    Простым примером возможного диапазона выводов, в случае с ZCoin, может служить то, что сума каждой транзакции является публичной, но отправитель и получатель остаются анонимными, что означает, что и баланс на счёте пользователя остаётся анонимным. С другой стороны, в Mimblewimble сумма каждой транзакции остаётся анонимной, но информация об отправителе и получателе является публичной, что иначе обеспечивает анонимность баланса пользователя. По сути, пользователи Mimblewimble сами заботятся о хранении своих средств, а блокчейн только хранит достаточное количество информации, гарантирующей, что пользователь не сможет потратить средств больше, чем фактически находится у него на балансе.

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

    Свойства анонимности некоторых существующих протоколов

    1.png

    Различные подходы к анонимности

    До этого момента мы говорили в основном о том, является ли определённая информация анонимной или публичной. Также было бы полезно организовать подходы к анонимности в зависимости от того, какие технологии они используют. В конце мы бегло рассмотрим эти подходы. В будущих постах мы более подробно рассмотрим технические аспекты подходов, основанных на смешивании и нулевом разглашении конфиденциальной информации.
    • Протоколы второго уровня, такие как сеть Lightning Network, каналы состояния или Plasma, которые строятся поверх криптовалюты «базового уровня», позволяют небольшим группам пользователей самостоятельно проводить транзакции между собой «вне блокчейна». Это означает, что данные промежуточного состояния хранятся у самих этих пользователей, а краткое описание изменений только периодически заносится в блокчейн. В результате промежуточные состояния не видимы для внешних наблюдателей, поскольку данные о них вообще никогда не появляются в блокчейне. Безусловно, сам протокол второго уровня может иметь (а может и не иметь!) различные уровни анонимности для состояний вне блокчейна между участниками, поэтому это больше мета-идея, чем технология обеспечения анонимности. В дальнейшем мы не станем останавливаться на протоколах второго уровня как таковых, несмотря на то, что заинтересованному читателю было бы интересно узнать о той большой работе, которая лежит в их основе.
    • Подходы на базе смешивания предполагают, что берутся входы и выходы различных транзакций, затем они объединяются в одну большую транзакцию, скрывая таким образом адреса отправителей и получателей. В следующем посте нами будут рассмотрены анонимные протоколы на основе смешивания и их расширения. Среди них есть некоторые ранние подходы к обеспечению анонимности, такие как тумблеры, CoinJoin, Mimblewimble и Monero.
    • Обеспечение анонимности, основанной на нулевом разглашении конфиденциальной информации, подразумевает, что пользователи протокола представляют доказательства с нулевым разглашением конфиденциальных данных (ZKP), то есть данные, подтверждающие знание части информации, но не разглашающие самой информации. При правильном использовании эта криптографическая технология способна гарантировать анонимность транзакций/состояния, а также цельность блокчейна. В следующем посте мы уделим внимание основным идеям, стоящим за доказательствами с нулевым разглашением конфиденциальной информации, а также особенностям ZKP при их использовании с криптовалютами, а именно zk-SNARK’s и zk-STARK’s.
    Следует также упомянуть несколько других технологий, имеющих некоторое отношение к анонимности.
    • Оптимальные методы пользования криптовалютами. Даже когда вы пользуетесь криптовалютой без каких-либо дополнительных возможностей, связанных с обеспечением анонимности, можно избежать некоторых последствий анализа сети и блокчейна. Чтобы воспрепятствовать использованию сетевых метаданных, можно использовать Tor или I2P, чтобы скрыть источник транзакций. Чтобы избежать анализа блокчейна рекомендуется использовать новый адрес для приёма каждого платежа. Такие криптовалюты, как Monero и Verge, обеспечивают эту возможность в качестве «родной» опции (даже несмотря на то, что в случае с некоторыми криптовалютами эти адреса можно будет связать позднее в зависимости от дальнейшего поведения пользователя).
    • Доверенная среда выполнения (TEE) является процессором (таким как Intel SGX), который криптографически защищает целостность и конфиденциальность данных и кода в собственных пределах. TEE предлагают использовать несколько протоколов, включая Ekiden (коммерциализованный Oasis Labs). Например, балансы счетов могут быть зашифрованы при помощи приватного ключа, который хранится в TEE, поэтому и расшифровываться и изменяться они также будут в TEE. Таким образом, обеспечение анонимности становится задачей TEE, которая имеет собственные уязвимости. Например, ключи могут быть выделены в результате проведения атаки по сторонним каналам (такие атаки на Intel SGX уже случались), и для использования существующих TEE может понадобиться лицензия производителя или же от производителя может потребоваться разглашение конфиденциальной информации (несмотря на то, что такие альтернативные варианты, как Keystone и Gradient, пытаются решить эту проблему).
    Заключение

    Когда речь заходит о криптовалютах, мы рекомендуем вам вместо расплывчатых фраз, вроде «моя монета анонимнее, чем её монета», попробовать ответить на следующие вопросы: определённое знание (какое?) относительно состояния мира (когда?) является анонимным (в какой мере?) для определённых людей (для кого?) Такой образ мышления позволяет более объективно анализировать технологии обеспечения анонимности, а также компромиссы, которые они предполагают. В будущих постах мы глубже погрузимся и более подробно количественно оценим определённые подходы, сохраняя при этом понимание качественной стороны вопроса.

    Источник: Privacy in Cryptocurrencies: An Overview

    Перевод:
    Mr. Pickles (@v1docq47)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)

     
    #1 Mr. Pickles, 14 ноя 2019
    Последнее редактирование: 16 ноя 2019
  • О нас

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