О безопасности криптовалют и смарт-контрактов рассказывает специалист по криптографии Харалампос (Бабис) Папаманту, ассистент-профессор Мэрилендского университета в Колледж-Парке. Узнать больше о современных технологиях и их влиянии на наше будущее можно в проекте «Банк знаний», созданном совместно с Корпоративным университетом Сбербанка.

— Какая идея лежит в основе технологии блокчейна?

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

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

— Что предполагает анонимность криптовалют? Как можно ее измерить?

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

— Какая форма анонимности у биткоина? Можно ли говорить об анонимности в условиях системы прозрачных транзакций?

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

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

— Считается, что для обеспечения анонимности стоит проводить каждую транзакцию через разные адреса. Насколько это эффективно?

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

— Какие сложности могут возникнуть при создании новых аккаунтов для транзакций и что в таком случае происходит со старыми аккаунтами?

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

— Биткоин-кошельки функционируют через создание новых адресов для разных транзакций. Как это влияет на анонимность?

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

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

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

— Какие действия, помимо повторного использования адреса, могут угрожать анонимности операций с криптовалютами?

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

— Какие формы атаки на криптовалюты распространены и как от них можно защититься?

— Наиболее распространенными мы называем «атаки 51 процента»: тот, кто контролирует мощность хеширования биткоина на 51%, потенциально может отменять транзакции в блокчейне. Теперь известно, что аналогичные атаки могут проводиться и без контроля над мощностью хеширования. В смарт-контрактах неполадки в коде могут привести к переводу средств тем, кто совершает атаку. Такое произошло с Ethereum в результате атаки на DAO.

— Есть ли отличия у анонимности в смарт-контрактах?

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

Сегодня нет действующей системы смарт-контрактов, которая гарантировала ту же анонимность, что Zcash. В академической среде есть несколько разработок на этот счет (например, Hawk, созданный в моей группе), но предстоит преодолеть еще много трудностей, прежде чем все эти разработки могут быть выпущены как криптовалюты.

— Криптовалюты часто ассоциируются с нелегальными транзакциями. Как можно избежать злоупотребления анонимностью, которую они предлагают?

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

— Какая криптовалюта из существующих сегодня предлагает наиболее высокий уровень анонимности?

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

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

Рекомендуем по этой теме:
11836
Почему популярны криптовалюты?

— Как может быть найден баланс между прозрачностью транзакций, часто воспринимаемой как положительный факт, и анонимностью?

— Существует очевидный компромисс между ними. На сайте Blockchain любой человек может посмотреть все транзакции в Bitcoin. Это полная прозрачность, но нулевая анонимность. Мне кажется, что криптография поможет лучше сбалансировать эти противодействующие тенденции. Например, абсолютно анонимные технологии вроде Zcash можно расширить таким образом, чтобы по требованию уполномоченных органов пользователи раскрывали свои транзакции (допустим, те транзакции, которые были произведены после определенной даты).

— С какими сложностями сталкивается защита анонимности в системе криптовалют?

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