Как сохранить конфиденциальность при расходовании биткойнов после микширования
Микширование в Whirlpool позволяет добиться анонимности при использовании биткойна. А в этом посте я хочу рассказать об инструментах, которые помогут сохранить достигнутый в микшировании уровень приватности при расходовании.
При расходовании непотраченных выходов (UTXO) после whirlpool нужно следить за сохранением тех преимуществ анонимности, что были достигнуты при микшировании. И есть инструменты, которые позволяют это обеспечить. Каждый инструмент предлагает различные методы, и для правильного выбора в каждой ситуации важно понимать различия между ними.
В этой статье я расскажу о некоторых основных понятиях, связанных со структурой кошелька вокруг Whirlpool, и об инструментах расходования монет после микширования, предусмотренных в Samourai Wallet и Sparrow Wallet.
Хотя подобные инструменты могут быть реализованы и в других кошельках, полностью или частично.
Навигация:
Содержание:
- 1 Базовая структура биткойн-кошелька
- 2 Пулы и tx0
- 3 Токсичная сдача
- 4 Whirlpool UTXO
- 5 BIP47 и PayNym
- 6 Коллаборативные инструменты расходования монет после микширования: Stowaway
- 7 Коллаборативные инструменты расходования монет после микширования: StonewallX2
- 8 Неколлаборативные инструменты расходования монет после микширования: Stonewall
- 9 Инструменты расходования монет после микширования: Ricochet
- 10 Заключение
Базовая структура биткойн-кошелька
И в Samourai, и в Sparrow Wallet для реализации Whirlpool используется структура из четырех кошельков. Все эти четыре кошелька в фоновом режиме управляются вашим программным кошельком, а пользователь при желании может легко переключаться между ними.
Такое структурирование кошельков важно для того, чтобы UTXO оставались изолированными друг от друга. В этой структуре ваши UTXO на пути к стадии постмикс проходят логический путь в несколько этапов и прибывают туда без каких-либо детерминированных связей с предыдущей историей транзакций.
И Samourai, и Sparrow Wallet поддерживают следующие форматы адресов:
Наличие поддержки всех этих типов адресов не означает, что все они работают с Whirlpool. Whirlpool работает только с P2WPKH-адресами — как в основной сети Биткойна, так и в тестовой. Поэтому описываемые ниже кошельки pre-mix, post-mix и bad-bank могут получать средства только с P2WPKH-адресов, а расходовать на P2PKH, P2SH, P2WPKH или P2TR.
ПО кошелька использует различные пути деривации для отдельных кошельков. Пути деривации используют разные числа для представления различных деталей о пути ключа: «m / назначение’ / тип_монет’ / идентификатор’». В примере ниже депозитный кошелек может работать с различными типами адресов, следовательно m/44’|m/49’|m/84’|m/47′ для каждой из различных целей. Кошельки pre-mix, post-mix и bad bank работают только с целью m/84′.
В Samourai Wallet можно переключаться с депозитного на post-mix кошелек, нажав на значок Samourai в левом верхнем углу.
В Sparrow Wallet можно переключаться между четырьмя кошельками с помощью вкладок в крайней левой части интерфейса.
Пулы и tx0
В Whirlpool есть четыре размерности пула: 0,5, 0,05, 0,01 и 0,001 BTC. Это означает, что каждый выход Whirlpool будет соответствовать определенной размерности пула. Когда вы выбираете из депозитного кошелька UTXO для микширования в Whirlpool CoinJoin, они сначала проходят через tx0. Результаты этой tx0 зависят от выбранной размерности пула. Например, если вы хотите пропустить через Whirlpool 10 BTC, то для различных размеров пула результаты tx0 будут следующими:
Пул 0,5
Пул 0,05
Пул 0,01
Пул 0,001
Надо заметить, что комиссия координатора Whirlpool остается неизменной независимо от того, сколько биткойнов вы микшируете. То есть микшируете ли вы 1 или 100 BTC, в пуле с размерностью, к примеру, 0,5 BTC, вы заплатите 0,0175 BTC комиссии координатору.
Также обратите внимание, что комиссия за майнинг, включаемая в каждый премикс UTXO, может составить значительную сумму, если таких премикс UTXO будет много. В приведенном выше примере пула на 0,001 общая сумма комиссий майнерам составит 0,099 BTC.
Tx0 используется и в Samourai, и в Sparrow Wallet. Tx0 всегда строится таким образом, что один или несколько входов из вашего депозитного кошелька делятся на:
Вот реальный пример tx0, где можно видеть, что в нем были:
Вы можете просмотреть эту транзакцию на KYCP.org.
Каждый из 16 равных выходов будет индивидуально выбран в качестве входа для последующих микширований в Whirlpool CoinJoin. До того эти выходы временно находятся в pre-mix кошельке. При инициации новых whirlpool-транзакций координатор будет выполнять поиск доступных входов, таких как эти. Координатор Whirlpool применяет строгие правила, которые гарантируют, что в одной Whirlpool CoinJoin-транзакции не окажутся два выхода одной и той же tx0 или из одного кошелька. Каждый из этих 16 выходов включает небольшое количество дополнительных BTC, чтобы, когда они будут выбраны в качестве входов, эта надбавка могла покрыть комиссии майнеров за Whirlpool CoinJoin-транзакцию.
Координатор будет случайным образом переключаться между созданием транзакций, имеющих либо два UTXO новых участников и три ремикшируемых UTXO, либо три новых и два ремикшируемых UTXO. UTXO новых участников покрывают комиссии майнеров, а UTXO «фрирайдеров» всегда ремикшируются бесплатно. Комиссию координатора вы тоже платите только один раз, после чего ваши UTXO могут оставаться в post-mix кошельке и ремикшироваться бесплатно столько, сколько бы вы ни захотели их там держать.
Токсичная сдача
Особое внимание следует уделить токсичной сдаче от tx0. По умолчанию Samourai Wallet при инициации tx0 предложит вам пометить UTXO с токсичной сдачей как «нерасходуемый». В этом случае кошелек не будет отображать этот UTXO как доступный и исключит его из отображаемого баланса.
Вы всегда можете открыть меню с тремя точками в правом верхнем углу в приложения Samourai Wallet, выбрать “Show unspent outputs”, прокрутить список до самого низа, и вы найдете выходы с токсичной сдачей в разделе “Do Not Spend”. Здесь вы можете выбрать интересующий вас UTXO и при желании поменять его статус на «Spendable». После этого он будет отображаться как часть баланса вашего депозитного кошелька и снова станет доступным для расходования.
В Sparrow Wallet токсичная сдача после tx0 автоматически отправляется в bad bank кошелек. Вы в любое время можете перейти на вкладку bad bank и потратить UTXO из него.
Проблема с токсичной сдачей заключается в том, что ончейн она остается связанной с tx0, от которой поступила. А это значит, что она также связана и со всей предыдущей историей транзакций всех входов этой tx0. Значит, если внешний наблюдатель будет отслеживать движение биткойнов, принадлежащих идентифицированному субъекту сети, то он будет знать, что данный выход с токсичной сдачей принадлежит этому субъекту. Значит, с помощью эвристик блокчейн-анализа внешний наблюдатель сможет обоснованно предположить, что и в будущих транзакциях, любые связанные с токсичной сдачей биткойны также принадлежат этому же субъекту.
Получается, что, комбинируя UTXO токсичной сдачи с post-mix UTXO, вы сведете на нет все преимущества анонимности, достигнутые в Whirlpool. Впрочем, благодаря структуре кошелька, вам придется действительно постараться и сделать что-то очень странное, чтобы объединить в одной транзакции выход с токсичной сдачей и выход после Whirlpool.
Существует так называемая техника водопада, когда вы начинаете с пула самой большой размерности, какую только можете получить исходя из доступных UTXO в депозитном кошельке. Затем берете выход с токсичной сдачей и используете его отдельно в пуле следующей крупнейшей размерности, и так далее до тех пор, пока у вас не останется минимально возможная сумма токсичной сдачи.
Другая возможная техника, на момент написания находящаяся в разработке в Samourai Wallet, — это атомарные свопы с Monero. Для этого вам потребуется отдельный кошелек для Monero — например, Monerujo, — потому что Samourai Wallet реализовать поддержку Monero не планирует. Но в принципе, вы можете построить биткойн-транзакцию «бездоверительного» peer-to-peer обмена BTC на XMR, которые поступят на ваш Monero-кошелек, а ваша токсичная сдача уйдет на биткойн-кошелек вашего контрагента. После этого вы можете обменять полученные XMR обратно на биткойны или просто потратить — всё в ваших руках.
Whirlpool UTXO
Перемещенные в tx0 из депозитного в pre-mix кошелек, ваши pre-mix UTXO готовы к микшированию в Whirlpool CoinJoin. После того как вы инициируете tx0, ваш кошелек и координатор Whirlpool автоматически сделают всё необходимое в фоновом режиме. Whirlpool CoinJoin-транзакции имеют пять выходов одинакового номинала. Сторонний наблюдатель, изучающий в блок-эксплорере запись о транзакции, не может с уверенностью соотнести конкретный выход транзакции с тем или иным ее входом. Все пять выходов в равной степени могут принадлежать любому из пяти входов. Эта концепция хорошо иллюстрируется на этом примере на KYCP.org.
Вот другой способ взглянуть на ту же Whirlpool CoinJoin транзакцию в виде таблицы, в которую сведены вероятности трансфера между определенными входами и выходами.
Поскольку все выходы имеют одинаковый размер и с одинаковой вероятностью могут относиться к любому данному входу, они не имеют никаких отличительных характеристик. Это анонимность — качество, или состояние, неразличимости в «толпе», множестве. Когда анонимность достигнута, вы хотите ее сохранить, чтобы продолжать тратить биткойны на публичном блокчейне, не раскрывая тех деталей, по которым можно было бы восстановить предыдущую историю ончейн-транзакций, раскрывающую дальнейшую информацию о вас.
Чтобы узнать больше об анонимных множествах применительно к Whirlpool CoinJoin, рекомендую обратиться к этой статье.
BIP47 и PayNym
BIP47 вводит поддержку многоразовых платежных кодов, которые могут отображаться как статичный биткойн-адрес, например, на сайте или витрине магазина. Преимущество такого платежного кода в том, что внешние наблюдатели не могут видеть историю транзакций или баланс по платежному коду, в отличие от обычных биткойн-адресов.
На высоком уровне, детали из платежных кодов, принадлежащих обоим участникам транзакции, объединяются, в результате чего получается индекс адресов, известный только этим двум участникам. Таким образом, любой, кто знает публичный платежный код и подключится к нему с помощью ончейн-транзакции уведомления, сможет отправлять платежи на результирующие адреса, уникальные для данного конкретного подключения. Нет необходимости в активном сервере, чтобы каждый раз доставлять свежий адрес, как в случае с платежным сервером, вроде BTCPay Server.
Это пример платежного кода BIP47:
“PM8TJK7rnkDXabzmo4ZyxX49JxdLWhbFANDr4eBCwk1shDEs1qDysW5hFCFr6hschwJe4ny7C7GcSnsNPzBYvE6giabxfJyNSrAWRJYCoHMo7iveHned”
Его также можно отобразить в виде QR-кода:
PayNym, в свою очередь, — это реализация BIP47, используемая в Samourai Wallet и Sparrow Wallet. PayNym получаются путем хеширования вашего платежного кода для создания уникальных аватара и имени. Аватар и имя призваны упростить интерпретацию и управление для пользователей. Samourai Wallet поддерживает каталог PayNyms, если вы хотите изучить, найти и связаться с другими: https://paynym.is/. Этот каталог можно использовать для регистрации своего PayNym, если вы выберете это из приложения при инициализации.
PayNym можно использовать несколькими способами.
Например, для осуществления прямых платежей на чей-то PayNym, установив с ним соединение ончейн и сгенерировав индекс секретных адресов. Говоря о неколлаборативных платежах на PayNym, если вы не совершите ончейн-транзакцию уведомления, то получатель не будет знать адреса и не сможет наблюдать за вашими кошельками.
Это не следует путать с совместными транзакциями с использованием PayNym, для которых достаточно только, чтобы PayNym пользователей отслеживали друг друга, а не ончейн-транзакцию с уведомлением. Другими словами, если вы импортируете в свой кошелек чужой платежный код и начинаете вычислять адреса для отправки биткойнов на него, то до тех пор, пока не будет проведена ончейн-транзакция уведомления, получатель не узнает, какие адреса ему следует наблюдать в качестве отправителей; если же вы захотите, чтобы получатели могли узнать эти адреса и наблюдать их, вам будет нужно сообщить получателям свой платежный код. После того как платежный код отсканирован и ончейн-транзакция уведомления проведена, необходимости в участии получателя больше нет — вы можете просто отправлять ему платежи.
Другой способ использования PayNym — это совместные транзакции, как Stowaway и StonewallX2, о которых я расскажу в следующих разделах.
Samourai Wallet
Сначала покажу процесс создания ончейн-соединения с PayNym:
После подтверждения ончейн-соединения вы можете инициировать платеж контакту из своего депозитного кошелька, вернувшись к нужному PayNym и нажав на кнопку с бумажным самолетиком. Просто введите сумму, проверьте транзакцию и транслируйте ее в сеть.
Вы можете отправить PayNym-контакту и средства из своего post-mix кошелька.
Sparrow Wallet
Sparrow Wallet обладает всеми теми же возможностями по отправке прямых PayNym-платежей, что и Samourai Wallet. Только интерфейс немного отличается.
Коллаборативные инструменты расходования монет после микширования: Stowaway
Stowaway — это коллаборативный инструмент для post-mix расходования, скрывающий сумму платежа. Ее будет знать только тот, с кем вы взаимодействуете. Вы предоставляете несколько входов, получатель со своей стороны тоже предоставляет несколько входов, вы получаете свой выход со сдачей и получатель получает свой выход со сдачей плюс сумму, которую вы ему отправили, а фактическая сумма платежа оказывается скрыта в этой общей сумме. Все комиссий майнерам оплачивает отправитель.
У стороннего наблюдателя нет возможности узнать о том, что содержательная «суть» транзакции отличается от того, что видно в блокчейне. Эвристика по общему владению входами нарушается, поскольку в связи с наличием нескольких входов и выходов необходимо учитывать, что входы предоставили несколько субъектов сети.
Получателю Stowaway-транзакции понадобится использовать Samourai Wallet или Sparrow Wallet со своим PayNym. Как минимум, PayNym должны отслеживать друг друга, но не обязательно проводить ончейн-транзакцию уведомления для установки соединения между ними.
Также отправителю и получателю понадобится связаться друг с другом — в мессенджере, по телефону и т.п.
Samourai Wallet
Для создания совместной Stowaway-транзакции в Samourai Wallet убедитесь, что вы и ваш партнер по транзакции отслеживаете PayNym друг друга, устанавливать соединение ончейн при этом необязательно.
Ваш получатель получит свой вход в транзакцию обратно на новый выход вместе с суммой, которую вы ему отправили. Для стороннего наблюдателя фактическая сумма перевода будет скрыта.
Sparrow Wallet
Для создания совместной Stowaway-транзакции в Sparrow Wallet убедитесь, что вы и ваш партнер по транзакции отслеживаете PayNym друг друга, устанавливать соединение ончейн при этом необязательно.
Вы можете просмотреть эту транзакцию в любом эксплорере тестнета Биткойна, например, в mempool.space.
Отправлено было 69 сатоши, но вы бы никогда не узнали об этом, будучи сторонним наблюдателем.
Коллаборативные инструменты расходования монет после микширования: StonewallX2
StonewallX2 — это еще один инструмент коллаборативного расходования, помогающий нарушить эвристики блокчейн-анализа и сохранить анонимность. StonewallX2-транзакции всегда имеют четыре выхода. Количество входов может варьироваться. По меньшей мере два из четырех выходов имеют одинаковый размер; это создает ложный выход того же размера, что и сумма расхода. Два других выхода — это сдача, возвращаемая обоим участникам транзакции. В отличие от Stowaway-транзакций, транзакции StonewallX2 могут быть потрачены в пользу третьей стороны — партнер, с которым вы создаете транзакцию, не обязательно должен быть ее получателем. В StonewallX2-транзакции комиссии майнерам делятся между сотрудничающими пирами в пропорции 50/50. Алгоритм выбора входа гарантирует, что никакие UTXO, имеющие общую предыдущую транзакцию, не будут использоваться вместе в качестве входов новой транзакции.
Вот как StonewallX2 (и Stonewall) будут выглядеть ончейн:
Samourai Wallet
Для создания StonewallX2-транзакции в Samourai Wallet убедитесь, что вы и ваш партнер по транзакции отслеживаете PayNym друг друга, устанавливать соединение ончейн при этом необязательно. Однако, если получателем этой совместной транзакции является PayNym, то вам необходимо установить с ним соединение ончейн.
Sparrow Wallet
Для создания StonewallX2-транзакции в Sparrow Wallet убедитесь, что вы и ваш партнер по транзакции отслеживаете PayNym друг друга, устанавливать соединение ончейн при этом необязательно. Однако, если получателем этой совместной транзакции является PayNym, то вам необходимо установить с ним соединение ончейн.
Дождитесь, пока соавтор транзакции примет запрос и транзакция будет создана. Оба пира-соавтора предоставляют входы для транзакции.
Через какое-то время вам будет представлена сводка с данными создаваемой транзакции. Проверьте данные и, если всё правильно, выбирайте “Sign & Broadcast”.
После трансляции транзакции в сеть вы получите подтверждение и увидите зеленую галочку.
Вы можете просмотреть эту транзакцию в любом эксплорере тестнета Биткойна, например, в mempool.space.
Транзакция имеет четыре выхода, два из которых одинакового размера: один выход на 25 000 сатоши — это расход, другой выход на 25 000 сатоши — маскирующий. Внешний наблюдатель не сможет сказать, какие выходы принадлежат субъекту, контролирующему любой из входов.
Неколлаборативные инструменты расходования монет после микширования: Stonewall
Вот как Stonewall (и StonewallX2) будут выглядеть ончейн. Stonewall — это инструмент неколлаборативного расходования, помогающий нарушить эвристики блокчейн-анализа и сохранить анонимность. Ончейн Stonewall- и StonewallX2-транзакции неотличимы друг от друга: обе всегда имеют по четыре выхода. Количество входов может варьироваться. По меньшей мере два из четырех выходов имеют одинаковый размер; это создает ложный выход того же размера, что и сумма расхода. Два других выхода — это сдача, возвращаемая обоим участникам транзакции.
В случае Stonewall кошелек будет строить транзакцию, используя несколько входов и четыре выхода, только один из которых является расходом, а остальные три возвращаются в кошелек отправителя, причем один из них имеет тот же размер, что и расходный выход. И Samourai, и Sparrow Wallet по умолчанию при расходовании будут пытаться составить Stonewall-транзакцию.
Samourai Wallet
Чтобы сделать Stonewall-транзакцию в Samourai Wallet:
Вы можете просмотреть эту транзакцию в любом эксплорере тестнета Биткойна, например, в mempool.space.
Транзакция имеет четыре выхода, два из которых одинакового размера: один выход на 42 000 сатоши — это расход, другой выход на 42 000 сатоши — маскирующий. Внешний наблюдатель не сможет сказать, какие выходы принадлежат субъекту, контролирующему любой из входов. Три из четырех выходов отправляются в post-mix кошелек отправителя.
Sparrow Wallet
Чтобы сделать Stonewall-транзакцию в Sparrow Wallet:
Обратите внимание на разницу в том, как строится транзакция при выборе настройки “Efficiency” (эффективность); есть два выхода — расход и сдача:
Напротив, при выборе настройки “Privacy”, создается Stonewall-транзакция с четырьмя выходами, включая ложный расход:
Проверьте данные и, если всё правильно, выбирайте «Sign».
После подписания можете транслировать транзакцию в сеть.
Вы можете просмотреть эту транзакцию в любом эксплорере тестнета Биткойна, например, в mempool.space.
Транзакция имеет четыре выхода, два из которых одинакового размера: один выход на 690 000 сатоши — это расход, другой выход на 690 000 сатоши — это маскирующий выход. Внешний наблюдатель не сможет сказать, какие выходы принадлежат субъекту, контролирующему любой из входов.
Инструменты расходования монет после микширования: Ricochet
Ricochet создает несколько дополнительных переходов между первоначальной исходящей транзакцией и конечным адресатом. Эта техника может быть полезна при отправке биткойнов получателю, который может просматривать историю ваших транзакций в попытке определить, есть ли в истории вашего UTXO нечто такое, что ему не понравится.
Часто такую проверку могут проводить биржи или некоторые магазины. Никакого отраслевого стандарта, которого бы эти компании придерживались в своей оценке, не существует: они просто произвольно решают, просмотр истории на какое количество переходов соответствует их представлениям о допустимом риске. Но пять дополнительных переходов, создаваемых Ricochet, по-видимому, справляются со своей задачей. Sparrow Wallet не поддерживает Ricochet-транзакции. Samourai Wallet взимает за них комиссию в 100 000 сат.
Чтобы создать Ricochet-транзакцию в Samourai Wallet:
В противном случае все пять будут происходить в одном блоке, что может быть предпочтительнее, если вы спешите.
Так эта Ricochet-транзакция выглядит в тестовой сети. Вы можете проследить все дополнительные переходы на пути от отправителя получателю.
Заключение
В этой статье я постарался объяснить, как работает структура кошелька в кошельках с поддержкой Whirlpool — Samourai Wallet и Sparrow Wallet.
Поняв преимущества анонимности, достигаемые с помощью Whirlpool, вы сможете лучше оценить, какой инструмент для расходования BTC после микширования лучше подходит для вас в том или ином случае. Здесь я подробно рассказал о том, как пользоваться каждым из них, с пошаговыми инструкциями по использованию и дополнительными преимуществами сохранения анонимности, которые они обеспечивают.
БитНовости отказываются от ответственности за любые инвестиционные рекомендации, которые могут содержаться в данной статье. Все высказанные суждения выражают исключительно личное мнения автора и респондентов. Любые действия, связанные с инвестициями и торговлей на крипторынках, сопряжены с риском потери инвестируемых средств. На основании предоставленных данных, вы принимаете инвестиционные решения взвешенно, ответственно и на свой страх и риск.
Источник: bitnovosti.com