Repolode
starkware-libs

starkware-libs/stwo

Una implementación en Rust de pruebas y verificación Circle STARK sobre el cuerpo M31, con un verificador no_std y un backend de prover con SIMD.

Estrellas
507
Forks
183
Issues abiertos
48
Último commit
anteayer

¿Qué es?

Stwo es un prover y verificador Circle STARK escrito en Rust. Ejecuta el sistema de pruebas sobre el cuerpo del primo de Mersenne M31 (2^31 − 1), lo que permite aritmética modular de 32 bits que se mapea en carriles SIMD como AVX2, AVX-512, NEON y WebAssembly SIMD. La biblioteca incluye la torre de cuerpos M31, CM31 y QM31, FFT sobre círculos, una variante de FRI para el dominio circular, compromisos Merkle elevados (lifted) y varios canales Fiat-Shamir, entre ellos Blake2s, Blake3, Poseidon252 y Keccak256.

El repositorio está dividido en crates. El crate principal separa un verificador no_std del prover, que se activa con la feature `prover`. Junto a él se incluyen el framework de restricciones, air-utils y ejemplos de referencia (Fibonacci, Poseidon2, Blake, un estilo PLONK y una máquina de estados). Se incluyen también los argumentos de búsqueda GKR y LogUp para verificaciones de memoria y tablas.

Stwo es la base del prover SHARP de StarkWare y del prover stwo-cairo para la máquina virtual de Cairo. Los provers específicos de cada aplicación se desarrollan en repositorios separados. El desarrollo se traslada a starkware-libs/proving a partir de finales de julio de 2026.

Funciones clave

  • 01Prover y verificador Circle STARK sobre el cuerpo M31.
  • 02Un verificador no_std que se puede compilar sin el código del prover.
  • 03Backend SIMD para AVX2, AVX-512, NEON y WebAssembly, además de un backend de referencia en CPU.
  • 04Múltiples canales Fiat-Shamir: Blake2s, Blake3, Poseidon252 y Keccak256.
  • 05Argumentos de búsqueda GKR y LogUp para verificaciones de memoria y tablas.
  • 06Prueba en paralelo opcional basada en Rayon, activada con la feature `parallel`.

Casos de uso

  • Construir una zkVM o un sistema de computación verificable sobre un backend STARK.
  • Incrustar un verificador STARK pequeño en entornos on-chain, como contratos en Solidity o Cairo.
  • Experimentar con construcciones Circle STARK y FRI sobre dominios circulares.
  • Estudiar circuitos de referencia como Poseidon2 y Blake para pruebas basadas en STARK.

Inicio rápido

  1. 1

    Añade stwo como dependencia de Rust (solo verifier o con la feature prover)

  2. 2

    Compila el prover completo en modo release

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

    Ejecuta la suite de pruebas estándar

    cargo test --features prover

Antes de usarlo

  • Requiere Rust nightly, fijado en rust-toolchain.toml.
  • Para obtener el máximo rendimiento del prover completo, se necesita una CPU compatible con AVX2, AVX-512 o NEON.
  • El desarrollo se trasladará a un nuevo repositorio a partir de julio de 2026.

Temas

Preguntas frecuentes

¿Qué es stwo?
Una implementación en Rust de pruebas y verificación Circle STARK sobre el cuerpo M31, con un verificador no_std y un backend de prover con SIMD. Stwo es un prover y verificador Circle STARK escrito en Rust. Ejecuta el sistema de pruebas sobre el cuerpo del primo de Mersenne M31 (2^31 − 1), lo que permite aritmética modular de 32 bits que se mapea en carriles SIMD como AVX2, AVX-512, NEON y WebAssembly SIMD. La biblioteca incluye la torre de cuerpos M31, CM31 y QM31, FFT sobre círculos, una variante de FRI para el dominio circular, compromisos Merkle elevados (lifted) y varios canales Fiat-Shamir, entre ellos Blake2s, Blake3, Poseidon252 y Keccak256.
¿stwo es gratuito? ¿Qué licencia tiene?
stwo es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿stwo sigue mantenido?
Mantenimiento activo. El último commit de stwo fue el 5 nov 2026.
¿Para qué puedo usar stwo?
Construir una zkVM o un sistema de computación verificable sobre un backend STARK. Incrustar un verificador STARK pequeño en entornos on-chain, como contratos en Solidity o Cairo. Experimentar con construcciones Circle STARK y FRI sobre dominios circulares. Estudiar circuitos de referencia como Poseidon2 y Blake para pruebas basadas en STARK.
¿Cómo se instala stwo?
Añade stwo como dependencia de Rust (solo verifier o con la feature prover) Compila el prover completo en modo release: cargo build --release --features prover Ejecuta la suite de pruebas estándar: cargo test --features prover
¿Dónde consigo stwo?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/starkware-libs/stwo

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados