Как идеально «отмыть» биткойны

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

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

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

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

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

Еще одна проблема: некоторые думают, что термин «отмывание денег» звучит недостаточно преступно, поэтому они придумали «законы о структурировании», т. е. законы, которые запрещают не только покупать «нехорошие вещи», но и скрывать маршруты денежных переводов, даже если вы не делаете ничего противозаконного. Если вы станете отмывать свои биткойны настолько явно, что это будет заметно по цепочке блоков (как в случае Zerocoin, когда используются общие адреса или транзакции CoinJoin), у вас могут возникнуть проблемы. Возможно, вы защитите свою конфиденциальность, но вас обвинят в «структурировании». Чтобы оставаться законопослушным гражданином, в некоторых странах вы теперь не имеете права скрывать свою финансовую историю. Если вы имеете несчастье жить в условиях такого финансового тоталитаризма, считайте, что в данной статье информация приводится исключительно в познавательных целях. Соблюдайте законы и оставайтесь добросовестными, социально ответственными гражданами.

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

Разделим выполнение этой задачи на четыре этапа: обнаружение, страхование, разбиение и обмен.

Оговорка: это не совет, а технический обзор для тех, кто интересуется проблемами защиты конфиденциальности при использовании биткойнов. Любой человек может реализовать описываемую технологию или даже улучшить ее. Это даже не моя оригинальная идея. Я рекомендую правительствам отключить всю сеть, если они хотят помешать людям использовать биткойны в незаконных операциях. В то же время, агенты ФСБ под прикрытием могут использовать эту схему для обнаружения пользователей, «перемешивающих» свои биткойны.

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

Шаг 2. Если оба узла считают монеты друг друга пригодными, они заключают контракт с двойным залогом. Каждая сторона блокирует одинаковое количество монет в одной специальной транзакции, которая может разблокировать монеты только атомарно и по взаимному согласию. В то же время, каждая сторона может аннулировать оба депозита (например, в случае превышения времени ожидания или нарушения условий другой стороной). Сумма каждого депозита должна составлять 200-300% от обмениваемой суммы. Мы уже писали о механизме таких контрактов в этой статье.

Шаг 3. Каждый узел разбивает свои монеты на две части. Одна часть обменивается сразу, а другая должна быть обменена с другим узлом позднее. Эти части должны быть равными. (В этом случае возникает некоторая корреляция, которую можно обнаружить в цепочке блоков, но это легко исправить, если использовать несколько независимых транзакций вместо одной).

Шаг 4. Каждый узел сообщает другому адрес, на который нужно отправить часть монет. Каждый из них выполняет соответствующую транзакцию. Остальные узлы не знают об этом обмене монетами и, следовательно, не могут связать их. Если ваши монеты были «запятнаны» (отслеживались третьей стороной), половина из них автоматически уйдет к кому-то другому, а взамен вы получите абсолютно другие монеты. Залоговый контракт не позволяет одному из узлов получить платеж, но не исполнить свой. Поскольку эта схема работает без вмешательства человека, любой, кто попытается обмануть ее, будет наказан при автоматическом аннулировании депозита (который существенно превышает полученную обманным путем сумму).

За один сеанс (во время действия одного страхового контракта) узлы могут обменяться монетами несколько раз, пока не закончатся все монеты или «статистически пригодные» монеты. После завершения сеанса страховые депозиты разблокируются и оба узла возвращаются к поиску других партнеров.

Теперь подумайте: вы разбиваете все свои монеты на тысячу частей и отправляете их тысяче случайных получателей посредством обычных, «статистически чистых» транзакций. Взамен вы получаете тысячу частей от отправителей со всего мира, которые не связаны друг с другом каким-либо показательным образом. За десять раундов деньги разбиваются на 1024 частей, а за 20 – больше, чем на миллион. Через короткий промежуток времени у вас останется лишь мизерная часть исходных монет и вы получите лишь по частице платежных историй других пользователей.

Как эта схема решает описанные вначале статьи проблемы?

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

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

Наконец, если ваши деньги отслеживаются («запятнаны»), то они полностью перейдут к другим владельцам. Вы сами практически не рискуете получить чью-то «запятнанную» историю, так как никогда не получите более 0,1% от нее благодаря многочисленным раундам разбиения.

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

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

Автор: Олег Андреев



Categories: Законы, Разработчикам, Технологии

Leave a Reply

8 Комментарий на "Как идеально «отмыть» биткойны"

Notify of
avatar
trackback
Доказывает ли Биткойн, что Бога нет? | Bit•Новости

[…] Помазанники божьи остались без информации! […]

trackback
Таксономия биткойн-миксеров | Bit•Новости

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

Вячеслав
Гость

В такой схеме видятся две проблемы:
1. Если монеты будут перемешиваться всю ночь в автоматическом режиме, значит всё это время введённый пароль должен храниться в приложении или кошелёк должен быть не зашифрован. Это не безопасно.
2. Если каждый держатель монет начнёт применять подобное перемешивание, то страшно представить что будет с размером блокчейна, да и нагрузка на сеть возрастёт многократно.

Алексей Шерстнёв
Гость

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

Глеб
Гость

Заумно, залоги 200-300%. Не очень подходит для курпных сумм. Я предпочитаю BITMIXER.IO — мгновенно и всегда в наличии любая сумма. Ну почти любая — до 2 тыс. BTC.

arvicco
Администратор

Ну да, пока этот самый Bitmixer.io не сбежал с доверенными ему деньгами пользователей. Олег же предлагает схему, для которой это самое доверие не требуется.

CryptoBoomer
Гость

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

daybit
Гость

> Ведь соблюдение законов – это самое главное, верно?

веселая ремарка

wpDiscuz