Специалисты Facebook выпустили новую библиотеку Winterfell. Проект с открытым исходным кодом может генерировать доказательство вычислительной целостности STARK – близость аббревиатуры к фамилии персонажей «Песни льда и пламени» Джорджа Мартина и дала название разработке: Винтерфелл – родовой замок Старков.
Что такое доказательство STARK
Описывая технологию, разработчики начали с третьего закона Кларка: «Любая достаточно развитая технология неотличима от магии». Этот закон сформулировал известный писатель-фантаст и футуролог Артур Кларк.
STARK (Scalable Transparent Arguments of Knowledge) – техника «масштабируемых прозрачных аргументов знания», которую используют для проверки вычислительной целостности (CI – computational integrity) значений. Реализовать её можно разными способами, и в библиотеке Winterfell представлен один из вариантов.
Доказательства вычислительной ценности нужны, чтобы человек мог убедиться в правильности расчетов, не запуская вычисления повторно. Например, убедиться, что в блокчейн добавили правильный блок с кратчайшим хешем, наследующий хеши предыдущих блоков. CI-доказательства позволяют проверить правильность ответа за несколько миллисекунд, даже если на расчёты ушли минуты или часы.
Также CI-доказательства позволяют скрыть входные данные, которые использовали для выполнения вычислений. Такие варианты CI-доказательств называют ZKP (zero-knowledge proof) – доказательствами с нулевым разглашением. Их широко применяют в криптографии и в блокчейнах. Например, можно доказать, что число находится в заданном диапазоне, не раскрывая его точного значения. Или сравнить две числовые последовательности – общедоступную и секретную, известную только вам, – и доказать, что они совпадают или не совпадают (это полезно при проверке соответствия открытого и закрытого ключей в криптографических системах).
Зачем это нужно
Чтобы написать «с нуля» программу, в которой используется доказательство вычислительной целостности, нужны глубокие познания в криптографии. Кроме того, создание CI-доказательств требует больших вычислительных ресурсов.
Winterfell должен решить обе проблемы. Готовый код из библиотеки делает CI-доказательства доступными для начинающих разработчиков, а свежие криптографические технологии снижают вычислительную сложность решений.
Первая версия открытой библиотеки – Winterfell v0.1 доступна на crates.io. В Winterfell используется схема STARK, предложенная Эли Бен-Сассоном, Майклом Рябзевым и другими аналитиками. Решение написали на языке Rust специалисты стартапа Novi Research. Оно может генерировать CI-доказательство для любой программы, которая описана на полном по Тьюрингу языке.
Преимущества решения
Техника STARK полагается на минимальное количество криптографических предположений. Фактически, единственный криптографический примитив, который необходим для работы схемы – хеш-функция, устойчивая к коллизиям (например, SHA256). Таким образом, STARK устойчива к потенциальным атакам с помощью квантовых компьютеров.
Если вы работаете с единообразными или хорошо структурированными вычислениями, то генерировать доказательства со STARK достаточно быстро. Большинство современных программ, написанных людьми, подходят под эти определения. А значит, если распределить вычисления по разным процессорным ядрам, можно ускорить создание доказательств.
Плюсы самой библиотеки Winterfell:
- простой интерфейс для описания вычислений;
- генерация многопоточной проверки с возможностью параллельного запуска процесса проверки в нескольких потоках;
- настраиваемые поля – можно использовать базовую и расширенную версии проверки;
- возможность выбора хеш-функции: сейчас поддерживаются BLAKE3 и SHA3, в будущем их станет больше;
- поддержка WebAssembly: так как библиотека написана на Rust, она может быть скомпилирована в такой формат. Стандартная библиотека включена в решение в виде функции для доказательств и верификации.