Технический whitepaper v2.3
BlazePhoenix-Dex — это ончейн-агрегатор ликвидности, построенный на одном утверждении: котировка и её исполнение суть одно и то же вычисление. Маршрут выводится внутри той транзакции, которая его исполняет, из публичного состояния пулов, библиотекой без состояния, которую любой читатель может прогнать заново; число, связывающее при расчёте, повторно выводится тем же диспетчером в исполняющем кадре. Нет ни сервиса маршрутизации, ни ценового оракула, ни keeper, ни пути обновления. Этот документ специфицирует пять контрактов — Core, Hub, Solver, Router, Quoter — и операторы Мета-уравнения (Meta-Equation): Восьмеричный диспетчер Ω (Eightfold Dispatcher Ω), Детерминированный вывод 𝒟 (Deterministic Derivation 𝒟), порог Железного закона Φ (Iron-Law floor Φ), Поле жизнеспособности Ψ (Vitality Field Ψ) и антискам-проектор Ξ (anti-scam projector Ξ). За ними стоит одна дисциплина, Метрологическое проектирование (Metrological Design): измерять всякую координату, которую можно измерить, а остальное делать монотонным, чтобы ложный ввод вредил только тому, кто его поставил. Каждая гарантия названа вместе с местом её принуждения и её пределом. Аппарат верификации публикуется вместе со своими знаменателями: 1,319 из 1,320 тестов зелёные на релизном профиле, 268 из 268 отобранных мутантов убиты, 14 из 15 мутантов, нацеленных на 43 инвариантов с состоянием, замечены, покрывающие массивы силы 2 (63 строки, 258 пар) и 3 (168 строк, 1,636 троек), 14 + 5 метаморфных отношений, три сборки оптимизатора в согласии и исследование на 240 выборках о том, как стареет котировка. То, чего всё это не устанавливает, названо с той же тщательностью. Описанный код — это V2, и он не развёрнут; развёрнутое поколение — V1, закреплённое по codehash, чтобы эти два никогда не смешивались.
Статус: что описывает этот документ и что развёрнуто
Дерево Версии 2, которое описывает этот документ, лежит в репозитории и не развёрнуто; развёрнутое поколение — Версия 1, закреплённая по codehash в каждой сети, чтобы эти два никогда не смешивались. Каждое число в документе измерено на main 8949a9d и напечатано рядом со своим знаменателем; полный текст на русском: https://blazephoenix.xyz/whitepaper/ru.md; английский оригинал, который имеет преимущественную силу: https://blazephoenix.xyz/whitepaper.md.
§1 Проблема: котировка — это обещание, которое посчитал кто-то другой
Представьте, что вы продаёте машину в городе с двадцатью дилерами. Хороший брокер объедет все двадцать, найдёт лучшую цену и, возможно, разделит продажу между двумя из них. Большинство ончейн-«брокеров» смотрят цены в собственной базе данных — возможно, устаревшей — и показывают вам результат. Вы не можете проверить, что они посмотрели все двадцать, ни что показали вам лучшее. Вы можете проверить только то, что до сих пор они были честны.
§2 Ответ и дисциплина
У BlazePhoenix-Dex есть точка входа, принимающая шесть значений — два токена, сумму, ваш минимум, получателя, срок — и вычисляющая маршрут внутри той транзакции, которая его исполняет, из резервов пулов, являющихся публичным состоянием: какие площадки, сколько на каждую, в каком порядке. Поскольку маршрут выведен из публичного состояния публичным кодом, вывести его заново может кто угодно.
§3 Мета-уравнение и бюджет зависимостей
Весь агрегатор можно прочесть как максимизацию одного выражения. Для входного токена t_in, выходного токена t_out и суммы x Solver ищет среди допустимых маршрутов тот, что максимизирует чистую полученную стоимость, при пороге допустимости и антискам-вентиле.
§4 Восьмеричный диспетчер Ω (Eightfold Dispatcher Ω)
Простыми словами: одна функция, умеющая котировать пул любого вида. Точно: universalQuote(QuoteCtx, amountIn) в Core — это диспетчер котировок для Solver и для предпросмотра Quoter; он возвращает ожидаемый выход и выраженную в токене глубину для распределителя дробления (Split Allocator), а пул, который он не может котировать, возвращает ноль и отбрасывается прежде, чем что-либо будет отправлено.
§5 Uniswap V4 от края до края
Uniswap V4 — это не новый контракт пула; это новая форма площадки, и она опровергает четыре допущения, на которых держится любой router, построенный между 2020 и 2024. У пулов нет адресов — это записи в хранилище одного синглтона, адресуемые хешем. Внутри свопа исполняется произвольный код — хук выполняется в определённых точках расчёта, который производит router. Комиссии не обязаны быть постоянными. И пулы могут держать нативную валюту сети, у которой нет balanceOf. Этот раздел отвечает на все четыре структурно, так что нога V4 — для Solver, для порогов и для трейдера — неотличима от любой другой ноги.
§6 Solver для Solidly
У некоторых инвариантов нет замкнутой формы, достаточно простой, чтобы её можно было безопасно воспроизвести, а воспроизводить их — это ровно тот риск репликации, который протокол отвергает в других местах. Для таких площадок диспетчер спрашивает сам пул через самый узкий честный канал, который площадка предоставляет, — и держит реплику в запасе для форков, которые не отвечают.
§7 Детерминированный вывод 𝒟 (Deterministic Derivation 𝒟)
Прежде чем пул можно котировать, его нужно найти. Ответ индустрии — спросить: вызов к фабрике площадки читает отображение в хранилище и возвращает адрес, а вызывающий верит фабрике на слово. BlazePhoenix поддерживает такой ответ — четыре режима вызова фабрики покрывают площадки, чьи развёртывания невоспроизводимы, — и предпочитает более сильный везде, где это позволяет арифметика: вычислить адрес, без единого внешнего вызова. Вычисленный адрес может проверить любой, имея те же три входа; полученный адрес можно только принять на веру.
§8 Монослот (Monoslot)
Хранилище — доминирующая статья затрат на любое действие в EVM: холодный SLOAD стоит 2,100 gas, и реестр, разбросавший атрибуты пула по отдельным слотам, платил бы его снова за каждый атрибут, за каждый пул, на каждом оцениваемом маршруте. BlazePhoenix упаковывает всё маршрутное состояние пула в одно 256-битное слово — Монослот — читаемое один раз и декодируемое чистой арифметикой.
§9 Самовосстанавливающийся реестр (Self-Healing Registry) и Поле жизнеспособности Ψ (Vitality Field Ψ)
Большинство агрегаторов знают свои площадки потому, что keeper индексирует пулы вне сети и заливает списки в сеть — доверяемый процесс, окно устаревания и операционная зависимость: три вещи, которых протокол, решающий маршруты ончейн, принять не может. BlazePhoenix занимает противоположную позицию: реестр узнаёт ликвидность, торгуя ею.
§10 Маршрутизация и Распределитель дробления (Split Allocator)
Пул постоянного произведения назначает цену по одному правилу: произведение двух его резервов никогда не может уменьшиться. Влейте Δ при удержании комиссии γ (комиссия площадки 0.30 % даёт γ = 0.997) — и получите yγΔ / (x + γΔ), с вашим же входом в знаменателе: чем больше вы проталкиваете через один пул, тем хуже платит каждый следующий токен. Проскальзывание — это арифметика, и лекарство от него тоже: разделение одного и того же ордера между пулами одной пары сдвигает каждый пул меньше.
§11 Слой исполнения и порог Железного закона Φ (Iron-Law floor Φ)
Solver предполагает; Router располагает — атомарно или никак. Router — единственный контракт, который двигает средства, между транзакциями не держит никаких и построен на одном принципе: один механизм на одну заботу, применяемый повсеместно. Он не допускает ничего из того, что может измерить.
§12 Поверхности котировки и как котировка стареет
Число, называемое «вашей котировкой», может прийти из двух мест, и это разные пути кода: Quoter, контракт предпросмотра только для чтения, который интерфейс вызывает до того, как вы подпишете, и путь внутри кадра, где Solver и Router вычисляют котировки внутри исполняющейся транзакции. §4.4 дал истину по видам; этот раздел даёт поверхности и измеряет разрыв между ними.
§13 Политика комиссии: два режима и Правило излишка (Surplus Rule)
Простыми словами: протокол берёт 0.28 % один раз, с одной измеренной величины, в монете, которую казначейство хочет держать, и записывает, что он это сделал. Точно: PROTOCOL_FEE_BPS = 28 — константа времени компиляции в Core, без единого сеттера в развёрнутом байткоде; комиссия равна mulDivUp(base, 28, 10,000) — с округлением вверх, так что нулевая комиссия недостижима для любой ненулевой базы, — делится как TREASURY1_SHARE = 3,000 bps первому казначейству, а остаток второму (вычисляется как fee − t1, так что вдвоём они всегда дают комиссию без пыли), причём казначейства фиксируются при конструировании и навсегда замораживаются Дверью в одну сторону (One-Way Door).
§14 Модель безопасности
Простыми словами: Router ничего не держит между транзакциями, каждый своп — всё или ничего, и каждому классу атак, который этот репозиторий рассмотрел, отвечает поимённая проверка либо он поимённо объявлен вне области рассмотрения. Точно: каталог угроз — docs/assurance/threats.json, 23 класса, взятых из публичной летописи эксплойтов; каждый называет символ-страж, который его отвергает, а CI-скрипт роняет сборку, если символ покидает src/ или названный тест покидает test/. Покрытие каталога — это нижняя граница того, что было рассмотрено, и никогда не потолок того, что существует.
§15 Аппарат верификации, измеренный
Простыми словами: каждое число здесь напечатано рядом со знаменателем, против которого оно измерялось, пересчитывается из чистого checkout скриптом или названной командой forge (Приложение C), и за ним следует то, чего оно не устанавливает. Точно: измеренное дерево — main на 8949a9d и ветка, ставшая им, на релизном профиле (optimizer_runs = 300, via_ir), 2026-09-05.
§16 Архитектура и размеры
Простыми словами: пять контрактов, один из которых — чистая математика, импортируемая остальными четырьмя, и ни один кусок математики не определён дважды. Точно: Core — библиотека без состояния, без хранилища, без владельца и без пути обновления; Hub, Solver, Router и Quoter импортируют её, и ни один не переопределяет примитив, так что один аудит математики покрывает всех потребителей.
§17 Измеренная производительность
Простыми словами: всё в этом разделе измерено на форках реальных сетей — реальные площадки, реальные резервы, внесённые посторонними, один байткод — и помечено ровно так. Точно: число появляется здесь, только если публичный harness в репозитории его воспроизводит; harness, сеть и дата напечатаны рядом. Измерение на форке — свидетельство о поведении, а не запись о развёртывании; запись о развёртывании — это §19. Измерения §12 и §15 сделаны 2026-09-05; кампания этого раздела проводилась в августе 2026, а её harness-ы лежат в test/fork/.
§18 DEX до костей
Семнадцать разделов механики, сжатые до одной страницы. Одна задача: принять два токена, сумму, ваш минимум, получателя и срок — и вернуть максимум, который способна дать публичная ликвидность сети, или отказать с кодом, объясняющим причину. Пять контрактов делят одну математику (Core, Hub, Solver, Router, Quoter); шесть типов площадок оцениваются одним диспетчером; четыре входа ведут к одному исполнителю; три нижние границы и ваш собственный минимум стоят под каждой сделкой; комиссия 0,28% вкомпилирована, и никто не может её изменить.
§19 Статус развёртывания
Этот документ документирует репозиторий, и репозиторий каноничен: там, где этот текст и исходник расходятся, побеждает исходник. Существуют два поколения, и они никогда не смешиваются.
§20 Токен — BZPX
Один миллиард BZPX, зафиксированный навсегда, как простой ERC-20: 18 знаков, без выпуска, без комиссии за перевод, без ребейза, без хуков перевода, без паузы и чёрного списка. Распределение в версии 2.3: рыночная ликвидность 520,000,000 (52%), эмиссия стейкинга 180,000,000 (18%), Airdrop & Bounties 130,000,000 (13% — прежний аирдроп 50,000,000, прежний исследовательский пул 50,000,000 и 30,000,000 из рыночной ликвидности), команда 103,000,000 (10.3%), партнёры 60,000,000 (6%), маркетинг 7,000,000 (0.7%).
§21 Исследовательская программа и запись о безопасности
Ещё до того, как у этого проекта появилась исследовательская программа, достойная имени, независимые исследователи читали исходник враждебно — незваными, без каких-либо обещаний — и раскрывали увиденное приватно. Код, который описывает этот документ, — это код, переживший их чтение. Что сообщил каждый из них и чем это кончилось, живёт там, где таким записям и место: в SECURITY.md и SECURITY_HALL_OF_FAME.md репозитория, рядом с кодом, где каждую запись можно проверить в обе стороны. Этот раздел фиксирует, кто они, сколько платит враждебное чтение и какую форму имеет найденное.
§22 Чему вы обязаны доверять, а чему не обязаны
Всякий протокол называет себя не требующим доверия; почти никто не может перечислить свои исключения. Вот полный список, каждое полномочие названо вместе со строкой, которая его ограничивает.
§23 Связанные работы
Маршрутизация. Angeris, Evans, Chitra и Boyd формулируют маршрутизацию между маркет-мейкерами постоянной функции как выпуклую задачу, оптимум которой уравнивает предельные цены по площадкам; Diamandis, Resnick, Chitra и Angeris дают для неё эффективный алгоритм двойственной декомпозиции.
§24 Заключение
Мы взялись построить агрегатор на одной дисциплине — измеряй, а не верь — и удержать её в каждой точке, где число могло бы вместо этого быть принято на чьё-то слово: маршрут, цена, порог, база комиссии, множество площадок, пара, которой пул заявляет торговать, и даже собственная модель издержек протокола.
Английский (оригинальный текст)
Questions, a partnership or a bug to report? Contact us or email contact@blazephoenix.xyz