Виртуальная машина с нулевым разглашением, которая генерирует доказательства корректного выполнения программ на Rust и других языках, компилируемых через LLVM.
starkware-libs/stwo
Реализация на Rust для создания и проверки Circle STARK на поле M31: верификатор no_std и SIMD-бэкенд для прувера.
- Звёзды
- 507
- Форки
- 183
- Открытые issues
- 48
- Последний коммит
- позавчера
Что это?
Stwo — прувер и верификатор Circle STARK, написанные на Rust. Система доказательств работает над полем простого числа Мерсенна M31 (2^31 − 1), что позволяет использовать 32-битную модульную арифметику, отображаемую на SIMD-каналы, например AVX2, AVX-512, NEON и WebAssembly SIMD. Библиотека включает башню полей M31, CM31 и QM31, circle FFT, вариант FRI для круговой области, lifted-коммитменты Меркла и несколько каналов Fiat-Shamir, в том числе Blake2s, Blake3, Poseidon252 и Keccak256.
Репозиторий разделён на крейты. В основном крейте no_std-верификатор отделён от прувера, который подключается feature-флагом `prover`. Рядом расположены constraint framework, air-utils и примеры (Fibonacci, Poseidon2, Blake, в стиле PLONK и с конечным автоматом). Для проверок памяти и таблиц также доступны аргументы поиска GKR и LogUp.
Stwo служит основой прувера SHARP от StarkWare и прувера stwo-cairo для Cairo VM. Пруверы для конкретных приложений разрабатываются в отдельных репозиториях. С конца июля 2026 года разработка переносится в starkware-libs/proving.
Ключевые возможности
- 01Прувер и верификатор Circle STARK на поле M31.
- 02Верификатор no_std, который можно собрать без кода прувера.
- 03SIMD-бэкенд для AVX2, AVX-512, NEON и WebAssembly, а также эталонный CPU-бэкенд.
- 04Несколько каналов Fiat-Shamir: Blake2s, Blake3, Poseidon252 и Keccak256.
- 05Аргументы поиска GKR и LogUp для проверок памяти и таблиц.
- 06Опциональное распараллеливание создания доказательств на базе Rayon через feature-флаг `parallel`.
Сценарии использования
- Создание zkVM или системы проверяемых вычислений на базе STARK.
- Встраивание компактного STARK-верификатора в ончейн-среды, например в контракты Solidity или Cairo.
- Эксперименты с конструкциями Circle STARK и FRI на круговых областях.
- Изучение эталонных схем, таких как Poseidon2 и Blake, для создания доказательств на базе STARK.
Быстрый старт
- 1
Добавьте stwo как зависимость Rust (только verifier или вместе с feature prover)
- 2
Соберите полный prover в режиме release
cargo build --release --features prover - 3
Запустите стандартный набор тестов
cargo test --features prover
Что важно знать
- Требуется Rust nightly, версия которого зафиксирована в rust-toolchain.toml.
- Для полной производительности prover нужен процессор с поддержкой AVX2, AVX-512 или NEON.
- С июля 2026 года разработка будет вестись в новом репозитории.
Темы
Частые вопросы
- Что такое stwo?
- Реализация на Rust для создания и проверки Circle STARK на поле M31: верификатор no_std и SIMD-бэкенд для прувера. Stwo — прувер и верификатор Circle STARK, написанные на Rust. Система доказательств работает над полем простого числа Мерсенна M31 (2^31 − 1), что позволяет использовать 32-битную модульную арифметику, отображаемую на SIMD-каналы, например AVX2, AVX-512, NEON и WebAssembly SIMD. Библиотека включает башню полей M31, CM31 и QM31, circle FFT, вариант FRI для круговой области, lifted-коммитменты Меркла и несколько каналов Fiat-Shamir, в том числе Blake2s, Blake3, Poseidon252 и Keccak256.
- stwo можно использовать бесплатно? Какая у него лицензия?
- stwo распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- stwo всё ещё поддерживается?
- Активно поддерживается. Последний коммит в stwo — 5 нояб. 2026 г..
- Для чего можно использовать stwo?
- Создание zkVM или системы проверяемых вычислений на базе STARK. Встраивание компактного STARK-верификатора в ончейн-среды, например в контракты Solidity или Cairo. Эксперименты с конструкциями Circle STARK и FRI на круговых областях. Изучение эталонных схем, таких как Poseidon2 и Blake, для создания доказательств на базе STARK.
- Как установить stwo?
- Добавьте stwo как зависимость Rust (только verifier или вместе с feature prover) Соберите полный prover в режиме release: cargo build --release --features prover Запустите стандартный набор тестов: cargo test --features prover
- Где скачать stwo?
- Исходный код и инструкции по установке — на GitHub: https://github.com/starkware-libs/stwo
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Децентрализованная операционная система и ПО узлов, обеспечивающие работу сети Aleo для приложений с доказательствами с нулевым разглашением.
Библиотека на JavaScript и WebAssembly для создания и проверки zkSNARK-доказательств с Groth16, PLONK и FFLONK, работающая с циркуитами circom.
Формально верифицированные примитивы Ethereum на Lean — общая библиотека спецификаций и доказательств для проектов на Lean.
Фреймворк на TypeScript для создания zero-knowledge circuits и zkApps с генерацией и проверкой доказательств в браузере, Node.js или Mina Protocol.
Самостоятельно размещаемое веб-приложение для одноразовой отправки зашифрованных паролей и секретов без отдельной настройки базы данных.