Создатель Hidden Wallet — о проблемах анонимности биткоина и конфиденциальных транзакций

В серии недавних записей в своем блоге на Medium nopara73 рассказал о методах отслеживания транзакций в сети биткоина, стратегиях, которые используют компании по безопасности, и способах уйти от их внимания. Также создатель Hidden Wallet предположил, как новые решения, над которыми работают разработчики, могут повысить анонимность пользователей.

ForkLog приводит адаптированный перевод рассуждений разработчика.

По состоянию на февраль 2018 года путь к анонимному биткоину стал, наконец, понятен. И если высокий уровень анонимности сам по себе был уже достижим, стратегий, которые бы позволяли его реализовать удобным и недорогим способом, не было. Однако в 2017 году появились новые технологии, которые делают это возможным. Более того, можно считать лишь вопросом времени наступление момента, когда анонимные транзакции станут более дешевыми, чем прозрачные транзакции.

Стратегии деанонимизации

Компании, которые работают над деанонимизацией пользователей биткоина, применяют две стратегии:

  • Анализ сети
  • Анализ блокчейна

Анализ сети

Трансляция приватных транзакций

Трансляция транзакций приватным образом весьма непроста. Сегодня заботящийся о своей приватности разработчик может использовать анонимные сети, например, Tor. Но в январе 2017 года был представлен проект Dandelion, который предлагает механизм трансляции приватных транзакций, устраняя зависимость от анонимной сети.

Извлечение приватных транзакций

Вам необходимо знать, сколько у вас есть денег. Для этого вам необходимо об этом кого-то спросить. Но если вы кого-то спрашиваете о том, сколько у вас денег, этот человек также будет знать, сколько у вас денег. Вы скажете, что можно об этом спросить через Tor и проблема будет решена? Нет. В вашем кошельке много биткоин-адресов, и если вы кого-то спросите, сколько денег на этих адресах, эта третья сторона будет знать, что эти адреса принадлежат одному и тому же человеку.

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

Однако управление полной нодой – также далекий от удобства процесс. Нужно подождать несколько дней или даже недель, прежде чем блокчейн будет синхронизирован и вы сможете пользоваться кошельком. Почему бы не начать синхронизацию с момента создания кошелька? Так и родилась идея полного SPV-кошелька, над имплементацией которой работают такие проекты, как Bitcoin Core PR Йонаса Шнелли, Breeze Wallet от команды Stratis и я со своим Hidden Wallet.

Однако и это по-прежнему неудобно, в том числе при работе на мобильных телефонах. Если такой кошелек не включать в течение недели, перед началом работы будет необходимо загрузить 1008 блоков, то есть порядка 1-4 Гб данных.

В июне 2017 года на помощь пришли исследователи Lightning Labs, представив предложение по улучшению биткоина Compact Client Side Filtering for Light Clients (компактная фильтрация на стороне клиента для легких клиентов). Также они разработали необходимую имплементацию под названием Neutrino.

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

Анализ блокчейна

В 2013 году Грегори Максвелл представил CoinJoin, метод, при котором многочисленные участники добавляют входы и выходы к общей транзакции, запутывая тем самым таблицу транзакций. Еще более сильный вариант предлагает регистрация участников в CoinJoin с одинаковыми суммами. Таким образом невозможно определить, от какого входа какому были переданы средства.

Этот метод был кратко описан Максвеллом в разделе Chaumian CoinJoin на странице проекта Zerolink на GitHub.

В 2014 году была предложена еще одна схожая технология под названием CoinShuffle, а еще через год появилась ее итерация CoinShuffle++. Этот метод основывается на раундах: если у вас есть 8 биткоинов, а участие в одном раунде CoinJoin оценивается в один биткоин, вам необходимо принять участие в восьми раундах. Соответственно, комиссию также будет необходимо заплатить восемь раз.

Но не это самое страшное: если исследователи начнут изучать цепи транзакций, пользователей CoinJoin также можно деанонимизировать. По этой причине необходим специальный кошелек с контролем приватности монет. Для решения этих проблем в 2017 году я разработал и имплементировал ZeroLink, где также проработана идея CoinJoin Максвелла.

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

И тут появляются конфиденциальные транзакции (Confidential Transactions)! Именно это они и решают, заменяя значения выходов «обязательствами Педерсена». Проблема в том, что эти обязательства огромны, и чем больше сумма транзакции, тем больше приходится за нее платить. По этой причине вероятность появления CT в биткоине была крайне мала, но, даже если бы они и были имплементированы, потребовалась бы некая гибридная модель CoinShuffle/ZeroLink, чтобы удерживать комиссии на адекватном уровне.

Однако в ноябре 2017 года была представлена технология Bulletproofs, которая является улучшенной версией Confidential Transactions. Она делает размеры обязательств меньше – теперь они становятся не огромными, а просто большими. Что более важно, если вы хотите вместить больше CT-выходов в одну транзакцию, размер транзакции не растет линейно с числом выходов. Это очень хорошо для CoinJoin, где число выходов может оказаться действительно высоким, и участие в такой транзакции будет сопровождаться такими же комиссиями, как и при обычной транзакции.

CT также могут быть легко добавлены в CoinShuffle и ZeroLink. Они не только упрощают эти системы, но снимают многие ограничения, с которыми сталкиваются пользователи. Совместимая с CT версия CoinShuffle называется ValueShuffle.

Но есть новости еще лучше! Скоро в биткоине появится еще одна технология – подписи Шнорра. Сегодня, если транзакция CoinJoin имеет 100 выходов, она должна иметь 100 подписей. С подписями Шнорра будет достаточно одной подписи. Это сделает транзакции CoinJoin на 30-40% дешевле обычных транзакций.

Вывод

Таким образом, объединив микширование посредством CoinJoin с другими высокоанонимными методами, транзакции становятся на 30% дешевле традиционных «прозрачных» биткоин-транзакций.

В своей следующей записи nopara73, однако, рассматривает вопросы, которые не вошли в его предыдущий пост. Речь идет о проблемах имплементации Confidential Transactions/ Bulletproofs, какими бы революционными они ни казались.

Слон в посудной лавке

Я проигнорировал «слона в посудной лавке», поэтому должен поправить себя: по состоянию на сегодняшний день эта технология не может быть интегрирована в биткоин.

CT нуждается в софтфорке, и консенсуса для этого не будет. Касательно Bulletproofs, там есть каверзный технический вопрос. Обратимся к white paper:

«Bulletproofs, как и доказательства цифровых значений, которые используются в Confidential Transactions, привязаны к вычислениям. Злоумышленник, который может взломать предположение дискретного логарифмирования, может сгенерировать доказательства цифровых значений, которые будут приемлемыми для значения за пределами корректного значения…

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

Если предположение дискретного логарифмирования, как считается, устойчиво к классическим компьютерам, оно не устойчиво к квантовому злоумышленнику».

Это означает, что квантовые компьютеры могут взломать Bulletproofs, создавая «тихую инфляцию». Разработчики биткоина это не примут.

Итак, увидим ли мы Confidential Transactions/ Bulletproofs в биткоине, и если да, то когда? Возможно, это будет противоречить сказанному выше, но я допускаю, что в период от 3 до 10 лет мы придем к здоровому решению по сокрытию транзакций и их сумм, как бы его ни назвали: Confidential Transactions, Bulletproofs, Mimblezeroringshuffleproofs или как-нибудь еще. Я буду очень удивлен, если на этом все закончится. К счастью, прогресс в технологиях не останавливается.

Подписывайтесь на новости ForkLog в Twitter!

Подписывайтесь на ForkLog в социальных сетях

Telegram (основной канал) Discord Instagram
Нашли ошибку в тексте? Выделите ее и нажмите CTRL+ENTER

Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!

*Ежедневная рассылка — краткая сводка наиболее важных новостей предыдущего дня. Чтение занимает не больше двух минут. Выходит в рабочие дни в 06:00 (UTC)
*Еженедельная рассылка — объясняем, кто и как изменил индустрию за неделю. Идеально подходит для тех, кто не успевает за новостным потоком в течение дня. Выходит в пятницу в 16:00 (UTC).

Мы используем файлы cookie для улучшения качества работы.

Пользуясь сайтом, вы соглашаетесь с Политикой приватности.

OK
Exit mobile version