ElementsProject / ElementsProject/elements

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

Open
#1,056 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
1.2k
Forks
416
Avg merge
1d 23h
Merged PRs (30d)
15

Description

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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.