Аннотация

В исследовании проверяется, нужна ли рекурсивному доказательству блока промежуточная геометрия между двумя рабочими классами. 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 / m235 705 30711,472 / 14,387 с0,666 / 0,720 с766 549 Б
B255 / m2415 368 23324,189 / 29,755 с0,770 / 1,012 с807 189 Б

B64 уложился в ближайшую границу p95 с запасом 613 мс. Один из двадцати сохранённых результатов достиг 15,333 секунды. B255 на той же машине остался за границей: чтобы уложиться в пятнадцать секунд, требовалось увеличить пропускную способность подготовки p95 в 1,984 раза.

Пятнадцатисекундная цель блока в сети — ожидаемый интервал proof of work. Поиск nonce вероятностен и зависит от сложности и доли майнера в сетевом хешрейте; поэтому он намеренно исключён из измерения класса доказательства. Результат относится к одному ноутбуку и одному профилю релизной сборки: эта машина проходит границу подготовки B64, но не B255.

Что покрывают два класса

КлассОбласть вычисленияФизические пользовательские страницыНаблюдаемая роль
B64m = 230–64Класс подготовки на эталонном ноутбуке
B255m = 2465–255Класс максимального числа страниц блока

Логический PagedSpend может содержать 128 страниц, 1 020 входов и 256 выходов. Блок — 255 физических пользовательских страниц, 1 020 входов и 510 выходов. Фиксированное родительское представление покрывает m23 и m24; эти пределы транзакций не требуют третьей рекурсивной геометрии.

Одна капсула авторизации для 1 020 входов

Измерение кошелька охватывало построение страниц, логическое хеширование, одну рандомизированную капсулу авторизации — объект доказательства того, что один секрет владельца управляет всеми выбранными входами, — кодирование и декодирование атомарного объекта транзакции (intent) — единой логической транзакции, общей для всех её физических страниц, — и локальный допуск. Сетевая задержка и построение HistoryStep были исключены.

СлучайСтраницыИтого p50Итого p95Доказательство / объект транзакции
1 вход1228,30 мс352,47 мс56,49 / 56,81 КиБ
100 входов13217,32 мс255,46 мс56,58 / 60,69 КиБ
1 020 входов128233,06 мс285,81 мс56,11 / 96,50 КиБ

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

Сравнение профилей релиза

Исходная серия из двадцати измерений использовала стандартный профиль кодогенерации релизной сборки с теми же отношением, свидетелем, пакетом матриц и методикой измерения. Thin LTO и одна единица кодогенерации изменили только машинный код:

КлассСтандартная подготовка p50 / p95Thin-LTO p50 / p95
B6412,174 / 15,182 с11,472 / 14,387 с
B25526,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. Измерения не выявили нагрузки, которой требовалась бы какая-либо из этих дополнительных геометрий, поэтому варианты были удалены до фиксации набора классов.