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

Aperta
#3,427 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
38/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
rust

Direzione di ricerca

Leggere innanzitutto proof_system/halo2_snark/clerk.rs e i test esistenti per select_valid_signatures_for_k_indices. Modellare e simulare le probabilità di selezione in base allo stake e alle lotterie vinte, quindi valutare l’influenza dei signer. Il lavoro è completato quando sono disponibili un report di fairness, un adeguamento se viene rilevato un bias e property test che coprano il risultato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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

Lingua principale
Rust
Stelle
155
Fork
52
Merge medio
2g 17h
PR unite (30g)
37

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di IntersectMBO/mithril

Tutte le issue di IntersectMBO/mithril

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.