Refactoring and enhancements for SNARK-friendly STM

Abierto
#3,066 6 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@leepl37 ya está trabajando en esto.

Desde el 10/3/2026.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
32/100
Tipo de issue
Refactorización
Claridad
Necesita aclaración
Estado de actividad
Tranquilo
Stack tecnológico
rust

Línea de trabajo

Comienza con mithril-stm/src/protocol/participant/signer.rs en las líneas referenciadas relacionadas con el manejo de RNG y, después, revisa la estructura de la biblioteca STM y sus pruebas de compatibilidad entre CPU y circuit. El issue abarca varias iteraciones, incluidos refactorings de las entradas de registro, el manejo de errores, las opciones de claves de verificación y firmas, y el cálculo del objetivo de la lottery; se considera completado cuando los elementos seleccionados de la checklist están implementados y cubiertos por las pruebas relevantes.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

cryptography :closed_lock_with_key: refactoring :hammer_and_wrench: stale :calendar: to-groom :thinking:

Why

The STM library has accumulated structural debt as SNARK support was introduced alongside the existing concatenation proof system.

What

Perform targeted refactorings and enhancements across the STM library to improve separation of concerns, test efficiency, API readiness for SNARK signing, and overall code hygiene.

How

Current iteration

Following iteration

  • Enhance error handling with Midnight zk library (need new version of Midnight zk released)
  • Refactor RegistrationEntry into struct with fields
  • Refactoring ClosedRegistrationEntry (To avoid having double options for vk and stake/lottery target value, use a ClosedRegistrationEntryForConcatenation and a Option<ClosedRegistrationEntryForSnark>)
  • Refactor tests for CPU/circuit compatibility (Create a dedicated module for CPU/non-recursive circuit compatibility tests)

Later

  • Get rid of Options for SNARK verification keys and signatures
  • Optimize computation of Lottery Target Value with Binomial Series?

(1-phi_f)^w = 1 - w * phi_f + w(w-1) * (phi_f^2) / 2! - w(w-1)(w-2) * (phi_f^3) / 3! + ...

Lenguaje dominante
Rust
Estrellas
155
Forks
52
Merge medio
2 d 17 h
PR fusionados (30 d)
37

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de IntersectMBO/mithril

Todos los issues de IntersectMBO/mithril

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.