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

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

20 ноября 2018
Криптовалюты часто описываются в СМИ как анонимные, при этом в других статьях говорится, что криптовалютные транзакции отследить проще, чем сделки в обычных фиатных валютах, как доллар США. Чтобы примирить эти две точки зрения, важно понимать: что именно конфиденциальность означает для криптовалют? Ответить на этот вопрос сложнее, чем кажется, потому что в блокчейне конфиденциальность может означать множество разных вещей. Чтобы быть более информированным разработчиком, инвестором или участником криптовалютной отрасли, важно понимать, что именно означает конфиденциальность в криптовалютной экономике. Мы написали эту статью, чтобы поделиться нашим мнением об этом.

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

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

личность пользователя, осуществляющего операцию с криптовалютой;

данные об операции, которую выполняет конкретный пользователь;

общее состоянии блокчейна, формирующееся при объединении информации обо всех транзакциях.

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

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

Конфиденциальность персональных данных (анонимность)

Одно из первых, о чем думают люди, когда слышат словосочетание «конфиденциальная информация», — это анонимность, т.е. ситуация, когда действия пользователей никак не связаны с их личностями в реальном мире. Добиться одной из разновидностей данного типа конфиденциальности — псевдонимности — достаточно просто. Фактически мы поступаем именно так каждый раз, когда взаимодействуем с большинством онлайн-сервисов, указывая псевдоним вида [email protected] вместо настоящего имени. При этом физическая/правовая идентичность человека под псевдонимом [email protected] (скажем, Элис Джоунс) не будет фигурировать в большинстве случаев ее взаимодействия с кем-либо в данном протоколе.

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

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

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

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

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

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

Конфиденциальность данных об операциях

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

один из адресов Элис, например, 36n452uGq1x4mK7bfyZR8wgE47AnBb2pzi;

связь между адресами Элис и Боба;

один из адресов Боба;

количество отправленных монет.

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

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


Источник: https://www.globalprints.com/products/wheres-waldo-toys-24x36-flm01425

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

Конфиденциальность состояния сети

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

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

список всех адресов;

остатки на конкретном адресе, например у адреса 0x2569C92345013F55CFb47C633c57F2f5756B9acA есть 1 ETH;

код смарт-контракта в конкретном адресе, например, код контракта CryptoKitties по адресу 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d;

состояние конкретного контракта, например, данные, которые хранятся в контракте CryptoKitties;

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

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

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



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

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

Протоколы второго уровня, такие как lightning network, state channels или Plasma, функционирующие поверх базового уровня криптовалюты, позволяют небольшим группам пользователей осуществлять между собой операции «вне блокчейна». Это означает, что все промежуточные состояния блокчейна хранятся такими пользователями, а в основной блокчейн вносятся лишь периодические резюмирующие записи об изменении состояния сети. В результате промежуточные состояния являются невидимыми для внешних наблюдателей, поскольку они вообще никогда не появляются в основном блокчейне. Конечно, сам протокол второго уровня может характеризоваться разными уровнями конфиденциальности (или не иметь таковых вовсе) для состояний сети “вне блокчейна”, что определяется его пользователями, поэтому данный подход скорее является мета-идеей, нежели технологией обеспечения конфиденциальности. Именно поэтому мы в дальнейшем не будем рассматривать протоколы второго уровня, поскольку интересующийся читатель сможет найти огромное количество работ на эту тему.

Подходы, основанные на комбинировании данных, используют входящие и исходящие данные о различных операциях и объединяют их в единую крупную операцию для сокрытия связей между адресами отправителей и получателей. Данные протоколы включают некоторые из более ранних подходов к конфиденциальности, такие как тумблеры, CoinJoin, Mimblewimble и Monero.

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

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

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

Доверительная среда выполнения (Trusted Execution Environment, TEE) — это процессор (как, например, Intel SGX), который претендует на обеспечение криптографической защиты целостности и конфиденциальности данных и кода в них. Некоторые протоколы, в том числе Ekiden (коммерческим внедрением занимается Oasis Labs), предлагают использовать TEE. Например, данные об остатках на счетах могут быть зашифрованы приватным ключом, который хранится в TEE, и таким образом его можно расшифровать или изменить только в TEE. В данном случае гарантии конфиденциальности перекладываются на TEE, что тоже имеет свои уязвимости. Например, в ходе атаки на сторонний канал можно получить ключи (такие атаки на Intel SGX уже были зафиксированы), а существующие TEE могут потребовать наличия лицензии от производителя или давать производителю возможность нарушить конфиденциальность (хотя такие альтернативы, как Keystone и Gradient, пытаются решить эту проблему).

Заключение

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

Авторы выражают благодарность Brian Gu, Mihaly Barasz и Sizhao Yang за помощь в редактировании черновиков данной статьи.

Авторы: Йи Сунь и Янь Жань

(C) Источник
Не является индивидуальной инвестиционной рекомендацией
При копировании ссылка обязательна Нашли ошибку: выделить и нажать Ctrl+Enter