Конфиденциальность криптовалют: обзор

2

Конфигурация анонимности в формате комикса. Источник: https://www.globalprints.com/products/wheres-waldo-toys-24×36-flm01425

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

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

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

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

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

Важно отметить, что конфиденциальность тех или иных атрибутов – явление далеко не однозначное. Например, определенные сведения могут быть известны одним наблюдателям и неизвестны другим, или же наблюдатели могут сделать определенные предположения, не будучи при этом полностью уверенными в них. Эта двойственность зачастую делает тезисы вроде «Криптовалюта X гарантирует конфиденциальность» или «Криптовалюта X более конфиденциальна, чем Криптовалюта Y» бессмысленными. Более того, при небрежном использовании подобные утверждения могут привести к путанице и неверным интерпретациям, и именно поэтому они могут быть использованы для намеренного введения пользователей в заблуждение. Мы считаем, что куда разумнее делать более предметные заявления вроде «в Monero сумма транзакции является конфиденциальной» или «в ZCash адреса отправителей до определенной степени анонимны». Как мы увидим позже, в некоторых случаях криптографические инструменты вроде доказательств с нулевым разглашением могут помочь в анализе подобных утверждений или даже предоставить твердые аргументы в их пользу.

Итак, давайте рассмотрим отдельно каждый из аспектов конфиденциальности в отношении криптовалют.

Конфиденциальность личной информации (анонимность)

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

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

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

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

1

Один из ранних примеров блокчейн-анализа Биткойна (2009-2012). Источник: https://doi.org/10.3390/fi8010007

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

Конфиденциальность сведений о транзакциях

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

  • один из адресов Элис – например, 36n452uGq1x4mK7bfyZR8wgE47AnBb2pzi;
  • связь между адресами Элис и Боба;
  • один из адресов Боба;
  • сумму отправленных коинов.

Более сложные транзакции могут содержать и другие виды информации. Яркий тому пример – код смарт-контракта в Эфириуме. Разные блокчейны по-разному представляют данные о транзакциях, и некоторые их этих методов позволяют скрыть определенные аспекты от стороннего наблюдателя, который видит только «сырые» данные, записанные в блокчейне. Именно поэтому мы назвали этот раздел «Конфиденциальность сведений о транзакциях», а не «Конфиденциальность транзакций», так как степень приватности различных типов данных о переводах может различаться.

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

Мало того, ответ на вопрос о том, является ли определенный фрагмент сведений о транзакции конфиденциальным, не может быть бинарным. В примере с адресом Элис степень приватности можно оценить по значению конфигурации анонимности. Конфигурация анонимности (anonymity set) – это минимальный набор адресов, по которому можно вычислить отправителя транзакции, основываясь исключительно на данных блокчейна. Чем выше ее значение, тем меньше информации об отправителе содержится в данных блокчейна. Например, в случае Биткойна значение конфигурации анонимности для самых простых и понятных транзакций равно единице, так как адрес отправителя содержится в сведениях о переводе, тогда как для Monero эта цифра будет намного выше.

Конфиденциальность сведений о полном состоянии блокчейна

В случае Биткойна все данные о транзакциях публичны. Это значит, что сторонний наблюдатель, имея доступ к записям во всех блоках цепочки, может воссоздать реестр балансов каждого из адресов (впрочем, их можно разделить на разные UTXO (Unspent Transaction Output), или непотраченные выходы транзакций  –  неделимые части биткойна, привязанные к конкретному владельцу). Это мы и называем сведениями о полном состоянии блокчейна. Впрочем, если некоторые аспекты транзакций будут конфиденциальными, то знание всех записей в блокчейне не даст пользователю знания полного состояния блокчейна. Оно распределяется между разными пользователями, а блокчейн гарантирует согласованность их знаний.

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

  • список всех адресов;
  • баланс отдельно взятого адреса (например, в кошельке 0x2569C92345013F55CFb47C633c57F2f5756B9acA лежит 1 ETH);
  • код смарт-контракта по конкретному адресу (например, код смарт-контракта CryptoKitties по адресу 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d);
  • сведения, связанные с контрактом (например, данные, хранящиеся в контракте CryptoKitties).

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

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

Конфиденциальность некоторых из существующих протоколов

1.1

1.2

1.3

1.4

1.5

Разные подходы к конфиденциальности

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

  • Протоколы второго уровня вроде сети Lightning, каналов состояния или Plasma позволяют небольшим группам пользователей совершать транзакции между собой «офчейн» (вне основного блокчейна). Это значит, что все данные о промежуточных стадиях хранятся у этих пользователей, а в блокчейн записываются только периодические сводки изменений состояния. В результате эти промежуточные состояния становятся невидимыми для сторонних наблюдателей, так как в основном блокчейне они не фигурируют. Конечно, сами по себе протоколы второго уровня могут иметь различные уровни приватности (или вовсе не иметь) для офчейн-транзакций, так что это скорее метаидея, нежели техника обеспечения конфиденциальности, поэтому мы не будем останавливаться на таких решениях. Тем не менее, для заинтересованных читателей есть масса доступной информации по этой теме.
  • В основанных на микшировании подходах берутся входные и выходные данные о разных транзакциях и комбинируются в одну большую транзакцию, чтобы скрыть прямые связи между адресами отправителей и получателей. В следующих постах мы также обсудим протоколы, основанные на микшировании и производные от них. К ним относятся некоторые из ранних наработок вроде так называемых миксеров, а также CoinJoin, Mimblewimble и Monero.
  • В методах, основанных на доказательствах с нулевым разглашением, пользователи протокола обеспечивают такие доказательства (ZKP). Иными словами, они поставляют данные, подтверждающие знакомство с тем или иным фрагментом информации, при этом не разглашая ее. При правильном использовании, эта криптографическая техника может обеспечить одновременно конфиденциальность транзакций и состояний и достоверность блокчейна. В будущих постах мы сфокусируемся на основных идеях, лежащих в основе подобных подходов и разновидностях доказательств с нулевым разглашением, применимых к криптовалютам, в том числе zk-SNARK и zk-STARK.

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

  • Лучшие пользовательские практики. Даже при использовании криптовалют без дополнительных функций обеспечения конфиденциальности пользователи могут смягчить некоторые возможные эффекты анализа сети и ее блокчейна. Для борьбы с использованием метаданных сети с целью деанонимизации пользователей подойдут такие инструменты, как Tor или I2P, позволяющие скрыть происхождение транзакций. Для борьбы с блокчейн-анализом обычно советуют использовать новый адрес для каждого получаемого платежа. У Monero и Verge эта функция является базовой, однако в случаях некоторых других криптовалют адреса все равно могут быть связаны между собой посредством анализа последующих действий пользователя.
  • Доверенная среда исполнения (TEE) – это процессор (как, например, Intel SGX), который, как утверждается, обеспечивает криптографическую защиту целостности и конфиденциальности данных и кода. Разработчики некоторых протоколов, включая Ekiden, коммерционализированный Oasis Labs, предлагают использовать в работе TEE. С ее помощью можно, например, зашифровать сведения о балансе счета с помощью приватного ключа, хранящегося в доверенной среде, поэтому расшифровать и изменить эти данные также можно только внутри нее. В этом случае ответственность за обеспечение конфиденциальности ложится на TEE, у которой тоже есть свои уязвимые места. Например, в случае атаки по сторонним каналам могут быть извлечены вышеупомянутые ключи (и подобные случаи уже были), а существующие TEE могут потребовать лицензию от производителя или позволить ему нарушить конфиденциальность. Впрочем, альтернативные проекты вроде Keystone и Gradient пытаются решить эту проблему.

Заключение

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

 

Источник



Рубрики:Анализ, Новичкам, Теория

Метки: ,

5 replies

Trackbacks

  1. Два фактора дальнейшего развития криптовалют — EthereumClassic - Stuff Aggregator
  2. Конфиденциальность  криптовалют: методы на основе микширования (часть 1) — EthereumClassic
  3. Конфиденциальность  криптовалют: методы на основе микширования (часть 2) — EthereumClassic
  4. методы на основе микширования (часть 2) — EthereumClassic - Stuff Aggregator
  5. методы на основе микширования (часть 1) — EthereumClassic - Stuff Aggregator

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s