Среди криптоэнтузиастов нередко встречается вопрос об атомарных свопах: что это такое, и как оно может гарантировать безопасность сделки. Чтобы понять это, следует детально рассмотреть эту технологию.
Мы связались с Александром Ноксоном, CEO стартапа Swap.Online, который реализует атомарные свопы в своем “горячем” кошельке, с просьбой подробнее рассказать о том, что же собой представляет эта технология, как она работает, и почему она может играть важную роль в финтех-решениях будущего.
Пара слов о терминологии
Для начала разберемся с названием. Термин «атомарные свопы» (atomic swaps) пришел в мир криптовалют из баз данных. Там известны такие серии операций, которые либо происходят все вместе, либо не происходят вообще, либо же откатываются назад в первоначальное состояние, если исполнение одной из операций прерывается, или еще что-то идет не так. Такие серии получили названия атомарных транзакций.
Атомарность - одно из четырех свойств аббревиатуры ACID, означающей Atomiсity (Атомарность), Consistency (Последовательность), Isolation (Изолированность), Durability (Долговечность). Эти свойства собственно и являются необходимыми для любой транзакции в базе данных.
Слово “swap” говорит само за себя. В нашем случае это просто обмен одной криптовалюты на другую. Соединяя два понятия вместе, мы получаем определение атомарного свопа как серии операций между двумя блокчейнами, которые либо ведут к успешному обмену криптовалютами, либо они откатываются назад, и тогда обмен не происходит. Ситуация, когда одна сторона получила криптовалюту, а другая нет, таким образом принципиально невозможна.
Свойства атомарного свопа используются в различных децентрализованных технологиях обмена. Так, он широко применяется во всевозможных on-chain децентрализованных биржах, таких как Idex, Waves, Etherdelta, BitShares, а также межблокчейновых (cross-chain) обменниках вроде Komodo, Hodlhodl, Swap.online. Ближайшее будущее сулит нам обмен состояниями в сетях платежных каналов, самый яркий пример которых это Lightning Network.
Все эти технологии имеют разные имплементации, и степень децентрализации в них неодинакова. Их роднит прежде всего то, что они решают проблему баланса между децентрализацией и скоростью. Наиболее актуальная на сегодня имплементация атомарных свопов - это cross-chain обмен на основе технологии HTLC (Hash Time Lock Contract, то есть, контракт, закрытый хэш-временным механизмом).
Многим уже хорошо известно, что такое хэш, но не будет лишним это на всякий случай повторить. Это механизм одностороннего шифрования с детерминированным результатом. Говоря человеческим языком, вы можете зашифровать свой секрет несколько раз, но результат шифрования всегда будет одним и тем же, и из него нельзя будет получить исходный секрет (по крайней мере, это было бы невероятно сложно).
HTLC же – это смарт-контракт, в котором закрыта криптовалюта, и получить ее можно только на заранее определенный адрес, предъявив соответствующий хэшу секрет в течение определенного времени. Во время создания контракта известен лишь хэш секрета, а сам секрет, разумеется, публично недоступен. Таким образом, создавая два симметричных HTLC на разных блокчейнах, вы получаете достаточно простой механизм атомарного свопа.
Практика атомарных свопов
Как именно это работает? Скажем, Алиса создает один смарт-контракт в сети биткоина, а бенефициар этого контракта – Боб (точнее, его биткоин-адрес). Он, в свою очередь, создает идентичный контракт, но в сети Ethereum, указывая бенефициаром Алису (а точнее, ее адрес Ethereum). Одна из сторон является хранителем секрета, но хэш этого секрета известен и Алисе и Бобу. Он попадает в оба смарт-контракта.
Совершенно неважно, кто именно хранит секрет. Важно то, что хранитель секрета должен задать чуть больший временной замок в своем смарт-контракте. Скажем, в нашей ситуации секрет принадлежит Алисе: таким образом, именно она первой получает криптовалюту, так как, в отличие от Боба, может сразу же предъявить секрет. Смарт-контракт в сети Ethereum вычисляет хэш секрета, и если все совпадает, на адрес Алисы, указанный Бобом, идут деньги.
Так как все операции в блокчейне публичны, секрет сразу же становится известен Бобу. А так как в смарт-контракте Алисы биткоины заблокированы тем же самым хэшем, Боб может использовать известный ему секрет, чтобы получить их. Единственное условие – уложиться в заданное контрактом Алисы время, которое, как мы помним, должно быть чуть больше, чем заданное Бобом – именно потому, что Бобу нужно успеть использовать только что узнанный им секрет. Разумеется, если хэш не совпадает с секретом, значит, секрет фальшивый, и никакой транзакции не произойдет.
Если вдруг по какой то причине Алиса не раскроет свой секрет, Боб по окончании действия временного замка может спокойно забрать свой эфир обратно.
Каждому атомарному свопу предшествует особый процесс, называемый order matching (буквально – “сличение ордеров”). По сути он является заключением соглашения между сторонами, или, говоря образно, виртуальным рукопожатием перед совершением сделки. Конкретная имплементация этого процесса разнится от проекта к проекту: одни используют для него централизованные сервисы, другие предпочитают сайдчейны, третьи – децентрализованные книги ордеров. Важно здесь то, что без этого процесса, как бы его ни реализовали, никакого свопа произойти не может.
В Swap.Online, например, используется ipfs pubsub – полностью децентрализованный протокол передачи сообщений, который транслирует каждый ордер в каналы, на которые подписаны потенциальные покупатели. Образно говоря, pfs pubsub – это мегафон, в который вы объявляете о своем желании обменять условные биткоины на условные эфиры. Если сообщение актуально (то есть, его автор не ушел в оффлайн), желающий совершить обмен подписчик канала подписывает сообщение о принятии ордера, таким образом завершая процесс order matching. После этого обмен происходит так, описано выше.
Почему все это так важно? Благодаря атомарным свопам можно полностью исключить из сделок посредников, добившись полной децентрализации обмена, что, разумеется, является идеалом для всей криптовалютной индустрии. Кроме того, атомарные свопы гарантируют полную безопасность транзакций и позволяют осуществлять обмен одной криптовалюты на другую, известным образом соединяя разные блокчейны между собой. Именно поэтому я считаю, что эта технология будет играть важную роль в финтехе будущего.