Обзор проблемы централизованных бирж

Потребность в конвертации и обмене крипто-токенов увеличивается с ростом числа криптовалют. Одной из основных особенностей блокчейн-среды является децентрализация, но до недавнего времени даже для криптовалют существовали только централизованные биржи. Многие биржи поддерживают покупку и продажу криптововалют, фиата и крипто-токенов. Примерами таких централизованных бирж являются Coinbase, BTC-e, ShapeShift и Mt.Gox. Опыт централизации в этой сфере является плачевным, из-за единой точки отказа - самой биржи. Все средства пользователей должны храниться в одном месте для участия в торговле на централизованной бирже. Средства пользователя хранятся непосредственно на бирже, и она несет ответственность не только за сопоставление заявок и поддержку стакана заявок в валидном состоянии, но и за средства вкладчиков. Коллапс на бирже Mt.Gox является ярчайшим примером того, почему централизованные биржи не являются надежными: потери составили около 650 000 BTC. Кто-то может взломать ядро биржи, и все пользователи потеряют все свои средства, так как их личные ключи хранятся в одном месте, так например произошло с фондом BTC-e. И это не все биржи, которые таким образом потеряли средства вкладчиков. Использование децентрализованного подхода в организации обмена помогает избежать вовлечения активов всех пользователей в проблемы, вызванные опасностью вторжения в работу ядра биржи.

1. Децентрализованная биржа

Децентрализованная биржа не требует, чтобы пользователи доверяли ей свои деньги: кошельки пользователя не контролируется единым агентом системы. Заявки подписываются цифровой подписью непосредственно владельцами, в качестве процесса авторизации. Пользователи контролируют свои средства, но торговля на блокчейне имеет побочный эффект: невозможность торговли в режиме реального времени, как у централизованных бирж.

Децентрализованные биржи имеют некоторые преимущества по сравнению с централизованными, но также и недостатки.

Если все компоненты биржи децентрализованы, сопоставление заявок на покупку и продажу выполняется не автоматически, эта операция также должна выполняться пользователями. Например, для определенного заказа, который проверяется и помещается в стакан, любой другой пользователь может добавить заявку отмены с цифровой подписью и отправить полную транзакцию с парой заказов в блокчейн. Затем активы передаются между покупателем и продавцом.

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

Что если децентрализовать не все компоненты обмена, а только часть, которая сводит заявки (матчер)? Такой ход устраняет две из описанных выше проблем: арбитраж с уже отмененными ордерами и майнеров, которые исполняют заявки не по очереди, вклинивая свои заявки с целью прибыли. В отличие от централизованных бирж, децентрализованное решение с централизованным матчером не будет иметь возможности украсть депозиты пользователей.

2. Waves DEX

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

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

Заявки связаны парами индивидуальными нодами, которые работают как матчер. Перед тем как попасть в блокчейн Waves, биржевые транзакции всегда проверяются нодами для сопоставления цен в заявках, чтобы матчер не мог реализовать «неправильные» транзакции. Затем матчер создает Exchange Transaction, подписывает её своей подписью и помещает в блокчейн для фиксации изменений в балансах пользователей. Матчер также может сводить заявки частично, как и на обычной бирже. После подтверждения транзакции матчер подписывает подтвержденные нодами биржевые транзакции и кладет их в блокчейн, балансы пользователя меняются в соответствии с ценой исполнения заявки и количеством ассетов в заявке. Важным моментом является то, что средства передаются только после публикации в блокчейне. Если матчер ошибется, то обмен не состоится, и средства не будут потеряны, потому что биржа не хранит у себя активы клиента.

Пользователь показывает свою готовность приобретать или продавать активы, создавая, подписывая и отправляя запрос Limit Order на матчер ноду. Лимитная заявка здесь является тем же самым, чем и на обычных биржах: заявка на покупку (sell) фиксированного количества токенов по цене, равной или лучше указанной. Когда новый ордер отправляется на DEX, все его поля валидируются, а подпись проверяется в соответствии с публичным ключом отправителя. Затем ордер проверяется на основе внутреннего состояния матчера: ордер с таким идентификатором не должен уже существовать, а сумма заявки для определенного актива должна быть меньше или равна остатку этого актива на счете отправителя. Схема работы DEX показана на Рисунке 1:

Рисунок 1

Пользователь может установить время истечения срока заявки (максимальный таймстемп) заявки, и по истечении срока действия он будет автоматически отменен. Одним из правил DEX является то, что ордера старше 30 дней отменяются по умолчанию. Время истечения заявки определяется пользователем в момент, когда он подписывает заявку своей подписью. Время когда заявка истекает - это long integer значение, представляющее собой абсолютное количество секунд начала UNIX-эры (00:00 01-01-1970). Если заявка не выполнена, и её максимальный таймстемп больше, чем текущий UNIX таймстемп, пользователь может отменить заявку. В этом случае ордер переходит в блокчейн как отмененный, и с этого момента никто не может его исполнить.

Полный цикл исполнения для одной заявки следующий:

  1. Если для отправленной заявки нет встречного ордера, по соответствующей цене, тогда заявка будет помещена в соответствующий стакан.
  2. Если есть встречный ордер, соответствующий заявке, то заявка исполняется. Это означает, что встречный ордер достаётся из стакана, матчер создает биржевую транзакцию, подписывает ее своим приватным ключом и отправляет в сеть Waves для включения в блокчейн.
  3. Если количество ассетов, указанное в заявке достаточно велико, чтобы выполнить несколько заказов, матчер создает несколько транзакций. Созданные транзакции имеют суммы, равные суммам встречных заявок. Встречные заявки выбираются в порядке их поступления (First In, First Out).

В каждый момент жизни ордера, он находится в определенном состоянии, в зависимости от того, на какой стадии жизненного цикла он находится. Когда ордер находится в стакане, но еще не исполнен - он имеет состояние «Accepted», также он может быть «Filled», «Partially Filled» или «Canceled». Заявки, которые не исполнены полностью, могут быть отменены, после чего удалятся из стакана.

3. Вычисление комиссии матчера

Полная фиксированная комиссия за транзакцию в настоящий момент равна 0,003 waves за заказ, будь то покупка или продажа, независимо от суммы будущей сделки. Биржевая сделка содержит два отдельных поля для комиссии матчера: от заявки покупателя и заявки продавца. Ордер может быть полностью выполнен какой-либо транзакцией, в этом случае вся сумма комиссий от него включена в эту транзакцию.

Если ордер частично исполнен какой-либо сделкой, комиссия матчера включается в эту транзакцию пропорционально исполненной сумме, т.е.

executedAmount * orderMatcherFee / orderAmount.

Оставшаяся комиссия матчера для этого ордера будет включена во все остальные транзакции, включающие данный ордер, до его полного исполнения.

3.1 Пример:

Пусть есть 3 разных ордера (Рисунок 2): два на покупку и один на продажу. За каждый полный ордер, пользователь должен a заплатить ровно 0.003 waves комиссии, и эта комиссия будет списана только тогда, когда ордер исполнится. Например:

  • Order1 полностью исполняется с 70% частью Order3 в Transaction1 и комиссия матчера для этой транзакции составляет 0.003 + 0.0021 - 0.003 = 0.0021 Waves так как матчер платит майнерам комиссию, также равную 0.003 Waves.
  • 50% от Order2 исполняется с 30% частью Order3 в Transaction2 и комиссия матчера за эту транзакцию равна 0.0009 + 0.0015 - 0.003 = -0.0006 Waves.

Таким образом, комиссия, которую матчер получает от пользователей за их транзакции равна 0.0021 - 0.0006 = 0.0015 waves. Комиссия, которую матчер платит майнерам равна 0.006 waves.

Рисунок 2: пример того, как работает комиссия матчера, TX1 - Transaction1, TX2 - Transaction2, Ord1 - Order1, Ord2 - Order2, Ord3 - Order3

Промеждуточные итоги:

Период Комиссия матчера Комиссия майнеров То, что осталось матчеру
последний месяц 681.42336675 waves 569.721 waves 16.39%
всё время 3476.01418346 waves 2824.771 waves 18.74%

То есть, за всё время матчер оставил себе только 18.74% комиссии, а всё остальное заплатил майнерам за размещение транзакций в блоки (данные от 8.02.2018).

4. Установка DEX

5. Установка своего собственного матчера

  • Пользователи могут установить их собственный матчер, установив ПО Waves и сделав доступной функциональность матчера.
  • Матчер получает комиссию за предоставляемые им услуги, что позволяет so you can значительно повысить вознаграждение за майнинг.
  • Когда пользователь отправляет свои ордера матчеру, он не переводит никому свои средства, деньги пользователя остаются на их аккаунтах до тех пор, пока матчер их не сведёт.

Примечание: Больше информации о матчере можно найти здесь.

results matching ""

    No results matching ""