Протоколdocs/protocol/native-finance.md

Нативные финансы

Нативный профиль поддерживает обеспеченные взаимозаменяемые токены, launchpad, последовательную торговлю и NFT-маркетплейс с фиксированными ценами. Все операции входят в переход State, доказанный HistoryStep. getNativeProtocol сообщает установленные ограничения ресурсов.

Идентичность и владение

asset_id токена связывает его определение с точным входом, израсходованным при создании: сетью, владельцем, слотом и ID создания. Коллекция использует такую же привязку к источнику финансирования. Её NFT определяются ID коллекции и серийным номером. Названия и тикеры описывают активы. Два актива могут иметь одинаковый тикер.

Типизированные раскрытия фиксируют количество токенов, остатки обеспечения, резервы рынка, владельца NFT и условия листинга. State аутентифицирует их корни и точные экземпляры. Нативный переход атомарно расходует входы и создаёт выходы. Общее отношение связывает полное тело операции, авторизацию Owner, суммы, комиссии и изменения State.

Фиксированная эмиссия и обеспечение держателей

Взаимозаменяемые токены создаются через launchpad. Эмиссия фиксируется при создании и составляет минимум 100 000 целых токенов с шестью знаками после запятой. Создатель вносит минимум 0.001 NOID на каждый целый токен. Для 100 000 токенов требуется 100 NOID обеспечения и отдельно указанная сетевая комиссия.

Резерв обеспечения и торговая ликвидность хранятся в разных объектах State. Обязательства резерва учитывают все непогашенные токены, включая токены на кривой и в DEX. Резерв расходуется только на погашение держателями, а эмиссия остаётся фиксированной.

Для резерва R, непогашенного количества S в минимальных единицах и сжигания q единиц:

text
payout = floor(R * q / S)
next_reserve = R - payout
next_outstanding = S - q

Сжигание и погашение выполняются одной атомарной операцией. Округление вниз оставляет дробный остаток в резерве. Обеспечение на оставшуюся единицу сохраняется или растёт. Сжигание последних непогашенных единиц возвращает весь остаток резерва. Кошелёк отдельно показывает сетевую комиссию и итоговое изменение NOID.

Стандартная кривая запуска

Пусть S0 обозначает начальную эмиссию в минимальных единицах токена, а q обозначает количество, проданное кривой. Стандартный профиль задаёт:

text
curve allocation = 3 * S0 / 5
graduation token liquidity = 2 * S0 / 5
curve NOID cash C(q) = ceil((3 * S0 * q + 5 * q * q) / (900 * S0))
graduation NOID cash = S0 / 250
marginal price = (3 * S0 + 10 * q) / (900 * S0)

Денежные суммы выражены в microNOID. У NOID и токена по шесть знаков после запятой, поэтому отношение предельной цены также выражает NOID за целый токен. Цена начинается с 1/300 и достигает 1/100 при переходе на DEX. Исполнение использует точную целочисленную разницу C(q). Предельная цена служит ориентиром для отображения.

Создание может включать первую покупку создателем q минимальных единиц, где 0 <= q <= 3 * S0 / 5. Один атомарный переход вносит полное обеспечение держателей, переводит C(q) в торговое хранение и назначает создателю q токенов. Кривая начинает работу с запасом S0 - q и денежным остатком C(q). Покупка всего объёма кривой сразу создаёт постоянный DEX-пул с 2 * S0 / 5 единиц токена, S0 / 250 microNOID и S0 / 25 навсегда заблокированных долей пула. Нативное отношение создания совместно проверяет покупку, хранение средств и обеспечение. При любом количестве первой покупки идентичность актива и фиксированная эмиссия используют ту же привязку к входу создания.

Эмиссия в целых токенах Обеспечение держателей Объём кривой Объём DEX Ликвидность NOID при переходе
100,000 100 60,000 40,000 400
1,000,000 1,000 600,000 400,000 4,000
5,000,000 5,000 3,000,000 2,000,000 20,000

Покупка получает наибольшее доступное целое количество. Продажа возвращает соответствующее уменьшение C(q). Достижение объёма кривой автоматически создаёт постоянный пул NOID/токен в том же переходе. Идентичность актива и балансы держателей сохраняются. Покупка, пересекающая границу перехода, может потратить остаток на новый пул. Неиспользуемый мелкий остаток возвращается.

Постоянная ликвидность DEX

Начальная цена пула равна конечной предельной цене кривой. Ликвидность пула заблокирована навсегда. Этот профиль предусматривает постоянный пул, а комиссии DEX накапливаются внутри его резервов.

Для входного резерва x, выходного резерва y и полного входа g:

text
fee = ceil(30 * g / 10000)
effective_input = g - fee
output = floor(y * effective_input / (x + effective_input))
next_input_reserve = x + g
next_output_reserve = y - output

Комиссия составляет 0.3% входа с округлением вверх до минимальной единицы. Исполнение только на кривой использует её денежную функцию. Комиссия DEX применяется к исполнению в DEX или к DEX-части покупки, пересекающей переход. Сетевая комиссия указывается отдельно. Каждый принятый обмен сохраняет положительные резервы и неуменьшающееся произведение резервов.

Несколько сделок в одном блоке

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

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

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

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

NFT-маркетплейс

Коллекции кошелька используют полный диапазон серийных номеров u64. Создатель может добавлять предметы последующими транзакциями выпуска. Выпуск расходует и обновляет счётчик коллекции. Номер сожжённого предмета остаётся выданным. Простой сценарий Create NFT сначала подготавливает коллекцию из одного предмета, затем выпускает предмет. Каждый этап подтверждается отдельно.

Листинг расходует NFT владельца и фиксирует точного продавца, предмет, цену и срок. Кредит комиссии составляет 0.1 NOID. Покупка расходует этот конкретный листинг, платит продавцу и передаёт предмет покупателю одним переходом. Продавец получает цену и кредит листинга. Отмена возвращает NFT и оставшийся кредит после сетевой комиссии. Конкурирующие покупки конфликтуют по одному экземпляру листинга. NFT может быть передан только одному покупателю.

Бюджеты доказательства и хранения

Аутентифицированный банк выбирает один класс для блока:

Класс Физические страницы Ёмкость обычных живых входов Слоты вызовов ABI 3
Small 63 504 63
Large 206 504 63
Native 63 504 63

Small и Large поддерживают платежи NOID и вызовы ABI 3. Native добавляет токены, launchpad, DEX и NFT. Блок Native также может включать платежи NOID и вызовы ABI 3 в общих бюджетах страниц и входов.

Нода автоматически рассматривает Small и Native. Параметр --v2-large-blocks дополнительно разрешает Large. Нода выбирает кандидата с наибольшей доступной комиссией и строит для него одно доказательство. При равенстве сохраняется предыдущий кандидат, причём Small рассматривается первым. Внешние майнеры получают существующий PoW-шаблон и отправляют nonce через тот же API майнинга.

Класс Native дополнительно ограничивает набор 48 торговыми политиками, 64 общими входами финансирования, 128 типизированными действиями и четырьмя рынками. Ограничения действуют одновременно. Фактическая ёмкость зависит от структуры финансирования и выплат. Например, 32 политики с двумя входами каждая занимают весь бюджет в 64 входа. Выбор шаблона учитывает обычные платежи и вызовы ABI 3 в том же блоке.

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

См. Нативные объекты и форматы передачи: типы, каноническое обрамление, происхождение и синхронизация живых данных.

Техническая документация ParanO(1)dПоведение консенсуса определяется исходным кодом.