Когда они слышат слово «CoinJoin», первое, что приходит в голову многим относительно новым биткойнерам, это, вероятно, Зеролинк реализации Wasabi Wallet и Samourai Wallet. За последние несколько лет эти два проекта сделали конфиденциальность Биткойна почти мейнстримом, сделав ее намного проще и доступнее.
Если вы новичок в этой сфере, возможно, вы не знали о том, что проект JoinMarket предоставляет инструменты CoinJoin пользователям биткойнов с 2015 года.
Совместные транзакции разрушить предположения о совместной собственности — идея, выдвинутая разработчиком биткойнов Грегом Максвеллом еще в январе 2013 года и позже формализованная в концепцию CoinJoin в августе того года.
Идея жила два года, прежде чем было выпущено что-то, реализующее ее, и для этого была причина: проблема с общей идеей, которая привела к неудачам с предыдущими попытками, такими как Темный кошелек Амира Тааки заключалась в привлечении ликвидности. CoinJoin может быть очень полезным инструментом, но если нет никого, кто желает присоединиться к CoinJoin с вами, или нет возможности их найти, если они хотят, это не принесет никакой пользы.
Проблема заключалась в том, как убедить людей присоединиться к этому первоначальному пулу, чтобы помочь ему превратиться в более крупный пул ликвидности и пользователей. Решение JoinMarket было довольно простым, но гениальным на тот момент: предоставить рыночный механизм, чтобы последовательные поставщики ликвидности могли реально зарабатывать деньги на предоставлении ликвидности пулам CoinJoin.
JoinMarket функционирует вокруг того, что по сути является рынком, управляемым книгой заказов, состоящим из маркет-мейкеров и маркет-тейкеров, покупающих и продающих ликвидность CoinJoin, чтобы анонимизировать свою деятельность в сети.
Создатели могут сидеть и ждать столько времени, сколько потребуется с открытыми предложениями, пока не прибудут получатели, желающие оплатить их услуги. Это решает проблему пользователя, который сидит и вечно ждет, пока с кем-нибудь пообщается. Маркет-мейкеров, стремящихся получить прибыль, стимулируют взимаемые ими комиссии просто всегда находиться в сети и ждать тейкеров; а получатели, стремящиеся к конфиденциальности, заинтересованы в том, чтобы платить эти сборы. Это беспроигрышный вариант для всех.
По своей архитектуре, а также потенциалу для улучшения координации, JoinMarket предлагает потенциально более децентрализованную версию микширования монет по сравнению с более известным ZeroLink. Вот как.
Как координируется микширование: ZeroLink Vs. JoinMarket
Общая архитектура ZeroLink по сравнению с JoinMarket сильно отличается.
В случае с Wasabi и Samourai в кошельке закодирован единый сервер-координатор, которым управляет создатель кошелька. Все пользователи участвуют в CoinJoin, связываясь с этим центральным сервером и «регистрируясь», чтобы дождаться, пока не зарегистрируется достаточное количество пользователей для создания CoinJoin. После того, как необходимое количество пользователей присутствует и регистрируется, сервер-координатор подписывает скрытые учетные данные, предоставляющие право на создание выходных данных в транзакции CoinJoin, а пользователь отключается и повторно подключается через новое соединение Tor для регистрации выходных данных своей транзакции.
Это препятствует тому, чтобы координатор узнал, какие входы соответствуют каким выходам. Пользователи платят координатору за его роль в содействии CoinJoin. В этой модели нет стимула предоставлять ликвидность, за исключением повышения конфиденциальности, и, несмотря на проблемы с прошлыми попытками, такими как Dark Wallet, похоже, это отлично работает для Васаби и Самурая.
С другой стороны, у JoinMarket есть книга заказов, в которой производители размещают рекламу, позволяющую покупателям выбирать из доступных предложений производителей (в настоящее время это делается через Internet Relay Chat [IRC]).
Создатели подключатся к книге заказов с уникальным идентификатором, затем они разместят предложение в книге заказов, содержащее следующую информацию: комиссия, которую производитель взимает за смешивание с получателями, сумма, которую производитель будет вносить в комиссию майнеров, а затем минимальную и максимальная номинальная стоимость, в которой они будут делать смешанные выходы. Они также предоставляют людям возможность конфиденциально подключиться к ним напрямую.
Когда тейкеры хотят присоединиться к CoinJoin, они загружают книгу заказов, и их клиент выбирает производителей, с которыми будет сотрудничать, на основе своих настроек. После того, как клиент выберет производителя, тейкер опубликует временный открытый ключ для шифрования и начнет общаться с мейкером посредством зашифрованных сообщений через IRC (стоит отметить, что несколько тейкеров могут быть подключены к одному мейкеру одновременно). время). Если все стороны согласны, они подписывают транзакцию, включая комиссию тейкера производителю, и отправляют ее в сеть.
Из-за того, как работает эта координация, производители изучают результаты берущих в процессе координации строительства CoinJoin. Чтобы смягчить это, в JoinMarket есть функция «переворота», при которой клиент тейкера будет смешивать несколько раз с разными производителями, пока не достигнет установленного количества миксов. Это гарантирует, что ни один мейкер не сможет раскрыть всю историю миксов одного тейкера, поскольку каждый мейкер на «маршруте падения» изучает связи только в этой одной транзакции.
Эти различия имеют множество общих последствий с точки зрения архитектуры дизайна для JoinMarket, так как мы увидим некоторые аспекты текущего состояния проекта, а также планы на будущее.
Как смягчаются атаки Сибиллы: ZeroLink Vs. JoinMarket
Атаки Сивиллы — в этом контексте один пользователь, притворяющийся множеством пользователей, чтобы подорвать конфиденциальность, создавая фальшивую «толпу», в которой могут прятаться другие, в то время как они на самом деле составляют всю «толпу», — являются фундаментальной проблемой любого протокола микширования в Биткойне. . Если вся толпа состоит из вас и злоумышленника Сивиллы и никого больше, злоумышленник знает все ваши монеты, и вы не получите никакой конфиденциальности с их точки зрения. В конце концов, фундаментального решения этой проблемы не существует, все, что вы можете сделать, чтобы смягчить ее, увеличив стоимость проведения атаки.
В случае с ZeroLink проблема решается за счет взимания платы координатором. Пока затраты на сборы майнера выше, чем доход от сборов, которые сервер-координатор собирает в качестве сборов, даже координатор понесет чистые убытки, пытаясь Сибил атаковать своих собственных пользователей.
Для JoinMarket вопрос немного сложнее. Вы должны защитить берущих, в их случае, от создателей Сибил, атакующих книгу заказов, так что берущий только смешивается с ними и раскрывает всю историю их смешивания злонамеренному создателю. Но вы также должны защищать берущих от атак производителей, запрашивая CoinJoins, а затем выходя из протокола после того, как производитель раскрывает свои результаты получателю.
Это позволяет злонамеренному получателю отделить входы этого производителя в будущих транзакциях от получателей, с которыми он смешивается. Повторение этого несколько раз подряд против одного и того же производителя позволит им деанонимизировать берущих, которые с ними связались.
В этой системе есть два механизма, обеспечивающих соответствующую защиту для каждого класса атак: первый, предназначенный для борьбы с получателями, шпионящими за создателями, является доказательством дискретной логарифмической эквивалентности (защита номер два в эта запись, также известный как PoDLE).
Основная идея заключается в том, что для пары частного/открытого ключей для биткойн-UTXO вы можете сгенерировать второй другой открытый ключ, соответствующий закрытому ключу, и создать доказательство с нулевым разглашением (ZKP), показывающее, что они оба используют один и тот же закрытый ключ. После предоставления второго ключа и доказательства создателю берущий раскрывает первый открытый ключ(и), соответствующий выходу(ам), который он хочет смешать.
Теперь эта настройка позволяет производителю публиковать второй открытый ключ и ZKP всем другим производителям без документирования фактических выходных данных получателя — таким образом, если получатель, который координирует свои действия с первоначальным производителем, попытается повторно использовать эти выходные данные, чтобы шпионить за несколькими производителями в в то же время все остальные производители увидят, что первый открытый ключ получателя соответствует опубликованному второму ключу и ZKP. В этом случае они откажутся раскрыть свои результаты злоумышленнику. Это повышает стоимость слежки берущих за результатами производителей, поскольку требуется, чтобы берущий имел уникальные результаты для каждого производителя, за которым они шпионят, вместо возможности повторно использовать одни и те же результаты для атаки на нескольких производителей.
Второй механизм защиты - это защита получателей от злоумышленников, которые в книге заказов притворяются множеством разных создателей, что позволяет злонамеренному создателю распутать смешение получателей, которые в конечном итоге смешиваются только с атакующим.
Этот механизм называется залог верности, что, по сути, просто берет большое количество биткойнов и блокирует их на время. Создатели, которые это делают, могут затем подписывать и публиковать сообщения с помощью этого ключа, чтобы доказать контроль над монетами с временной блокировкой. Клиенты тейкеров, если они настроили своего клиента на использование облигаций верности, затем будут взвешивать свой выбор производителей, чтобы отдать предпочтение тем, у которых более высокая стоимость времени, зафиксированная в облигациях верности. Облигации верности взвешиваются в зависимости от квадрата количества заблокированных монет, т.е. если вы заблокируете четыре биткойна, они будут иметь вес 16; пять будут иметь вес 25; шесть будут иметь вес 36 и т. д.
Смысл здесь в том, что вы как мейкер получаете совокупную выгоду, чем больше монет вы блокируете (вас чаще выбирают клиенты-покупатели), поэтому, если несколько честных мейкеров создают очень большие облигации верности, они резко повышают затраты для производителей-сибилингов. которым придется дублировать эту крупную сумму залога верности для каждой из своих фальшивых личностей в книге заказов. То есть, если каждый из трех честных производителей вложит по 10 биткойнов в облигации верности, злоумышленнику придется потратить 30 биткойнов, чтобы иметь 50%-ный шанс быть выбранным для смешивания, а 60%-ная вероятность того, что он будет выбран для смешивания, будет стоить 66 биткойнов. быть избранным и т. д.
Чем более честные производители используют облигации верности, тем выше стоимость атак Сибиллы для злонамеренных создателей.
Как можно улучшить координационный механизм JoinMarket
В случае ZeroLink все координируют свои действия через централизованный координационный сервер - это явная часть дизайна системы и модели доверия с точки зрения надежности. Если координатор выйдет из строя, никто не сможет CoinJoin, пока он не вернется.
JoinMarket работает в системе книги заказов, чтобы попытаться избежать этой центральной точки отказа, но, как упоминалось выше, в настоящее время он использует IRC в качестве уровня хостинга и связи для книги заказов. IRC - это потенциальная центральная точка отказа для JoinMarket, как и сервер-координатор для ZeroLink. Поскольку проект построен на децентрализованной координации CoinJoins, в долгосрочной перспективе эту зависимость от IRC необходимо заменить чем-то более надежным.
Одно из самых проработанных предложений - реализовать какую-то схема сервера каталогов аналогично тому, что использует проект Tor. В сети Tor клиенты подключаются к набору серверов, управляемых участниками Tor, которые отправляют им все узлы в сети Tor, через которые они могут строить луковые маршруты.
Идея JoinMarket заключалась в том, чтобы иметь аналогичный набор серверов, которые снабжали бы клиентов всех производителей открытыми предложениями. Этими серверами должен будет управлять кто-то другой, а не производители, потому что у каждого производителя будет стимул рекламировать себя только на своем собственном сервере каталогов, чтобы собирать больше комиссий. Также должно быть сложно присоединиться к набору серверов каталогов, иначе злоумышленники могут развернуть большое их количество, и Сибил атакует всех пользователей, которые подключаются только к вредоносным серверам.
Облигации верности потенциально могут решить здесь проблему Сибиллы, а также воспрепятствовать производителям запускать серверы каталогов. Фиксация монет в облигации верности для сервера каталогов оставит им меньше монет, которые можно заблокировать в облигации производителя, что потенциально приведет к тому, что меньшее количество клиентов-получателей будет выбирать их для миксов.
Также есть доказательство концепции и рассматривается от Адама Гибсона для интеграции c-lightning в JoinMarket для использования в качестве уровня обмена сообщениями. В контексте серверов каталогов это могло бы облегчить метод монетизации для них как отдельных объектов, использующих Lightning Network. Серверы каталогов могут взимать с производителей небольшие суммы через Lightning за рекламу себя в каталоге.
Как можно обновить протокол координации JoinMarket
Как обсуждалось выше, производители изучают выходы берущих во время одиночных CoinJoins, поэтому существует режим тумблера, позволяющий берущим смешиваться с несколькими производителями и смягчать это.
Однако существует лучшее решение, по крайней мере, в том случае, когда несколько берущих одновременно разговаривают с одним мейкером, и они могут координировать разговор напрямую друг с другом, а не только через мейкера (если есть только один берущий). если поговорить с производителем, это не поможет, поскольку производитель знает, что каждый результат, который не принадлежит ему, принадлежит получателю). МонетаShuffle - это протокол, позволяющий эффективно выполнять те же функции, что и скрытые учетные данные в ZeroLink, чтобы сохранить конфиденциальность информации от координатора, за исключением децентрализованного способа для группы без центрального координатора.
Представьте, что у вас есть Алиса, Боб и Чарли, которые все хотят CoinJoin друг с другом (они уже определились с номиналом выходных данных CoinJoin), и все трое генерируют временный открытый ключ для шифрования сообщений.
Чарли передает свой открытый ключ Бобу, затем Боб передает Алисе свой открытый ключ, а также ключ Чарли. Итак, у нас есть ситуация, когда у Алисы есть открытые ключи Боба и Чарли, у Боба есть открытый ключ Чарли, а у Чарли есть только свой собственный.
Алиса берет адрес, на который она хочет отправить свои выходные данные, и шифрует его с помощью ключа Чарли, но затем берет это зашифрованное сообщение и шифрует его с помощью открытого ключа Боба, встраивая его, как матрешек. Затем она передает это Бобу, который расшифровывает свой слой только для того, чтобы найти зашифрованное сообщение Чарли, которое он не может открыть. Затем Боб берет адрес, на который он хочет отправить свои выходные данные, и шифрует его ключом Чарли. Он передает оба сообщения Чарли. Теперь Чарли расшифровывает оба сообщения и находит адреса, по которым Алиса и Боб хотят отправить свои выходные данные, но он не знает, какой адрес кому принадлежит (и помните, что ни Алиса, ни Боб также не узнали адреса друг друга).
Затем Чарли создает и подписывает CoinJoin, передает его Алисе и Бобу на подпись, и он отправляется в сеть. Все участники этого процесса знают, что их выходные данные построены правильно, но они не знают, кому принадлежит какой из двух других адресов. Этот процесс можно распространить на гораздо более крупные группы, и если бы берущие могли общаться друг с другом напрямую, прежде чем обращаться к мейкерам, этот протокол можно было бы использовать для защиты конфиденциальности берущих от отдельных мейкеров без необходимости много раз перебрасывать монеты с разными сторонами.
Как можно улучшить структуру транзакции JoinMarket
Наибольшее сходство между ZeroLink и JoinMarket заключается в том, что они полагаются на аналогичные обозначенные выходы, чтобы создать двусмысленность в отношении того, какие входы сопоставляются с какими выходами в транзакции.
В то время как JoinMarket использует произвольные суммы, в отличие от предварительно определенных сумм в ZeroLink, в рамках одной транзакции CoinJoin все номиналы комбинации должны быть одинаковыми.
КоинджоинXT - это предложение Гибсона потенциально избавить от необходимости полагаться на это так строго (это также может быть реализовано ZeroLink). Основная идея - воспользоваться преимуществами ECDSA Многостороннее вычисление или MuSig теперь, когда Taproot активирован, и создание цепочки предварительно подписанных транзакций с использованием адресов с несколькими подписями, которые выглядят как обычные адреса с одной подписью.
Когда кто-то наблюдает за блокчейном, часто делаются два больших предположения: во-первых, все входы в транзакции принадлежат одному человеку (большое предположение, что CoinJoins ломается); и во-вторых, что платеж означает, что контроль над средствами был передан.
Итак, что, если несколько сторон объединились, чтобы заблокировать все свои средства на адресе с мультиподписью, который не похож на один, и предварительно подписать длинную цепочку транзакций, которая выглядит так, как будто один человек медленно тратит деньги с течением времени, но на самом деле это так? просто снимать деньги и возвращать их первоначальным владельцам небольшими фрагментами?
Что, если некоторые из этих выводов платежей на самом деле были частными каналами Lightning между двумя участниками CoinjoinXT, чтобы гарантировать, что наблюдатель не сможет отслеживать цепочку платежей и объединять суммы в какой-то момент в будущем?
Это может открыть совершенно новые возможности с точки зрения гибкости типов CoinJoins, в которых участвуют люди, и степени конфиденциальности, которую они создают. Если обычный CoinJoin нагло кричит комнате «Я сейчас уйду и исчезну!» тогда CoinjoinXT может стать эквивалентом незаметного незаметного ухода с вечеринки.
Децентрализованное будущее
В целом, JoinMarket, честно говоря, является своего рода нишевым инструментом в экосистеме, несмотря на то, что он существует с 2015 года, учитывая необходимость запуска полного узла для его использования. Только когда ZeroLink вышел на рынок в форме Wasabi и Samourai, CoinJoin действительно стал доступным, более широко используемым и понятным инструментом.
Оба являются очень ценными инструментами, но, в конце концов, это сервисы, построенные вокруг централизованных компаний — хотя и не требующие доверия сервисы, построенные таким образом, что невозможно потерять деньги, взаимодействуя с ними — но, тем не менее, сервисы. Что произойдет, если компании закроются? Будет ли развитие продолжаться таким же образом, учитывая, что в настоящее время оно финансируется этими компаниями?
В этом пространстве абсолютно точно есть место таким инструментам, и в них есть и положительные стороны. Та же самая динамика финансирования, которая ставит под сомнение выживание инструмента в случае банкротства компании, гарантирует наличие большого количества ресурсов для его развития, пока компания выживет. Но есть место и для децентрализованного инструмента, не зависящего от одной компании. Прогресс может быть медленнее, а проблемы могут быть более сложными для решения, но если это удастся, конечный результат будет гораздо более надежным и адаптируемым.
В этом пространстве нет ничего плохого в услугах и компаниях, но для каждой услуги и компании, где возможно создать децентрализованную альтернативу, эта альтернатива должна существовать как еще один вариант. Как и сам Биткойн, однажды вы можете оказаться в нем остро нуждающимся.
Это гостевой пост Шиноби. Выраженные мнения являются полностью их собственными и не обязательно отражают мнение BTC Inc или Биткойн-журнал.
Источник: https://bitcoinmagazine.com/technical/joinmarket-zerolink-and-coinjoin-bitcoin-mixing.
- "
- плюс
- Реклама
- Все
- Позволяющий
- Двусмысленность
- архитектура
- около
- Август
- Крупнейшая
- Немного
- Bitcoin
- Биткойн UTXO
- блокчейн
- Облигации
- BTC
- BTC Inc
- строить
- покупка
- каналы
- заряд
- зарядка
- Монета
- Coinjoin
- Coins
- Общий
- Связь
- Компании
- Компания
- связи
- Коммутация
- строительство
- Создающий
- Полномочия
- Текущий
- Текущее состояние
- день
- сделка
- децентрализованная
- Защита
- Проект
- Застройщик
- Развитие
- срывать
- экосистема
- шифрование
- События
- Ошибка
- не настоящие
- Особенность
- Сборы
- верность
- находит
- конец
- Во-первых,
- Трансформируемость
- форма
- вперед
- полный
- Полный узел
- фундированный
- финансирование
- средства
- будущее
- Отдаете
- хорошо
- группы
- GUEST
- Guest Post
- здесь
- Спрятать
- история
- Как
- How To
- HTTPS
- идея
- В том числе
- информация
- Интернет
- вопросы
- IT
- присоединиться
- Основные
- ключи
- большой
- ведущий
- УЧИТЬСЯ
- узнали
- изучение
- привело
- молния
- Сеть "Lightning Network"
- Ликвидность
- провайдеры ликвидности
- Длинное
- производитель
- Создание
- карта
- рынок
- рынка
- обмен сообщениями
- смешанный
- модель
- деньги
- двигаться
- Multisig
- сеть
- сеть
- узлы
- предлагают
- Предложения
- онлайн
- открытый
- Мнения
- Опция
- заказ
- Другое
- Владельцы
- ОПЛАТИТЬ
- оплата
- Люди
- бассейн
- Пулы
- представить
- политикой конфиденциальности.
- частная
- Секретный ключ
- Проект
- проектов
- доказательство
- доказательство концепции
- рассматривается
- для защиты
- протокол
- что такое варган?
- публичный ключ
- публиковать
- повышение
- повышения
- Реальность
- опора
- Полезные ресурсы
- доходы
- дорога
- Run
- Бег
- Услуги
- набор
- Поделиться
- Признаки
- просто
- ШЕСТЬ
- небольшой
- So
- РЕШАТЬ
- Space
- тратить
- Расходы
- Вращение
- площадь
- Начало
- Область
- представленный
- система
- говорить
- временный
- время
- инструменты
- Tor
- трек
- сделка
- Сделки
- Доверие
- пользователей
- ценностное
- ждать
- Кошелек
- Что такое
- КТО
- Википедия.
- ветер
- Работа
- работает
- стоимость
- год
- лет