Перейти к содержимому

    Нажмите /, чтобы искать, и [ или ], чтобы перейти к предыдущей или следующей странице.

    Как это устроено

    Платёжеспособность и очередь

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

    Модель

    Exchange ведёт учёт своего LP в нескольких корзинах:

    • Деньги LP: та часть USDC контракта Exchange, которую он больше никому не должен. Возьмите всё, что у него есть, и вычтите свободные балансы всех аккаунтов, маржу, заблокированную в открытых позициях, и накопленные комиссии; остаток — это деньги LP. Отрицательными они быть не могут. Ещё не полученные комиссии билдеров остаются в деньгах LP как долг LP: учётный LP уже считает их выплаченными, а требование билдера выплачивается из денег LP или ставится в очередь, если выплатить его нельзя.
    • Отдельный резерв: поступления от убытков, пришедшие, пока в очереди были требования; внутри денег LP они закреплены за очередью. Сборы в первую очередь расходуют его.
    • Очередь выплат: список невыплаченных выигрышей в порядке поступления, у каждого — аккаунт и сумма.
    • Долг в позициях: маржа открытых позиций, открытых на требования из очереди.

    Вместо LP, наполненного заранее и платящего выигравшим по первому требованию, протокол ставит выигравших в очередь, когда денег не хватает, и платит им по мере того, как последующие убытки пополняют LP. Величина, от которой зависит ставка начисления токена, — учётный LP — связана с корзинами тождеством, которое сохраняет каждая операция:

    tracked LP = LP cash − queued claims − debt in positions
    

    Он может быть отрицательным: это и есть временная неплатёжеспособность, ради которой существует очередь.

    В очередь попадает только то, что LP должен по закрытию, но не может выплатить в этот момент: выплата за вычетом комиссии с прибыли по позиции, открытой на ваш баланс, или сохранившееся требование по позиции, открытой на средства из очереди. Три вещи в неё не попадают:

    • Ваша маржа по позиции, открытой на ваш баланс: она сразу возвращается на свободный баланс, и её можно вывести или снова использовать.
    • Комиссии вперёд выигравших в очереди: каждый выигравший платит комиссию с прибыли, но стейкерам и команде она достаётся, только когда очередь пуста и денег LP хватает и на неё; иначе она остаётся в LP. Комиссии с убытка и за ликвидацию не взимаются, пока в очереди что-то есть. Комиссия билдера вычитается вместе с комиссией с прибыли или убытка и подчиняется тем же правилам.
    • Убытки, пока в очереди есть требования: они закрепляются в отдельном резерве, а не становятся свободными деньгами LP. При расчёте они всё равно целиком увеличивают учётный LP.
    Куда идёт каждый долларУбытки и ликвидации пополняют деньги LP или, пока в очереди есть требования, отдельный резерв. Выигрыши выплачиваются из денег LP или встают в очередь выплат. Сборы переводят деньги из отдельного резерва в начало очереди.Убыток или ликвидацияПрибыльное закрытиеочередь пуста?денег хватает?данетданетденьги LPотдельный резервдля очередивыплачено вамочередь выплатнеобеспеченные требованиясборучётный LP = деньги LP − требования в очереди − долг в позициях
    Куда идёт каждый доллар. Убытки и ликвидации пополняют деньги LP или, пока в очереди есть требования, отдельный резерв. Выигрыши выплачиваются из денег LP или встают в очередь выплат. Сборы переводят деньги из отдельного резерва в начало очереди.

    Прибыльные закрытия

    Комиссия с прибыли 2% вычитается из выплаты при любом состоянии LP. Дальше:

    1. Очередь пуста: вам платят из денег LP в пределах выплаты. Комиссия идёт стейкерам и команде, только если денег LP хватает и на неё; иначе она остаётся в LP.
    2. То, что деньги LP не смогли выплатить, или вся выплата, если в очереди уже есть требования, добавляется в конец очереди на ваше имя. Деньги LP на эту часть не меняются.

    Позиция, открытая на требования из очереди, рассчитывается так же, за одним исключением: LP должен всё её сохранившееся требование — маржу плюс выплату при выигрыше или маржу минус убыток при убыточном закрытии. Требование, использованное при открытии, было залогом, а не деньгами, которые у вас были.

    Убыточные закрытия и ликвидации

    Если позиция, открытая на ваш баланс, закрывается в убыток или ликвидируется:

    1. Очередь пуста: убыток минус комиссия (2% при закрытии, 2% от маржи при ликвидации) становится деньгами LP.
    2. В очереди есть требования: поступления остаются в Exchange, но идут в отдельный резерв для выигравших в очереди, а комиссия не взимается. При расчёте они всё равно учитываются в учётном LP, и BACK за них всё равно начисляется.

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

    Сбор

    Сбор выплачивает требования из очереди начиная с её начала:

    1. Пройти очередь с головы, выплачивая каждое требование из денег, доступных очереди; последнее достигнутое требование может быть выплачено частично.
    2. Списать выплаченное сначала с отдельного резерва. Если деньги закончились раньше, чем очередь опустела, остановиться; последующие убытки профинансируют последующие сборы.
    3. Если очередь опустела, а в отдельном резерве что-то осталось, вернуть остаток в обычные деньги LP. Ни сбор, ни возврат не меняют учётный LP: требование в очереди уже было из него вычтено.

    Сбор не требует разрешений, и вызвавший его ничего не получает. Один вызов выплачивает не больше 64 требований; наш кипер вызывает его с 32, как только есть что выплатить, так что больше никому это делать не нужно.

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

    Инварианты

    • Деньги LP и отдельный резерв беззнаковые, поэтому ни то, ни другое не может стать отрицательным.
    • Деньги, доступные для новых выплат, равны нулю, пока в очереди что-то есть, поэтому новому выигравшему никогда не заплатят раньше прежнего.
    • Учётный LP равен деньгам LP минус требования в очереди минус долг в позициях. Он может стать отрицательным: это временная неплатёжеспособность, заложенная в конструкцию.
    • Распределение стейкерам забирает их комиссии, которые всегда обеспечены, плюс стоимость LP сверх $500,000, если она есть; этот излишек выплачивается из денег LP, когда очередь пуста, а иначе ставится в очередь на имя контракта стейкинга.

    Индексатор проверяет эти тождества после каждого блока и перестаёт отдавать данные, если какое-то из них нарушено.

    Что видит пользователь

    Открытие позиции не зависит от очереди, если не считать обычных лимитов открытого интереса и ограничения на число требований, которые может использовать одно открытие. Прибыльное закрытие либо сразу выплачивает вам деньги, либо ставит вас в очередь — в зависимости от LP. Приложение показывает доступный баланс (выплачено) и баланс в очереди (ждёт сбора); оба можно использовать для новых позиций, потому что требования в очереди могут служить маржой.

    Обновлено: