В исследовании проверяется, нужна ли рекурсивному доказательству блока промежуточная геометрия между двумя рабочими классами. B64 покрывает блоки, содержащие до 64 физических пользовательских страниц, B255 — диапазон от 65 до 255, не меняя доказываемое отношение. Были измерены штатный путь построения доказательства, аутентифицированные матрицы и авторизация кошелька вплоть до 1 020 входов. Промежуточную геометрию реализовали, но затем удалили: она добавляла в консенсус ещё одно правило выбора и ветвь проверки, не улучшая ни одну подтверждённую нагрузку.
Что означают B64 и B255
State — аутентифицированный набор текущих непотраченных выходов и счётчиков консенсуса. HistoryStep — рекурсивное доказательство, которое связывает точный переход State блока с предыдущим HistoryStep, образуя цепочку доказанных состояний. B64 и B255 — два фиксированных класса ёмкости одного и того же отношения. Физическая пользовательская страница — фиксированная часть формата транзакции PagedSpend; одна логическая операция расходования может занимать несколько страниц. B64 покрывает блоки не более чем с 64 такими страницами, B255 — диапазон от 65 до консенсусного предела в 255. Правила корректности у них одинаковы: больший класс лишь предоставляет доказательству больше места.
Исследование отвечает на вопрос, принесёт ли третья промежуточная геометрия заметный выигрыш в скорости или эффективности производства блоков, оправдывающий усложнение протокола.
Почему число классов — решение консенсуса
Каждый класс HistoryStep добавляет новую аутентифицированную матрицу ограничений в пакет матриц — поставляемый с релизом набор, дайджесты которого закреплены в проверяющей схеме, — а также правило выбора и отдельную ветвь проверки. Промежуточный класс полезен только тогда, когда покрывает рабочий диапазон, недоступный существующим классам.
B64 и B255 проверялись штатным сборщиком, доказывающей и проверяющей сторонами, кодеком терминала, зафиксированным пакетом матриц и полным локальным путём кошелька. Подготовка HistoryStep измерялась относительно эталонной границы в пятнадцать секунд, а не выводилась из числа строк. Это детерминированный бюджет построения доказательства, а не утверждение о том, что один майнер обязан найти proof of work за пятнадцать секунд.
Измеренный эталонный хост
В таблице ниже m — двоичный логарифм размера дополненной области свидетеля и ограничений: m23 содержит 2^23 позиций поля, m24 — 2^24. Значение p50 — медиана двадцати сохранённых запусков, p95 — их 95-й процентиль по методу ближайшего ранга.
Серия измерений выполнялась на Intel Core i7-1365U: 10 ядер, 12 потоков, AVX2 с VPCLMULQDQ, без AVX-512, тонкая межмодульная оптимизация при компоновке (Thin LTO), одна единица кодогенерации и target-cpu=native. Рабочий стол оставался активным, система была предварительно прогрета. Построение родительского доказательства, авторизация кошелька, поиск proof of work и надёжная фиксация блока не входили в измеряемый интервал.
| Класс | Полезные строки | Подготовка p50 / p95 | Проверка p50 / p95 | Терминал |
|---|---|---|---|---|
| B64 / m23 | 5 705 307 | 11,472 / 14,387 с | 0,666 / 0,720 с | 766 549 Б |
| B255 / m24 | 15 368 233 | 24,189 / 29,755 с | 0,770 / 1,012 с | 807 189 Б |
B64 уложился в ближайшую границу p95 с запасом 613 мс. Один из двадцати сохранённых результатов достиг 15,333 секунды. B255 на той же машине остался за границей: чтобы уложиться в пятнадцать секунд, требовалось увеличить пропускную способность подготовки p95 в 1,984 раза.
Пятнадцатисекундная цель блока в сети — ожидаемый интервал proof of work. Поиск nonce вероятностен и зависит от сложности и доли майнера в сетевом хешрейте; поэтому он намеренно исключён из измерения класса доказательства. Результат относится к одному ноутбуку и одному профилю релизной сборки: эта машина проходит границу подготовки B64, но не B255.
Что покрывают два класса
| Класс | Область вычисления | Физические пользовательские страницы | Наблюдаемая роль |
|---|---|---|---|
| B64 | m = 23 | 0–64 | Класс подготовки на эталонном ноутбуке |
| B255 | m = 24 | 65–255 | Класс максимального числа страниц блока |
Логический PagedSpend может содержать 128 страниц, 1 020 входов и 256 выходов. Блок — 255 физических пользовательских страниц, 1 020 входов и 510 выходов. Фиксированное родительское представление покрывает m23 и m24; эти пределы транзакций не требуют третьей рекурсивной геометрии.
Одна капсула авторизации для 1 020 входов
Измерение кошелька охватывало построение страниц, логическое хеширование, одну рандомизированную капсулу авторизации — объект доказательства того, что один секрет владельца управляет всеми выбранными входами, — кодирование и декодирование атомарного объекта транзакции (intent) — единой логической транзакции, общей для всех её физических страниц, — и локальный допуск. Сетевая задержка и построение HistoryStep были исключены.
| Случай | Страницы | Итого p50 | Итого p95 | Доказательство / объект транзакции |
|---|---|---|---|---|
| 1 вход | 1 | 228,30 мс | 352,47 мс | 56,49 / 56,81 КиБ |
| 100 входов | 13 | 217,32 мс | 255,46 мс | 56,58 / 60,69 КиБ |
| 1 020 входов | 128 | 233,06 мс | 285,81 мс | 56,11 / 96,50 КиБ |
Размер объекта транзакции растёт вместе с числом входов. Размер капсулы и время построения доказательства остаются почти неизменными, поскольку авторизация группируется по владельцу, а не по физической странице.
Сравнение профилей релиза
Исходная серия из двадцати измерений использовала стандартный профиль кодогенерации релизной сборки с теми же отношением, свидетелем, пакетом матриц и методикой измерения. Thin LTO и одна единица кодогенерации изменили только машинный код:
| Класс | Стандартная подготовка p50 / p95 | Thin-LTO p50 / p95 |
|---|---|---|
| B64 | 12,174 / 15,182 с | 11,472 / 14,387 с |
| B255 | 26,203 / 32,009 с | 24,189 / 29,755 с |
Профилирование показало, что почти всё время построения доказательства уходит на схему полиномиальных обязательств (PCS) и рекурсивную фазу после фиксации столбцов. Изменение профиля ускорило эти межкрейтовые пути, не затронув данные консенсуса или геометрию матрицы.
Воспроизведение аутентифицированного пакета
Полный пакет из двух листов был заново создан из пустого выходного корня и побайтно сопоставлен с дайджестами, закреплёнными для релиза:
- время генерации: 5 596,2 секунды;
- сжатый лист B64: 4 584 391 байт;
- сжатый лист B255: 11 912 603 байта;
- метаданные времени выполнения: 1 732 922 байта;
- полный закреплённый пакет: 18 229 916 байт.
Восстановленные метаданные и оба листа совпали с записанными дайджестами.
Зафиксированное решение
B64 и B255 покрыли два подтверждённых измерениями рабочих диапазона. В ходе исследования также были реализованы промежуточный класс на 128 страниц, альтернативная компоновка капсулы авторизации и вариант, распределявший аутентификацию между несколькими деревьями Merkle. Измерения не выявили нагрузки, которой требовалась бы какая-либо из этих дополнительных геометрий, поэтому варианты были удалены до фиксации набора классов.