Суббота , 16 ноября 2024
Home / Майнинг / Отследи меня, если сможешь: как работают анонимные множества в Биткойне

Отследи меня, если сможешь: как работают анонимные множества в Биткойне

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

Возможно, вы уже знакомы с Whirlpool, реализацией CoinJoin, доступной в мобильном кошельке Samourai Wallet или десктопном Sparrow Wallet. В Whirlpool CoinJoin вы увеличиваете приватность через участие в многосторонней транзакции, способной поставить в тупик любого, кто попытается методами блокчейн-анализа определить, куда именно были направлены ваши биткойны.

Whirlpool CoinJoin — это такая же биткойн-транзакция, как и любая другая, состоящая из входов и выходов. Но все ее входы предоставляются разными кошельками и каждый из выходов возвращается в один из участвующих кошельков. Такая транзакция организуется центральным координатором Whirlpool от Samourai Wallet, при этом координатор не видит взаимосвязи между входами и выходами транзакции (то есть какой выход относится к какому входу) и вы ни на секунду не передаете никакому посреднику свои биткойны.

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

Я присоединяюсь к Whirlpool, предоставляя один из входов для общей транзакции, которая имеет примерно следующий вид:

  • 5 UTXO входов;
  • 5 UTXO выходов;
  • каждый входной UTXO принадлежит одному из пяти участвующих в транзакции кошельков;
  • каждый выход принадлежит одному из пяти участвующих в транзакции кошельков;
  • все выходы транзакции имеют равный номинал.
  • Методами блокчейн-анализа невозможно однозначно определить, какой из пяти выходов транзакции принадлежит мне. Все детерминированные связи между входами и выходами транзакции оказываются разорваны. Так что, если работодатель вдруг решит поинтересоваться, как я трачу выплаченные мне BTC, он увидит, что я «вошел» в Whirlpool, и с этого момента будет вынужден исходить из того, что мои монеты в результате этой транзакции находятся в одном из пяти ее выходов, так? На самом деле, конечно, я бы мог спрятаться и среди гораздо большего множества кошельков. Чтобы понять, как, давайте рассмотрим, что собой представляют и как работают анонимные множества Whirlpool.

    Анонимные множества Whirlpool

    При использовании Whirlpool, ваши биткойны разбиваются на более мелкие части в зависимости от номинала выбранного пула: 0,5 BTC, 0,05 BTC, 0,01 BTC или 0,001 BTC. Благодаря архитектуре Whirlpool, выходы, остающиеся в номинале пула, могут быть бесплатно микшированы повторно, без каких-либо дополнительных затрат для пользователя (подробнее об этом расскажу ниже).

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

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

    На следующей инфографике показано, как анонимное множество, в котором скрываются мои монеты, может увеличиваться без ремикширования с моей стороны. После первого микса мой UTXO, красная точка, остается в пуле и впрямую не ремикшируется. Однако два других участника пула продолжили ремикшировать свои выходы, в результате чего появилось еще четыре CoinJoin-транзакции, связанных с моим первым миксом. Чтобы рассчитать мое результирующее анонимное множество, надо пересчитать UTXO с одинаковой суммой (оранжевые точки) плюс мой выход с той же суммой (красная точка) — в сумме 21.

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

    Почему повторное микширование бесплатно?

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

    Когда вы впервые «входите» в Whirlpool, ваш кошелек — Samourai или Sparrow Wallet — передает т.н. нулевую транзакцию, или сокращенно Tx0. Это претранзакция перед «заходом в пул», и она делает три вещи:

    1. Премикс UTXO: готовит ваши биткойны к микшированию, разбивая их на UTXO меньшего номинала (плюс еще немного сатоши).
    2. Фиксированная комиссия пула: плата сервису за координирование Whirlpool-транзакции.
    3. Doxxic Change: сдача, возвращающая вам излишек биткойнов, слишком малый для микширования в пуле с этим номиналом. Doxxic ее называют, потому что она по-прежнему связана с предыдущей историей ваших BTC.
      (Сдача может быть возвращена также, если сумма, которую вы пытаетесь отправить в Whirlpool, превышает установленный координатором лимит; без учета выхода с комиссией координатора, для пулов по 0,001 BTC лимит для Tx0 составляет максимум 25 UTXO, а для пулов по 0,01 / 0,05 / 0,5 BTC — максимум 70 UTXO.)

    Взгляните на эту реальную Tx0. Это можно сделать, например, в следующих блок-эксплорерах:

    Transaction ID: bcb4d9dfde37215f2ede6142c651981e22f70e549c03cd341a71dffe8b2dce57

  • kycp.org
  • oxt.me (разверните транзакцию двойным кликом по синему кругу, затем можно уменьшить масштаб)
  • mempool.space
  • В этой Tx0 (см. график ниже) были созданы 3 премикс-UTXO. Все они принадлежат одному кошельку и предназначены для микширования в пуле по 0,001 BTC. Обратите внимание также, что каждый из этих UTXO имеет чуть больший номинал («плюс еще немного сатоши»), чем выбранная размерность пула. Этот момент я обязательно проясню ниже.

    Здесь стоит упомянуть очень важный аспект Tx0: управление doxxic-сдачей. Doxxic Change — это ваши биткойны, которые всё ещё прямо ассоциированы с прежней их историей, однако слишком малы для микширования в Whirlpool. Tx0, по задумке, возвращает doxxic-сдачу в другую область вашего кошелька, нежели ваши микшируемые биткойны. Это исключает возможность «выстрелить себе в ногу», в будущем случайно создав транзакцию, в которой вы потратите микшированные биткойны в одной транзакции с doxxic-сдачей, что свело бы на нет достигаемые в CoinJoin преимущества приватности.

    Теперь вы готовы к микшированию. Один за другим ваши премикс-UTXO выбираются координатором Whirlpool для участия в своей первой CoinJoin-транзакции. Один из ваших премикс-UTXO станет одним из пяти входов CoinJoin-транзакции.

    Координатор Whirlpool также организует для участия второй премикс-UTXO — пиринговый (peer). Этот пиринговый премикс-UTXO поступает из кошелька другого пользователя, прошедшего на входе в Whirlpool через такой же процесс, что и вы. Помните, что при создании нулевой транзакции ваши биткойны разбиваются на несколько UTXO номиналом пула «плюс еще немного сатоши»? Так вот: эти «немного сатоши» от премикс-UTXO и пирингового премикс-UTXO в сумме оплачивают комиссию майнера за CoinJoin-транзакцию. В примере на графике ниже сумма, подлежащая уплате майнерам, составляет 907 сат. плюс 907 сат. — итого 1814 сатоши.

    Здесь-то и наступает звездный час для ремикшеров. Координатор Whirlpool случайным образом выбирает три ремикшируемые UTXO, уже прошедшие через свое первое микширование. Эти три ремикшируемые UTXO хранятся в своих соответствующих кошельках и, что важно, продолжают числиться в «непотраченной емкости» Whirlpool, поскольку не были потрачены своими владельцами. До тех пор, пока эти соответствующие кошельки остаются онлайн, эти монеты продолжают претендовать на повторное микширование.

    Подведем итог:

  • Ваш премикс-UTXO: платит комиссию майнерам.
  • Пиринговый премикс-UTXO: платит комиссию майнерам.
  • Ремикшируемые UTXO: участвуют в CoinJoin бесплатно.
  • Когда создание CoinJoin между пятью различными кошельками завершено, транзакция автоматически транслируется в сеть. Пять входов транзакции при этом разрушаются, создавая пять новых, неотличимых друг от друга, равных выходов. Все эти равные выходы теперь могут претендовать на повторное микширование, если того пожелают их владельцы.

    Хотя ремикшируемые UTXO еще называют фрирайдерами (то есть попросту «безбилетниками» в этом контексте), они являются неотъемлемой частью архитектуры Whirlpool, не только обеспечивая анонимное множество для премикшеров, платящих комиссии майнерам за CoinJoin-транзакцию, но и увеличивая анонимное множество для прежних участников микширования.

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

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

    Анонимные множества Whirlpool, продолжение

    Теория — это всё здорово, но как пользователь Whirlpool может рассчитать размер анонимного множества, в котором он скрывает свои монеты? Попробуйте использовать граф транзакций от OXT для поиска своей CoinJoin-транзакции первого микширования, затем:

    1. вручную разверните каждый ремикшированный выход;
    2. отметьте оранжевым все непотраченные (оставшиеся в номинале пула) UTXO;
    3. отметьте оранжевым любые потраченные (покинувшие Whirlpool) UTXO.
    Читайте также:  Binance Futures - торговля фьючерсами на криптовалюту

    Сложив оранжевые линии, вы получите размер своего анонимного множества (33 в этом примере ниже).

    Это неплохо работает для небольших количеств, но Whirlpool-миксы происходят довольно часто (в среднем 211 микширований в сутки для пулов с номиналом 0,001 BTC за первую половину 2022 года). Посчитать анонимное множество вручную быстро может стать невозможным. Так мы подходим к инструменту Whirlpool Stat Tool.

    Whirlpool Stat Tool

    Whirlpool_stats был создан разработчиками Samourai Wallet, чтобы предоставить пользователям возможность самостоятельно оценивать размер анонимного множества, достигаемого с помощью Whirlpool. С помощью набора скриптов на Python, этот инструмент быстро рассчитает для вас размер анонимного множества. Введите TxID вашего первого микса, и он выдаст вам размер множества, обеспечивающего анонимность ваших монет.

    У меня есть своя нода RoninDojo с предустановленным Whirlpool Stats Tool, а инструкция по использованию есть в wiki.

    С помощью этого инструмента я в течение 93 дней отслеживал изменение анонимного множества этой Whirlpool CoinJoin-транзакции (id):

    1fed0d526e89cd3f2ac14be0cfc1fe13e5cb8a772977551f0922f0c6907ab8f3

    Давайте посмотрим, насколько велик размер множества, в котором участники этой транзакции скрывают свои монеты:

    28 дней после микширования: анонимное множество = 1644

    35 дней после микширования: анонимное множество = 6722

    93 дня после микширования: анонимное множество = 35 214 (как показано в Whirlpool Stats Tool моего RoninDojo, скриншот ниже).

    При анонимном множестве в 35 000 субъектов, ни для кого, включая специализирующиеся в блокчейн-анализе компании, невозможно (осмелюсь сказать так) определить, где находятся биткойны участника первоначального микширования. Может быть, они уже вышли из Whirlpool и потратили эти BTC или, может быть, остались для дальнейшего ремикширования.

    Что я нахожу интересным в этой конкретной транзакции, так это то, что на момент написания статьи один из выходов остается непотраченным (как красная точка на одном из графиков выше в статье). Этот непотраченный выход остается таковым с тех пор, как транзакция была подтверждена 24 марта в блоке 728 735.

    И притом что этот UTXO оставался без движения, он извлек пользу из архитектуры Whirlpool, поскольку трое других участников продолжили ремикшировать свои UTXO. Это позволило этому непотраченному выходу в 0,001 BTC получить большее анонимное множество даже без собственного повторного микширования. А если бы ни один из выходов этой транзакции не был ремикширован, то анонимное множество осталось бы равным пяти.

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

    Больше примеров анонимных множеств Whirlpool

    TxID:

    c0f11a33a3f2470bb4252c155ced5eb670aaf0ed2f0eef8674dc90c52905860d

    Два дня после микширования: анонимное множество = 77

    TxID:

    5f5631356692b4744413a61b4e91c41c3df5ae376b66990052a8628b570e8353

    Семь дней после микширования: анонимное множество = 380

    TxID:

    901f20a383189c496a8774eb8cafeaa956f8c3393ee41701f163c0c2acf54286

    Десять дней после микширования: анонимное множество = 1466

    Фарминг приватности

    При входе в Whirlpool первое микширование происходит быстро, и CoinJoin с вашим участием работает как и задумано, разрывая все детерминированные связи между входами и выходами микширующей транзакции. Теперь вам хотелось бы получить какое-то количество бесплатных повторных микширований, но вы задаетесь вопросом: «А сколько ремикширований я могу получить, скажем, за одну неделю?» Это распространенный вопрос среди новых пользователей Whirlpool, которые наивно считают свою выгоду от конфиденциальности исключительно по количеству циклов микширования для каждого из своих UTXO.

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

    «Но как много повторных микширований я таки могу ожидать за неделю?!» Прежде чем ответить на этот вопрос, нужно учесть, что:

    1. Комиссии майнерам за CoinJoin-транзакции платятся новыми участниками Whirlpool, совершающими свой первый цикл микширования. Так что только когда в Whirlpool поступает новая ликвидность, у вас появляется возможность для ремикширования.
    2. Другие пользователи («фрирайдеры») тоже ждут возможности для бесплатного ремикширования. Координатор Whirlpool выбирает фрирайдеров для ремикширования случайным образом, и здесь существует своего рода конкуренция между претендентами.
    3. В Whirlpool каждого номинала практика складывается немного по-своему.

    Давайте рассмотрим их один за другим.

    Так выглядит недельная частотность циклов по номиналам пулов за 2022 год.

    Пулы по 0,001 BTC являются наиболее активными с точки зрения количества циклов, что, в общем, не удивительно.

    Теперь: какая конкуренция между фрирайдерами наблюдается в среднем в пулах разного номинала? Эту статистику (как и многие другие, включая частотность циклов) можно получить через Telegram Whirlbot.

    Для каждой CoinJoin-транзакции координатор Whirlpool случайным образом выбирает трех фрирайдеров.

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

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

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

    Можно рассматривать это как своего рода фарминг (как в DeFi), только в отношении приватности в биткойне: тот, кто терпеливо продолжает держать свои UTXO доступными для ремикширования до тех пор, пока они не понадобятся для расходования в будущем, получают выгоду в виде повышенной анонимности. Терпение окупается.

    Доступность для ремикширования 24/7

    Чтобы быть фрирайдером, нужно, чтобы ваш кошелек оставался на связи с координатором Whirlpool 24/7. В этом случае, когда координатор будет готовить микширование, он сможет с некоторой вероятностью выбрать для ремикширования ваши UTXO. Для этого вам нужно будет воспользоваться одним из следующих вариантов:

    1. Оставить включенным экран смартфона с активным Whirlpool-сервисом — приложением Samourai Wallet. Это наименее практичный вариант, к тому же некоторые устройства на Android могут отключать фоновые службы, так что, наверное, не все пользователи смогут получить получить прямое ремикширование таким образом.
    2. Использовать десктопное приложение для Whirlpool (привязанное к вашему Samourai Wallet). Этот метод имеет наименьший порог входа для пользователей Samourai и обеспечивает бóльшую надежность для подключений через сеть Tor. Оставив компьютер с запущенным десктопным приложением для Whirlpool включенным и подключенным к сети, вы будете оставаться доступными для ремикширования.
    3. Использовать ноду RoninDojo. Привязав свой Samourai Wallet к серверной части своей ноды, вы можете выключить телефон или компьютер и всегда оставаться доступными для ремикширования. Порог входа чуть выше, однако преимущества значительно перевешивают сложности.
    4. Микширование через десктопное приложение Sparrow Wallet. Sparrow интегрировали Whirlpool в свой кошелек а сентябре 2021 года, используя тот же пул ликвидности, что и пользователи Samourai Wallet. Sparrow имеет также множество других функций, а также позволяет микшировать UTXO для холодного хранения. Для доступности микширования убедитесь, что ваш компьютер остается включенным и приложение Sparrow запущено.

    Непотраченная емкость: истинный показатель успешности Whirlpool?

    Непотраченная емкость Whirlpool — это текущее количество BTC, которые были микшированы, не были потрачены и остаются доступными для ремикширования. Этот параметр можно отслеживать на https://bitcoin.clarkmoody.com/dashboard/:

    На сайте Bitcoin KPIs можно также посмотреть разбивку непотраченной емкости по номиналам пулов. Для меня представляет интерес значение непотраченных биткойнов в Whirlpool, и то, что оно в течение последних семи месяцев остается выше 4000 BTC, говорит об определенном уровне доверия пользователей к технологии Whirlpool и ПО Samourai и Sparrow Wallet. Но что я нахожу более интересным, так это входящий и исходящий объемы Whirlpool за последние 30 дней (приведены на Clark Moody’s dashboard как Tx0 Volume и Spent Cycle Output соответственно). Это то, что обеспечивает преимущества конфиденциальности Whirlpool как для новой входящей ликвидности, так и ремикширующих фрирайдеров, даже если между этими двумя значениями существует некоторый дефицит. Samourai Wallet позиционируется как «биткойн-кошелек для улицы», а его создатели — сторонники практического использования биткойна в противоположность ходлингу до гроба. Входящие и исходящие потоки монет в Whirlpool говорят о наличии спроса на приватность при совершении ончейн-транзакций, которую успешно обеспечивает для своих пользователей Whirlpool.

     

    Интересуетесь темой конфиденциальности при использовании Биткойна? Читайте также:

  • О конфиденциальности при использовании Биткойна
  • Заинтересовались методами микширования и готовы к «хардкору»?

  • Классификация и оценка методов микширования
  •  

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

    Источник: bitnovosti.com

    About

    Check Also

    BIP47, гадкий утёнок

    Одно из главных бедствий протокола Bitcoin — повторное использование адресов. Прозрачность и распределенность сети делает …

    Добавить комментарий