Bitcoin Mixing Решения
В сервисах микширования биткойнов используются методы, позволяющие избежать обнаружения и эффективно скрывать средства пользователей.
Существуют угрозы для сервисов микширования и их пользовательской базы. В ответ биткойн-сообщество и академическая литература предложили альтернативные методы повышения доверия и устранения этих угроз. В этой главе мы обсуждаем общую архитектуру четырех децентрализованных и четырех централизованных предлагаемых протоколов микширования.
Децентрализованные
Протоколы децентрализованного микширования стремятся избежать использования сторонних ресурсов. Черпая вдохновение в представленной сети микширования, многие из этих протоколов микширования предлагают перемешивание входов и выходов для обеспечения несвязанности. В большинстве следующих протоколов предполагается децентрализованный метод поиска пользователями других участников (метод начальной загрузки). В общем, децентрализованные протоколы страдают от ограниченной масштабируемости и длительного времени ожидания для поиска участников смешивания.
CoinJoin
CoinJoin - это метод объединения ряда транзакций от нескольких отправителей в одину. Без каких-либо изменений в текущем протоколе Биткойн этот метод затрудняет для внешних субъектов идентификацию соответствующего получателя для каждого ввода. С момента создания Биткойна обычно предполагалось, что все входы в транзакцию принадлежат одному и тому же пользователю. Однако транзакции CoinJoin доказывают, что это не всегда так. Пользователи могут сотрудничать, чтобы определить единую сумму вывода и объединить свои транзакции в одну. В свою очередь, отправители получают более низкие комиссии за транзакции и уменьшают нагрузку в сети Биткойн. Кроме того, участники транзакций CoinJoin не подвергаются риску кражи. Это связано с тем, что каждый участник должен подписать транзакцию, прежде чем она будет признана действительной.
CoinShuffle
Протокол микширования не требует третьей стороны, совместим с существующей сетью Биткойн и использует CoinJoin для выполнения транзакций. Важно отметить, что в описании авторы заявляют, что механизм начальной загрузки для пользователей не является целью, и протокол предполагает, что у пользователей есть безопасный, децентрализованный метод выражения своей заинтересованности в участии.
CoinShuffle реализуется в три этапа: объявление, перемешивание и проверка транзакций. На рисунке показано высокоуровневое представление протокола CoinShuffle. На этапе объявления каждый участник генерирует пару ключей краткосрочного шифрования-дешифрования и передает свои ключи шифрования. На этапе перемешивания участники начинают с создания новых биткоин адресов, которые служит их выходными адресами. Затем они перемешивают эти выходные адреса методом, аналогичным методам дешифрования смешанных сетей.
Результатом этой фазы является перемешанный набор выходных адресов, исключающий возможность связи между входами и выходами. На заключительном этапе проверки транзакции каждый участник проверяет, существует ли сгенерированный им выходной адрес в перетасованном списке выходных адресов. Если это так, создается транзакция CoinJoin, включая все входы и перемешанные выходы. Затем каждый участник подписывает транзакцию и передает ее другим пользователям. Без подписей каждого участника сделка недействительна. После получения всех подписей транзакция готова к отправке в сеть.
Использование транзакции CoinJoin позволяет распределять комиссию за транзакцию между всеми участниками. Плата меньше для каждого пользователя, и нет отдельной комиссии сервиса за смешивание. Кроме того, если участнику потребуется транзакция изменения, он может включить конкретный адрес изменения в список выходных адресов. В целом CoinShuffle представляет собой эффективный децентрализованный протокол, предполагающий методы взаимодействия с пользователем. Из-за этих предположений включение централизованного доверенного органа не исключено полностью.
CoinParty
Ziegeldorf et al. предложила CoinParty в 2015 году. Протокол микширования выполняется в нескольких транзакциях one-to-one и предлагает децентрализацию и безопасность. Будучи полностью совместимым с существующей сетью Биткойн, CoinParty использует безопасные многосторонние вычисления (SMC) для совместной работы пользователей. CoinParty работает в три этапа: обязательство, перемешивание и транзакция. На рисунке ниже изображена кульминация этих фаз с тремя участниками. У всех n пользователей есть конкретное согласованное количество биткойнов v по их входному адресу (представленному I1… In). Выходной адрес каждого участника представлен как O1… On. В конце операции каждый участник получает v биткойнов на свой соответствующий выходной адрес. Однако только участник i может связать Ii и Oi вместе. Чтобы добиться несвязанности, секретная перестановка,π используется так, что Ii v− → Oπ (i).
На этапе принятия обязательств участники отправляют необходимые средства на временный адрес условного депонирования Ti. Ti создается с использованием пороговой пары ключей ECDSA и, как ожидается, будет предварительно сгенерирован участниками. Для того, чтобы средства покинули адрес условного депонирования, все узлы смешивания должны прийти к консенсусу, защищая средства от кражи злоумышленниками. Перед началом следующего этапа все транзакции на адреса условного депонирования должны иметь как минимум шесть подтверждений. На этапе перестановки адресов случайная секретная перестановка π используется для перемешивания набора выходных адресов. Используя процесс, аналогичный микс-сетями дешифрования, CoinParty сохраняет анонимность как в отношении посторонних, так и участников.
Процесс требует, чтобы каждый равноправный узел микширования зашифровывал и транслировал свой выходной адрес Oi. Шифрование выполняется с помощью открытых ключей других участников K1… KM, что приводит к многоуровневому шифрованию EK1 (… (EKM (Oi)). Это многоуровневое шифрование отправляется каждому узлу смешивания, в котором они расшифровывают уровень, применяя перестановку, и переходит следующему участнику. После успешного перемешивания связь между участниками и их соответствующий выходной адрес стерается. Затем адреса лексикографически сортируются по последнему участнику, и генератор псевдослучайных чисел используется для определения окончательной случайной перестановки.
Контрольные суммы используются на каждом этапе смешивания, чтобы гарантировать правильность. На этапе транзакции участники создают транзакции Ii v− → Oπ (i). Для выполнения эти транзакции должны быть подписаны совместно. Используется пороговый вариант схемы ECDSA, когда транзакции могут быть выполнены, при согласии 2/3 участников микширования.
Xim
Bissiaset al исследует угрозы, которые представляют собой атаки отказа в обслуживании на основе Sybil, направленные на сервисы микширования биткойнов. В ответ они представляют Xim, реализацию двухстороннего микширования. В отличие от ранее описанных методов, Xim предоставляет децентрализованный метод поиска участников для смешивания. Полный протокол не требует изменений существующей реализации Биткойна. Цель Xim - предоставить сторонам метод обнаружения, партнерства и обмена средств, обеспечивая при этом несвязанность и справедливость. Протокол Xim выполняется в два этапа: обнаружение и справедливый обмен.
Вторая фаза может быть выполнена с помощью протокола Fair Exchange или SMC в Биткойне. Наш анализ Xim фокусируется на первой фазе, обнаружении партнера по смешиванию. Этот этап в значительной степени зависит от внеблокового подхода к анонимному обмену сообщениями. Присоединение к процедуре микширования требует, чтобы оба участника тратили средства.
Требование платить за рекламу и откликаться на запросы партнерских миксов Сивиллы не сложно. На этапе открытия участники случайным образом берут на себя роль рекламодателя или ответчика.
Рекламодатель использует текстовое поле в транзакции oft/2 для размещения объявления с указанием анонимной платформы обмена сообщениями, где с ним можно связаться, уникального одноразового номера и суммы, которую он хочет смешать. Любое сообщение, отправленное на платформу обмена сообщениями, шифруется с помощью открытого ключа, используемого для объявления. Любые ответы BYR будут включать в себя объявление, одноразовый номер и анонимный метод, с помощью которого с ними можно связаться. Когда респондент выбран, он публикует подписанное сообщение, содержащее его nonce и hash nonce OFR.
Это уведомляет о том, что они были выбраны. Rthen публикует объявление через транзакцию размера с текстовым полем, содержащим themessage, размещенную в зашифрованном виде с открытым ключом. Наконец, Ap публикует ответное сообщение τ / 2 с хешем одноразового номера R. В конце этого этапа обе стороны подтвердили свою заинтересованность в участии в честном обмене с использованием протоколов, описанных в данном документе.
Централизованные
Централизованные протоколы микширования направлены на то, чтобы обезопасить схему, в которой существует ненадежная третья сторона. Участники микширования встречаются и отправляют свои средства через эти централизованные сервисы. Следующие протоколы смешивания пытаются устранить некоторые из рассмотренных ранее угроз.
Obscuro
Tranet al представляет собой централизованный Биткойн-микшер с использованием Trusted ExecutionEnvironments (TEEs). Obscuroaddresses угрозы, создаваемые операторами смешивания, чтобы уменьшить контроль, который они имеют над функциональностью и повседневной деятельностью службы. Для этого кодовая база микшера изолирована от остальной системы. Пользователям предоставляется возможность проверить изолированные функциональные возможности и гарантируется большой размер микширующего набора. Реализация Obscuro не требует никаких изменений в существующей сети биткойнов и является универсальной, так что она может быть реализована с помощью любой техники TEE. Авторы используют расширение Intel Software Guard Extension (SGX)
Intel SGX позволяет запускать приложения в специальной области памяти, называемой anenclave. Эта область изолирована от остального программного обеспечения системы, включая операционную систему. Удаленная аттестация возможна с помощью содержимого анклава, чтобы убедиться, что они выполняют ожидаемую функциональность. Во время выполнения содержимое автоклава также шифруется. Таким образом, Intel SGX обеспечивает как целостность, так и конфиденциальность.
Однако простое включение функциональности микшера в анклав не защищает сервис от возможно вредоносного оператора микшера. Операторы микшеров по-прежнему имеют возможность контролировать поведение сервиса, включая участников и информацию о блокчейне. Obscuro решает эту проблему и представляет собой высокозащищенный протокол на основе TEE. Основные цели проектирования Obscuro включают непрямые отложения, гарантированный размер пула миксера и сопротивление перемотке состояния. Кроме того, эта архитектура гарантирует возврат и устойчивость к деанонимизации на уровне IP.
На рисунке изображены четыре фазы obscuro (представленные 1, 2, 3, 4 соответственно): начальная загрузка, косвенное участие,блочное сканирование и окончательное объявление. Красные поля указывают на ненадежные области, а зеленые-на доверенные области архитектуры.
На этапе начальной загрузки Obscurogenerates генерируется новый открытый ключ (pubkeymixer) и адрес (addressmixer) для микшера. Затем служба postspubkeymixer, addressmixer и некоторые метаданные, связанные с удаленной аттестацией, публикуются на общедоступную доску объявлений. Затем пользователь получает эту информацию с доски объявлений и использует общедоступную удаленную службу тестирования, чтобы убедиться, что правильные функции загружены в анклав. Любое искажение или ложная информация, размещенная на досках объявлений, приведет к сбою в повторной аттестации и загрузке в службу микширования. По этой причине Obscuroprevents злонамеренные операторы микширования отказываются от обслуживания или сокращают количество пользователей Ben. Любая ложная информация будет публичной и приведет к саморазоблачению атаки службы микширования, поскольку никто не сможет принять в ней участие.
На этапе косвенного участия пользователь отправляет свои депозитные средства в addrmixer. Транзакция TX также включает в себя желаемый выходной адрес пользователя. Чтобы обеспечить конфиденциальность этого выходного адреса, он шифруется с помощью pubkeymixer. Этот депозит покрывается механизмом гарантированного возврата средств таким образом, что если средства не смешиваются в течение определенного времени ожидания, пользователю гарантируется возврат средств. Во время фазы сканирования блоков Obscurodownloads загружает блокчейн-данные.
Затем служба сканирует транзакции, депонирующие toaddressmixer. Для этих транзакций служба расшифровывает выходной адрес. Кроме того, Obscuroverifies проверят целостность сканированного блокчейна на основе недавней контрольной точки из предыдущего раунда.
Эта фаза устраняет необходимость взаимодействия между микшером и пользователем. Кроме того, удаление доброкачественных пользователей потребует дорогостоящей селективности при сканировании блокчейна. Заключительная фаза объявления не начинается до тех пор, пока абонент не получит заданное количество участников.
Когда этот минимум достигнут, создается транзакция TX, включающая все депозиты в качестве входных данных и выходные адреса в качестве выходных. Для обеспечения несвязанности выходные адреса перетасовываются. Затем TX транслируется в сеть, и начинается следующий раунд микширования.
Mixcoin
На этапе косвенного участия пользователь отправляет свои депозитные средства в addrmixer. Transactiontx также включает в себя желаемый адрес вывода пользователя. Чтобы обеспечить конфиденциальность этого выходного адреса, он шифруется с помощью pubkey mixer. Этот депозит покрывается гарантированным механизмом возврата таким образом, что если средства не смешиваются к определенному времени ожидания, пользователю гарантируется возврат средств. Во время фазы блочного сканирования Obscuro загружает блокчейн-данные. Затем сервис сканирует транзакции, поступающие на адрес mixer. Для этих транзакций служба расшифровывает выходной адрес. Кроме того,Obscuro проверяет целостность сканированного блокчейна на основе недавней контрольной точки из предыдущего раунда scan. Эта фаза устраняет необходимость взаимодействия между микшером и пользователем. Кроме того, удаление доброкачественных пользователей потребует дорогостоящей селективности при сканировании блокчейна.Заключительная фаза объявления не начинается до тех пор, пока абонент не получит заданное количество участников. Когда этот минимум достигнут, создается транзакция TX, включающая все депозиты в качестве входных данных и выходные адреса в качестве выходных. Для обеспечения несвязанности выходные адреса перетасовываются. Затем TX транслируется в сеть, и начинается следующий раунд микширования.
Mixcoin Bonneauet предлагает Mixcoin, протокол микширования биткоинов, который обеспечивает возможность саккоунтирования для разоблачения вредоносных централизованных микшеров. Для этого между участниками и сервисом реализуются подписанные гарантии. Если со стороны микшера происходит какое-либо нарушение, у пользователей есть доказательства соглашения между обеими сторонами о размещении публичных форумов. Гарантии могут быть проверены с помощью общедоступной информации, такой как транзакции или открытые ключи. Таким образом, Mixcoin обеспечивает стимул для микшеров работать надежным образом. Протокол предполагает наличие различных микшеров.
Каждый миксер имеет гарантийный ключ подписи KMI, который последовательно используется для подписания гарантий с каждым участником. Таким образом, репутация микшера в значительной степени зависит от использования их ключа.
Следующие параметры входят в исходную гарантию, которую предлагает Алиса: значение, которое необходимо смешать; время, в течение которого A должен отправить vBTC в Mt2; время, в течение которого Mis возвращает средства на выходной адрес AK, куда A хочет отправить свои средства; p ставка комиссии за смешивание для Annonce для рандомизированного fee ω, количество блоков, необходимых для подтверждения платежа A. Если он соответствует содержанию предлагаемой гарантии, он генерирует новый адрес условного депонирования K esc и добавляет его к гарантии. Затем M подписывает гарантию с KM и отправляет ее обратно в A (Шаг 2a). Шаг 2b описывает случай, когда M отклоняет условия гарантии. Ожидается, что после получения подписанной гарантии от M A отправит средства в Kesc до timet1. Если Адоэса нет, Макан просто удалит свои записи. Поскольку Adid не соблюдает гарантию, нет никаких доказательств того, что Mwas злонамеренный. IfAdoes отправляет средства до t1 (шаг 3),Не требуется отправить на Коутбыт2 такую же сумму.
Однако существует вероятность того, что часть средств будуе удержана Mas за определенную плату. Это делается путем вычисления случайного числа с помощью функции маяка. Если случайное число меньше или равно согласованной ставке комиссии, M удерживает средства. Если случайное число больше, чем ставка комиссии, и M отправляет средства в Kout до t2 (шаг 4a), как A, так и M могут уничтожить свои записи и продолжить после успешного микширования. Тем не менее, если M не отправляет средства в OKout до того, как они украдут средства, A может опубликовать гарантию, чтобы доказать, что это обман (шаг 4b). Несмотря на то, что подотчетность достигнута, Mis по-прежнему может красть средства у своих пользователей и потенциально допускать утечку изменений между входами и выходами.
Blindcoin
Валента и Роуэн обращаются к уязвимости Mixcoin к атакам утечки перестановки с помощью Blindcoin. Без каких-либо изменений в существующем протоколе Биткойн, схема слепой подписи и общедоступный журнал только для добавления добавляются к протоколу Mixcoin. На рисунке изображен протокол Blindcoin. Протокол включает три объекта: themixerM, AliceA и общедоступный журнал только для добавления. Параметры v, Kout, ρ, n и ω не изменились по сравнению с Mixcoin. Ниже приведен список параметров, недавно добавленных или переопределенных в протоколе Mixcoin.
На шаге 1 A отправляет параметры микширования D в M. Это предложение включает в себя v, t1, t2, t3, t4, ω и ρ. Кроме того, это первоначальное предложение включает скрытый токен T, который состоит из Koutand non cen. Маркер зашифрован с помощью AC, функции фиксации, которая может быть расшифрована только с помощью A. В Mixcoin этот скрытый токен не был включен и позволил сервису микширования увидеть Koutandn. После получения предложения M может принять (шаг 2a) и отправить обратно частичную гарантию. Этот ответ состоит из T, D и уникального адреса условного депонирования, подписанного K escall. пользователя Mpriv. В Mixcoin микшер отправляет подписанную гарантию обратно в A.
Если M отклоняет предложение (Шаг 2b), Acan удаляет выходной адрес и продолжает работу. Шаги 3a и 3b не изменились в протоколе Mixcoin, в котором ожидается, что A отправит средства в Kesc до timet1. На шаге 4a M завершает гарантию, подписывая скрытый токен с помощью Mpriv и публикуя его в публичном журнале byt2.
Это служит доказательством того, что A отправил средства до понедельника, и может быть проверено любой третьей стороной. Однако, если M не может выполнить гарантию, Acan публикует инкриминирующую информацию, включая частичную гарантию и транзакцию до t1.
Предполагая, что M успешно опубликовал подписанный слепой токен перед t2, Acan использует анонимное удостоверение A ', чтобы раскрыть скрытый токен и повторно опубликовать его в общедоступном журнале (шаг 5). Это действие должно быть выполнено в timet3orMis, которому разрешено хранить средства. После этого поста от A ′, M теперь знает Kout. Однако в этом случае al lMhas - это набор незаслепленных токенов, доступных в общедоступном журнале. M не знает соответствующих им входных адресов. Затем Макан вычисляет функцию маяка для каждого, чтобы определить, какие исходные данные будут приняты в качестве платы. Расчет комиссии одинаков как для Mixcoin, так и для Blind coin. Наконец, Мис ожидал, что заплатит на выходной адрес раньше времени 4, если они передали функцию маяка. Если M не отправит средства назад вовремя, у A есть веские компрометирующие доказательства нарушения протокола. Это включает частичную гарантию,функция фиксации для ослепленного токена, транзакция ввода для Kesc, подписанный токен byM и доказательство того, что средства не были получены byt4. В результате Blindcoin обеспечивает подотчетность, сохраняя в секрете сопоставление входных и выходных адресов. Однако Blindcoin не предотвращает кражу монет, поскольку M все еще может красть средства у своих пользователей.
TumbleBit
В Heilmanet al. представляется TumbleBit, однонаправленный, несвязанный протокол концентратора платежей. TumbleBit полностью совместим с текущим протоколом Биткойн и полагается на ненадежного централизованного посредника для перевода средств между пользователями. Транзакции TumbleBit отправляются вне блокчейна, и на них не влияют проблемы с задержкой в Биткойне. Эти платежи, по сути, представляют собой головоломки вне блокчейна, возникающие при взаимодействии с M.
TumbleBit состоит из трех этапов (изображенных на рисунке выше). В этом примере протокол состоит из трех объектов: Алиса A, Боб Б и микшер M. Во время фазы условного депонирования A отправляет свой QBTC на адрес условного депонирования, чтобы открыть канал оплаты с помощью M. Затем, чтобы B создал канал с M, M должен сначала отправить QBTC на другой адрес условного депонирования. Эти транзакции условного депонирования представляют собой смарт-контакты условного депонирования 2 из 2, то есть доступ к средствам возможен только с помощью транзакций, подписанных обеими сторонами платежного канала. Затем Band M использует протокол обещания головоломки. Этот протокол создает до Q головоломок для B.
Кроме того, протокол обещания головоломки - это также обещание от M, что B получит один BTC за каждую решенную головоломку. Каждая головоломка представляет собой RSA-шифрование значения. На этапе оплаты A производит до Q платежей для B. Эти платежи производятся вне блокчейна, что означает, что A должен взаимодействовать с M, чтобы узнать решения головоломок, которые были предоставлены B. Для этого Боб сначала выбирает головоломку z и закрывает ей вид ̄z. Связывание z гарантирует, что M не может связать z с ̄z. Затем эта слепая головоломка отправляется вAthroughM.
Затем A взаимодействует с M, чтобы решить ̄z. Протокол решения головоломок используется для выполнения честного обмена, так что A дает M один BTC тогда и только тогда, когда M обеспечивает правильное решение ̄ ?. После получения Asends ̄? КB через M. Это повторяется для головоломок Q′. На заключительной фазе обналичивания отправляет решенные головоломки hisQ, чтобы получить Q′BTC с адреса условного депонирования M. Затем M получает оставшиеся средства из своего условного депонирования и Q′BTC с адреса условного депонирования A, оставляя остальное для A. На протяжении всей этой схемы участникам не нужно взаимодействовать друг с другом, и микшер не теряет свое первоначальное количество средств.