-
sarang
The crossover happens between 32 and 64
-
UkoeHB_
Crossover? Do you mean verification time for 64-ring size triptych is greater than 11-ring CLSAG, while 32-ring is less?
-
UkoeHB_
Do verification estimates include the time to decompress ring members (one time keys and commitments)? They are stored compressed in the database
-
moneromooo
If you really mean decompress, it's trivial. If you mean lookup, it depends so much on I/O latency that it doesn't really make sense.
-
sarang
They include the decompression
-
moneromooo
Oh, wait. You mean 32 byte to ge_p3 ? Nevermind then...
-
sarang
Yes that's what I meant
-
sarang
Whoops, had the wrong CLSAG/MLSAG ring param
-
sarang
-
sarang
^ fixed
-
moneromooo
So... even faster now ? :)
-
moneromooo
Is that version with one multiexp, or still using several ?
-
sarang
Still several
-
derpy_bridge
<[keybase] seddd>: Tript64 only taking 2x clsag time O.O O.O gotta love log-scaling functions
-
derpy_bridge
<[keybase] seddd>: v exciting, good work sarang!
-
sarang
moneromooo: those numbers are on a faster machine than before :)
-
sarang
Builds faster
-
sarang
Etc.
-
UkoeHB_
Thanks sarang. These numbers back up my original skepticism about ring sizes >128. Could we even accept >64?
-
derpy_bridge
<[keybase] seddd>: one question: is D_precomp offset as input to the key image? re:
github.com/moneromooo-monero/bitmon…b/clsag/src/ringct/rctSigs.cpp#L208
-
derpy_bridge
<[keybase] seddd>: D* not D_precomp
-
sarang
UkoeHB_: we'll have to see, once it's better optimized and properly accounts for batching
-
sarang
seddd: the standard key image is computed the same as previously
-
derpy_bridge
<[keybase] seddd>: ok, so is D the key image for the decoy keys? confused because thought I was the key image, am I being dumb?
-
UkoeHB_
Yes D is the auxiliary key image for the commitment to zero
-
UkoeHB_
And the offset is for storage in the blockchain. Do mul8 during verification, which ensures it's in the right elliptic curve subgroup
-
derpy_bridge
<[keybase] seddd>: thanks UkoeHB_ :)
-
sarang
The precomp terms are used for later internal point operations
-
derpy_bridge
<[keybase] seddd>: thanks sarang :)
-
I3^RELATIVISM
I am curious what bridge is this room using for keybase? Matterbridge? And would it be possible to speak with bridge maintainer. It would be interesting to set uo a similar thing for the kovri/sekreta channeks. Cheers.
-
UkoeHB_
-
UkoeHB_
I feel like I heard that idea somewhere else, and maybe it has been rejected before. Anyway, bringing it back
-
sarang
Additional optimizations to Triptych verification:
SarangNoether/monero 20e581d
-
sarang
Brings 16-Triptych verification down from 4070 us to 3140 us
-
sarang
(On the same machine, 11-CLSAG is 5659 us and 11-MLSAG is 6789 us)
-
sarang
This does not account for batching
-
sarang
32-Triptych becomes 5300 us, and 64-Triptych becomes 9460 us
-
moneromooo
Did you try pippenger out of curiosity ?
-
sarang
Not yet. I still have work to do on multiexp stuff, including algorithm selection and generator cachine
-
sarang
s/cachine/caching
-
monerobux
sarang meant to say: Not yet. I still have work to do on multiexp stuff, including algorithm selection and generator caching
-
moneromooo
FWIW the multiexp data entries have a ctor that do the frombytes for you.
-
Inge-
32- and 64-Triptych is still Ring Signatures, basically?
-
sarang
Triptych is a zero-knowledge proving system that is used as a multidimensional linkable ring signature
-
sarang
At some point the term "ring signature" becomes more fuzzy, since the security definitions change a bit
-
selsta
are you coding up Triptych because it is the most promising of the new RingCT schemes or because you wrote the paper for it and want the timing?
-
sarang
If you mean "prover-specified signer ambiguity set" then yes
-
sarang
I think it's currently quite promising, and wanted actual data for comparison
-
selsta
ok, it does indeed sound promising
-
Inge-
Ok, so for purposes of privacy, can I in laymans terms get a grasp on e.g. n-Triptych vs 11-Bulletproofs vs Zcash?
-
sarang
Bulletproofs serve an entirely different purpose in the transaction protocol from the signatures
-
Inge-
oh wait. again *facepalm* never mind
-
Inge-
restating: Ok, so for purposes of privacy, can I in laymans terms get a grasp on e.g. n-Triptych vs 11-ring sigs of today vs Zcash? <-- better
-
sarang
Depends entirely on the risk/threat model
-
sarang
A ring signature, absent external data, provides signer ambiguity among its specified input set
-
Inge-
and zcash does the sam, but the "input set" is basically the entire set of all existing transactions?
-
sarang
If you're talking strictly about shielded operations only (with no transparent interactions), then (absent external information) the ambiguity set is all previous shielded outputs
-
sarang
But
-
Inge-
I am.
-
sarang
Much like how many older Monero outputs can be marked as proven-spent or likely-spent, there are related heuristics that can be applied to Zcash transparent operations too
-
Inge-
right
-
sarang
So "all previous outputs" is not really accurate either
-
sarang
All depends on how you operate
-
sarang
That being said, the "safe" set of possible outputs for Zcash is very large
-
sarang
Worth noting again that the size of the ambiguity is important, but certainly not the only thing that impacts privacy in practice
-
sarang
moneromooo: looks like Pippenger doesn't take effect until ringsize 128
-
sarang
at least according to the data you had for bulletproofs testing
-
sarang
Hmm wait, I might be misreading how the limits are used
-
» sarang checks again
-
sarang
Straus/Pippenger crossover is at N=32
-
moneromooo
Really depends whether the number of scalar/point pairs is the same for MLSAG and triptych.
-
moneromooo
(per ring member)
-
sarang
Caching might affect this crossover once implemented
-
sarang
Triptych reduces to a single multiexp
-
moneromooo
static inline rct::key multiexp(const std::vector<MultiexpData> &data, size_t HiGi_size)
-
sarang
yep
-
sarang
This comparison data is already interesting, even if not fully optimized
-
sarang
So far, it indicates that 16-Triptych runs in 46% of the time of 11-MLSAG, and 55% of the time of 11-CLSAG
-
sarang
-
sarang
-
sarang
Gray lines are centered at the 11-MLSAG point on each plot as a visual guide
-
gingeropolous
nice
-
gingeropolous
so triptych always wins re: verification time
-
sarang
So the intersection of the Triptych line and the horizontal gray line shows the point at which Triptych exceeds the current size/time of 11-MLSAG
-
selsta
sarang: bulletproofs had a nice blog post written by you, I think Triptych would also be worthy of a blog post :)
-
selsta
once you have the numbers
-
sarang
There are still some additional optimizations to mak
-
sarang
s/mak/make
-
monerobux
sarang meant to say: There are still some additional optimizations to make
-
sarang
I wanted to have these plots available to give at least an initial comparison
-
dEBRUYNE
selsta: +1
-
dEBRUYNE
Also nice to have a blog that we can point people to
-
dEBRUYNE
Even if it will likely take quite some time before implemented
-
sarang
before/if
-
sarang
But I agree; I'll write up a post once I have more finalized data
-
sarang
FWIW if multisig weren't an issue, it'd be reasonably straightforward to deploy
-
gingeropolous
stupid multisig
-
dEBRUYNE
sarang: I remember you finding a solution for multisig though
-
dEBRUYNE
Or is my memory betraying me? :P
-
sarang
Yes, but it requires non-ed25519 math
-
gingeropolous
i mean, would it be crazy to have both protocols, triptych for standard txn and a CLSAG for multisig?
-
sarang
It needs operations in general RSA groups
-
gingeropolous
oh wait one of them requires a thing
-
dEBRUYNE
Which, I guess, is difficult to implement
-
dEBRUYNE
gingeropolous: That would also make transactions stand out :P
-
sarang
FWIW verification does not require any non-ed25519 math
-
gingeropolous
well yeah, but multisigs already stand out don't they?
-
gingeropolous
^ :
-
dEBRUYNE
Afaik no
-
gingeropolous
no needed ;. maybe
-
gingeropolous
i feel like semicolons are underused
-
sarang
Anyway, there are still some optimizations to be made for those numbers, including some generator caching and batching input keys across signatures from the same transaction
-
sarang
So don't treat that data as canonical by any means