Uma máquina virtual de conhecimento zero que gera provas de execução correta para programas escritos em Rust ou em outras linguagens compiladas com LLVM.
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
Adicione stwo como dependência do Rust (somente verifier ou com a feature prover)
- 2
Compile o prover completo em modo release
cargo build --release --features prover - 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
Sistema operacional descentralizado e software de nós que executam a rede Aleo para aplicações de conhecimento zero.
Biblioteca JavaScript e WebAssembly para gerar e verificar provas zkSNARK com Groth16, PLONK e FFLONK, usada com circuitos circom.
Primitivos do Ethereum verificados formalmente em Lean, criados como uma biblioteca compartilhada de especificações e provas para projetos em Lean.
Framework TypeScript para criar circuitos de conhecimento zero e zkApps, com geração e verificação de provas no navegador, no Node ou para o Mina Protocol.
Aplicação web autohospedada para compartilhar senhas e segredos criptografados, com link de uso único e sem precisar configurar um banco de dados.