Loading...
КриптовалютыОбзор альткоиновОбзор криптовалют

Протокол «0x». Будущее обмена активов на блокчейне Ethereum?!

Протокол ZRX - 0x

Представьте, что мы с вами хотим обменяться какими-то erc-20 токенами в оговоренном количестве. Чтобы сделать это, достаточно отправить всего одну, единственную транзакцию в блокчейн Эфира. При этом, даже эту транзакцию придется делать не мне и не вам! Мы вообще не будем отправлять никаких транзакций в блокчейн. И тем не менее успешно обменяемся, не доверяя и не передавая свои активы никаким третьим лицам (вроде централизованных бирж) и не платя никаких комиссий. Звучит как бред ? Протокол «Оx» (зиро икс) уже сделал это реальностью !

Автор статьи: @observer333

«Оx» это open source протокол для децентрализованного обмена активами на блокчейне Эфириума (сейчас erc-20 и erc-721). Он уменьшает нагрузку на основную цепь Эфириума, выводя большую часть действий в офф-чейн, делает обмен более быстрым, удобным и дешевым (в плане траты на любые комиссии или GAS). Данный протокол, построенный на смарт-контрактах может использоваться на сайтах, в web-приложениях, dapps, p2p обмене или для строительства на нем полноценных децентрализованных бирж.

Токен имеет тикер ZRX с капитализацией около 180кк USD на январь 2019 года

Для оценки текущего масштаба проекта предлагаю взглянуть на эксплорер
https://0xtracker.com
который «трекает» смарт-контракты «0x» и демонстрирует объемы торгов активов осуществляемых с использованием протокола.

Как мы видим, в пиковые моменты, объемы торгов д0xодили до 12 000 000 USD в сутки. В последнее время торги снизились, что обусловлено общим спадом активности в сфере. Эти показатели ставят «0x» довольно высоко по объему торгов среди существующих бирж. Всё функционирует в блокчейне Эфириума, а значит подлинность данных легко проверяема (биржам как известно, никто не верит)…

Проблема.

Предположим, вам необходимо продать 1 ETH и купить на него токены ZRX (любые erc-20 или erc-721 токены). Сделать это можно на обычной, централизованной бирже, но все мы знаем недостатки и риски которые несет в себе такое решение. Также, разумеется это никак не соответствует принципам децентрализации и надежности которые дает нам технология, полностью противоречит сути и духу криптовалют и блокчейна.

В качестве альтернативы можно использовать децентрализованную биржу (DEX). Но это также несет ряд проблем с которыми вы наверняка сталкивались:

  • Затраты на GAS, которые ты несешь каждый раз когда создаешь, отменяешь или изменяешь ордер. Они относительно не велики, но если ты проводишь много (и часто) сделки, особенно на малые суммы, то и они могут быть для тебя существенными.
  • Сложность использования. Начинающим пользователям очень сложно разобраться в функционировании DEX биржи. Ведь перед этим надо как минимум знать концепцию GAS/GWEI и как это работает, чтобы понимать происходящее. Вспомните, насколько сложны и непонятны эти вещи в свое время были для вас…
  • Очень пл0xой UI/UX (пользовательский интерфейс/пользовательский опыт). Децентрализованные биржи, для начинающих в целом выглядят довольно непонятно. Как выставлять, отменять и изменять ордера разобраться сложнее чем на централизованной бирже. Постоянно приходится выбирать и выставлять размеры комиссий за все действия, что также несет определенный риск для начинающих.
  • Скорость работы и «подвисания» DEX. Большое количество «лагов» и ошибок связанных с неверными действиями (тотже GAS/GWEI), дают крайне отрицательный пользовательский опыт, особенно на фоне того, что человек в этот момент уже оперирует своими активами и вполне может понести материальные убытки из-за неверных действий. Боязнь сделать «что-то неправильно и потерять средства» отталкивает многих новичков от использования DEX.
  • Изменение загруженности (рост мемпула) и цены проведения транзакций в сети Эфириума. Как следствие зависание и не исполнение ордеров и пользовательских действий на бирже.
  • Каждое действие пользователя создает новую транзакцию в блокчейне, увеличивая риск его перегрузки.

Как работает 0x протокол ?

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

Вы создаете сообщение содержащее основную информацию о вашем заказе (ордере):

  • адрес основного смарт-контракта протокола «0x» (который всё сделает за вас)
  • какой токен вы хотите продать (ETH)
  • в каком количестве (1 шт.)
  • какой токен вы получить (ZRX)
  • в каком количестве (500 шт.)
  • время действия ордера, например 1 день (тоесть если через день он не будет исполнен, то он отменится. Можно выставить хоть 1 минуту)
  • награда за проведение транзакции (которую никто никогда не прикладывает, ордера не смотря на это прекрасно выполняются, но обсудим это чуть ниже!)

После внесения основной информации, необходимо подписать готовый ордер вашим приватным ключом (от адреса на котором лежит 1 ETH).

В результате у вас «на руках» будет:
JSON файл представляющий из себя транзакцию
или
прямая ссылка на неё
или
непосредственно содержание (код) созданного ордера.

Здесь я создал ордер, используя интерфейс платформы «Оx», могу скопировать код транзакции или прямую ссылку на код:

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

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

Вот для чего это нужно (никак не связано с «0x», просто пример):
Если вы боитесь попасть на фишинговый сайт MEW или наличия вредностных программ на своем компьютере, вы также можете создать в MEW ордер (например на транзакцию ваших ETH на другой адрес) и подписать его своим «приватным ключом» полностью локально. Сделать это вообще на другом компьютере (без подключения к интернету). Затем скинуть файл с информацией о транзакции (уже подписанный приватным ключом) на флэшку. Перенести на компьютер с интернетом, чтобы отправить в блокчейн (украсть что либо в этот момент у вас уже невозможно, так как вам не придется пользоваться вашим приватным ключом или JSON файлом для MEW, вы просто отправите полностью готовую (и подписанную) транзакцию в блокчейн одним нажатием кнопки).

Вернемся к нашему обмену ETH – ZRX. Мы уже создали JSON файл со всеми данными об обмене (ордере), подписанный приватным ключом (подпись делается очень просто с помощью Metamask).

Что в принципе теперь с ним можно сделать ? Два варианта:

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

Что с ним сделать нельзя (невозможно):

  • украсть «приложенный ETH» или ваш приватный ключ. Любой человек (или злоумышленник) получивший этот файл сделать этого не сможет (ничего, угрожающего с0xранности ваших средств)
  • изменить основные параметры сделки. После того как файл-ордер подписан, изменить его уже нельзя (например злоумышленнику,  чтобы продать ваш 1 ETH за 1 ZRX)

Теперь нужен кто-то, кто захочет продать нам 500 ZRX за 1 ETH. Если вы знаете такого человека, отлично ! Вам останется просто передать ему созданный ордер, который он отправит в блокчейн на смарт контракт «0x». Приложит к нему 500 ZRX (которые вы хотите приобрести), смарт-контракт «зиро икс» пришлет вам 500 ZRX а ему 1 ETH, согласно условиям сделки. Ваш ордер сможет исполниться только на условиях которые вы указали в нем и ни на каких других (повторюсь, так как он подписан приватным ключом, изменить его невозможно, только выполнить).

Смарт-контракт «0x» по-сути является децентрализованной третьей стороной, проверяющей соблюдение всех условий ордера и выполняющей обмен.

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

На картинке ниже интерфейс «0x».
https://0x.org/portal/generate

Указываем какой актив и сколько мы продаем (ETH) какой и сколько хотим купить (ZRX). Дату окончания ордера (2019.01.20) и время. Нажимаем подписать (SIGN HASH) и получаем ордер (скрин с готовым ордером был выше).

Такие интерфейсы уже реализованы на сайте «Оx» и еще в нескольких десятках проектов. Создавайте ордера прямо на сайтах и подписывайте их с помощью Metamask. Боитесь за безопасность ? Используйте оффлайновые решения для создания «файла-ордера» и его подписи прямо на компьютере. Не проблема !

Если вы «переварили» (а вероятно несколько раз перечитали) информацию выше. У вас должно возникнуть несколько закономерных вопросов.

Это что, мне каждый раз надо где-то искать человека, который согласится на обмен на моих условиях ?!

Нет. Не нужно! Для создания ликвидности и легкого поиска людей которые будут осуществлять с вами сделки, в «0x» придумали Рилэйеров (Relayers).

Relayers –участники экосистемы «0x» которые осуществляют сбор а зачастую и выполнение ордеров пользователей. Это может быть обычный сайт, dapp, телефонное приложение и т.д. в котором отображается «книга заказов», тоесть буквально список ордеров (и их условия) присланных пользователями.
Релэйером может стать любой. Достаточно создать обычный сайт и агрегировать там присланные пользователями или найденные в других источниках файлы-ордера.

Всё это вы прекрасно знаете! Такая же сортировка как на любой бирже. Сначала выбираешь интересующую пару, например ETH-ZRX. И видишь стаканы на покупку и продажу ZRX за ETH. А внутри этих стаканов присланные на сайт ордера пользователей, их цены и объемы, ордера ранжируются по ценам от самых выгодных к более дорогим.

Вот например Relayer «RadarDEX» и его интерфейс полностью сделан под обычную DEX биржу. Да он и является DEX биржей, только работающей на протоколе «0x», по функционалу и работе никаких отличий. В стаканах созданные пользователями ордера.

https://app.radarrelay.com/ZRX/WETH

Мне самому «придумывать» цену продаваемых активов?

На простой бирже все ваши ордера автоматически продаются по самой выгодной цене. Здесь же вы должны сами, сразу, создавая ордер выставить цену (например продать 1 ETH за 500 ZRX). И ордер будет выполнен именно по указанному вами курсу. «0x» работает над решением которое позволит вам указывать в сделке не «продать 1 ETH за 500 ZRX» а «продать 1 ETH за 500 ZRX или более», чтобы сделку можно было закрывать более выгодно (хотя этого наиболее вероятно и не произойдет). В любой книге заказов Релэйера вы видите самые актуальные цены, как на любой бирже.

Получается, мой ордер может продаться дешево (всего лишь за 500 ZRX) даже если были более выгодные предложения, а что если дешевле ?!

Тоже нет. Если вы создали ордер «продать 1 ETH, получить 500 ZRX» а цена ZRX начала падать и в этот момент на рынках дают меньше чем 500 ZRX за 1 ETH (например 498), то ваш ордер будет висеть в стакане пока цена не пойдет вверх и его не купят (также как и на бирже). При этом висеть он там будет не вечно, а время которое вы указывали при создании «файла-ордера» (в нашем примере 1 день, ничто не мешает поставить там 1 минуту или 10 лет).

Если вы создали ордер «продать 1 ETH, получить 500 ZRX» а цена ZRX начала расти и в этот момент на рынках начинают давать больше чем 500 ZRX за 1 ETH (например 501), то ваш ордер выкупят моментально, так как он является самым выгодным. Таким образом, вы не можете значительно упустить выгоду из за роста цены, законы рынка не позволят «висеть» вашему ордеру если он хоть минимально выгоден и имеет актуальную цену.

Когда я создал файл-ордер, мой 1 ETH списывается с моего счета, что происходит ?

Не происходит ничего, ваш баланс на адресе не меняется и вы можете использовать все свои средства. Ведь вы не отправляли никаких транзакций в блокчейн! Просто если какой-то человек или Релэйер увидит ваш ордер (получит файл), исполнит его (отправив ваш ордер и 500 ZRX в общий смарт-контракт «0x») то 1 ETH спишется с вашего счета, разрешение на его списание (подписанное приватным ключом) вы сделали в ордере, а вы получите на адрес купленные 500 ZRX.

Если к этому моменту у вас на счету будет меньше чем 1 ETH, то сделка просто не состоится, ведь у вас недостаточно средств.

Не может просто списаться 1 ETH и взамен не прийти 500 ZRX. Ордер исполнится только если выполнены все условия, это гарантирует сам ордер, смарт-контракт и блокчейн Эфириума.

Продолжим, сейчас понимания должно стать больше…

В общем-то не обязательно самому создавать ордер (делать и знать всё описанное выше), вы можете просто зайти на сайт любого Релэйера (их уже немало):
https://0x.org/portal

Посмотреть в любом из них книгу заказов (стаканы), выбрать любое устраивающее вас предложение созданное кем-то другим (логично, самое выгодное из всех) и там же подтвердить ордер, отправив его с необходимым количеством активов для обмена в контракт «0x» (делается также просто как отправить обычную транзакцию, используя простой интерфейс и ваш Metamask). Вам на адрес сразу же придет то количество токенов которые вы приобрели и спишется проданное.

Обратите внимание, обмен успешно осуществлен, а в блокчейн сделана всего одна единственная транзакция! И в данном случае, оплатит её человек нашедший (купивший) необходимый ордер. Оплатить придется лишь GAS за транзакцию в контракт «0x». Это обойдется примерно в 150к GAS или около 10 центов (при стандартной загруженности блокчейна Эфира).

Правда, такое решение (не создавать ордера самому а только искать нужные и покупать) является не самым правильным. Представьте, если все пользователи начнут только выбирать и скупать выложенные ордера а не создавать новые, уже скоро покупать будет просто нечего, ликвидность исчезнет и система зачахнет.

Relayers могут собирать ликвидность где угодно, их цель, собрать как можно большее количество ордеров пользователей в свою книгу заказов. Вопрос лишь в том, как они собирают созданные ордера (где принимают), а присылать их можно хоть в чате Telegram, хоть на e-mail или создавать прямо на сайте Релэйера. Главное, чтобы Relayer в итоге получил и добавил ваш ордер в общую книгу заказов. Ничто не мешает Релэйерам объединяться и обмениваться всеми найденными, созданными ордерами для создания большой книги заказов (ликвидности).

Relayers зачастую сами находят ордера которые могут взаимно выполняться, то есть условия в них совпадают и можно совершить обмен выполнив оба ордера (в такой ситуации транзакцию в блокчейн отправит разумеется сам Релэйер и оплатит все расходы на GAS).

Это же получается, обыкновенные централизованные биржи ?!

Иногда — да. Это самые обычные централизованные сайты и приложения. Но разница в том, что вы никак не обязаны им доверять или передавать свои средства. Они увидят ваш ордер и единственное, что могут с ним сделать — выполнить. Не захотят выполнять, это сделает какой-нибудь другой Релэйер или простой пользователь как вы, которого устроят ваши условия обмена. Нет проблем. Вам всё равно…

Также это могут быть полностью децентрализованные биржи или DAPPs, которые будут в качестве ликвидности брать (собирать и обмениваться) ордерами пользователей.

Кто читал статью внимательно обратил внимание, при создании ордера к нему можно приложить комиссию, но как я и писал этого никто не делает.

Так для чего же работают Релэйеры ? Они несут большие расходы: содержат сайты и dapps, ищут ликвидность (ордера), сами платят за GAS вместо пользователей ?!

Ответ прост. Ищут собственную выгоду разумеется! В арбитражных действиях.

Например:

Я создал ордер «продать 1 ETH получить 500 ZRX»

Вы создали ордер «продать  495 ZRX получить 1 ETH»

Оба наших ордера по-случайности  оказались у одного Релэйера и конечно он выполнит оба. Получит спрэд в 5 ZRX которые покроют ему расходы на GAS за выполнение транзакции и еще оставят профит… Впринципе, Релэйер может требовать с пользователей платить комиссии за тразакции, но на практике так никто не делает, боясь потерять пользователей и ликвидность.

Relayer имеет стимул для создания ликвидности используя собственные средства. Ведь проблема любой новой биржи именно в низкой ликвидности. Люди не пойдут туда торговать так как там торговать не с кем. А торговать не с кем так как люди не идут. Замкнутый круг !
Здесь и поможет увеличение ликвидности с помощью использования собственных средств (Релэйера). Да, теоретически это может привести к некоторым убыткам для него (если он грамотно делает арбитраж, то — нет), но в результате количество пользователей (и ликвидности) должно увеличиваться и когда их станет достаточно много, Релэйер сможет убрать все свои средства. Объемов станет достаточно из-за большого количества пользователей (ордеров) и система будет работать сама. Только ищи возможности для арбитража !

Вот пример из «0x» протокол wiki:
https://0x.org/wiki

Боб хочет продать ZRX и купить ETH

Алиса наоборот, хочет продать ETH и купить ZRX

«Новый Релэйер, назовем его «Чарли» создает в системе сообщение (ордер) «Продать 100 ETH за 100000 ZRX и выставляет срок действия данного ордера 45 сек (например)». Боб создает ордер «продать 1000 ZRX за 1 ETH». Этот обмен происходит за счет средств Релэйера Чарли. Затем Чарли берет полученные средства плюс немного из запаса ликвидности, отдает Алисе 2000 ZRX, которые она хотела купить и получает от неё 2 ETH.»

Пара заметок о прогрессе и развитии экосистемы «0x» в последнее время:

Проект имеет wiki, где в очень подробной форме разъясняется как работает каждый элемент протокола 0x, в общих чертах, с конкретными примерами и вплоть подробностей для разработчиков и людей которые хотят стать частью системы.
https://0x.org/wiki#Community-Resources

Сотрудничество с CoinBase.

В декабре 2018 года CoinBase запустила большой образовательный проект «Coinbase Earn», целью которого является «сделать блокчейн более доступным и понятным» для всех новых, появляющихся пользователей. https://blog.coinbase.com/earn-cryptocurrency-while-learning-about-new-digital-assets-cc2df3537fc7

Первым и единственным на данный момент проектом имеющимся на платформе является «0x». Внутри находится текстовый и видео образовательный контент по 0x. Изучив который вы можете пройти тестирование и в случае его успешного пр0xождения получить в награду, некоторое количество токенов ZRX (из фонда токенов зарезервированных разработчиками «для развития» еще на стадии ICO.

Вот так и должны во всех ICO-проектах использоваться непроданные токены, оставленные «на развитие»

«Основная команда «0x» выделила для этой инициативы 1 600 000 токенов ZRX из пула внешних разработок. 100% этих токенов будут розданы участникам Coinbase Earn.» Около пятисот тысяч долларов по текущему курсу.https://www.coinbase.com/earn/0x?utm_medium=blog&utm_source=medium&utm_campaign=earn_announce

Готовые решения для «встраивания».

6 декабря был представлен «Ox Instant» готовое решение с помощью которого можно легко добавить протокол в любое вэб-приложение или сайт. Инстант собирает всю имеющуюся у ретрансляторов ликвидность и сортирует её по лучшим предложениям. Разумеется, имеет открытый исходный код а также готовый интерфейс, который при желании можно переделать «под себя». Возможно добавить взятие комиссий с пользователей, которые совершают обмен в вашем приложении или на сайте.
https://0x.org/instant

Маркет мэйкеры как часть экосистемы.

В Январе 2019 года было объявлено о старте программы «Оx Market Maker»
https://blog.0xproject.com/introducing-the-0x-market-maker-program-42edc902b1f0

«Целью Программы является привлечение дополнительной ликвидности в экосистему «Оx» путем предоставления комплексных учебных пособий, денежных стимулов и специальной поддержки со стороны команды разработчиков 0x.»

Ряд кандидатов принятых в программу, которые в результате станут маркет-мэйкерами и будут только предоставлять ликвидность или станут полноценными ретрансляторами, получат гранты по 15 000 долларов на дальнейшее развитие.

https://0x.org/market-maker

Итог: протокол уже имеет достаточно большие масштабы и непл0xую ликвидность. Количество (и содержание) анонсов говорит об активной работе над дальнейшим развитием экосистемы «0x». Уже реализованные вещи демонстрируют преимущества перед централизованными и обычными DEX биржами а также позволяют снизить нагрузку на блокчейн Эфириума.

Автор статьи: @observer333

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *