Опубликован: 01.02.2018 | Доступ: свободный | Студентов: 1346 / 258 | Длительность: 17:50:00
Лекция 6:

Основы анонимности

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >

Микширование (смешивание)

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

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

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

По похожей схеме работают онлайн-кошельки. В них можно сохранить биткоины, пока они не понадобятся. Но обеспечивают ли они при этом анонимность?

В блоге New York Times Bits была запись, в которой сообщалось о предварительной публикации документа двумя израильскими исследователями, описывающего связь между Dread Pirate Roberts, создателем псевдонимов SO Crib, и Сатоши Накамото. Но, как выяснилось позже, это было ошибкой, так как ссылка использовала посредника ModGaks, который является сервисом онлайн-кошелька. Авторам пришлось отказаться от своего исследования, так как они допустили ошибку и не учли наличия посредника в схеме.

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

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

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

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

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

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

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

Отклонив онлайн-кошельки как решение для обеспечения высокой анонимности, обратимся к специализированным сервисам микширования. Их называют mix (смешение) или миксером (mixer). Есть еще термин "прачечные", но он придает излишний моральный смысл техническому термину, подразумевая, что сервисы микширования "отмывают деньги". На самом деле существует множество легальных причин, по которым пользователи могут хотеть повысить свою конфиденциальность и анонимность. В дальнейшем будем использовать технически нейтральный термин миксер. Ряд исследователей из Принстона, Конкордии и Мэриленда предложили серию изменений для улучшения работы миксеров, как с точки зрения анонимности, так и с точки зрения надежности. Далее в ходе лекции будут рассмотрены предложенные исследователями способы.

Как работает миксер? Он запрашивает адрес, по которому пользователь хочет получать биткойны, и он дает ему адрес для отправки биткойнов в миксер, а затем они оба выполняют транзакцию. Первый способ увеличения анонимности - использовать серию миксеров вместо одного миксера. Этот принцип был предложен Дж. Бонуа и др., в 2014 г. в статье "Смешанные монеты: Анонимность для Биткоина с учетом микширования". Использование серии маршрутизаторов при межсетевом взаимодействии имеет тот же эффект.

Миксеры должны реализовывать стандартный программный интерфейс. Сейчас на практике это не совсем так. Рассмотрим, как серия миксеров будет выглядеть визуально.

Серия миксеров

Рис. 6.8. Серия миксеров

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

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

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

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

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

Это создает некую уязвимость, потому что если миксер принимает стандартный процент, тогда противник может использовать эту информацию для привязки входной транзакции и внешней транзакции. Поэтому некоторые текущие миксеры пытаются рандомизировать комиссию за транзакцию. Они говорят, что спишут случайную сумму между 1% и 3%. Это не очень хорошая идея, потому что, если провести это через цепь миксеров, тогда величина значения во фрагменте (фрагмент – сумма, которую ввел пользователь) будет сокращаться предсказуемым образом, и это важная зацепка для противника.

Один из способов решения указанной проблемы заключается в том, чтобы сборы за микширование работали по принципу "все или ничего".

Другими словами, миксер должен либо поглотить весь фрагмент с небольшой вероятностью, либо вернуть весь фрагмент. Если миксер хочет взимать плату за микширование в размере 0,1%, тогда один раз из 1000 миксер должен поглотить весь фрагмент и 999 раз из 1000 миксер должен вернуть весь фрагмент, не принимая никакой платы за микширование.

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

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

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

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

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

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

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

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

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

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

Терминологический словарь

Микширование - Биткоин миксер (англ. Bitcoin mixer, Bitcoin tumbler, Bitcoin mixing service) — это анонимный сервис, который усложняет или делает практически невозможным отслеживание Биткоин-транзакций до конечного получателя.

Онлайн кошелек - (англ. e-Purse или e-Wallet) — смарт-карта или другой электронный носитель со встроенным чипом, позволяющий хранить электронные деньги и осуществлять различные платежи

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >