Repolode
starkware-libs

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. 1

    Добавьте stwo как зависимость Rust (только verifier или вместе с feature prover)

  2. 2

    Соберите полный prover в режиме release

    cargo build --release --features prover
  3. 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 обновляется ежедневно.

Похожие проекты

Виртуальная машина с нулевым разглашением, которая генерирует доказательства корректного выполнения программ на Rust и других языках, компилируемых через LLVM.

1,8 тыс.+6 за неделю722RustApache-2.0Активно поддерживаетсяОбновлён позавчера

Децентрализованная операционная система и ПО узлов, обеспечивающие работу сети Aleo для приложений с доказательствами с нулевым разглашением.

4,5 тыс.+2 за неделю2,7 тыс.RustApache-2.0Активно поддерживаетсяОбновлён 15 часов назад

Библиотека на JavaScript и WebAssembly для создания и проверки zkSNARK-доказательств с Groth16, PLONK и FFLONK, работающая с циркуитами circom.

2 тыс.+2 за неделю489JavaScriptGPL-3.0Обновлён в прошлом месяце