This post is also available in: English (Английский)

Многие из наших читателей спрашивают, а что, собственно, такое — атомарный своп. И как он мне гарантирует безопасность сделки обмена?

Начнем разбирать технологию по полочкам.

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

Такие серии получили названия атомарных транзакций.

Атомарность была одной из четырех свойств “ACID”, аббревиатуры означающей Atomiсity (Атомарность), Consistency (Последовательность), Isolation (Изолированность), Durability (Долговечность). Эти свойства, собственно, являются необходимыми для любой транзакции в базе данных.

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

Принципы атомарного свопа используются в различных децентрализованных технологиях обмена. Его используют во всевозможных onchain DEXах, (idex, waves, etherdelta, bitshares), cross chain обменниках (komodo, hodlhodl, swap.online), ближайшее будущее сулит нам обмен состояниями в сетях платежных каналов (PCN i.e. payment channel networks) например — lightning network.

Все эти технологии имеют разные имплементации, с разной глубиной децентрализации. Но всегда они решают проблему баланса между децентрализацией и скоростью. Наиболее актуальная на сегодня имплементация атомарных свопов — это crosschain обмен на основе HTLC технологии. HTLC это Hash Time Lock Contract (по-русски — контракт закрытый хэш-временным механизмом).

Что такое хэш — многие уже знают, это одностороннее шифрование, при этом результат детерминирован. Это значит, что из любого секрета Вы получите всегда одну и ту же зашифрованную строку, при этом произвести обратное вычисление невозможно, ну или если быть точным — очень-очень сложно.

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

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

Один смарт контракт создает Алиса на сети биткойн, бенефициаром которого становится биткойн адрес Боба. А боб создает точно такой же смарт контракт на сети Эфира, где бенефициар — адрес Алисы. Одна из сторон является хранителем секрета, хэш от которого известен обоим, с ним и создается смарт контракт.

Kто из сторон хранит секрет — абсолютно не важно. Тут важно то, что тот кто знает секрет — создает контракт с чуть большим временным замком. 

И так магия HTLC — оба контракта симметричны, криптовалюту первой получает та сторона, которая предъявила секрет. Например Алиса. Она предъявляет секрет в смарт контракт Боба на сети эфир. Смарт Контракт вычисляет хэш секрета — и если все совпадает — перечисляет на адрес Алисы заранее зашитый в Смарт Контракте. 

Так как все операции в блокчейне публичны, секрет сразу становится известен Бобу. Ну и как мы помним в Смарт Контракте Алисы биткоины закрыты тем-же хэшем, поэтому Боб предъявляя обнаруженный секрет тут-же получает эти биткоины. Главное сделать это вовремя пока действует временной замок. 

Если вдруг по какой то причине Алиса не раскрывает свой секрет, Боб по окончанию действия временного замка может спокойно забрать свой эфир обратно. Алиса-же не может получить эфир боба из Смарт Контракта предъявив неправильный секрет — он же не совпадет с хэшем, ну и Смарт Контракт эфир не отдаст. 

Вот так-вот просто. 

Если Вы не все поняли, почитайте подробней об HTLC контрактах, более детальных сценариев полно в интернете. 

Любой атомарный своп состоит из двух этапов. 

Первый этап — это “order matching”. Процесс соглашения об обмене между сторонами. Если быть точным, это необходимый шаг, который должен произойти ДО начала атомарного свопа. Реализация этого шага — одно из главных отличий разных проектов. Протоколы для процедуры “handshake” перед началом свопа совершенно разные — кто-то использует централизованные сервисы, кто-то sidechain, кто-то децентрализованные order-books. 

Swap.online в первой версии своего протокола использует ipfs pubsub — полностью децентрализованный протокол передачи сообщений. Каждый ордер созданный маркет мейкером транслируется в каналы сообщений, на которые подписаны маркет тейкеры. Он как бы говорит в рупор что я готов поменять свои 10 биткоинов на Ваших 100 эфиров. 

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

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

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

Ссылки на другие полезные статьи:

Для чего нужны токены SWAP
Атомарные Свопы для новичков

altcoin atomic swap Bitcoin cross-chain exchange crypto market alanytics crypto research crypto wallet cryptocurrency decentralized exchange directly atomic swap with bitcoin and ethereum eos ethereum exchange withouth third party multy assets crypto wallet tether usdt


Previous Next