ElementsProject / ElementsProject/elements
We should bump the surjectionproof default # of inputs from 3 to 7+
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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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