Перевод Атомные свопы в Monero

Тема в разделе "Статьи", создана пользователем Mr. Pickles, 8 май 2021.

  1. Mr. Pickles

    Команда форума Модератор Редактор

    Регистрация:
    11 сен 2017
    Сообщения:
    916
    Симпатии:
    244
    1.JPG

    При наличии возможности проведения атомных свопов пользователи могут торговать криптовалютами без какой-либо необходимости в доверии друг другу или кому-то ещё.

    Благодаря реализации возможности проведения атомных свопов ожидается заметное оживление в торговле Monero. При наличии такой возможности пользователи могут торговать криптовалютами без какой-либо необходимости в доверии друг другу или кому-то ещё. В основе атомных свопов Monero лежат новые технологии и концепции, разработанные множеством различных команд, включая финансируемый сообществом проект по созданию программного обеспечения под названием Farcaster, а также алгоритмически схожую в плане работы команду COMIT.

    В данной статье рассмотрены как вышеупомянутые технологии, так и деятельность. связанная с разработкой программного обеспечения. При этом, основное внимание уделяется работе, проделанной командой Farcaster. Нами представлены будут технологии, послужившие основой как для реализации возможности проведения традиционных свопов с использованием подобных Bitcoin криптовалют, так и новых атомных свопов с использованием Monero. Также в статье описаны шаги, которые необходимо выполнить для проведения обоих типов свопов. Мы рассмотрим преимущества и недостатки новых технологий, иллюстрирующие потенциал природы преобразующих изменений, которые поспособствуют развитию как Bitcoin, так и Monero.

    Основы атомных свопов

    При проведении атомных свопов пользователи обмениваются различными криптовалютами, а результат обмена зависит только от блокчейна и заинтересованности самого пользователя. Если атомный своп проводится правильно, происходит следующее: либо I) происходит успешный обмен криптовалютами, либо II) обмен не удаётся, и участники свопа остаются со своими криптовалютами. «Атомная» составляющая процесса подразумевает, что его нельзя разбить - он либо совершается полностью, либо вообще ничего не происходит.

    Поскольку атомные свопы Monero подразумевают вовлечение в процесс и других криптовалют, необходимо понимать суть технологий таких криптовалют. Не каждая криптовалюта поддерживает атомные свопы Monero, и в этой статье основное внимание уделяется Bitcoin, хотя данный подход работает и с другими подобными Bitcoin криптовалютами, обладающими достаточной гибкостью, которая была обеспечена обновлением протокола Segregated Witness (SegWit), такими, например, как Litecoin.

    Немного технической информации: криптографический хеш необратимо преобразует любые данные в краткую строку или число (типичный пример - 256 бит). Эту функцию легко вычислить в случае с любыми исходными данными, называемыми прообразом. Но после хеширования никак не получится найти прообраз, на основе которого был сгенерирован соответствующий хеш.

    Хеширование позволяет использовать хеш-блоки. Блокировка криптовалюты по хешу не позволяет тратить её до тех пор, пока не будет предоставлен прообраз указанного (в блокчейне) хеша. Подобным образом работает и блокировка по времени, которая не даёт тратить средства до определённого времени. Bitcoin написан на языке сценариев, который позволяет использовать оба вида блокировки при проведении транзакций (передаче пакетов данных в блокчейн, при которой тратится криптовалюта), а также совместно с другими логическими процедурами. Комбинация блокировки по хешу и блокировки по времени создаёт так называемый хешированный контракт с блокировкой по времени (HTLC), согласно которому криптовалюта переводится получателю в том случае, если прообраз будет предоставлен до указанного срока. В противном случае, по истечении указанного времени, средства будут переданы другому получателю.

    Применение атомных свопов с двумя криптовалютами, подобными Bitcoin

    Первый атомный своп был проведён между Decred и Litecoin 20 сентября 2017 года (атомный своп Bitcoin-Litecoin состоится всего через три дня после этого) [1]. Метод, используемый в случае с этими подобными Bitcoin криптовалютами проще, и стоит вникнуть в его суть, прежде чем углубляться в подробности более сложного метода, используемого с Monero.

    Вот шаги, которые необходимо предпринять, если у вас есть Bitcoin и вы хотите поменять его онлайн на Litecoin путём атомного свопа с незнакомым вам пользователем:
    1. Вы и данный пользователь обмениваетесь информацией о суммах криптовалют и соответствующих адресах.

    2. Используя публичный ключ незнакомого вам пользователя, вы вносите свой Bitcoin в HTLC, опубликованный в блокчейне Bitcoin. Этот Bitcoin может быть востребован незнакомцем путём предоставления прообраза (сгенерированного вами и первоначально известного только вам) хеша до истечения определённого срока. Использование публичного ключа незнакомого вам пользователя гарантирует, что Bitcoin сможет забрать только этот незнакомец, предоставив нужный прообраз. Если Bicoin не будет востребован по истечении окончательного срока, он вернётся к вам.

    3. Незнакомец вносит свой Litecoin в HTLC, опубликованный в блокчейне Litecoin, используя ваш публичный ключ и то же самое точное значение хеша, которое вы использовали для вашего Bitcoin при совершении второго шага, но время действия данного HTLC истекает по истечении более короткого промежуточного срока. Если Litecoin не будет востребован до окончания промежуточного срока, он так же вернётся к владельцу.

    4. Вы, будучи единственным, кому известен прообраз, на основе которого были сгенерированы два одинаковых хеша, можете забрать Litecoin, раскрыв данный прообраз.

    5. Незнакомый вам пользователь использует прообраз, который вы только что раскрыли, чтобы забрать Bitcoin.
    Адреса и суммы публикуются в блокчейне, и данная информация является общедоступной. Поэтому, вы и незнакомец можете быть уверены в том, что не станете жертвой обмана, когда вы вносите или забираете свою криптовалюту. После реализации данного процесса, если всё пройдёт хорошо, вы получите Litecoin, а незнакомый пользователь получит Bitcoin. Если Litecoin не будет востребован, все изначальные суммы вернутся к их изначальным владельцам. Если вы заберёте Litecoin, но ваш Bitcoin остается невостребованным по истечении окончательного срока, вы также получите его,что мотивирует незнакомца забрать Bitcoin вовремя.

    Основы атомных свопов Monero

    Вышеописанный процесс не позволяет менять Monero методом свопа, поскольку Monero не использует контракты HTLC (то есть, ни блокировки по хешу, ни блокировки по времени). Но всё же существует способ сделать это.

    Криптовалюты, такие как Bitcoin и Monero, используют так называемые цифровые подписи. Это общий термин, которым в числе прочих обозначаются подписи на базе алгоритма создания цифровой подписи с использованием эллиптической кривой (ECDSA), который применяется Bitcoin, подписи на основе алгоритма Шнорра, предложенного для реализации в рамках будущего обновления Taproot Bitcoin, и компактные связываемые подписи спонтанной анонимной группы (CLSAG), которые используются Monero. В основе всех этих подписей лежит скалярное умножение по специальной математической конструкции, называемой эллиптической кривой. Это умножение является односторонней функцией, которую легко вычислить, но чрезвычайно трудно обратить путём деления (процесс, называемый вычислением дискретного логарифма). Эти функции на основе эллиптических кривых отличаются от односторонней хеш-функции, о которой говорилось ранее, наличием важных математических свойств.

    При использовании одного из этих алгоритмов цифровой подписи приватный ключ соответствует секретному случайному числу, которое умножается на известное базовое значение на эллиптической кривой, чтобы получить публичный ключ. Методы создания подписи на основе эллиптических кривых позволяют владельцу приватного ключа делиться соответствующим публичным ключом, а затем предоставлять цифровую подпись для любых данных, чтобы подтвердить 1) своё согласие с такими данными и 2) знание приватного ключа. Этот процесс можно повторять снова и снова, за исключением особых случаев. Пример цифровых подписей приводится на рисунке ниже.

    02.JPG
    Рисунок 1. Цифровая подпись

    Одним из особых случаев, не предполагающих повторения процесса, являются адаптивные подписи, которые используются для проведения атомных свопов Monero. При шифровании публичные и приватные ключи могут использоваться точно так же, как подписи. При этом для шифрования применяются публичные ключи, а приватные ключи для расшифровки. Таким образом, в основе адаптивной подписи лежит технология создания проверяемых зашифрованных подписей (VES), которая позволяет зашифровать подпись так, чтобы обеспечивалась возможность её проверки с помощью публичных ключей (двух ключей: одного для метода создания подписи и одного для метода шифрования). При этом проверяется, является ли зашифрованная подпись легитимной, но саму (незашифрованную) подпись изучить невозможно. Это уже позволяет использовать адаптивные подписи, также называемые одноразовыми VES подписями и обладающие следующим свойством: при использовании адаптивной подписи в качестве зашифрованной, приватный ключ, применяемый для шифрования (и называемый адаптивным ключом), можно вычислить на основе зашифрованной и незашифрованной подписей вместе взятых. Если вы предоставляете незнакомому пользователю адаптивную подпись, созданную, например, в соответствии с методом ECDSA, используемым Bitcoin, а затем раскрываете незашифрованную подпись, например, подписывая транзакцию Bitcoin, этот незнакомец получает возможность вычислить адаптивный ключ. Это показано на рисунке ниже.

    03.JPG
    Рисунок 2. Адаптивная подпись

    Однако, в случае использования при проведении атомных свопов приватный ключ Monero должен быть рассчитан на основе подписи Bitcoin, а Monero и Bitcoin используют разные эллиптические кривые. Атомные свопы Monero требуют возможности доказательства общего делителя (дискретного логарифма, соответствующего приватному ключу) для двух значений на двух разных эллиптических кривых. Такие доказательства называются доказательствами с нулевым разглашением, потому что они не раскрывают информацию о значении дискретного логарифма, а только доказывают, что он тот же. Конкретный подход с применением доказательств с нулевым разглашением, используемый для проведения атомных свопов Monero, описан в работе [2]. Данный тип доказательства с нулевым разглашением проиллюстрирован на рисунке ниже.

    04.JPG
    Рисунок 3. Доказательство с нулевым разглашением

    В сочетании с адаптивной подписью (ECDSA или Шнорра), определённой с помощью эллиптической кривой Bitcoin, доказательство дискретного логарифма с нулевым разглашением позволяет вычислить данные приватного ключа Monero на основе подписи Bitcoin в рамках процесса, эффективность работы которого можно гарантировать. Такая комбинация адаптивных подписей с доказательством с нулевым разглашением общего дискретного логарифма для эллиптических кривых Bitcoin и Monero стала прорывом, сделавшим возможными атомные свопы между блокчейнами Monero и Bitcoin. [3].

    Однако в случае с атомными свопами адаптивная подпись используется для раскрытия только части ключа Monero — особой части. Разделение ключа — это когда секретный ключ K разделяется (исключительно в целях, описанных в данной статье) на две части, называемые долями ключа A и B, таким образом, что A или B сами по себе не дают представления о значении K, но A и B вместе позволяют легко вычислить K. При проведении атомных свопов Monero, K вычисляется на основе A и B посредством сложения по модулю, которое обеспечивает необходимые математические свойства. В частности, это позволяет раскрывать при помощи адаптивной подписи долю приватного ключа для известного публичного ключа.

    Подписи используются в транзакциях Bitcoin, чтобы тратить монеты Bitcoin. Приватные ключи отправителя используются для подписания важных частей транзакций, чтобы закрепить контроль над монетами Bitcoin за новыми приватными ключами (соответствующими новым публичным ключам или адресам). В этом случае Bitcoin допускает создание multisig-транзакций сразу с несколькими подписями, когда для траты Bitcoin требуется более одной подписи. multisig-транзакции Bitcoin могут быть построены по схеме «M из N», где M ≤ N. В частности, при совершении атомных свопов используются multisig-транзакции, созданные по схеме «2 из 2». Технология мультиподписи, используемая Bitcoin, и разделение приватного ключа, осуществляемое в Monero, описанные выше, являются связанными инструментами, обладающими аналогичным эффектом для этих двух криптовалют.

    Последней технологией, лежащей в основе свопов являются так называемые «скрипты без скриптов» (Scriptless Scripts). Методе проведения атомных свопов, используемый двумя подобными Bitcoin криптовалютами, о которых говорилось ранее, использует язык сценариев, встроенный в криптовалюты, для программирования контрактов HTLC. Идея технологии Scriptless Scrips состоит в том, что если вы хотите, чтобы действие B следовало за действием A, вместо явной программы применяется криптография, чтобы при совершении действия A раскрывалась информация, которая позволит выполнить действие B с кем-то, финансово заинтересованным в выполнении действия B. Данный метод частично был использован в раннее приведённом примере атомного свопа (Litecoin-Bitcoin), где для получения Litecoin требовалось раскрыть информацию, которая позволила бы и побудила незнакомого вам пользователя забрать ваш Bitcoin до истечения окончательного срока. Подобный процесс объединения сценариев с технологией Scriptless Scriprts называется протоколом частичного использования сценариев (semi-scriptless protocol).

    Концепция атомных свопов Monero

    Вышеупомянутые инструменты используются протоколом частичного использования сценариев для проведения атомных свопов Monero, разработанном Джоэлем Гуггером. [4]. Подход заключается в применении криптографических методов, чтобы гарантировать, что, когда незнакомец захочет забрать Bitcoin, внесённый вами для совершения свопа, автоматически раскрывалась бы информация, которая позволит вам и только вам получить Monero, внесённые незнакомцем. Этот основной компонент процесса выполняется вами и незнакомцем. При этом каждый из вас создаёт часть секретного ключа, из которых, в свою очередь, создаётся приватный ключ траты Monero, который позволяет забрать Monero, и который публикуется незнакомцем. Вы вносите свой Bitcoin для обмена в качестве скрипта Bitcoin, используя адаптивную подпись с доказательством с нулевым разглашением, чтобы принудительно раскрыть общий секретный ключ незнакомца, если незнакомец решить забрать Bitcoin.

    Данная основная часть проста. Но для завершения атомного свопа нужна ещё и дополнительная структура, чтобы в любой ситуации, если сделка пойдёт не так, как надо, у вас и у незнакомцам должна иметься возможность восстановить всё, как было. И это сложная часть. Вот несколько причин, по которым после внесения обязательства по Bitcoin с помощью сценария, описанного в предыдущем абзаце, все может пойти не так: 1) вы можете опубликовать неправильную сумму Bitcoin, 2) незнакомец может опубликовать неправильную сумму Monero (или вообще не опубликовать её), или же 3) незнакомец решит не забирать Bitcoin. Каждый из указанных случаев требует наличия защиты.

    В случае 1) обмен может пойти не так, если вы разместите неправильную сумму Bitcoin, и незнакомец сможет отследить её через прозрачный блокчейн Bitcoin, и попросту не внести Monero, если указанная вами сумма будет неверна. Здесь у вас должен быть способ вернуть свой Bitcoin, что и делается с помощью скрипта Bitcoin, называемого скриптом возмещения. Этот скрипт позволяет передать вам Bitcoin с помощью адаптивной подписи с доказательством с нулевым разглашением, вынуждая раскрыть вашу часть приватного ключа Monero по запросу, что позволяет незнакомцу затем забрать свои Monero, которые были внесены (что ещё потребуется, как будет описано далее). Эта транзакция приостанавливается вами и незнакомцем (не публикуется в блокчейне), и будет проведена только в случае необходимости. Когда всё будет готово, если вы внесёте неправильную сумму Bitcoin, незнакомец не отправит Monero, и вы в конечном итоге опубликуете скрипт возмещения в блокчейне Bitcoin и получите свой Bitcoin обратно.

    В случае 2) обмен может пойти не так, если незнакомец внесёт неправильную сумму Monero, и эта ситуация станет очевидной, если предварительно поделиться ключом просмотра Monero для внесённой суммы. Кроме того, в рамках подготовки к решению этой проблемы ваш Bitcoin вносится с использованием скрипта Bitcoin, называемого скриптом блокировки свопа (swaplock script), который в свою очередь использует схему мультиподписи «2 из 2», чтобы незнакомец мог забрать Bitcoin только после того, как вы предоставите подпись, применив приватный ключ, известный только вам. В противном случае используется скрипт временной блокировки для отправки Bitcoin посредством скрипта возмещения, описанного выше, после заранее согласованного срока, называемого (в данной статье) окончательным сроком нормального завершения свопа. Этот скрипт делает так, что вам придётся подтвердить сумму Monero, прежде чем вы раскроете подпись, которая позволит незнакомцу забрать Bitcoin. При этом, если с помощью ключа просмотра выяснится, что сумма Monero неверна (или нулевая), вы сможете просто подождать, пока не истечет время скрипта блокировки свопа и вернуть свой Bitcoin с помощью скрипта возмещения, описанного в предыдущем абзаце. Необходимо позаботиться о том, чтобы в этом случае незнакомец также получил обратно свои Monero, и для этого вместе с адаптивной подписью с доказательством с нулевым разглашением, упомянутой в предыдущем абзаце, будет передана ваша секретная часть приватного ключа Monero, когда вы заберёте Bitcoin, и это позволит незнакомцу вернуть внесённые Monero.

    Здесь стоит отметить, что в оригинальной работе Гуггера использовался скрипт блокировки по хешу с прообразом, контролируемым вами, чтобы вы могли управлять возможностью незнакомца забрать Bitcoin, и именно таким был первоначальный вариант, выбранный командой Farcaster, который всё ещё можно увидеть в некоторых документах, опубликованных онлайн. Но в процессе разработки команда COMIT указала на тот факт, что применения такой блокировки по хешу не требуется, поскольку схема мультиподписи «2 из 2» вполне может быть использована в тех же целях в случае с одной из двух подписей, контролируемых и предоставляемых вами (в частности, схема мультиподписи «2 из 2» может применена со скриптом блокировки свопа, не связанным с адаптивной подписью). Данный обновлённый подход описан в этой работе и может быть дополнительно исследован в рамках запросов о комментариях (RFC) Farcaster. [5]

    В случае 3) обмен может пойти не так, если незнакомец решит вообще не забирать Bitcoin, и такая проблема решается с помощью скрипта блокировки свопа, описанного выше, который позволяет вам воспользоваться скриптом возмещения. чтобы вернуть свой Bitcoin по истечении окончательного срока нормального завершения свопа .

    Таким образом мы решаем три перечисленных проблемы, которые могут возникнуть, когда атомный своп может пойти не так. Но теперь мы получаем новые возможные ситуации, в которым своп может пойти не так, как следует. Вышеупомянутый процесс открывает два новых варианта развития событий, ведущих к сбою: 1) вы можете не воспользоваться схемой мультиподписи «2 из 2» после размещения Monero, или 2) вы или незнакомец можете опубликовать скрипт возмещения в блокчейне Bitcoin, но не забрать обратно свой Bitcoin. В обоих случаях придётся ожидать, пока скрипт блокировки свопа запустит скрипт возмещения средств. В первом случае проблема решается незнакомцем, который публикует скрипт возмещения и ожидает, пока вы не вернёте свой Bitcoin в процессе возмещения и тем самым не раскроете вашу секретную часть ключа Monero, который позволит незнакомцу забрать Monero. Во втором случае проблема решается путем добавления временной блокировки к скрипту возмещения, описанному выше и позволяющему в конечном итоге получить незнакомцу Bitcoin. Если вы или незнакомец запускаете скрипт возмещения, а затем не забираете Bitcoin, незнакомец может забрать Bitcoin по истечении предварительно определённого срока, называемого (опять же, в данной работе) окончательным сроком возмещения.

    Подробности атомных свопов Monero

    Концепции, изложенные в предыдущем разделе, сводятся к последовательному выполнению описанных шагов. В соответствии с подходом Гуггера используются две транзакции Bitcoin и одна транзакция Monero. Это позволяет решить проблему отсутствие блокировки по хешу или временных блокировок Monero, а также гарантирует выполнение свопа, заставляя участников действовать непрерывно (в частности, изначального владельца Bitcoin), чтобы предотвратить потерю средств до истечения окончательного срока. Данный метод не требует внесения каких-либо изменений в Monero или Bitcoin — описанные ниже шаги реализованы в отдельном программном обеспечении, которое взаимодействует с блокчейнами Monero и Bitcoin в их существующем виде.

    Вот шаги, которым вам необходимо следовать, если у вас есть Bitcoin и вы хотите обменять его онлайн на Monero с незнакомцем:
    1. Вы и незнакомец обмениваетесь информацией, связанной с суммами в криптовалюте, адресами получателей и соответствующими процедурами Здесь используется две временные настройки: 1) окончательный срок нормального завершения, то есть лимит времени для нормального завершения атомного свопа и 2) окончательный срок возврата, то есть, лимит времени, в течение которого вы сможете вернуть свой Bitcoin в случае сбоя нормального выполнения свопа.

    2. Вы и незнакомец создаёте (случайные) части приватного ключа просмотра Monero и открыто делитесь ими друг с другом.

    3. Каждый из вас создаёт (случайную, секретную) часть приватного ключа траты Monero. Вы обмениваетесь ограниченной информацией, позволяющей создать общий адрес Monero, не раскрывая частей приватного ключа траты. Это возможно благодаря тому, что две части ключа складываются вместе (по модулю большого простого числа), чтобы получить приватный ключ траты.

    4. Вы и незнакомец создаете и подписываете скрипт Bitcoin, называемый скриптом возмещения. И здесь есть два возможных пути выполнения: I) Bitcoin возвращается обратно к вам, при этом ваша часть приватного ключа Monero раскрывается вашей подписью, и Bitcoin забирается при помощи адаптивной подписи в сочетании с доказательством с нулевым разглашением. Или же II) используется временная блокировка, но только после того, как истечёт окончательный срок возврата, заданный при выполнении шага 1, что позволит незнакомцу забрать Bitcoin без дальнейшего раскрытия. Подпись незнакомца в данном случае позволяет вам чувствовать себя в безопасности при продолжении процесса, поскольку вы можете опубликовать её при необходимости и использовать свою подпись для возмещения Bitcoin путём, описанным в пункте I, без каких-либо дальнейших действий со стороны незнакомца. Незнакомец также может опубликовать её и получить Bitcoin путём, описанным в пункте II, без дальнейших действий уже с вашей стороны. Эта транзакция Bitcoin сохраняется у вас и у незнакомца и публикуется только в случае сбоя запланированного выполнения атомного свопа.

    5. Вы создаёте, оплачиваете, воспользовавшись Bitcoin для обмена, и публикуете скрипт блокировки свопа блокчейне Bitcoin. Данный скрипт сценарий имеет два возможных пути выполнения: I) с использованием схемы мультиподписи «2 из 2», если будет предоставлена ваша подпись с использованием приватного ключа, известного только вам, и незнакомец получит возможность забрать Bitcoin. В противном случае, II) с использованием временной блокировки после истечения окончательного срока нормального завершения, установленного при выполнении шага 1. Таким образом будет запущен процесс возврата, так как будет активирован скрипт возмещения, описанный выше. Стратегически используя адаптивные подписи, данный скрипт вместе со скриптом возмещения, используемым при реализации шага 4, раскроет вашу часть ключа траты Monero, если вы захотите забрать Bitcoin, и раскроет часть ключа траты Monero незнакомца, если незнакомец захочет забрать Bitcoin до истечения окончательного срока возврата, который был задан при выполнении шага 1.

    6. Незнакомец, почувствовавший себя комфортно после того, как увидит опубликованный скрипт блокировки свопа, сможет перевести Monero, предназначенные для обмена, под контроль приватного ключа, созданного при выполнении шага 3, опубликовав транзакцию Monero.

    7. Также почувствовав себя комфортно после того. как вы увидите опубликованную транзакцию Monero с помощью ключа просмотра Monero, созданного при прохождении шага 2, вы сможете предоставить свою мультиподпись, созданную по схеме «2 из 2», которая позволит незнакомцу немедленно забрать Bitcoin.

    8. Незнакомец забирает Bitcoin, с помощью адаптивной подписи с доказательством с нулевым разглашением автоматически раскрывая часть приватного ключа Monero.

    9. Вы же используете раскрытую часть приватного ключа незнакомца, чтобы получить Monero. Вы можете либо переместить средства, либо оставить их на том же адресе на неопределённый срок, поскольку вы единственный, кому известен приватный ключ траты, так как только вы будете знать обе части ключа, начиная с шага 3. Незнакомцу известен приватный ключ просмотра, но не сможет использовать его, чтобы увидеть, когда вы переместите Monero.
    Этот процесс требует от вас взаимного участия. Вы не можете просто внести средства в скрипт блокировки свопа, выполняя шаг 5, и уйти оффлайн, потому что по истечении окончательного срока возврата, заданного при прохождении шага 1, незнакомец сможет забрать Bitcoin, а вы не сможете забрать Monero. Тем не менее, незнакомец может вложить средства в транзакцию Monero, выполняя шаг 6, и уйти, будучи уверенным в том, что либо получит вашу часть ключа Monero (и через неё доступ к приватному ключу), либо получит доступ к Bitcoin в любое другое время.

    Если вы или незнакомец не предпримете необходимых действий после того, как средства будут зачислены, другая сторона всегда может либо вернуть свою исходную криптовалюту за вычетом комиссии, либо забрать другую криптовалюту. Если вы вносите Bitcoin, выполняя шаг 5, а незнакомец не вносит Monero, в процессе прохождения шага 6, вы можете подождать, пока не истечёт срок нормального завершения, и вернуть свой Bitcoin. Если же незнакомец внесёт Monero при выполнении шага 6, а вы не предоставите подпись при прохождении шага 7, он может подождать, пока вы не вернёте свой Bitcoin и воспользоваться открытой частью ключа, чтобы забрать Monero (и если вы не вернете свой Bitcoin, то незнакомец сможет забрать и Bitcoin по истечении окончательного срока возврата, что является важным мотиватором). Если незнакомец не заберёт Bitcoin при выполнении шага 8, вы можете подождать, пока не истечёт окончательный срок нормального завершения, и вернуть свой Bitcoin.

    Дополнительную информацию о протоколе, с подробным обсуждением теоретико-игровых аспектов подхода и того, как риск потери может привести к завершению обмена, можно найти в иллюстрированной в сети Петри презентации контрибьютора zkao. [6] .

    Реализация

    Тестовый вариант атомных свопов Monero уже реализован и может использоваться для обмена между блокчейнами Bitcoin и Monero. [7], [8]. Однако, данное экспериментальное программное обеспечение не было выполнено или проверено таким образом, чтобы была доказана его безопасность при применении широким кругом пользователей. Чтобы решить эту проблему, в ноябре 2020 года был запущен проект Farcaster по разработке программного обеспечения для проведения атомных свопов. Объём финансирования составил 2727 Monero (XMR), которые были получены через систему краудфандинга сообщества Monero (CSS) [9], и, как ожидается, работа будет завершена к концу 2021 года. Выражаем благодарность контрибьюторам проекта за их усилия, а именно h4sh3d, zkao, kayabaNerve, lederstumpf и charlatan. Контрибьютором под ником h4sh3d является Джоэль Гуггер, автор работы [4] .

    Программное обеспечение для Farcaster было написано на Rust, языке программирования, используемом в ряде проектов экосистемы Monero, таких как Tari, но который отличается от языка C, используемого в случае с основным программным обеспечением Monero. Программное обеспечение Farcaster состоит из трёх компонентов, работающих асинхронно. Первые два компонента работают параллельно со стандартными кошельком и узлом Monero и имеют отдельный интерфейс клиента и серверную часть демона. Третий компонент, называемый синхронизатором, сам состоит из нескольких частей и взаимодействует с блокчейнами криптовалют для публикации транзакций и сбора информации. Обоснование этой архитектуры заключается в том, что она позволяет легко изменять интерфейс согласно будущим вариантам реализаций, включая лёгкое программное обеспечение, которое может использоваться на мобильных устройствах и взаимодействовать с удалёнными демонами. Она также допускает дальнейшее расширение по мере добавления других криптовалют.

    Постоянная работа Farcaster сопряжена с решением множества задач и новыми разработками. Так, например, наш предварительный план предусматривает выработку таких функций, как поддержка аппаратного кошелька (Ledger и Trezor). Также планируется реализация поддержки графического интерфейса. Наша работа ведёт к улучшению библиотек Rust для Monero. Модели угроз, разработанные для проекта, будут использоваться для проверки эффективности работы. Планируется выработка методов, которые позволят участникам находить друг друга. За решением этих и многих других проблем, с которыми сталкиваются разработчики Farcaster, можно следить на IRC-канале #monero-swap на freenode, в репозитории Farcaster на github, [10], а регулярные обновления от h4sh3d публикуются в субреддите Monero [11].

    Приведённый выше обзор алгоритма и реализации сосредоточен на деятельности проекта Farcaster. Команда COMIT, которая ранее занималась разработкой атомных свопов Grin-Bitcoin, также работает над программной реализацией атомных свопов Monero-Bitcoin. В их алгоритмах используется, по сути, тот же протокол, что и в алгоритмах Farcaster [12]. Ими также были опубликованы некоторые идеи по расширению подхода, чтобы сначала можно было заблокировать Monero [13], но это потребует внесения изменений в Monero.

    Преимущества и недостатки

    Анонимные криптовалюты, такие как Monero, подвергаются преследованию во всём мире. Ведь они обеспечивают высокий уровень защиты анонимности, как, например, наличные, и их использование гражданами вызывает опасения в некоторых странах, где такие криптовалюты уже были заблокированы биржами. Атомные свопы сделают Monero такой же доступной, как и Bitcoin, и такая возможность не будет стимулировать введение дальнейших ограничений в отношении Monero, так как их выполнение станет более затруднительным. Всё это поможет и, возможно, преобразует экосистему Monero.

    Bitcoin использует прозрачный блокчейн, посредством которого любой может отслеживать перемещение этой монеты. Это препятствует его использованию в качестве средства обмена. Некоторых пользователей Bitcoin беспокоит то, что их покупки видны не только банкам и правительственным учреждениям, но даже их друзьям и соседям. Атомные свопы позволят скрыть перемещение Bitcoin и успокоить пользователей, так как их средства будут переводиться через непрозрачный блокчейн Monero. Это также поможет экосистеме Bitcoin.

    Однако, атомные свопы не являются идеальным решением, и важно понимать их ограничения и риски, связанные с ними. Разрабатываемый метод требует активного участия в процессе обмена того, кто будет обменивать Bitcoin, который не сможет отключиться между выполнением шага 5 и окончательным сроком возврата в рамках описанной выше процедуры. Это означает, что во избежание потери Bitcoin при обмене необходимы личная доступность, функциональность оборудования и наличие подключения к Интернету.

    Кроме того, остаются открытыми вопросы относительно качества Bitcoin, участвующего в обмене, поскольку каждый Bitcoin имеет свою историю. Владельцы Bitcoin, помеченных в результате нежелательного использования в прошлом, будут стремиться обменять эти монеты на Monero, и неясно, как отреагируют на это те, кто будет обменивать Monero. Вполне возможно, что держатели Monero захотят изучить историю Bitcoin, вносимого при выполнении шага 5, описанного выше, прежде чем продолжить своп, а это может привести к трансформации и нарушению процесса обмена в том виде, в котором он существует в настоящее время.

    Аннотация

    Возможность проведения атомных свопов скоро появится в Monero. Они предполагают использование сложных алгоритмов и замысловатых, но понятных методов мотивации участников. Атомные свопы позволят осуществлять не требующий доверия сторон обмен Monero на Bitcoin, и делаться это будет с помощью новых технологий, которые не требуют внесения каких-либо изменений в Monero или Bitcoin. Bitcoin широко распространён и ликвиден, и атомные свопы с участием этой криптовалюты повысят доступность Monero для пользователей во всём мире. Monero использует непрозрачный блокчейн, и транзакции с применением этой криптовалюты нелегко отследить, а атомные свопы Monero только повысят уровень анонимности и свободы действий пользователей Bitcoin. Ещё предстоит решить некоторые проблемы, связанные с определением окончательной формы новой инфраструктуры обмена, но уже ясно, что атомные свопы Monero станут краеугольным камнем улучшенной экосистемы криптовалюты и, надеюсь, улучшения мира в целом.

    Список литературы
    1. Атомные свопы между блокчейнами: разработка, траектория развития и потенциал не монетарных средств обмена цифровыми токенами (Atomic Cross-chain Swaps: Development, Trajectory and Potential of Non-monetary Digital Token Swap Facilities). М. Х. Мираз и Д. С. Дональд, 2019, Анналы новых вычислительных технологий (Annals of Emerging Technologies in Computing (AETiC)), том. 3, № 1, arxiv.org/ftp/arxiv/papers/1902/1902.04471.pdf

    2. Равенство дискретных логарифмов в группах (Discrete Logarithm Equality Across Groups), С. Нёзер, 2018, getmonero.org/resources/research-lab/pubs/MRL-0010.pdf

    3. Новости атомных свопов (Monero Atomic Swaps Update), Monero Talk, 2020 г., youtube.com/watch?v=36qLupSUJrg

    4. Атомные свопы между блокчейнами Bitcoin и Monero (Bitcoin-Monero Cross-chain Atomic Swap), Дж. Гуггер, 2020 г., github.com/h4sh3d/xmr-btc-atomic-swap/blob/master/whitepaper/xmr-btc.pdf

    5. RFC проекта Farcaster, GitHub, github.com/farcaster-project/RFCs

    6. Презентация «Атомные свопы Bitcoin-Monero» (Bitcoin-Monero Atomic Swaps), zkao, DEFCON28, 2020, youtube.com/watch?v=-SsE1abFgNM

    7. Атомные свопы для простых пользователей — доказательство концепции (Atomic Swaps for Meros – Proof of Concept), github.com/MerosCrypto/asmr

    8. Демонстрация возможности проведения атомных свопов между блокчейном XMR и другими блокчейнами (Cross-chain Atomic Swaps Demo), github.com/tecnovert/xmrswap

    9. Предложение по финансированию разработки методов проведения атомных свопов на CSS (CSS Proposal for Atomic Swaps), 2020, ccs.getmonero.org/proposals/h4sh3d-atomic-swap-implementation.html

    10. Проект Farcaster на GitHub, github.com/farcaster-project

    11. Субреддит Monero, reddit.com/r/Monero

    12. Атомные свопы Monero-Bitcoin (Monero-Bitcoin Atomic Swap), Д. Карцель, 2020, medium.com/comit-network/monero-bitcoin-atomic-swap-1cab015d7af9

    13. Атомные свопы между блокчейнами Bitcoin и Monero (Atomic Swaps between Bitcoin and Monero), П. Хениш и Л. Сориано дель Пино, 2 февраля 2021 г., arxiv.org/pdf/2101.12332.pdf
    ---

    Источник: Monero Atomic Swaps

    Перевод:
    Mr. Pickles (@v1docq47)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
  • О нас

    Наш сайт является одним из уникальных мест, где русскоязычное сообщество Monero может свободно общаться на темы, связанные с этой криптовалютой. Мы стараемся публиковать полезные мануалы и статьи (как собственные, так и переводы с английского) о криптовалюте Monero. Если вы хорошо владеете английским (или можете писать собственные статьи/мануалы) и хотите помочь в переводах и общем развитии Monero для русскоязычной аудитории - свяжитесь с одним из администраторов.