Конфиденциальность и анонимные криптовалюты
Перевод статьи Эрик Уолла, главного инвестиционного директора в Arcane Assets.
В предыдущих двух частях мы узнали о следах, которые мы оставляем, когда используем биткоин, и об инструментах, которые скрывают эти следы.
Также мы поняли, что достичь полной анонимности в биткоине довольно трудно. Несмотря на то, что существуют общедоступные программные инструменты, которые затрудняют отслеживание биткоин-транзакций, использование этих функций редко бывает бесплатным, а их кодовые базы ― на данный момент ― прошли менее тщательный аудит, что само по себе может считаться риском для конфиденциальности. Несмотря на то, что при разработке биткоина особое внимание уделяется вопросам конфиденциальности, на сегодняшний день по-прежнему остается актуальным следующий вопрос: если целью является сохранение конфиденциальности, то почему бы не использовать анонимную криптовалюту?
В предыдущей части этой серии мы говорили о важности использования нового адреса для каждой транзакции. Простота этой идеи очень важна, поскольку биткоин-адреса, сгенерированного с использованием только компьютерного кода и математики, достаточно, чтобы получать деньги от кого угодно в любой точке мира без каких-либо вопросов. И, поскольку отправитель передает транзакцию, получателю вообще не нужно ничего транслировать в сеть биткоина. Однако даже в этом простом сценарии наша конфиденциальность все еще находится под угрозой из-за отсутствия конфиденциальности контрагента.
Предположим, что вы приобрели биткоины в обменнике и не оставили никаких следов в своих намерениях купить биткоины где-то ещё. Вполне возможно, что вам удастся принять необходимые меры предосторожности, чтобы не оставить никаких следов при этой первой покупке. Но вам нужно будет соблюдать больше мер предосторожности, если вы хотите совершать транзакции чаще, в разных обстоятельствах и с использованием разных типов устройств. Достаточно одной ошибки, чтобы разрушить вашу конфиденциальность. Эта ответственность может стать обременительной для пользователей, которые хотят регулярно использовать криптовалюту.
Разве я не могу просто использовать Lightning Network?
Lightning Network улучшает конфиденциальность в биткоине, о чем мы уже упоминали в первой части. Вы, конечно, можете стать одним из пользователей Lightning, но вы должны учитывать то, что Lightning ― это, прежде всего, технология масштабирования, а не технология по улучшению конфиденциальности биткоина. В настоящее время система быстро развивается и её аспекты конфиденциальности ещё не были тщательно изучены. Кроме того, поскольку это ещё относительно новая технология, нет уверенности в том, что вы найдете много людей, которые используют Lightning Network.
А как насчет сайдчейна Liquid?
Лучше воспринимать Liquid как кошелек с мультиподписью 11-из-15; все деньги, которые вы используете в этой сети, вы фактически доверяете членам этого объединения.
Преимущество Liquid в плане конфиденциальности заключается в том, что он использует технологию Confidential Transactions Адама Бэка и Грегори Максвелла, которая скрывает суммы транзакций. Это улучшает конфиденциальность, но мало что делает для анонимности сторон в сделке. Кроме того, розничные пользователи в настоящее время практически не используют Liquid.
Анонимные монеты
Таким образом, поддержание высокого уровня конфиденциальности в прозрачном блокчейне биткоина является сложной задачей. В будущем протокол биткоина станет более конфиденциальным, но до тех пор имеет смысл обратить внимание на альтернативные криптовалюты, которые ориентированы на сохранение полной анонимности пользователей.
Цель анонимных криптовалют состоит в том, чтобы с помощью криптографии сделать информацию в блокчейне непонятной для наблюдателя, но то же время система должна гарантировать, что все правила в сети соблюдаются.
Если бы разработка такой системы была тривиальной, то не исключено, что она бы уже была реализована в биткоине.
Большая часть криптографических решений, которые сегодня используются в анонимных монетах (Monero, Grin и Beam) изначально возникли как предложения по улучшению конфиденциальности биткоина, но по разным причинам не были реализованы.
Важно понимать, почему разработчики биткоина проявляют осторожность, когда дело доходит до улучшения конфиденциальности. За исключением трудностей реализации, методы улучшения конфиденциальности часто увеличивают размер транзакции, что вредит масштабируемости системы. Также предложение монет ― которое сегодня может проверить любой человек с калькулятором, ― при реализации предложений по улучшению конфиденциальности полагалось бы на доверие к тому, что криптография работает правильно.
- В Monero мы обнаружили и исправили критическую ошибку, которая затрагивает все криптовалюты на основе CryptoNote и позволяет создавать неограниченное количество монет способом, который не может быть обнаружен наблюдателем.
- — getmonero.org, 17 мая 2017 г. (источник)
- Мы обнаружили [и исправили] криптографическую уязвимость, лежащую в основе некоторых доказательств с нулевым разглашением […] злоумышленник мог создать поддельные Zcash, не будучи обнаруженным […] эта настолько тонкая уязвимость, что она не замечалась опытными криптографами на протяжении многих лет анализа систем с реализацией доказательства с нулевым разглашением.
— Electric Coin Company, 5 февраля 2019 г. (источник)
Для ясности: это не значит, что анонимные монеты имеют ошибки, а биткоин ― нет. Ошибки являются проблемой каждой криптовалюты, включая биткоин. Ключевое отличие здесь состоит в том, что, когда ошибка позволяет злоумышленнику напечатать деньги в анонимной монете, она может остаться незамеченной в течение многих лет. Это дает злоумышленнику время для обмена этих монет на другие. Прозрачность биткоина обеспечивает быстрое обнаружение ошибок в эмиссии (пример), что дает пользователям сети возможность исправить ситуацию до того, как ущерб станет системным.
Более того, проблемы с ошибками в коде не ограничиваются только эмиссией. Несмотря на то, что ориентированный на конфиденциальность криптографический протокол может гарантировать высокий уровень анонимности пользователя, сам он может быть реализован с ошибками. Только тщательный анализ ПО компетентными разработчиками может помочь избежать этого.
В известной поэме Роберта Фроста путешествие по «незнакомой дороге» можно интерпретировать как возможность получить новый уникальный опыт и знания. Но в сфере ПО с открытым кодом и криптовалютами этот совет, скорее всего, приведет к новым ошибкам и уязвимостям.
Это сложно. Это мелкие вещи. Если вас интересуют все эти новые проекты с «магическими решениями», то вам к ним лучше относиться скептически. И если вы разочарованы тем, насколько медленно движется биткоин, то я могу сказать, что биткоин движется слишком быстро. Это тяжело и страшно. И нам нужно замедлить темп и быть более осторожными.
— Эндрю Поэлстра, директор по исследованиям в компании Blockstream и соавтор протокола Mimblewimble (основа криптовалют Grin и Beam).
Значит ли это, что анонимные монеты являются плохой идеей? Тут важно понимать компромиссы и риски. Так, хранение своих сбережений в анонимных монетах может быть не самой разумной идеей, но они все ещё являются хорошим вариантами для совершения анонимных сделок.
К недостаткам анонимных монет можно отнести: более высокую волатильность, более высокий риск критических уязвимостей и сбоев, а также меньшее количество организаций, которые принимают такие криптовалюты. Плюсом является более высокий уровень анонимности.
Выбор анонимной монеты
Лучшее, что мы можем сделать, чтобы минимизировать перечисленные выше недостатки, ― это выбрать анонимную монету с компетентными разработчиками. Четырьмя крупнейшими монетами с точки зрения рыночной капитализации (и оценки предполагаемой рыночной капитализации недавно выпущенных анонимных монет) являются Monero, Zcash, Grin и Beam.
Мы поговорили с одним человеком из каждого проекта и предложили им описать своими словами преимущества своего проекта (особенно по сравнению с другими монетами). Несмотря на то, что все эти проекты преследуют одну цель, каждая монета имеет свой собственный набор компромиссов в отношении конфиденциальности, безопасности, масштабируемости и удобства использования.
I. Monero
У Monero нет вознаграждений основателям, нет доверенной настройки и нет премайна. Monero ― это настоящая децентрализованная виртуальная валюта в соответствии с правилами и рекомендациями FinCEN. У Monero нет компании, нет регулирующего органа. Обязательная конфиденциальность для всех в Monero обеспечивает большой анонимный сет. Также важна эмиссия монеты. Monero всегда будет иметь минимальное вознаграждение за блок в размере 0,6 XMR ― это будет стимулировать майнеров постоянно обеспечивать безопасность сети.
К любому проекту, который претендует на идеальную конфиденциальность, следует относиться с особой осторожностью и скептицизмом. Тем не менее, я считаю, что Monero предлагает очень конкурентоспособное решение для обеспечения конфиденциальности.
— Франциско «ArticMine» Кабаньяс, Monero Core
Проект Monero был запущен в 2014 году ― это самая старая из четырех представленных монет. Технологии, которые обеспечивают конфиденциальность в Monero: кольцевые подписи, кольцевые конфиденциальные транзакции и скрытые адреса. Эти три технологии смешивают потраченные монеты в сете ложных путей (приманок), скрывают отправляемые суммы и адреса получателей.
Ключевыми терминами в вышеприведенном абзаце являются «смешать» и «скрыть». Когда что-то смешано, отследить это становится трудно, потому что создается слишком много шума ― это все равно, что слушать одну песню, когда одновременно играют 10 других. В этой аналогии количество песен называется «сетом анонимности».
Это обеспечивает хорошую, но не идеальную конфиденциальность. Monero стала одной из первых анонимных криптовалют, которая в прошлом сталкивалась с уязвимостими конфиденциальности пользователей (её меры по решению этих проблем можно найти на странице Monero Research Lab).
Рекомендованный кошелек: Monero GUI Wallet + Monerujo (приложение для Android, которое можно подключить к Monero GUI Wallet).
II. Zcash
Zcash обеспечивает конфиденциальность в мире машинного обучения и искусственного интеллекта. Monero, Grin и Beam этого не делают. Они используют приманку, чтобы скрыть то, что вы делаете. Хотя это помогает, приманки не мешают продавцам отслеживать вас через ваши платежи. Приманки не помешают вашему боссу узнать, что вы неоднократно посещали стрельбище или гей-бар. Приманки не защитят вас, если вы диссидент, пытающийся принимать пожертвования в интернете, но скрываете свое настоящее имя. Тут они уязвимы особенно сильно: получение небольшого количества монет от полиции позволило бы авторитарному правительству идентифицировать и задержать вас.
Подходы Monero, Grin и Beam к анонимности почти так же хороши, как и побуквенное произношение S — — E — — X при разговоре с вашей женой. Ваш трехлетний ребенок может и не узнать о ваших планах. Но это не будет работать всегда ― ребенок повзрослеет, как и блокчейн-анализ, который сейчас находится на начальных этапах развития.
— Ян Майерс, соучредитель Zcash
Технология zk-SNARKs обеспечивают высокий уровень анонимности в любой криптовалюте. Этот технология не зависит от смешивания. Анализируя блокчейн, вы не найдете никакой информации об отправителях, получателях или суммах транзакций. Валидация в системе обеспечивается без предоставления наблюдателю какой-либо полезной информации.
Тем не менее, Zcash пришлось заплатить цену за эту, казалось бы, волшебную технологию конфиденциальности. Компромиссом стала доверенная установка. Это критическая фаза запуска сети, когда случайные данные генерируются группой людей, которые не должны делиться этими данными друг с другом. Если эти данные объединить, их можно использовать для создания фейковых Zcash.
То, что конфиденциальность монеты не зависит от смешивания, не означает, что сет анонимности бесконечен. Анонимность в блокчейне становится возможной благодаря тому, что её используют все пользователи сети. В Zcash, к сожалению, это не совсем так, потому что в блокчейне Zcash есть два типа адресов ― t-адреса и z-адреса ― и только транзакции между z-адресами полностью анонимные. T-адреса так же прозрачны, как и обычные биткоин-транзакции.
Если вы знаете, что число людей, использующих Zcash ежедневно в глобальном масштабе, в лучшем случае составляет несколько десятков, каковы шансы вычислить вас в толпе?
С другой стороны, если вы живете в небольшом городе, где почти никто не использует криптовалюту, описанный выше сценарий применим для любой криптовалюты; одного использования криптовалюты достаточно, чтобы заметить кого-то в толпе. Именно поэтому масштабируемость важна для анонимных монет, поскольку количество транзакций, которое обрабатывает система, является ключевым компонентом анонимного сета.
Рекомендованный кошелек: ZecWallet + Companion App для Android.
III. Grin
Grin скрывает суммы транзакций и личность отправителей и получателей; тут нет адресов. Функции конфиденциальности включены для всех пользователей и транзакций в сети Grin. Напротив, подход к конфиденциальности, выбранный предыдущими проектами, поощряет слежку и цензуру и может привести к маргинализации.
Блокчейн Grin относительно легкий ― в нем хранится мало данных, что позволяет новым пользователям проводить его быструю загрузку и синхронизацию. Grin является доказательством того, что функции конфиденциальности не всегда сильно нагружают или усложняют блокчейн.
Тут нет доверенной настройки ― Grin полагается на сравнительно простые криптографические предположения, которые проверены временем. В проектах, которые используют экспериментальную или новую криптографию, больше шансов найти критические ошибки. Это неудивительно, поскольку мало кто в мире, иногда даже сами исследователи, способны полностью понять (не говоря уже о аудите) используемые решения.
У Grin нет фонда или компании. Нет инвесторов, нет офисов, нет генерального директора. Также нет ICO, вознаграждения разработчиков и нет способа быстро разбогатеть за счет других. Развитие осуществляется сообществом, а финансирование осуществляется в форме пожертвований без каких-либо условий.
— Даниэль Ленберг, разработчик Grin
В первой части мы описали, как CoinJoin объединяет входы и выходы нескольких транзакций. В этой статье мы затронули тему «конфиденциальных транзакций», которые скрывают сумму транзакций, что при одновременном использовании CoinJoin могло бы значительно улучшить возможности микширования. Позже было обнаружено, как транзакции могут быть объединены в CoinJoin, не требуя какой-либо координации между отправителями, а данные промежуточных транзакций могут быть удалены из блокчейна. Эта идея стала основой для нового протокола под названием Mimblewimble.
И Grin, и Beam были запущены в январе этого прошлого года. Интерес к этому протоколу связан с тем, что он масштабируется лучше, чем биткоин, и имеет существенные улучшения в плане конфиденциальности. Протоколы на основе Mimblewimble синхронизируются быстрее и имеют более низкие требования к памяти, поскольку они оставляют намного меньше данных в блокчейне.
Один из недостатков протоколов на основе Mimblewimble заключается в том, что они требуют обмена сообщениями между отправителем и получателем для выполнения транзакции. Это означает, что когда два человека совершают сделки, их IP-адреса будут открыты друг для друга. Разработчики создали посредников (grinbox) для передачи зашифрованных сообщений между пользователями. Это не решает проблему полностью, поскольку вы все еще открываете свой IP-адрес этому посреднику, однако ваш IP ― это ваша ответственность. Когда вы связываетесь с grinbox, вы можете скрыть свой реальный IP-адрес через i2p, VPN и/или Tor.
Рекомендованный кошелек: Niffler
IV. Beam
Beam обеспечивает гораздо лучшую масштабируемость, чем Monero или Zcash, лучшую конфиденциальность, чем Grin или Monero, и лучшую «конфиденциальность на практике» по сравнению с Zcash.
Если вам нужна простота использования при сохранении достаточного уровня конфиденциальности, то Beam ― ваш лучший выбор. Попробуйте мобильные кошельки Beam и вы все сами увидите.
— Ги Корем, Beam
Давайте вспомним слова Ленберга: «Grin скрывает суммы транзакций и личность отправителей и получателей; тут нет адресов».
Тем не менее, протокол Mimblewimble не очень хорошо скрывает так называемый «граф транзакций». Это означает, что в Mimblewimble (до того, как транзакция была завершены в блокчейне) наблюдатель все еще может видеть, как транзакции ссылаются друг на друга. Разработчики Beam объясняют проблему таком примере:
Предположим, у Боба есть магазин, а Алиса его соперница, она хочет знать поставщика Боба. Таким образом, она платит Бобу (что-то покупает у него), затем Боб платит своему поставщику Чарли, позже Чарли платит Дэну. Алиса видит все эти транзакции, но не имеет представления о пользователях.
В конце концов, она узнает о Дэне (он покупает что-то у Алисы). Алиса любезно просит [взятки/угрозы/пытки] Дэна рассказать ей, от кого он получил этот UTXO, таким образом раскрывается Чарли. На каждом этапе Алиса уверена, что существует связь с пользователем.
И Grin, и Beam решили эту проблему, используя CoinJoin, которые не взаимодействуют друг с другом. Перед тем, как транзакция транслируется по сети, она сначала перенаправляется ряду других пользователей, где каждый человек добавляет свои собственные транзакции, которые они хотят отправить. Из-за природы протокола Mimblewimble транзакции могут быть объединены друг с другом без какой-либо координации, поэтому содержимое пакета смешано, но остается действительным.
Заявление Beam о превосходной конфиденциальности по сравнению с Grin состоит в том, что в Beam пользователи сами создают несколько фиктивных UTXO, так что независимо от того, сколько пользователей добавляют транзакции в какой-то конкретный момент времени, всегда существует минимальный анонимный сет. Вместо grinbox Beam разработал собственную децентрализованную систему адресации, которая должна упростить взаимодействие пользователей друг с другом без утечки информации об IP-адресах. Тем не менее, важно ещё раз подчеркнуть, что это новые проекты и многое ещё может измениться в будущем.
Тот факт, что конфиденциальность по-прежнему основана на смешивании (как заметил Майерс), является самым слабым местом Beam, поскольку она является самой мелкой монетой из четырех. Также Beam (по сравнению с другими монетами) больше всех напоминает проект компании, из-за чего у этой монеты довольно слабая связь с сообществом разработчиков открытого ПО (хотя Beam прошел несколько аудитов безопасности).
Рекомендованный кошелек: Beam Wallet