Приветствую вас, сообщество Monero! Два месяца назад мною был размещён запрос CCS на финансирование продолжения моего исследования атомных свопов Monero. Исследование завершено, и я рад представить вам его результаты. В этом посте будут кратко изложены результаты исследования, но здесь вы также сможете найти «белую книгу», в которой подробно описан весь протокол и все соответствующие детали. Блестящий протокол атомных свопов BTC/XMR! Мы сделали это! С помощью MRL, моих коллег и сообщества мы создали первый (насколько нам известно) протокол атомных свопов Bitcoin и Monero. И этот итоговый протокол можно реализовать уже сегодня — больше никакой непонятной криптографии! Почему именно сейчас? Что изменилось? Когда я начал изучать Monero на предмет возможности проведения атомных свопов Bitcoin/Monero три с половиной года назад, в основе большинства протоколов проведения подобных свопов лежали смарт-контракты HTLC (Hash Time Locked Contract), которые, как все мы знаем, не используются Monero. Таким образом, в начале проекта цель состояла в реализации возможности атомного свопа, в котором вся логика (тайм-ауты, возможные последовательности операций, раскрытие секретов и т. д.) была бы основана на принципах другого блокчейна — блокчейна Bitcoin. Вторая трудность, в случае с Monero и Bitcoin, состояла в их соответствующих базовых криптографических параметрах: они используют разные эллиптические кривые, у них разные алгоритмы создания подписи — у них просто нет ничего общего! Это делает данную пару плохим кандидатом с точки зрения применения других типов атомных свопов, которые не используют (исключительно) контракты HTLC. В ноябре 2018 года нами был подготовлен проект протокола, учитывающего указанные выше ограничения. Таким образом, требовалось, чтобы из соображений надёжности протокол использовал определенный тип доказательства с нулевым разглашением — доказательства с нулевым разглашением на базе прообраза хэша. Этот тип доказательства не очень распространён, если вообще используется. Итак, в теории протокол работал, но с некоторой непонятной криптографией, что делало его плохим кандидатом для реализации. В начале 2020 года, после представления проекта протокола на конгрессе 36C3 в декабре 2019 года, я обнаружил (по ссылке, полученной от Саранга Ноезера (MRL) идею Эндрю Поэлстры по реализации дискретного логарифмического равенства для группового доказательства знания с нулевым разглашением (MRL-0010), что означало, что мы сможем доказать некоторые отношения между элементами в двух разных группах (двух кривых, чтобы было понятно), а также статью Ллойда Фурнье по одноразовым верифицируемым зашифрованным подписям, обеспечивающим раскрытие секрета при помощи ECDSA. С помощью этих двух новых (для меня) криптографических примитивов мы смогли заменить предыдущее доказательство с нулевым разглашением на их комбинацию, сделав протокол полным и практически выполнимым. Как это работает В общем (и упрощённом) виде протокол работает следующим образом: Monero блокируются на адресе, сгенерированном обоими участниками. Вначале ни один из участников не контролирует адрес полностью — у обоих имеется только половина приватного ключа. Используя межгрупповое доказательство с нулевым разглашением на базе дискретного логарифмического равенства, оба участника доказывают друг другу, что адрес в блокчейне Bitcoin связан с адресом в блокчейне Monero. С помощью скриптов Bitcoin и одноразовых верифицируемых зашифрованных подписей ECDSA один участник раскрывает другому свой частичный приватный ключ, взяв Bitcoin, позволяя другому взять под контроль Monero. Если своп происходит успешно, A раскрывается перед B, а если своп будет отменён, B раскроется перед A (у нас есть и третий сценарий, который разъясняется в документе, позволяющий вызвать реакцию и избежать тупиковой ситуации). Следующие шаги Очевидным следующим шагом было бы создание рабочего варианта реализации в основной сети, но готовый к использованию вариант, который также был бы устойчивым, требует большой технической работы. Более того, несмотря на то, что криптография не так уж и неясна, большая её часть всё ещё не реализована. Скоро я опубликую пост, если этого захочет сообщество, запрос CCS, чтобы моя команда и я занялись работой по реализации этого протокола шаг за шагом. Конечной целью будет создание рабочей версии клиента/демона, обеспечивающего возможность свопов Bitcoin и Monero. Было бы здорово создать такое! Заключение Спасибо лаборатории MRL и её исследователям за помощь, а также команде CCS и сообществу за поддержку! Я надеюсь, что оправдал ожидания сообщества по моему первому запросу CCS — любые отзывы приветствуются! --- Источник: [CCS Results] Monero Atomic Swaps research Перевод: Mr. Pickles (@v1docq47) Редактирование: Agent LvM (@LvMi4) Коррекция: Kukima (@Kukima)