Атомарный своп что это такое

Принципы работы и особенности применения atomic swap

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

По определению владелец криптовалюты работает со своими монетами без участия доверенной третьей стороны, то есть trustless. Вполне естественно, что пользователи хотят и обменивать эти валюты по такому же принципу. Существующие централизованные биржи не могут удовлетворить этим требованиям. Об этом свидетельствуют многочисленные ограничения со стороны самих бирж и частые случаи их взломов.

Как происходит обмен на централизованной площадке? Алиса регистрируется на бирже и выставляет order на покупку определенного количества монет определенной криптовалюты. Боб, который уже зарегистрирован на этой бирже, видит order и, если его устраивает цена, соглашается на него. Балансы аккаунтов на этой бирже у Боба и Алисы изменяются. После этого они могут вывести эти деньги на свои кошельки.

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

Идея и требования к валюте


Идея атомарного обмена была предложена как альтернатива. Atomic swap – это обмен, который или выполняется неразрывно, или не выполняется вообще. Такой подход позволяет совершить обмен, даже если пользователи не доверяют друг другу. Кроме того, участник не потеряет монеты, даже если оппонент целенаправленно хочет обмануть его.

Atomic swap является идеей с большим потенциалом и может быть реализован по-разному и для совершенно разных цифровых валют. Поэтому в этой статье мы ограничимся спецификой работы atomic swap именно для таких криптовалют, как Bitcoin и Ether.

Для того чтобы цифровая валюта могла успешно поддерживать atomic swap, она должна удовлетворить некоторым фундаментальным требованиям.

Основным из них является возможность создать смарт-контракт с возможностью временной задержки. Кроме того, для совершения транзакции между двумя разными учетными системами необходимо, чтобы обе они могли использовать одну и ту же криптографическую хеш-функцию в задании условий траты монет (например, SHA-256). Это необходимо, чтобы контракт выполнялся корректно, когда пользователь предоставит результат выполнения хеш-функции. Более того, для успешного осуществления atomic swap необходимо наличие канала связи, поскольку пользователи должны off-chain обсудить условия обмена.

Принцип работы


Atomic swap использует так называемые блокировки с ограничением по времени (HTLC). Фактически это контракты, которые поддерживает сама учетная система цифровой валюты. Пара специальных контрактов гарантирует, что если монеты одной валюты меняют владельца, то и монеты второй валюты тоже. А если одна из сторон контрактов не подтвердит перевод в срок, то монеты вернутся изначальным владельцам обратно. Таким образом, монеты обеих валют блокируются до тех пор, пока все условия не будут выполнены и подтверждены. Либо обмен монетами выполнится атомарно, либо будет отклонен полностью.

Атомарный своп что это такое. Смотреть фото Атомарный своп что это такое. Смотреть картинку Атомарный своп что это такое. Картинка про Атомарный своп что это такое. Фото Атомарный своп что это такое

Рассмотрим этот процесс на более детальной схеме. Представьте две цифровые валюты, для учета которых применяется технология блокчейн: α и β. Есть два участника: Алиса (А) и Боб (Б). Сначала Алиса создает новый адрес в блокчейне валюты α и передает его Бобу. Боб также создает новый адрес, но в блокчейне валюты β, и передает его Алисе.

Атомарный своп что это такое. Смотреть фото Атомарный своп что это такое. Смотреть картинку Атомарный своп что это такое. Картинка про Атомарный своп что это такое. Фото Атомарный своп что это такое

Алиса инициирует транзакцию со смарт-контрактом, на котором блокирует свои монеты, которые она хочет обменять с Бобом. Боб верифицирует этот смарт-контракт (проводит ручной или автоматизированный аудит), создает свой смарт-контракт на основе контракта Алисы и передает его ей. В свою очередь Алиса верифицирует смарт-контракт Боба в блокчейне β и, если все корректно, публикует свое секретное хеш-значение в блокчейне β во время разблокировки монет, которые были заблокированы Бобом. С помощью этого хеш-значения Боб может разблокировать монеты, которые Алиса заблокировала в блокчейне α. Таким образом, совершается обмен. До момента первой публикации хеш-значения, все участники остаются при своих монетах, а после участники свободно могут получить доступ к монетам оппонента. Именно поэтому обмен можно считать trustless.

Время подтверждения


Для совершения trustless обмена atomic swap необходимо всего 4 транзакции, по 2 в каждом блокчейне, а также off-chain коммуникация между субъектами для передачи текста смарт-контракта. Поэтому время совершения обмена с помощью atomic swap может занимать от 1 часа до того времени, которое указано в смарт-контракте субъектов во временной задержке.

Валюты, поддерживающие atomic swap


К валютам, которые на данный момент поддерживают atomic swap, относятся:

Децентрализованные биржи


На базе atomic swap можно построить децентрализованные биржи, которые позволят работать с несколькими учетными системами, со своим блокчейном для каждой. Но при проектировке таких децентрализованных бирж необходимо помнить, что кто угодно должен иметь возможность оставить свое предложение о покупке или продаже. Поэтому сначала необходимо наличие протокола, который позволит составить orderbook децентрализованным образом.

Что касается гарантий выполнения orders, здесь есть особенности. В случае централизованных бирж, весь баланс находится у биржи. Поэтому, несмотря на то, что пользователь в любой момент может отменить свой order, до того момента, пока он не отменен, биржа исполнит этот order в любом случае. Для децентрализованных бирж, необходимы штрафы за нарушение обязательств. Пока такой подход к решению этой проблемы является лучшим из тех, которые имеются на момент 2018 года.

Недостатки

В децентрализованных биржах пока нельзя реализовать так называемые dark pools – специальный orderbook, в которых никто не видит orders. Такой подход используют в централизованных биржах, чтобы скрывать предложения по обмену крупных сумм, поскольку они могут манипулировать рынком. Для реализации dark pools в децентрализованной бирже необходимо использовать сложную криптографию.

Кроме того, в децентрализованных биржах пока не будут доступны операции с фиатными валютами. Фиатные валюты не имеют учетной системы, где можно было бы прописать смарт-контракт. Поэтому нет возможности совершить atomic swap между фиатными и цифровыми валютами.

Проблема Panic Sell


При массовом использовании atomic swap существует проблема, которая тяжело поддается решению. Допустим, что есть учетная система, внутри которой взимается очень высокая комиссия за обработку транзакций, а сами транзакции очень долго подтверждаются. Пользователи начинают продавать эту валюту, поскольку она имеет низкую пропускную способность, и создают orders на децентрализованной бирже, но эти orders при выполнении создают смарт-контракты в том же блокчейне, что и валюта, которую пытаются продать. Таким образом, сеть нагружается еще больше, ожидающие транзакции образуют еще большую очередь и пользователи еще сильнее хотят продать эту валюту, выставляя больше orders и увеличивая очередь транзакций.

Атомарный своп что это такое. Смотреть фото Атомарный своп что это такое. Смотреть картинку Атомарный своп что это такое. Картинка про Атомарный своп что это такое. Фото Атомарный своп что это такое

Риски использования atomic swap


Из-за отсутствия третьей стороны при использовании atomic swap есть свои риски. Если пользователь не провел аудит контракта, который ему прислал оппонент, есть вероятность, что оппонент может украсть деньги первого пользователя. Кроме того, если после исполнения смарт-контракта первый пользователь забрал деньги, а оппонент не выполнил redeem script вовремя, оппонент может потерять свои деньги.

Источник

Что такое атомарные свопы?

Атомарный своп что это такое. Смотреть фото Атомарный своп что это такое. Смотреть картинку Атомарный своп что это такое. Картинка про Атомарный своп что это такое. Фото Атомарный своп что это такое

Атомарный своп что это такое. Смотреть фото Атомарный своп что это такое. Смотреть картинку Атомарный своп что это такое. Картинка про Атомарный своп что это такое. Фото Атомарный своп что это такое

Что такое атомарные свопы?

Атомарный своп (atomic swap) — это операция по обмену одной криптовалюты на другую, которая может быть реализована мгновенно без необходимости полагаться на требующую доверия третью сторону (посредника) в лице биржи или обменной платформы. В результате контроль над сделкой осуществляют исключительно участвующие в ней стороны.

Атомарные свопы могут осуществляться как ончейн, то есть напрямую между блокчейнами разных криптовалют, так и офчейн – за пределами блокчейна. Первый такой обмен был совершен 19 сентября 2017 года между криптовалютами Decred и Litecoin.

Чем вызвана необходимость в атомарных свопах?

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

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

Как это работает с технической точки зрения?

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

Иными словами, HTLC требует, чтобы получатель платежа до истечения установленного срока подтвердил получение средств путем генерирования криптографического подтверждения платежа. В противном случае транзакция признается недействительной, а средства возвращаются отправителю.

А как это работает на практике?

Алиса имеет 100 LTC, которые она хочет обменять на эквивалентное количество BTC. Традиционный механизм предполагает, что Алиса отправляется на биржу, пополняет свой счет и выставляет ордер на продажу своих монет LTC. В случае с атомарным свопом Алиса может напрямую обменять свои LTC на BTC, нужное количество которых есть у Боба.

Атомарный своп что это такое. Смотреть фото Атомарный своп что это такое. Смотреть картинку Атомарный своп что это такое. Картинка про Атомарный своп что это такое. Фото Атомарный своп что это такое

Алиса как инициатор транзакции создает адрес контракта, который можно сравнить с банковской депозитной ячейкой. На этом адресе хранятся LTC Алисы в процессе свопа. Для его открытия требуется подпись Боба, а также сгенерированное Алисой число. Очень важно, чтобы на данном этапе Алиса не делилась этим числом с Бобом, так как тогда тот сможет открыть ячейку и забрать все находящиеся там средства еще до того, как будет завершен своп.

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

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

Как видно, HTLC структурирует транзакцию таким образом, что для обеспечения успешного завершения обмена стороны зависят друг от друга. Транзакции создаются таким образом, что в случае, если по каким-то причинам сделка прекращена, все средства возвращаются их владельцам через определенный период времени, установленный каждой стороной.

Необходим ли для атомарных свопов протокол Lightning Network?

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

Как и атомарные свопы, Lightning Network использует контракты хеширования с блокированием по времени, разница в том, что в то время как атомарные свопы связывают блокчейны, Lightning Network связывает платежные каналы. Этот метод предполагает, что Алиса и Боб открывают платежный канал с Кэрол и осуществляют обмен через Кэрол без необходимости ей доверять.

Один и тот же основополагающий механизм означает, что интегрировать Lightning Network в атомарные свопы достаточно просто, в результате чего различные Lightning-сети могут быть связаны между собой в разных блокчейнах. Благодаря этому участник свопа, который открывает платежные каналы на обоих блокчейнах, может выступать в роли платежного процессинга или, например, децентрализованной биржи альткоинов.

В чем разница между ончейн- и офчейн-обменами?

Ончейн (on-chain) атомарные свопы происходят непосредственно в блокчейнах обмениваемых криптовалют, которые для успешного обмена, помимо поддержки HTLC, также должны использовать один и тот же алгоритм хеширования.

Офчейн (off-chain) атомарные свопы позволяют проводить обмен монет вне блокчейна, являясь расширением Lightning Network.

Какие криптовалюты поддерживают технологию атомарных свопов?

Первые успешные обмены с использованием технологии атомарных свопов были проведены между Litecoin и Decred, Vertcoin и биткоином. Они, возможно, и привлекли повышенное внимание сообщества, однако одними этими криптовалютами дело не ограничивается.

Следует отметить, что для успешного осуществления атомарных свопов в их первоначальной имплементации пользователю необходимо скачать блокчейны обеих валют. Для среднестатистического пользователя этот процесс с практической и технической точки зрения совсем неудобен.

Однако решение этой проблемы уже найдено, и есть вероятность того, что в скором времени оно станет доступно широкому кругу пользователей. Так, над созданием собственной децентрализованной биржи BarterDEX работает проект Komodo. В частности, его разработчики успешно провели атомарный своп при помощи сервера Electrum, который позволяет взаимодействовать с криптовалютой без необходимости скачивать весь блокчейн.

Более того, команда Komodo заявляет, что после того, как успешно связала блокчейны биткоина и Ethereum, а также имплементировала поддержку токенов формата ERC-20, их биржа BarterDEX теперь поддерживает p2p-обмены между 95% всех существующих монет и токенов.

Источник

Atomic Swap

Понравилась статья? Поделись:

Атомарный своп что это такое. Смотреть фото Атомарный своп что это такое. Смотреть картинку Атомарный своп что это такое. Картинка про Атомарный своп что это такое. Фото Атомарный своп что это такое

Atomic Swaps (Атомарные свопы) – это децентрализованные и не требующие доверия сделки между двумя пользователями разных криптовалют. Эта технология относительно новая и предназначена для того, чтобы произвести революцию в транзакциях.

Содержание

Atomic Swaps (Атомарные свопы) [ править ]

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

Атомарные свопы привлекают каждую платёжную сторону к транзакции с контрактом, один контракт на каждый блокчейн. Контракты содержат выпуск, который может быть потрачен любой из сторон, но правила, требуемые для возврата, для каждой привлечённой стороны разные. Одна сторона (называемая контрагент 1 или инициатор) генерирует секретный ключ и отправляет установленную сумму сделки в смарт-контракт. Вторая сторона (называемая контрагент 2 или участник) может только изымать средства, зная секретный ключ. Если истекает предопределенный период времени (обычно 48 часов) после того, как транзакция через смарт-контракт была замайнена или авансирована, но не изъята участником, средства могут быть возвращены в кошелёк инициатора.

Для простоты представим, что инициатор хочет торговать с участником Particl за Decred. Инициатор также может торговать Decred за Particl, и шаги будут теми же, но каждый шаг будет сделан на другом блокчейне. На данном этапе участник не может требовать средства из смарт-контракта Particl инициатора, потому что секретный ключ ему неизвестен. Если инициатор в этот момент передаёт секретный ключ, участник может потребовать средства из контракта, даже не выполняя свою часть сделки, нанося убыток инициатору.

Во избежание этого, участник создаёт похожий смарт-контракт, но на блокчейне Decred, и отправляет указанную сумму Decred на него. Однако, чтобы инициатору изъять выпуск, им нужно предъявить участнику их секретный ключ. Чтобы участник мог создать свой смарт-контракт, инициатор должен предъявить участнику не секретный ключ ( так как участник всё еще может потребовать средства и не выполнить свою часть сделки), а криптографический хеш секретного ключа, чтобы смарт-контракт мог сработать должным образом. Контракт участника может быть возмещен так же после предопределённого периода времени. Тогда инициатор изымает средства Decred участника, предъявляя секретный ключ к смарт-контракту участника. Затем секретный ключ извлекается из компенсирующей транзакции Decred инициатора. Эта процедура атомарна (с тайм-ауом), так как даёт каждой стороне минимум 24 часа, чтобы изъять свои коины на другом блокчейне до того, как может быть сделан возврат. Это лучший вариант для людей, которым необходима конфиденциальность, и возможно, он станет наиболее дешёвым в использовании.

Децентрализованные биржи [ править ]

Существуют альтернативы централизованным биржам, называемые DEX или децентрализованные биржи. Структура таких платформ позволяет пользователям удерживать владение своими коинами атомарных свопов с их закрытыми ключами. Этот метод позволяет предотвратить накопление криптовалют на одной централизованной точке атак.

Как работают DEX? Их работа строится путём того, что люди устанавливают и берут заказы индивидуально. Заказ существует в отдельных регистрах заказов, и эти регистры хранятся независимо друг от друга. Те заказы, которые размещаются в одном регистре, не могут появиться в другом. К сожалению, это создаёт недостаток ликвидности для пользователей. По этой причине пользователи должны смотреть на несколько разных журналов, чтобы разместить заказ.

Как решить эту проблему? Она может быть решена через «Liquidity Network». Это процесс, означающий, что разные журналы заказов используют API для совместного использования друг с другом. В этом случае заказы идут между «рилейерами» и обеспечивают необходимую ликвидность внутри сети. Как было сказано выше, децентрализованные биржи идут на опережение. Опережение – это концепция, означающая, что люди могут перебить заказ, размещенный на DEX. Множество DEX, запущенных на Ethereum, зависят от смарт-контрактов. Однако, это создаёт проблему, так как сеть является публичным блокчейном, и каждый может проверить пул памяти, чтобы посмотреть, кто хочет взять заказ.

Бывший инженер-программист Google Иван Богатый в своём блоге предложил Bancorteam реализовать минимальный возврат сделок, эффективно отменяя заказ, как только пользователь понимает, что кот-то хочет сорвать сделку на его глазах. Он предложил ещё одно решение установить максимальную цену на газ для людей, чтобы делать ставки выше ограничения. Данные решения являются краткосрочными. Они не смогут предотвратить опережение, но сократят потери пользователей. Ещё одно возможное решение – это «схема обязательства» от Уилла Уоррена, сооснователя проекта 0х (и открытого протокола для DEX).Что она означает? Трейдер тайно берет свои средства за транзакцию, но не открывает их. Как только транзакция замайнена, отправляется вторая со всеми деталями, выполняя заказ на децентрализованной бирже. Этот метод тоже не безупречен, так как могут возникнуть случайные сговоры, когда, например, два одних и тех же заказа размещаются одновременно.

Технология [ править ]

Lightning Network объявила о выпуске первых ставок для Mainnet на Bitcoin и Litecoin 15 марта 2018 года.

Atomic Swaps – это самое долгожданное приложение LN. Атомарные свопы – это обмен одной криптовалюты на другую по принципу «всё или ничего» (например, BTC на LTC). LN не является обязательной, но она сделает атомарные свопы закрытыми, мгновенными и бесплатными по сравнению с майнингом.

Принимая во внимание ликвидность, LN может столкнуться с проблемой доступности средств и каналов. Природа сети требует от пользователей создание платёжных каналов через мультиподписи, что означает, что пользователь может попасть на канал LN, только если у него есть что тратить. Посредники могут направлять платежи только в случае, если у них есть определённая сума средств. Решение может быть тем же, как и с DEX. Транзакции могут направляться и распределяться между узлами, у которых есть достаточно средств и каналов, чтобы осуществить своп. Возможно, это не самое лучшее решение на сегодняшний день, так как LN находится на ранней стадии разработки, но с её ростом, это будет хорошим решением.

Атомарные свопы используют технику контрактов HTLC (Hash Time-Locked Contracts). Когда обе валюты доставлены в данные контракты, HTLC обеспечивают, чтобы сумма обмена не могла быть перебита, как это может быть на DEX, поэтому нет опасности «случайного сговора».

Коины Аtomic Swap Coins [ править ]

Скажем, вы хотели бы обменять Litecoin на Bitcoin, и вам нужно найти кого-то на LN, чтобы совершить обмен. Соответствующие коины введены в своп. Они направляются через другие узлы, если вам нужны другие точки связи, и вы не хотите оплачивать комиссию за создание двух платёжных каналов. Итак, обмен гарантирован. Для защиты от обмана и похищения средств других людей преступниками, существуют строгие наказывающие контракты.

Коины [ править ]

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

Атомарные свопы и сборы [ править ]

Комиссия за транзакцию должна оплачиваться дважды.

Источник

Что такое Atomic Swaps и как это реализовать

Инструкция по блокчейн-разработке.

ACCS – Atomic cross-chain swap – позволяет двум сторонам производить обмен криптовалюты между двумя блокчейнами без посредников.

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

Технология находится в процессе развития. Только часть блокчейнов поддерживается в настоящий момент. Для реализации обмена поддержка блокчкейном классических смарт-контрактов не требуется.

Решается проблема совершения связанных операций в несвязанных блокчейнах, когда обе стороны должны выполнить свой набор действий по контракту, иначе вся сделка не состоится. Теоретически возможны реализации:

Для исключения возможности мошенничества, блокчейн не должен позволять пластичность транзакции. Идентификатор транзакции не может произвольно меняться, т.к. это может ввести в заблуждение партнера по обмену. Активация Segwit на блокчейне закрывает эту потенциальную уязвимость и также является одним из необходимых условий поддержки ACCS.

Несмотря на то, что концепции, стоящие в основе ACCS и платежных каналов являются общими, следует различать эти два явления. Открыв платежный канал между собой, пара участников имеет возможность произвести множество транзакций. Для обмена между блокчейнами, потребуется открытый платежный канал в каждом из них. После этого, участники закрывают платежный канал, фиксируя таким образом факт обмена непосредственно в блокчейне.

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

Впервые подобный обмен был произведен между Bitcoin и Litecoin с помощью Lightning network [1].

Концепция впервые описана в 2013 году Тиером Ноланом [2]. Первый Proof-of-Concept (POC) создан Decred: блог [3], исходные тексты и инструкции [4]. Первый обмен совершен в сентябре 2017 года между Decred и Litecoin [5]. С того времени код в репозитории был изменен. Мы рассмотрим здесь современную версию.

Две стороны (Алиса и Боб) договариваются об обмене. Алиса платит Бобу 1 BTC, Боб платит Алисе 10 LTC. Возникающие комиссии блокчейнов стороны договорились оплачивать самостоятельно.

Шаг 1. Алиса и Боб создают по 1 новому адресу и обмениваются ими. Алиса передает Бобу адрес АА в блокчейне LTC, Боб передает Алисе адрес АБ в блокчейне BTC.

Шаг 3. Алиса сообщает Бобу детали ТА, из которых Боб узнает хэш КХ, а также проверяет контракт.

Шаг 5. Алиса проверяет контракт ТБ. Она должна убедиться, что в “Recipient address” установлен ее LTC адрес, который она сгенерировала на первом шаге и отправила Бобу. Стоимость контракта должна соответствовать первоначальной договоренности, то есть иметь значение 10 LTC. Значение поля “Secret hash” должно быть равно хэшу секретного ключа КХ, который Алиса отправила Бобу на шаге 2. Также необходимо, чтобы контракт еще был действителен, то есть установленный Locktime должен позволить завершить обмен.

Боб переводит 1 BTC с транзакции ТА на другой адрес своего кошелька. На этом процесс обмена завершен.

Условия использования средств на контракте ТА: Боб может потратить средства, если он узнает ключ К, в промежуток времени (Вта, Вта + 48 часов). По истечении времени ВТА + 48 часов Алиса также может потратить неиспользованные средства.

Условия использования средств на контракте ТБ: Алиса может потратить средства, используя свой ключ К, в промежуток времени (Втб, Втб + 24 часа). По истечении времени Втб + 24 часа, Боб также может вернуть себе неиспользованные средства.

В итоге, у Алисы появилось 10 LTC минус комиссия LTC за транзакцию, Алиса потратила 1 BTC плюс комиссия BTC за транзакцию. У Боба появился 1 BTC минус комиссия BTC за транзакцию, он потратил 10 LTC плюс комиссия LTC за транзакцию.

Таким образом, благодаря использованию в контрактах задержки, у каждой стороны есть достаточно времени, чтобы получить свою сумму по контракту. Если Боб не создает контракт ТБ, Алиса через 48 часов может получить свои BTC назад. Если Алиса не получает средства с контракта ТБ, Боб сможет получить LTC назад через 24 часа. Алиса в этом случае через 48 часов заберет назад BTC, к которым не получит доступ Боб.

Поэтому данная сделка, состоящая из двух контрактов, называется атомарной. Каждый получает причитающуюся ему сумму, либо оба остаются при своих, за вычетом комиссии.

Произвести обмен можно, воспользовавшись готовыми скриптами. Их можно скачать из репозитория по ссылке.

Я буду выполнять обмен на Ubuntu 16.04. У меня уже установлен Bitcoin Core 0.17.0, скачан блокчейн testnet и создан кошелек. Я скачал Litecoin Core 0.16.3, также скачал testnet и создал кошелек. Затем я установил и настроил Golang и менеджер зависимостей dep. По этой ссылке находятся рекомендации по работе с проектами на Golang.

В репозитории есть подробная инструкция. Для сборки скриптов необходимо выполнить раздел “Build instructions”. После этого в консоли станут доступны команды btcatomicswap и ltcatomicswap.

Наш эксперимент №1 с обменом состоит из 7 шагов и повторяет изложенную выше последовательность действий. В реальной ситуации большинство действий можно выполнить автоматически. Потребуется лишь ввести пароль от двух кошельков: отправить транзакцию для оплаты обмена и через некоторое время забрать присланные на другой кошелек средства.

Блокчейн Ethereum по своему устройству имеет существенные отличия от Bitcoin. Его популярность и широкое распространение смарт-контрактов добавляют большую ценность ACCS. Изложенная ранее техника обмена применима и в данном случае, хотя есть некоторые изменения. Здесь для блокировки средств применяется полноценный смарт-контракт. Контракт содержит базу транзакций обмена, каждый обмен идентифицируется по хэшу секретного ключа.

Для проведения обмена устанавливаем Go Ethereum и скачиваем блокчейн. Аналогично предыдущему обмену, используем тестовую сеть.

Код, который был применен для проведения первого обмена между BTC и ETH, мы не будем использовать, потому что он основан на другой хэш-функции. Вместо этого будем применять производный код, который в настоящее время предложен в виде pull request в уже использованном нами при иллюстрации обмена BTC на LTC репозитории.

Добавим новый форк в этот репозиторий, переключимся на ветку, где реализованы нужные функции. После этого подготовим команду ethatomicswap.

$ git checkout ethatomicswap

Нам понадобится адрес смарт-контракта, который сможет хранить данные атомарных свопов. Репозиторий содержит код смарт-контракта AtomicSwap. Используя его, мы добавим свой смарт-контракт в блокчейн. В качестве альтернативы можно использовать адрес добавленного ранее контракта с аналогичной спецификацией (имеющего аналогичный ABI).

Deploy fee: 0.001179986 ETH

Contract Address: 2661cbaa149721f7c5fab3fa88c1ea564a683631

Deploy transaction (c14abf6683166eea95edac03980e94e734444671bd0a2d940bcc958c5bbb940c):

Publish deploy transaction? [y/N] y

Published deploy transaction (c14abf6683166eea95edac03980e94e734444671bd0a2d940bcc958c5bbb940c)

Аналогично предыдущему обмену, новый эксперимент также состоит из 7 шагов и повторяет изложенный выше процесс. Разница заключается в том, что на месте Litecoin теперь находится Ethereum.

Алиса хочет обменять свои 0.2 BTC на 2 ETH, принадлежащие Бобу.

Для простоты мы рассмотрели здесь только успешные примеры обмена. Однако нужно понимать, что на любой стадии участники обмена могут вернуть свои средства, если другая сторона бездействует или пытается хитрить. Конечно, для этого требуется подождать, пока снимется блокировка средств. В нашем примере это 2 дня для Алисы и 1 день для Боба, что достаточно долго.

Можно уменьшать время обмена, повышая риск не успеть выполнить свою часть действий вовремя, что приведет к потере средств. При уменьшении времени до малых величин, например до одного часа, в time lock вместо абсолютного времени нужно указывать количество блоков, иначе допустимый дрейф блоков во времени может сыграть с вами злую шутку. При этом нужно повышать комиссию, чтобы транзакция гарантированно попала в блокчейн за отведенное количество блоков. Но в итоге, время обмена все равно нельзя сделать ниже частоты генерации блоков в блокчейне, т.к. это обессмыслит всю схему.

Поэтому on-chain ACCS не подходит для таких инструментов, как высокочастотный трейдинг. Стороны должны заплатить двойные комиссии с обеих сторон сделки. Даже в случае неудавшегося обмена, придется заплатить минимум одну комиссию. Для on-chain ACCS более актуально проведение крупных обменных операций. При этом скорость операции становится менее важной, чем ее надежность, а комиссия блокчейна окажется незначительной относительно суммы обмена.

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

Показанные способы обмена предполагают наличие полных нод блокчейнов, в которых производится обмен. Рассмотрим сервисы, которые позволяют упростить операцию обмена.

Обменников, которые реализуют честный ACCS, не так много. Поскольку Lightning Network еще далека от повсеместного внедрения, рассмотрим только on-chain решения.

Имеется возможность создавать новую заявку на обмен, либо выбирать из уже созданных (через Orderbook). При создании заявки можно указать, разрешать ли частичный выкуп. Когда встречная заявка найдена, производится обмен. Он осуществляется автоматически, при условии, что кошелек в данный момент открыт. Оба пользователя создают транзакции на адреса друг друга, затем поочередно забирают полученные средства, путем отправки второй транзакции. Время на операцию обмена составляет 3 часа, после которых имеется возможность вернуть свои средства. Если для обмена в кошельке недостаточно средств, показывается диалог, приглашающий внести недостающую сумму на свой кошелек, включая комиссию за транзакцию. В результате обмена пользователь получает обменянную сумму минус комиссия за вторую транзакцию.

Еще один сервис, Altcoin.io предлагает решение децентрализованной биржи. Спустя месяц после первого обмена между Decred и Litecoin, энтузиасты из Altcoin.io объявили об осуществлении первой ACCS-операции между Ethereum и Bitcoin [9]. После первых испытаний ACCS, в начале 2018 года они запустили в testnet кошелек с функцией атомарных свопов [10]. Летом того же года код кошелька был выложен в открытый доступ, поскольку его намеченный на конец года релиз был отменен. Компания сконцентрировалась на децентрализованной бирже в сети Plasma [11]. В открытый доступ выложен сайт на Angular и кошелек, который представляет из себя набор библиотек для реализации функций кошелька и атомарных свопов. Код кошелька достаточно сырой, судя по всему, проект требует серьезной доработки перед запуском в mainnet.

Пост подготовила команда компании AXIOMA GROUP.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *