November 9, 2018

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

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

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

Технология

Берем классических Алису и Боба. У Алисы есть 10 ETH, а ей нужно 3050 SNT. Ей пришлось бы пойти на биржу, ввести депозит, выставить ордер, получить монеты (заплатить комиссию) и вывести их обратно (также с комиссией).

Но с атомарными транзакциями в ситуации, когда у Боба есть 3050 SNT и он не прочь обменять их на 10 ETH, ребята смогут совершить сделку. Чтобы избежать мошенничества, когда принимающая сторона получила монеты, но не отправила свои, свопы используют хэш-контракты временной блокировки (HTLC). Эти контракты гарантируют, что процесс атомарного свопа полностью безопасен с точки зрения потери денег при торговле с недобросовестным продавцом. HTLC требуют, чтобы получатель платежа одобрил получение транзакции до определенного срока, создав криптографическое подтверждение. В противном случае он теряет право на требование платежа, средства вернутся обратно отправителю. До этого момента деньги замораживаются.

Используется nLockTime — это параметр транзакции, который задает минимальное время, до истечения которого транзакция не может быть принята в блок.

Когда транзакции проходят на разных блокчейнах, например, BTC и LTC, отправители должны направить транзакцию в свой блокчейн (тот, на котором есть монета). В этот момент создается секретный код (номер) и его хэш. С его же помощью монеты как бы «выкупаются» с другого блокчейна. Фактически, не монеты переходят с блокчейна на блокчейн, а равная ценность.

В основе лежат принципы криптографии, связанные с подписями.

Алгоритм

  • Алиса (она выступает организатором, поэтому все основные операции производит она) выбирает случайное число X.
  • Алиса создает запись№1 (по типу смарт-контакта): перевести BTC на публичный адрес Боба, при условии, что хэш от Х известен Бобу и транзакция подписана Алисой и Бобом.
  • Алиса создает запись№2: перевести BTC на свой адрес и заблокировать на 48 часов, если будет ее подпись.
  • Алиса отправляет эту запись Бобу.
  • Боб подписывает ее и возвращает Алисе.
  • Алиса передает свою первую запись в сеть.
  • Боб создает запись№3: перевести альткоины на публичный адрес Алисы, если Х для хэша от Х известен и подписан Алисой или подписаны Алисой и Бобом.
  • Боб создает запись№4: перевести альткоины на публичный адрес Боба и заморозить на 24 часа, с подписью Боба.
  • Боб отправляет запись№4 Алисе.
  • Алиса подписывает и отправляет Бобу.
  • Запись №3 отправляеся в сеть.
  • А получает Запись№3, передавая Х (случайный номер).
  • Б получает Запись№1, используя тот же Х.

Вот это и есть атомарная транзакция (с таймаутом). Если процесс остановлен, ее можно отменить.

Требования

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

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

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

Также оба блокчейна должны поддерживать контракты на временную блокировку средств.