По состоянию на июль 2019 года существует около 2000 криптовалют, но единого механизма обмена между разными блокчейнами не существует. В этой статье мы упрощенно рассмотрим, как работает одна из технологий обмена без посредников — атомные свопы.
Наслаждайся чтением!
Атомные свопы: что это такое и с чем его едят? Атомные свопы — это серия транзакций на обоих блокчейнах, которые позволяют обменивать монеты без участия третьей стороны и доверия второму участнику обмена.
По сути, создается транзакция, вывод которой может быть потрачен либо при наличии определенного ключа, либо по истечении времени.
Не все блокчейны позволяют реализовать AtomicSwap. Есть два основных требования:
- поддержка смарт-контрактов (генератор этой самой «начальной» транзакции);
- используя ту же криптомагию (хэш-функцию).
В нашем случае смарт-контракт можно рассматривать как большой черный ящик, в который заносятся адрес получателя, адрес отправителя, отправленная сумма, время хранения денег и присваивается уникальный идентификатор (хеш).
На выходе получается желаемая транзакция с условиями.
Хеш и его друзья Хэш-функция — еще один персонаж из сказки о высшей математике.
Преобразует поток входных данных в другое значение.
Те же данные дают тот же результат. Обычно входные данные представляют собой большое число, называемое секретным ключом, а выходные данные — хэш.
Преобразование хеша обратно в секретный ключ невозможно.
Когда все идет гладко Рассмотрим обмен информацией между Алисой (да-да, Алиса уже не та) и Бобом.
У Алисы есть Биткойн (btc), у Боба — Эфир (eth).
Оба персонажа имеют адреса в обоих блокчейнах.
Примечание.
Большие символы криптовалюты символизируют блокчейны.
Алиса генерирует ключ (большое количество) и скромно никому его не раскрывает:
На основе ключа он вычисляет хэш:
Создает контракт с уникальным идентификатором, равным хешу:
Высылает деньги за контракт. Теперь она не может потратить их определенное время (таймлок): Время истекло или таймлок Таймлок — время, через которое создатель контракта сможет вернуть деньги, если отправит транзакцию определенного типа (назовем ее «возврат»).
Эта транзакция не требует закрытого ключа.
Другой пользователь может вывести деньги на указанный в договоре адрес получателя (важно: не на свой), если отправит транзакцию другого типа (назовем ее redeem) с указанием секретного ключа.
В целом механизм оформления транзакций по контракту следующий:
if (transaction_type == "refund" and sender == contract_creater and timelock < now()) {
send_to(creator_address);
} else if (transaction_type == "redeem" and hash(secret_key) == contract_id) {
send_to(receiver_address);
}
Алиса сообщает Бобу хэш.
Теперь он может провести аудит (проверить) все поля контракта: убедиться в правильности адресов, отправленной суммы, времени хранения денег на контракте (срок, в течение которого Алиса не сможет их вывести):
Если все хорошо, Боб создает на втором блокчейне контракт, аналогичный контракту Алисина (с тем же идентификатором).
Меняется получатель и, возможно, сумма (если курс не 1 к 1).
Алиса проверяет контракт:
Если она утроится, она создаст транзакцию в Ethereum, которая потратит деньги на контракт Боба.
Единственный способ сделать это — предоставить ключ.
Теперь он известен:
Алиса получает eth:
Боб смотрит на ключ и создает транзакцию, которая тратит деньги на контракт Алисы, используя ее ключ:
Успех! Волки сыты, овцы целы!
Когда мир не идеален Однако иногда что-то может пойти не так.
Есть два места, где обмен может пойти не так.
Для этого существует механизм, позволяющий вернуть деньги законным владельцам.
Допустим, Алиса, как порядочная девушка, выслала деньги за контракт, но Боб после проверки передумал расставаться с трансляциями:
Алиса ждет истечения срока блокировки, указанного в контракте (скажем, 48 часов), и возвращает биты крови:
Другая история о непостоянной Алисе, которая не захотела продолжать атомный обмен после того, как Боб создал контракт. Альтернативный сценарий: Алиса потеряла свой ключ и не может этого сделать:
Боб ждет времени блокировки денег (обычно оно меньше, чем у Алисы, чтобы Алиса не сняла деньги Боба в последнюю минуту, а затем вернула свои; скажем, 24 часа).
Алиса возвращает свои деньги после истечения срока ее блокировки.
Заключение Атомарные биржи очень удобны для обмена «точка-точка», минуя биржи и посредников.
Участники обязаны платить только комиссию за отправку транзакций.
Подводя итог, в обмене между A и C на блокчейнах B1 и B2 можно выделить следующие этапы:
- инициализация контракта для B1 участником A;
- прослушивание контракта на Б1 участником С;
- инициализация контракта для B2 участником C;
- прослушивание контракта на Б2 участником А;
- предоставление ключа и вывод денег Б2 участником А;
- получение ключа от B2 участником C;
- вывод денег на В1 участником C.
Возможно, в ближайшем будущем он сможет заменить централизованные биржи, идеологически чуждые блокчейну.
Теги: #блокчейн #Криптовалюты #Распределенные системы #смарт-контракты #просто о сложном
-
Будапешт
19 Dec, 24 -
Победите Google За 100 Дней
19 Dec, 24 -
Вирус Для «Блондинок» Trojan.click1.25237
19 Dec, 24 -
Циклы Маршрутизации
19 Dec, 24