Review the fairness of the single signature selection algorithm for the non-recursive SNARK

Abierto
#3,427 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
38/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
rust

Línea de trabajo

Lea primero proof_system/halo2_snark/clerk.rs y las pruebas existentes para select_valid_signatures_for_k_indices. Modele y simule las probabilidades de selección en función del stake y de las loterías ganadas, y después evalúe la influencia de los signer. El trabajo estará terminado cuando haya un informe de fairness, un ajuste si se detecta sesgo y pruebas de propiedades que cubran el resultado.

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

Descripción

cryptography :closed_lock_with_key: to-groom :thinking:

Why

select_valid_signatures_for_k_indices picks the signatures that enter the proof by hash priority, then deduplicates by keeping the smallest hash per index. The algorithm is deterministic and tested, but its fairness across signers over many epochs has not been analyzed.

What

Analyze the selection algorithm for fairness and for manipulability, and adjust it if the analysis calls for it.

How

  • Model the selection probability per signer as a function of the stake and of the number of won lotteries
  • Check whether a signer can influence its own selection odds
  • Simulate the selection over many epochs and report the distribution
  • Propose an adjustment if a bias is found, and cover it with property tests (proof_system/halo2_snark/clerk.rs)

Later

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.