-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Token Space Efficiency Enhancement #140
Comments
Just to keep this updated (even though it probably will never see the light of day). As @conduition promptly pointed out, curve point additions weight in on the performance of the mint. So then I proposed instead of |
The main disadvantage of this hack is the inability to compose the DLEQ proofs the same way. That means it cannot be used offline. |
I benchmarked a few different approaches to proof aggregation in Rust using Point addition also has the advantage of being aggregatable: A client could receive, say, 10 tokens separately, and aggregate all ten @lollerfirst is correct regarding offline verification. This seems like it should be a relatively simple thing for clients though: Proof aggregation or DLEQ, your tokens can use one but not the other. |
I'd like to discuss an improvement that would enhance space efficiency in tokens.
From NUT-00, a token is composed like this:
Where the bulk of it is in
"proofs"
which is aArray<Proof>
andProof
:I note that it is redundant to include a "C" for every proof. Instead -when generating a token- the wallet could sum up all the C of all the proofs the user intends to send:
C_tot = C_0 + C_1 + ... + C_n
Then we could have the token modified as follows:
Where
C_tot
is the x-only hex representation of the previously discussed cumulative pubkeyC_tot
.And
Proof
modified as follows:For the receiver of this new token, nothing changes: he will still send these proofs to the mint to have them molten or swapped.
The mint, however, would have to slightly adjust its way of verifying the proofs:
where
k_*
are the keys for the respective amounts and denominations, andx_*
are the secrets.Thoughts?
The text was updated successfully, but these errors were encountered: