26 KiB
Монтана: Постквантовый блокчейн, в котором редкость — это время
Алехандро Монтана github.com/efir369999/Montana
Время — это элегантные деньги.
Аннотация
Постквантовый цифровой ресурс должен переносить ценность между сторонами без опоры на классические криптографические основы, которые квантовый противник способен разрушить. Существующие сети опираются на подписи (ECDSA, EdDSA), стойкость которых рассыпается под алгоритмом Шора, и на комиссионные механизмы защиты от спама, которые при росте сети вытесняют рядового пользователя. Мы предлагаем блокчейн, безопасность которого целиком держится на постквантовых примитивах, стандартизованных Национальным институтом стандартов США в 2024 году (ML-DSA-65, ML-KEM-768), и на хешировании SHA-256, а защита от спама работает на времени, а не на деньгах. Верифицируемая функция задержки (VDF) над SHA-256 порождает глобально упорядоченную цепь окон длиной около шестидесяти секунд каждое. Каждое окно запечатывается последовательным доказательством работы, которое нельзя ни ускорить параллелизмом, ни перешагнуть. Операции внутри окна ограничены тремя независимыми мерами редкости — один шаг на личность за окно, длиной собственной цепи аккаунта и старшинством — все три выводятся из протекшего времени, не из удержанного баланса. Пока честные операторы крутят VDF, цепь продолжается, сколько бы участников ни держали монету и какие бы комиссии они готовы были заплатить.
1. Введение
Биткоин и его потомки показали, что децентрализованный денежный консенсус достижим без посредников, которым нужно доверять. Две оговорки мешают этим системам стать общим финансовым основанием в масштабе миллиарда пользователей.
Во-первых, всякая боевая криптовалюта черпает стойкость своей подписи из задачи о дискретном логарифме на эллиптической кривой. Алгоритм Шора [8], запущенный на достаточно мощном квантовом компьютере, ломает эту задачу за полиномиальное время. Национальный институт стандартов США в 2024 году утвердил постквантовые схемы подписи и обмена ключами (FIPS 203 [2], 204 [3], 205); крупные сети к ним не перешли. Переход — не смена параметра: проводной формат, вывод адреса, мульти-подпись, доказательства для лёгкого клиента — всё стоит на конкретном примитиве.
Во-вторых, защита от спама в комиссионных сетях плохо масштабируется. Когда место в блоке становится редким, мелкие операции вытесняются ценой; первоначальная задача — лёгкие онлайн-платежи — теряется. Системы второго слоя (каналы состояний, рулоны) переносят эту экономику, но не убирают саму редкость, которая её порождает.
Мы предлагаем Монтану — цепь, безопасность которой держится только на постквантовых примитивах, а защита от спама работает на времени, а не на деньгах. Цепь продвигается верифицируемой функцией задержки над SHA-256, рождая глобально упорядоченные окна длиной около шестидесяти секунд каждое. Операции внутри окна ограничены тремя независимыми редкостями — окнами на личность, длиной собственной цепи аккаунта, старшинством — выведенными из протекшего времени.
2. Время как редкий ресурс
В комиссионной сети редким ресурсом является место в блоке; доступ распределяется готовностью платить. Спам сдерживается ценой включения. Из этого следуют два провала. При перегрузке обычный пользователь вытеснен ценой. При свободе спамер возвращается по предельной стоимости. Механизм не сходится к точке покоя — он колеблется вместе со спросом.
Мы заменяем редкость места редкостью времени. Верифицируемая функция задержки (VDF) [5,6,7] над SHA-256 принуждает к последовательному вычислению, которое не распараллелить: D итераций SHA-256 должны быть выполнены подряд, где D откалибровано так, чтобы расчёт занимал около шестидесяти секунд на обычном процессоре класса x86_64. Выход одного окна становится входом следующего. Полная длина цепи — это мера протекшего настенного времени с момента Генезиса, восстановимая всяким, кто умеет проверить выход VDF.
Время равно доступно всем участникам. Противник, у которого ресурсов в сто раз больше, чем у честного оператора, не получает в сто раз больше времени. Он может крутить больше параллельных цепей, но каждая идёт по тому же настенному ходу. Множественные подложные личности не дают больше времени на личность — только больше личностей, и каждая подчинена тому же ограничению «один шаг за окно».
Время как редкость не требует ценового канала, биржи, оракула цен. Его стоимость зафиксирована протоколом: одно окно равно одному окну, какой бы ни была курсовая цена монеты.
3. ВремяЦепь
Пусть T_r — выход VDF на окне r. ВремяЦепь продвигается так:
T_r = SHA-256^D (T_{r-1})
где T_0 — семя Генезиса, а D — счёт итераций на одно окно. Начальное D равно 325 000 000 и пересчитывается каждые 20 160 окон (около четырнадцати дней) по формуле, привязанной к медианному наблюдаемому настенному времени окна по честным операторам. Пересчёт каноничен: всякий честный оператор получает то же новое D из открытых входов.
Верифицируемость VDF позволяет любому узлу подтвердить T_r из T_{r-1} тем же числом итераций. Никакой доверенной установки нет; выход — открытая функция входа и параметра.
Новый оператор, входящий в сеть, обязан произвести цепь-кандидат VDF длиной не меньше 20 160 окон (около десяти часов настенного времени на обычном процессоре). Это и есть защита протокола от множественных личностей: породить N подложных личностей значит породить N таких цепей, каждая отнимающая то же время. Срезать угол негде.
4. Постквантовые примитивы
Подписи производятся и проверяются схемой ML-DSA-65 — модуль-решёточной подписью FIPS 204. Обмен ключами, где он применяется (рукопожатие операторов, шифрование прикладной нагрузки), идёт через ML-KEM-768 — модуль-решёточную схему FIPS 203. Обе входят в постквантовую стандартизацию NIST. Размеры: открытый ключ ML-DSA-65 — 1952 байта, секретный — 4032, подпись — 3309; открытый ключ ML-KEM-768 — 1184 байта, шифротекст — 1088, общий секрет — 32.
Хеширование — SHA-256 (FIPS 180-4 [4]). Алгоритм Гровера [9] снижает действенную стойкость SHA-256 к нахождению прообраза с 256 до 128 бит в квантовой модели; этого достаточно.
Деривация ключей из 24-словной мнемоники: PBKDF2-HMAC-SHA-256 с iter=2^20 даёт мастер-семя, далее HKDF-SHA-256 разводит его на ключи назначения (подпись аккаунта, подпись узла, шифрование прикладной нагрузки). Список слов — 256 русскоязычных слов, отобранных по различимости при наборе, на слух и при переписывании. Сам протокол к алфавиту безразличен; список — выбор внедрения и может быть заменён любым набором из 256 слов с тем же запасом энтропии (8 бит на слово).
5. Операции и Таблица Аккаунтов
Состояние — единая Таблица Аккаунтов, отображающая идентификатор аккаунта в запись:
AccountRecord {
account_id 32 байта (SHA-256 от открытого ключа аккаунта)
public_key 1952 байта (ML-DSA-65)
balance 16 байт (u128, в нɈ; 1 Ɉ = 10^9 нɈ)
account_chain_length 8 байт (u64, число цементированных операций аккаунта)
last_active_window 8 байт (u64, индекс последнего активного окна)
is_node_operator 1 байт (флаг «оператор узла»)
...
}
Операции переводят состояние через apply_proposal(state, proposal) → state'. Перевод детерминирован, побайтно воспроизводим любым узлом из той же пары (state, proposal). Класс операций замкнут: Перевод, ОткрытьАккаунт, СменитьКлюч, РегистрацияУзла, Якорь, ТоргиЗаНикнейм, АктивацияПереводом, ЗакрытьАккаунт. У каждой операции — фиксированная каноническая кодировка, фиксированное правило проверки, фиксированная функция применения.
Сохраняются инварианты сохранения значения на каждой операции: сумма приращений баланса по всем затронутым записям равна приращению эмиссии плюс приращению сжигания. Никакая операция не порождает и не уничтожает ценность втихую.
6. Лотерея
Оператор, замкнувший VDF на окне r, выбирается детерминированной лотереей из множества зарегистрированных операторов. Каждый оператор шлёт VdfReveal с выходом VDF и подписью; победителем становится:
победитель = argmin_оператор билет(оператор, r)
где
билет(оператор, r) = SHA-256(оператор.node_id || cemented_bundle_aggregate(r-2) || r)
Слагаемое cemented_bundle_aggregate(r-2) — сетевой источник непредсказуемости лотереи: оно собирает подписи честных операторов из окна r-2, которые противнику не предсказать заранее, не имея их секретных ключей. Это закрывает класс атак, в которых противник с аппаратным преимуществом предвычисляет будущие окна и подбирает выгодные ему поля.
7. Стимул
Победитель окна r получает 13 базовых единиц Ɉ (13 × 10^9 нɈ), зачисляемых на аккаунт оператора. Комиссий нет. Второго слоя инфляции нет. Премайна, продажи до запуска, доли учредителей нет. Полная эмиссия на окне r — ровно 13 × r единиц, замкнутая функция от номера окна.
Удержание накопленной ценности отдельно не вознаграждается. Протокол не платит за хранение монеты. Единственный путь награды — крутить VDF на окне и выиграть лотерею этого окна.
Для оператора ожидаемый доход за единицу времени зависит от доли цементированных VdfReveal, которые он внёс по окнам. При N операторах с равной вычислительной мощностью, честно крутящих VDF, ожидаемая награда оператора за окно — 13/N Ɉ. При неравной мощности доля пропорциональна числу действительных VdfReveal, поданных вовремя.
8. Защита от спама без комиссий
Защита от спама — композиция трёх временны́х механизмов:
Темп на личность. Операции класса A (Перевод, ТоргиЗаНикнейм и пр.) ограничены одной на аккаунт за окно τ_1 = 1 окно. Противник с N подложными личностями выполняет не более N операций за окно, но у каждой подложной личности своя стоимость создания (см. ниже). Темп равномерен по личностям; «быстрых полос» нет.
Порог по длине цепи. Привилегированные операции (например, РегистрацияУзла, ТоргиЗаНикнейм) требуют, чтобы account_chain_length оператора превышал порог k. Аккаунт обязан быть активным не менее k окон, прежде чем выпустит такую операцию. Порог не покупается — только зарабатывается протекшей активностью.
Старшинство. Вес в лотерее операторов растёт с account_chain_length до точки насыщения. Новые операторы имеют меньший вес; вес копится участием по окнам. Это гасит «налёт толпой», когда множество противоборствующих операторов регистрируются разом.
Эти механизмы вместе закрывают отказ в обслуживании без денежных барьеров. В протоколе нет поля «комиссия» ни в одной операции.
9. Жизненный цикл состояния и очистка
У всякой постоянной записи в консенсус-состоянии — либо барьер по стоимости, либо граница жизненного цикла, либо жёсткая квота. Создание аккаунта требует от создателя подать открывающую операцию, чьё правило проверки включает условие на длину цепи. Аккаунты с балансом ниже MIN_ACCOUNT_BALANCE = 1 нɈ, у которых last_active_window отстоит от текущего более чем на 8 × 20 160 окон, очищаются процедурой apply_candidate_expiry на ближайшей границе эпохи.
Очистка не опциональна; она часть канонического перехода состояния. Два честных узла, идущих по протоколу, очищают одинаково. Размер Таблицы Аккаунтов сверху ограничен:
|AccountTable(W)| ≤ темп_создания × окно_удержания
Эта оценка независима от накопленного настенного времени, что гарантирует: долгоживущие цепи не порождают неограниченное состояние.
10. Приватность
По умолчанию протокол открывает балансы, переводы, графы аккаунтов и личности операторов. Прикладная приватность достигается объектами Якорь: аккаунт фиксирует на цепи 32-байтовый хеш, а само содержимое (зашифрованное под ключ владельца) хранится вне цепи самим владельцем или делегированным узлом. Якорь не даёт протоколу видимости содержимого.
Приватность — выбор пользователя, а не свойство, навязанное протоколом. Массовая слежка через приватность-по-протоколу вне области; избирательная приватность через шифрование пользователем — внутри. Эта граница согласует протокол с регуляторными рамками (FATF, MiCA), которые отвергают протокольные миксеры приватности, но принимают шифрование пользователем содержимого вне цепи.
11. Сеть и синхронизация
Проводной формат и механизм синхронизации описаны в mt-net и mt-net-transport эталонной реализации. Операторы находят соседей, обмениваются VdfReveal и BundledConfirmation, реплицируют цементированную цепь через libp2p поверх TCP+TLS.
Новый узел синхронизируется так: получает голову текущей ВремяЦепи у любого честного соседа, локально проверяет цепь VDF и реплицирует снимок Таблицы Аккаунтов, корнем привязанный к текущему обязательству Меркла. Синхронизация — только верификация; никакого доверия к источнику кроме TLS-соединения не требуется.
12. Расчёты
Рассмотрим противостояние честного оператора и противника за победу в окне. Вероятность, что противник выиграет данное окно, пропорциональна его доле от полной вычислительной мощности VDF. При доле противника p и честной доле 1 − p вероятность выигрыша противником k окон подряд — p^k, убывает геометрически.
Чтобы лотерея сместилась в пользу противника, ему нужно владеть более чем половиной всей зарегистрированной операторской мощности. Поскольку настенный VDF на оператора постоянен (распараллеливать нельзя), множение подложных личностей не увеличивает полной мощности — лишь дробит ту же мощность по большему числу личностей. Доля противника ограничена числом физических машин, которыми он распоряжается, не капиталом.
В этом и состоит аргумент безопасности: денежный капитал не покупает время. Экономика операторов сводится к экономике аппарата, в которой штучный товар (одно окно VDF) единообразно расценен в джоулях.
P(противник выигрывает k окон подряд) = p^k
При p = 0.3 и k = 10 имеем P = 5.9 × 10^-6 — сравнимо с вероятностью переписать цепь Биткоина после 10 подтверждений при той же доле противника.
13. Заключение
Мы предложили блокчейн, безопасность которого держится на постквантовых криптографических примитивах, а защита от спама работает на времени, а не на комиссиях. Конструкция не требует доверенной установки, не требует ценового канала и не накладывает денежного барьера на участие. Механизм рассчитан на масштаб в один миллиард активных аккаунтов как на исходный архитектурный ориентир.
Эталонная реализация на Rust доступна по указанной ссылке под мягкими лицензиями (Apache-2.0 / MIT). Дальнейшая работа — интеграция сетевого слоя в бинарь узла (M6 для развёртывания нескольких узлов), быстрая синхронизация по снимкам (M7) и расширение conformance-набора на вторые независимые реализации (M9).
Литература
[1] S. Nakamoto, «Bitcoin: A Peer-to-Peer Electronic Cash System», 2008.
[2] National Institute of Standards and Technology, «Module-Lattice-Based Key Encapsulation Mechanism Standard», FIPS 203, 2024.
[3] National Institute of Standards and Technology, «Module-Lattice-Based Digital Signature Standard», FIPS 204, 2024.
[4] National Institute of Standards and Technology, «Secure Hash Standard (SHS)», FIPS 180-4, 2015.
[5] D. Boneh, J. Bonneau, B. Bünz, B. Fisch, «Verifiable Delay Functions», CRYPTO 2018.
[6] K. Pietrzak, «Simple Verifiable Delay Functions», ITCS 2019.
[7] B. Wesolowski, «Efficient verifiable delay functions», EUROCRYPT 2019.
[8] P. W. Shor, «Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer», SIAM Journal on Computing, 1997.
[9] L. K. Grover, «A fast quantum mechanical algorithm for database search», STOC 1996.
Алехандро Монтана