What is Atomic Swap?

Our readers often ask us what exactly is Atomic Swap, and how does it guarantee a secured transaction.

Let us look into the technology in more detail.

In Crypto, the term “Atomic” was adopted from databases, where there is a number of database operations that either occur altogether or do not occur at all (or are brought back to their initial condition, if one of the operations is interrupted, or if something else goes wrong).

These operations are named Atomic Transactions.

Atomicity is one of the four characteristics of “ACID” transactions, with the remaining three being: Consistency; Isolation; Durability. All of these characteristics are necessary, in order to perform a transaction within the database.

The word Swap speaks for itself. It is the exchange of one cryptocurrency for another. By bringing these two meanings together, we get the following definition of an Atomic Swap – a series of operations with two blockchain systems, that lead to a successful exchange of two cryptocurrencies. If one of the conditions of the transaction is not met, the swap is not confirmed, excluding a situation where only one of the two participants receives their cryptocurrency.

The principals of the atomic swap are used in a variety of decentralized exchange technologies. For example, in all sorts for onchain DEXax ( idex, waves, etherdelta, bitshares) and Cross-Chain exchanges (komodo, hodlhodl, swap.online). In the near future we expect to see them be used in PCN (Payment Channel Networks), for instance – Lightning Network.

All of these technologies used differently and have various levels of decentralization. Nevertheless, they all solve the problem of creating a balance between decentralization and speed. The usage of atomic swaps is becoming more popular among Cross Chain exchanges based on HTLC technologies (Hash Time Lock Contract).

As you already know, Hash – is a one-way encryption, with a determined result. This means that for any given secret you will always get the same encrypted line that is difficult to reconstruct (if being precise – very-very hard to reconstruct).

HTLC is a smart contract for an agreed amount of cryptocurrency. The amount can only be sent to a predetermined wallet(address – account) after providing the secret to the hash junction within the given time frame. When creating a contract, you only know the hash function of the secret, keeping the secret itself unavailable to the public. By creating symmetric HTCL on two different block-chains, you get a simplified Atomic Swap mechanism.

Alice creates a smart contract on the Bitcoin blockchain, stating Bob’s address as the beneficiary. Bob creates the same exact contract, but only on the Ethereum blockchain, mentioning Alice’s address as the beneficiary. Both contracts use the same Hash function, but only one of the two parties knows the Hash functions secret.

atomic swap how it works

There is no difference who knows the secret, as long as the party that does know it creates a contract with a more extended time frame.

Here is how the HTLC works. Both of the contracts are symmetric, and the first party to receive their crypto-currency is the one that holds the secret. For example, Alice is the holder of the secret. She provides the Secret to Bob’s smart contract on the Ethereum BlockChain. Once the smart contract receives the secret, it calculates its hash function, and if it matches the hash function in the smart contract, Alice will receive here Ethereum, that will be sent to her wallet.

As we know, all the operations in the blockchain are seen by the public, so when Alice reveals the secret – Bob will immediately receive it. Given that Alice’s Bitcoin Blockchain contract holds the exact same hash function when Bob provides it with the secret he automatically received his Bitcoins to his wallet.

If for some reason Alice does not reveal the secret, Bob will get his Ethereum back after his smart contract’s time frame runs out. In addition, if Alice provides an incorrect secret, the calculation will not match the hash function of Bob’s smart contract, not allowing the transfer of the funds.

atomic swap cryptocurrency

It’s that simple.

You can find more details on HTLC on the internet with different examples of how there are used.

Every Atomic Swap goes through two stages.

The first stage – “Order Matching”. Reaching an agreement between two participants of the Swap. To be precise, this important stage has to be done before the atomic swap. How this stage is accomplished defines projects from one another. There are different “handshake” protocols that can be used, for example, some use centralized services or sidechains, others use decentralized order-books.

Swap.online in its initial protocol version uses ipfs pubsub – a fully decentralized protocol for sending messages. Each order that a Market Maker places is distributed through the message channels that the Market Takers are subscribed to. As if announcing through a loudspeaker they are willing to exchange, for example, 10 of their Bitcoins for 100 of your Ethereums.

The Market Takers will see all the new orders after subscribing to the message channels. In order to view the Market Makers order constantly – he or she should always send out messages about its relevance, meaning the Market Maker should always be online in order to confirm an exchange.

Nevertheless, this does not bring any operational inconvenience. Because in any case for an HTLC protocol exchange you must sign the transactions in real time, and a Market Taker can show an interest to your order at any time.

Once a Market Taker decides to accept one of the orders, he/she sends a message of confirmation, and both parties create an HTLC contract on their blockchains and finalize the exchange as shown in the above-mentioned protocol.

Please see other helpful links below:

Why do I need SWAP tokens?

Atomic Swap for the newbies: Swap.Online Guide

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

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

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

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

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

Атомарность была одной из четырех свойств “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
Атомарные Свопы для новичков