Repolode
starkware-libs

starkware-libs/stwo

Implementação em Rust de prova e verificação de Circle STARK sobre o campo M31, com um verificador no_std e backend de prova com SIMD.

Estrelas
507
Forks
183
Issues abertas
48
Último commit
anteontem

O que é?

Stwo é um prover e verificador de Circle STARK escrito em Rust. O sistema de prova opera sobre o campo primo de Mersenne M31 (2^31 − 1), permitindo aritmética modular de 32 bits que se mapeia para lanes SIMD, como AVX2, AVX-512, NEON e WebAssembly SIMD. A biblioteca inclui a torre de campos M31, CM31 e QM31, FFT de círculo, uma variante de FRI para o domínio circular, compromissos de Merkle elevados e vários canais Fiat-Shamir, incluindo Blake2s, Blake3, Poseidon252 e Keccak256.

O repositório é dividido em crates. A crate principal separa um verificador no_std do prover, habilitado pelo recurso `prover`. Junto dela estão o framework de restrições, air-utils e exemplos de referência (Fibonacci, Poseidon2, Blake, no estilo PLONK e uma máquina de estados). Também estão incluídos argumentos de busca GKR e LogUp para verificações de memória e tabelas.

Stwo é a base do prover SHARP da StarkWare e do prover stwo-cairo para a VM Cairo. Provers específicos de aplicações são desenvolvidos em repositórios separados. O desenvolvimento será transferido para starkware-libs/proving a partir do fim de julho de 2026.

Recursos principais

  • 01Prover e verificador de Circle STARK sobre o campo M31.
  • 02Verificador no_std que pode ser compilado sem o código do prover.
  • 03Backend SIMD para AVX2, AVX-512, NEON e WebAssembly, além de um backend de referência para CPU.
  • 04Vários canais Fiat-Shamir: Blake2s, Blake3, Poseidon252 e Keccak256.
  • 05Argumentos de busca GKR e LogUp para verificações de memória e tabelas.
  • 06Prova paralela opcional baseada em Rayon, habilitada pelo recurso `parallel`.

Casos de uso

  • Criar uma zkVM ou um sistema de computação verificável com um backend STARK.
  • Integrar um verificador STARK compacto a ambientes on-chain, como contratos Solidity ou Cairo.
  • Experimentar construções de Circle STARK e FRI sobre domínios circulares.
  • Estudar circuitos de referência, como Poseidon2 e Blake, para provas baseadas em STARK.

Início rápido

  1. 1

    Adicione stwo como dependência do Rust (somente verifier ou com a feature prover)

  2. 2

    Compile o prover completo em modo release

    cargo build --release --features prover
  3. 3

    Execute a suíte de testes padrão

    cargo test --features prover

Antes de usar

  • Requer Rust nightly, definido no rust-toolchain.toml.
  • O desempenho do prover completo requer uma CPU compatível com AVX2, AVX-512 ou NEON.
  • O desenvolvimento será transferido para um novo repositório a partir de julho de 2026.

Tópicos

Perguntas frequentes

O que é stwo?
Implementação em Rust de prova e verificação de Circle STARK sobre o campo M31, com um verificador no_std e backend de prova com SIMD. Stwo é um prover e verificador de Circle STARK escrito em Rust. O sistema de prova opera sobre o campo primo de Mersenne M31 (2^31 − 1), permitindo aritmética modular de 32 bits que se mapeia para lanes SIMD, como AVX2, AVX-512, NEON e WebAssembly SIMD. A biblioteca inclui a torre de campos M31, CM31 e QM31, FFT de círculo, uma variante de FRI para o domínio circular, compromissos de Merkle elevados e vários canais Fiat-Shamir, incluindo Blake2s, Blake3, Poseidon252 e Keccak256.
stwo é gratuito? Qual é a licença?
stwo é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
stwo ainda é mantido?
Manutenção ativa. O último commit de stwo foi em 5 de nov. de 2026.
Para que posso usar stwo?
Criar uma zkVM ou um sistema de computação verificável com um backend STARK. Integrar um verificador STARK compacto a ambientes on-chain, como contratos Solidity ou Cairo. Experimentar construções de Circle STARK e FRI sobre domínios circulares. Estudar circuitos de referência, como Poseidon2 e Blake, para provas baseadas em STARK.
Como instalar stwo?
Adicione stwo como dependência do Rust (somente verifier ou com a feature prover) Compile o prover completo em modo release: cargo build --release --features prover Execute a suíte de testes padrão: cargo test --features prover
Onde consigo stwo?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/starkware-libs/stwo

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados