Транзакции в сети Биткоина публичны по своей природе. Они демонстрируют связь входящих (неизрасходованных utxo) и выходных данных (новых неизрасходованных utxo) так, чтобы каждый, кто имеет доступ к блокчейну (история транзакций), мог их отследить. Однако, учитывая, что биткоин-транзакции – не то же самое, что биткоин-платежи, интерпретация этих транзакций и блокчейна – нетривиальная задача.
Поскольку каждый желающий может просмотреть связи между входными и исходящими данными транзакций, любой может проанализировать транзакции в попытке связать несколько биткоин-адресов с определенным субъектом. Этот процесс иногда называют кластеризацией (clustering).
Есть даже компании, специализирующиеся на таком анализе блокчейна Биткоина. К примеру, Chainalysis и Crystal.
Эти компании утверждают, что целью подобной кластеризации является выявление мошенничества или раскрытие преступной деятельности. Впрочем, существует вероятность, что в какой-то момент они ошибутся при определении владельца объекта, что приведет к неправомерному осуждению, поскольку правоохранительные органы слепо доверяют этим системам.
С другой стороны, злоумышленники, желающие идентифицировать людей с целью шантажа или получения выкупа, сами могут прибегнуть к кластеризации.
Потенциальные злоумышленники могут намеренно инициировать транзакции в целях обмана компаний, занимающихся анализом цепочки. Это может привести к ошибкам в идентификации пользователей, позволяя злоумышленникам избежать обнаружения или переложить вину на невиновного (в конце концов, кто будет искать доказательства после ареста преступника?).
Важно обратить внимание на то, что пользователь, чьи транзакции/utxo подверглись кластерингу, не будет об этом знать. А след, который оставляет в блокчейне каждая транзакция, стереть невозможно.
К счастью, в 2013 году Грег Максвелл представил инновационный метод запутывания ончейн-связей между неизрасходованными транзакциями (utxo). Он назвал этот метод CoinJoin.
Основная идея состоит в том, что транзакция создается с использованием входных данных, предоставленных несколькими пользователями.
Транзакция построена таким образом, что сторона, анализирующая блокчейн, не сможет определить, какому из пользователей принадлежит тот или иной выход.
Рассмотрим такой пример.
Элис, Боб и Чарли – три отдельных пользователя сети Биткоина, которые собираются смешать свои utxo с помощью CoinJoin.
Справочная информация о причинах использования CoinJoin каждым участником:
Транзакция CoinJoin принимает эти три ввода и создает транзакцию, которая создает три новых вывода.
Стороне, которая анализирует эту транзакцию, невозможно определить, какому из пользователей принадлежит тот или иной вывод.
Более подробно ознакомиться с процессом CoinJoin и его этапами можно в статье-обзоре основателя проекта bitcoin-only.com, 6102, оригинал которой можно найти здесь.
JoinMarket – это реализация CoinJoin, направленная на улучшение конфиденциальности и взаимозаменяемости биткоин-транзакций.
Основной принцип работы JoinMarket основан на том, что рынки являются эффективным способом стимулирования пользователей CoinJoin.
Википедия исчерпывающе описывает этот процесс:
Процедура CoinJoin предполагает участие более одного пользователя. Достаточное количество соответствующих ресурсов (монет) должно находиться в определенном месте в определенное время. Эта проблема связана не с программным обеспечением, она не является технической, это экономическая проблема. JoinMarket предоставляет новый вид рынка, наилучшим образом распределяющий эти ресурсы.
Модель JoinMarket основывается на предоставлении возможности оплаты CoinJoin-операций. С одной стороны – участники CoinJoin, имеющие низкое временное преимущество и собирающие комиссию с участников, желающих присоединиться к процессу. Их называют маркет-мейкерами. С другой стороны – участники CoinJoin с высоким временным преимуществом, которые готовы заплатить за возможность мгновенно принять участие в сделке. Этих участников называют маркет-тейкеры.
Проще говоря, JoinMarket позволяет одним частным лицам платить другим лицам в целях смешивания монет. Из-за того, что этот рынок свободен, здесь присутствует конкуренция.
Использование CoinJoin делает систему некастодиальной, потому что частные ключи никогда не выходят из-под контроля пользователя. Поскольку предложение удерживаемых биткоинов высокое, а риск потери очень мал, можно ожидать, что комиссия по CoinJoin также будет небольшой. Кошелек JoinMarket является иерархическим детерминированным кошельком, позволяющим пользователям легко избежать повторного использования адреса.
Последние версии также позволяют отправлять и получать PayJoins, являющиеся особым видом CoinJoin, где две привлеченные стороны платят друг другу. Этот тип CoinJoin обладает другими (возможно, лучшими) свойствами конфиденциальности.
Поскольку маркет-мейкеры могут зарабатывать комиссионные за CoinJoin, долгосрочные владельцы биткоинов могут использовать JoinMarket в качестве инвестиционного инструмента для получения дохода от своих биткоинов.
Проект написан на языке Python и впервые был выпущен в основной сети Биткоина в 2015 году.
С некоторыми данными по объемам можно ознакомиться по ссылке.
Проблема с JoinMarket заключалась в том, что его было трудно использовать и настраивать, а пользовательский интерфейс был не очень прост, пока не появился Jam.
Jam – это бесплатный проект с открытым исходным кодом, предоставляющий вам интерфейс для JoinMarket; Jam стремится улучшить финансовую конфиденциальность – как вашу, так и других пользователей, не полагаясь на доверенную третью сторону для хранения и управления вашими средствами. Приложение Jam было запущено в 2021 году волонтерами и все еще разрабатывается и поддерживается на добровольных началах. Как отмечалось выше, Jam является интерфейсом для JoinMarket, программного обеспечения для работы с биткоинами, ориентированного на конфиденциальность, которое использует одноранговой рынок для облегчения совместных транзакций.
Цель Jam – предоставить интерфейс, облегчающий использование JoinMarket. Он обеспечивает ликвидность и делает его легкодоступным, чтобы больше биткоинеров могли наслаждаться конфиденциальностью в сети, если они решат участвовать в этих совместных транзакциях.
Если вы хотите попробовать JoinMarket через Jam, программное обеспечение достаточно легко установить и настроить; Jam поставляется в комплекте со следующими полнофункциональными узловыми решениями:
Если вы используете одного из этих полнофункциональных операторов, просто перейдите в магазин приложений, загрузите Jam и установите его на устройство. Если Jam не поддерживается вашей реализацией узла, вы можете обратиться к поставщику программного обеспечения и попросить его добавить его в магазин приложений. Кроме того, если вы не используете одну из этих реализаций узла, вы можете выполнить установку вручную.
После установки Jam создайте новый биткоин-кошелек, используя новый набор приватных ключей, сохраните свои ключи, назовите кошелек, и основной интерфейс должен загрузиться.
После настройки кошелька у вас будет новый биткоин-кошелек, который вы сможете использовать для отправки и получения биткоинов в более приватном режиме. Вы можете использовать кошелек Jam в качестве моста между вашим холодным хранилищем при выводе средств с биржи KYC. Вместо того чтобы передавать биткоин-адрес, который биржа может привязать к вам и отслеживать поступающие и выводимые с этого адреса средства, теперь у вас есть буферный кошелек.
Вы можете переместить его в свой кошелек Jam, а затем CoinJoin в кошелек холодного хранения, который защищает конфиденциальность конечного адреса, где вы храните свои средства. В некоторых случаях вы можете заплатить немного больше за комиссию в цепочке, но это цена, которую вы платите за то, чтобы ваши монеты не были отслежены.
Когда вы получаете средства на свой кошелек Jam, они будут распределены на банки, эти банки разделяют средства на отдельные контейнеры, в которых хранятся некоторые из ваших сатов. Банки существуют для того, чтобы разделить ваши саты на несколько ведер, которые отсоединены друг от друга, что способствует конфиденциальности. Чтобы не рисковать ухудшением конфиденциальности, вы можете тратить только из одной банки за один раз.
Всего имеется пять ящиков, причем по умолчанию для получения средств используется ящик А.
Представьте себе, что банки – это разные карманы в вашем кошельке или разные личности. Вы можете использовать кошелек Jam для того, чтобы вносить средства самостоятельно или получать их от других, а также смешивать средства в этом кошельке для дальнейшего использования.
После того как ваши банки с джемом наполнятся сатоши и вы будете готовы перевести часть средств на устройство хранения с воздушным зазором, вы можете использовать вкладку «Отправить», чтобы перевести средства кому-то или на одну из банок. По умолчанию при переводе Jam использует общие транзакции, что повышает вашу конфиденциальность и безопасность.
Ваши средства будут смешаны с другими пользователями в общей транзакции, что повышает конфиденциальность вас и других.
Помните, я упоминал ранее, что JoinMarket – это не проблема координации, а скорее экономическая проблема. Если вы хотите, чтобы люди координировали свои действия друг с другом для осуществления комбинированных транзакций, вам нужно обеспечить стимул, и именно здесь в игру вступает функция заработка JoinMarket. Да, со временем мы перейдем на биткоин DEFI. Доходность JoinMarket будет еще одним показателем базовой процентной ставки для размещения биткоина в горячем кошельке, а другими будут рынки ликвидности на Lightning или пулы ликвидности на Liquid.
Если у вас есть биткоин, который вы хотите использовать для поддержки JoinMarket, вы можете предложить ликвидность рынка за определенную плату. Никакого доверия или опеки не требуется – вы всегда полностью контролируете свои средства, поскольку используете горячий кошелек, где вы держите ключи. Используйте вкладку «Зарабатывать», чтобы зарабатывать саты (сатоши), предлагая ликвидность другим участникам рынка, желающим осуществлять комбинированные транзакции.
Вы будете действовать как маркет-мейкер для комбинированных транзакций, и вы устанавливаете, каким капиталом вы хотите рисковать. Предоставляя ликвидность на рынке, вы улучшаете конфиденциальность других участников, и они платят вам премию за эту услугу.
Вы можете выбрать, сколько вы хотите взимать за ваше предложение.
Например, вы можете взимать абсолютную или относительную плату:
Плата, которую вы будете взимать с других как абсолютную сумму, выраженную в сатах.
Комиссия, которую вы будете взимать с других в процентах от суммы транзакции.
Обратите внимание, что вы участвуете и конкурируете на открытом рынке – нет никакой гарантии, что другие участники рынка примут ваше предложение. Выбор совместной транзакции может занять некоторое время, и вам придется конкурировать за вознаграждение, чтобы увеличить свои шансы на получение денег.
Облигация верности – это долгосрочный депозит, который делает криптографические идентификаторы заведомо дорогими. Криптографически блокируя средства в контракте с тайм-локом на определенный срок, вы сигнализируете о том, что являетесь серьезным участником рынка и увеличиваете шансы на то, что ваши предложения будут приняты.
Казначейское обязательство – это механизм, гарантирующий, что участники рынка действуют честно. Это механизм защиты от разного рода атак, связанных с созданием мошеннических аккаунтов.
Вы можете создать облигацию верности через экран «Заработок» (Earn). Это предполагает следующие шаги:
После этого вам будет предложено просмотреть конфигурацию облигации. Если все обстоит правильно, вы можете создать облигацию верности (fidelity bond), которая заблокирует ваши средства на установленный срок.
Опция Sweep может быть использована для опустошения вашего кошелька с помощью планировщика. Планировщик выполнит серию общих транзакций со случайными параметрами, которые со временем отправят ваши средства на несколько адресов назначения. Выполните несколько транзакций с использованием случайных сумм и временных интервалов, чтобы повысить конфиденциальность с помощью запланированных транзакций, проводимых как общая транзакция.
Затем вы можете переместить свои средства в холодное хранилище или использовать их для открытия Lightning-каналов.
Если вас беспокоит привязка вашего биткоина к вашей личности, вы считаете, что тактика конфиденциальности монет слишком сложна или вы просто ищете лучший способ управлять своими средствами перед тем, как поместить их в холодное хранилище, тогда технология CoinJoin – это отличный вариант.
Если вы хотите дополнительно заработать на своих биткоинах, то можно рассмотреть JoinMarket. Он позволяет одним частным лицам платить другим лицам за смешение монет.
Но JoinMarket имеет сложный интерфейс, и здесь может пригодиться проект Jam. Он делает интерфейс интуитивно понятным.
Кошельки Jam также отлично подходят для тех, кто имеет тенденцию делиться публичными сетевыми адресами для получения чаевых, пожертвований или платежей и хочет запутать, куда эти средства уходят после их получения.
Jam также может быть привлекательным вариантом для бизнеса, использующего биткоин, поскольку все транзакции, которые вы можете принимать через адрес вашего BTCPay сервера, могут быть переведены в Jam до того, как вам нужно будет выплатить зарплату, оплатить счета или отправить деньги в холодное хранилище.