FALCON-512 — решётчатая схема цифровой подписи, выбранная NIST для пост-квантовой стандартизации как FN-DSA (Draft FIPS 206). Tidecoin использует FALCON-512 как единственную схему подписи с генезис-блока (27 декабря 2020 года), что, насколько нам известно, делает его одним из самых ранних производственных развёртываний выбранного NIST алгоритма. Каждая транзакция в блокчейне Tidecoin с генезиса использует FALCON-512.
FALCON объединяет две конструкции: NTRU-решётки и фреймворк GPV hash-then-sign [Gentry, Peikert, Vaikuntanathan, STOC 2008].
R_q = Z_q[x]/(x^512 + 1), где q = 12 289h = g * f^(-1) mod qB = [[g, -f], [G, -F]]s1 = c - s2 * h mod q (одно умножение полиномов)||(s1, s2)||^2 <= bound (проверка нормы)Верификация использует только целочисленную арифметику — без плавающей точки, без гауссовой выборки, без секретного ключа. ~28 000 верификаций в секунду.
| Параметр | FALCON-512 | ML-DSA-44 |
|---|---|---|
| Размер подписи | 666 B | 2,420 B |
| Размер публичного ключа | 897 B | 1,312 B |
| Публичный ключ и подпись вместе | 1,563 B | 3,732 B |
| Без состояния | Да | Да |
| Стандарт NIST | Draft FIPS 206 | FIPS 204 |
| Скорость верификации | ~28,000/s | Быстрая |
Листайте, чтобы сравнить все столбцы
У FALCON-512 наименьший суммарный размер публичного ключа и подписи среди рассмотренных в whitepaper решётчатых вариантов подписей из трека NIST — это критично для блокчейна, где каждый байт хранится вечно и реплицируется всеми узлами.
Подписание FALCON требует высокоточной арифметики с плавающей точкой для дискретной гауссовой выборки. Нативные аппаратные операции FPU уязвимы к электромагнитному излучению, анализу энергопотребления и атакам по временному каналу — это подтверждают:
Полное восстановление ключа через электромагнитные измерения.
100% восстановление ключа по одной трассе энергопотребления на ARM Cortex-M4
Tidecoin использует реализацию PQClean "clean" с постоянным временем работы от Томаса Порнина с целочисленной эмуляцией (FALCON_FPEMU):
эмулируется с помощью целочисленных операций uint64_t — тип C double никогда не используется
для сдвигов с постоянным временем работы при секретных величинах сдвига
табличные обращения читают все элементы
на 32-битных, 64-битных, little-endian и big-endian платформах
Формальная корректность эмулированной арифметики FALCON с плавающей точкой была подтверждена [Becker & Howe, ePrint 2024/321].
Нет. В августе 2019 года Маркку-Юхани О. Сааринен обнаружил две серьёзные ошибки в гауссовом семплере Falcon (некорректные значения таблицы поиска и неверная вероятность выборки с отбраковкой). Ретроспектива 2025 года [ACM CCS 2025] показала, что ~50 миллионов ошибочных подписей могли бы позволить полностью восстановить ключ.
Томас Порнин опубликовал исправление 18 сентября 2019 года. Генезис-блок Tidecoin был добыт 27 декабря 2020 года — более чем через 15 месяцев после исправления. Tidecoin всегда использовал реализацию PQClean после исправления. Ни одна подпись Tidecoin не была создана уязвимым кодом.
| Параметр | Legacy | Strict |
|---|---|---|
| Когда | До AuxPoW (текущий mainnet) | После AuxPoW (предстоящая активация) |
| Верхняя граница нормы | Ослабленная: 43 533 782 | Стандарт PQClean: 34 034 726 |
| Макс. размер подписи | 690 байт | 752 байта (с дополнением до 666) |
| Верификация | Обратная совместимость с ранними подписями | Более жёсткие границы безопасности |
Листайте, чтобы сравнить все столбцы
Ослабленная граница нормы в режиме Legacy — порог, принятый для обратной совместимости в начале работы Tidecoin. Это не значение до исправления 2019 года: ошибка семплера 2019 года была принципиально иной проблемой, затрагивавшей таблицу поиска и формулу выборки с отбраковкой, а не границу нормы. Строгая граница соответствует стандартной эталонной реализации PQClean.
Ключи идентичны в обоих режимах. Отличаются только границы создания и верификации подписей. Существующие кошельки не требуют миграции ключей — те же ключи после активации AuxPoW создают более строгие подписи.
FIPS 206 стандартизирует FALCON как FN-DSA (FFT over NTRU-Lattice-Based Digital Signature Algorithm). Основные изменения:
Безопасность BUFF за счёт хеширования публичного ключа — без увеличения размера, с более сильной защитой от подделки [ePrint 2024/710]
Поддержка строки контекста — разделение доменов между приложениями
Повторная генерация nonce при перезапуске — устраняет тонкую утечку информации от повторного использования nonce
NTRUSolve с фиксированной точкой — устраняет плавающую точку из генерации ключей (подписание по-прежнему использует эмулированную арифметику с плавающей точкой)
Кодирование публичного ключа остаётся неизменным между FALCON и FN-DSA. План перехода Tidecoin: существующие ключи работают в обоих режимах; подписи после активации согласуются с направлением FN-DSA.