> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Проверьте сами

> Пять проверок, превращающих утверждения архитектуры в то, что вы можете решить самостоятельно, — две из них вообще без сети.

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

Эта страница — о том, как. Каждая проверка называет входные данные, откуда они берутся и — что не менее важно — что она *не* доказывает.

<div className="dg" data-dg="verify-tiers">
  <div className="dg-c" style={{aspectRatio:"720 / 248"}}>
    <svg className="dg-w" viewBox="0 0 720 248" aria-hidden="true" />

    <div className="dg-band" style={{left:"0.0000%",top:"7.2581%",width:"30.9259%",height:"72.5806%"}}><span className="dg-cap">Одна арифметика</span></div>
    <div className="dg-band" style={{left:"34.5370%",top:"7.2581%",width:"30.9259%",height:"72.5806%"}}><span className="dg-cap">Публичные данные, любой узел</span></div>
    <div className="dg-band" style={{left:"69.0741%",top:"7.2581%",width:"30.9259%",height:"72.5806%"}}><span className="dg-cap">Собственный полный узел</span></div>
    <div className="dg-b dg--blue" style={{left:"2.2222%",top:"18.5484%",width:"26.4815%",height:"22.5806%"}}><span className="dg-t">Маржинальное требование</span></div>
    <div className="dg-b dg--blue" style={{left:"2.2222%",top:"45.9677%",width:"26.4815%",height:"22.5806%"}}><span className="dg-t">Цена ликвидации</span></div>
    <div className="dg-b dg--orange" style={{left:"36.7593%",top:"18.5484%",width:"26.4815%",height:"22.5806%"}}><span className="dg-t">Отбор для автоделевериджа</span></div>
    <div className="dg-b dg--orange" style={{left:"36.7593%",top:"45.9677%",width:"26.4815%",height:"22.5806%"}}><span className="dg-t">Платёж финансирования</span></div>
    <div className="dg-b dg--green" style={{left:"71.2963%",top:"32.2581%",width:"26.4815%",height:"22.5806%"}}><span className="dg-t">Блок, побайтно</span></div>
    <div className="dg-free dg-mid" style={{left:"0.0000%",top:"83.0645%",width:"100.0000%"}}><div className="dg-n">Двум из пяти сеть не нужна вовсе: это чистые функции над опубликованной записью ступеней.</div></div>
  </div>
</div>

<h2 id="1-a-margin-requirement">
  1 · Маржинальное требование
</h2>

**Что нужно:** запись ступеней плеча и размер позиции. Больше ничего. Ни узла, ни сети, ни счёта.

Начальная и поддерживающая маржа — чистые функции номинала и записи ступеней; формулы и точное округление приведены на странице [Плечо](/ru/trading/leverage):

$$
\text{IM} = \text{номинал} \times \text{im\_leverage} \times 10^{\text{exponent}}
$$

$$
\text{MM} = \max\!\left(\text{номинал} \times \text{mm\_leverage} \times 10^{\text{exponent}} - \text{вычет},\; 0\right)
$$

Записи ступеней публикуются в группе **DEX Config** [справочника API](https://testnet-openapi.intention.xyz/) — `im_leverage`, `mm_leverage`, общий `exponent` и `deduction` для каждой ступени. Возьмите номинал, вычислите оба выражения на бумаге и сравните с тем, что площадка берёт с такой же позиции.

**Что доказывается:** требование — опубликованная функция от публичных параметров, а не решение по каждому счёту отдельно. **Что не доказывается:** что сама запись ступеней выбрана удачно. Это вопрос управления, а не арифметики.

<Note>
  Округление — часть спецификации, а не допуск. Если ваше целое расходится с площадкой на единицу, одно из двух неверно; прежде чем решать какое, посмотрите правила округления на странице [Клиринговая палата](/ru/protocol/architecture/clearinghouse).
</Note>

<h2 id="2-a-liquidation-price">
  2 · Цена ликвидации
</h2>

**Что нужно:** та же запись ступеней плюс ваш баланс и позиция.

Порог — это коэффициент, определённый на странице [Ликвидации](/ru/trading/liquidations):

$$
\text{коэффициент} = \frac{\text{поддерживающая маржа}}{\text{чистое обеспечение}}
$$

Чистое обеспечение — это баланс плюс нереализованный P\&L минус то, что зарезервировали стоящие ордера. Решите относительно маркировочной цены, при которой коэффициент достигает порога, и вы получите цену, на которой протокол сработает, — до того, как он сработает.

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

<h2 id="3-an-auto-deleveraging-selection">
  3 · Отбор для автоделевериджа
</h2>

**Что нужно:** открытые позиции и маркировочные цены по одному рынку — с любого полного узла.

Отбор — это балл, определённый на странице [Автоделеверидж](/ru/trading/adl):

$$
\text{ADL-балл} = \text{нереализованная прибыль, \%} \times \text{фактическое плечо}
$$

Возьмите позиции рынка из группы **Accounts**, удостоверенную цену из группы **Oracle**, посчитайте балл для каждой позиции на прибыльной стороне и отсортируйте. Этот порядок и есть очередь. Сравните голову вашей очереди с индикатором ADL, который показывает интерфейс.

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

<h2 id="4-a-funding-payment">
  4 · Платёж финансирования
</h2>

**Что нужно:** стакан и удостоверенный индекс на раунд расчёта плюс ваша позиция.

Ставка собирается в три шага на странице [Финансирование](/ru/trading/funding) — премия, взвешенная по глубине, масштабирование под интервал рынка, затем зажим:

$$
P = \frac{\max(0,\; \text{DW-бид} - \text{индекс}) \;-\; \max(0,\; \text{индекс} - \text{DW-аск})}{\text{индекс}}
$$

$$
F = F_{8h} \times \frac{\text{секунд в интервале}}{28{,}800}
\qquad
F_{\text{final}} = \operatorname{clamp}\!\left(F,\; F_{\min},\; F_{\max}\right)
$$

Затем сам платёж:

$$
\text{платёж финансирования} = \text{размер позиции} \times \text{маркировочная цена} \times \text{ставка финансирования}
$$

Стакан берётся из группы **Markets**, удостоверенный индекс — из **Oracle**, а фактически проведённый протоколом платёж — из эндпоинта платежей финансирования в группе **Accounts**. Пересчитайте и сравните.

**Что доказывается:** ставка выведена из стакана и индекса, а не назначена оператором. **Что не доказывается:** что индекс был верен. См. [что оракул гарантирует и чего не гарантирует](/ru/protocol/architecture/oracle).

<h2 id="5-a-block-byte-for-byte">
  5 · Блок, побайтно
</h2>

**Что нужно:** собственный полный узел. Запустить его может кто угодно — см. [Запуск узла](/ru/developers/run-a-node).

<Note>
  Это единственная проверка на странице, недоступная сегодня. До открытия публичного доступа сеть работает на [приватном тестнете](/ru/protocol/architecture/network-status), так что первые четыре можно выполнить уже сейчас, а эта станет выполнимой тогда. Она здесь потому, что остальные четыре стоят ровно столько, сколько стоит она.
</Note>

На этой проверке держатся остальные четыре. Возьмите зафиксированный блок и предшествующее состояние, исполните его и сравните свой результат с сетевым. Детерминизм здесь обеспечен, а не понадеян: путь исполнения не читает ни часов, ни энтропии времени выполнения, ни плавающей точки, ни рандомизированного хешем порядка обхода, поэтому расхождение — это дефект, а не допуск. См. [Почему результат воспроизводим](/ru/protocol/architecture/kernel).

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

**Что доказывается:** что состояние, которое вам отдают, получено по опубликованным правилам на входных данных, зафиксированных сетью. **Что не доказывается:** что сами правила без дефектов. Точно воспроизвести баг — значит всё равно воспроизвести баг; поэтому рядом с этим существуют [аудиты](/ru/protocol/security/audits) и [программа вознаграждений](/ru/protocol/security/bug-bounty).

<h2 id="what-none-of-it-covers">
  Что всё это не покрывает
</h2>

Проверка ограничивает то, что приходится принимать на веру, но не устраняет этого. Что остаётся — набор валидаторов, кворум по ценам, досягаемость управления до параметров и мост — перечислено на странице [Допущения о доверии](/ru/protocol/architecture/trust). Читайте её следующей, если пришли за границами, а не за гарантиями.

<h2 id="where-to-go-next">
  Что дальше
</h2>

<CardGroup cols={2}>
  <Card title="Допущения о доверии" href="/ru/protocol/architecture/trust">
    Что остаётся, когда проверено всё проверяемое.
  </Card>

  <Card title="Запуск узла" href="/ru/developers/run-a-node">
    Железо, синхронизация и то, что валидатор действительно запускает.
  </Card>

  <Card title="IntentionKernel" href="/ru/protocol/architecture/kernel">
    Четыре замыкания, которые придают повтору смысл.
  </Card>

  <Card title="Справочник API" href="https://testnet-openapi.intention.xyz/">
    Детали на уровне полей для каждого названного выше входа.
  </Card>
</CardGroup>
