ElementsProject / ElementsProject/elements

We should bump the surjectionproof default # of inputs from 3 to 7+

Offen
#1,056 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C++
Sterne
1.2k
Forks
417
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
15

Beschreibung

I meant to do this in 0.21 but forgot. Maybe could slip into the next rc.

Background:

  • The surjection proofs are zkps of the statement "this output's asset ID is equal to that of one of these N inputs", where N is chosen by the signer and is currently max(3, n_inputs) in the Elements wallet.
  • There is a separate surjection proof on every blintded output
  • The weight of a surjection proof is 32 * (N+1) bytes, so currently they max out at 128 bytes.
  • So by at most doubling the size of the proof, to 256 bytes, we could increase this 3 to 7

Our rangeproofs currently default to about 4k; post-bulletproofs these will be a bit under 700 bytes. So I think spending an extra 128 bytes per output is well-worth it for improved privacy.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, den Elements-Wallet-Code zu lokalisieren, der N für surjection proofs auswählt, und bestätige, wo der aktuelle max(3, n_inputs)-Standardwert festgelegt ist. Aktualisiere das Standardverhalten auf 7 und überprüfe anschließend, dass die Beweise 256 Bytes erreichen können und die vorhandenen Wallet-Proof-Prüfungen weiterhin erfolgreich sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
cryptography
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
42/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.