-
PlasmaPower
For linkable ring signatures, is there a reason key images are k*Hp(K) instead of k*H where H is another basepoint? Just that it means solving the discrete logarithm once wouldn't break all ring sigs? Or is there an inherent flaw in using the same basepoint for all keys in a ring?
-
koe
sarang suraeNoether ^
-
PlasmaPower
I believe using a constant basepoint would be faster since you can precompute it to some degree, and hash to point functions are a pain from what I've seen.
-
sarang
Using a common basepoint can be used to link signatures due to linearity
-
sarang
It's described in the CryptoNote whitepaper on page 18
-
sarang
Some newer constructions use a common basepoint but invert the scalar instead (and account for this in the signature/proving systems)
-
PlasmaPower
Thanks!
-
sarang
Interestingly, this same issue arose in the construction of the dual-key DLSAG construction
-
koe
are bulletproofs verified faster than borromeans?
-
sarang
Extremely
-
sarang
An entire batch of bulletproofs can be verified in a single multiscalar multiplication operation, which scales well
-
sarang
(and it's only a marginal added cost per proof in the batch)
-
koe
ah nice
-
sarang
There are benchmark tests
-
sarang
I don't have the numbers handy anymore comparing them, but it's substantial
-
sarang
Aha, found some old numbers
-
sarang
To verify a batch of 128 separate 2-output borromean proofs would take 12186 ms (on one test machine). The same operation with bulletproofs would take ms
-
sarang
^ koe
-
sarang
The current numbers _may_ be faster... we applied some further speedups, and I don't remember if the numbers I just gave account for this
-
sarang
Whoops, the earlier line should have said that with bulletproofs would take 420 ms; sorry about that
-
sarang
That's only 3% of the old time
-
moneromooo
I did not remember that was such a speedup for the common case :o
-
sarang
I should re-run those numbers and confirm those are current
-
sarang
but at any rate, batching yields substantial improvements
-
koe
damn!
-
moneromooo
Praise be to Buentz/Bootle et al ^_^ And MRL.
-
koe
I discovered Monero is down to around 10x bitcoin transaction sizes, one order of magnitude reduction from before bulletproofs
-
sarang
Heh, we didn't invent bulletproofs, they did
-
sarang
Heh, we didn't invent bulletproofs, they did
-
sarang
AFAIK my only contribution was reporting some errors in the algebra (didn't affect the correctness, just the presentation)
-
moneromooo
You wrote the code from the paper.
-
koe
that's a feat in itself
-
moneromooo
And if not for that, you deserve praise anyway :D
-
koe
hey sarang what happened with your technical note "Application of Bulletproofs in Monero Transactions", I have a copy dated March 5, 2018
-
sarang
The updated bulletproofs paper covered it
-
koe
is this the updated version?
eprint.iacr.org/2017/1066.pdf
-
smooth
the size difference is less than 10x, ignoring difference in functionality
-
smooth
1 in 2 out bitcoin is >200 bytes, 1 in 2 out monero is 1.7 kb
-
smooth
2 in 2 out btc is 250, 2-2 xmr is 2.3kb, so still <10x
-
smooth
actually 2.5kb so right around 10x
-
koe
If my dream of compressing MLSAG scalars comes true it will be reduced an additional 670 bytes per input
-
koe
640
-
moneromooo
That's a LOT for inputs...
-
moneromooo
Su much that it might even go negative. Typo ?
-
koe
I have a dream that one day this protocol will scale into the heavens
-
koe
MLSAGs take up a lot of space, 32bytes*ringsize for just the scalars
-
moneromooo
Well, I'll not bother you again then, give you all the time you need to cook that up ^_^
-
koe
32*2*ringsize actually
-
sarang
koe: I do not think your method is possible
-
sarang
But prove me wrong :D
-
koe
Does anyone think the general donation fund's custodians would be willing to pledge a bounty to anyone who provided a solution? Probably no bounty for proving it has no solution though.
-
koe
Ill offer 5 XMR. Any recommendations on formalization? Draft 3
justpaste.it/3i70b
-
sarang
I was thinking more about the problem you brought up, koe
-
sarang
Ah rats, koe is away
-
sarang
I think that a solution to the problem would imply that the underlying PRNG is insecure, since you'd effectively be finding a preimage
-
sarang
and that in turn would break the security of the signature construction
-
sarang
(but I haven't formalized or proven this!)
-
moneromooo
Tiny *and* works even with insecure PRNGs!
-
sarang
int prng() { return 4; }
-
sarang
there ya go
-
MRL-discord
<Isthmus> Is there a writeup for the possible mitigation of the Janus attack? Third schnorr sig right?
-
sarang
There's a much better approach: adding the point `R' = rG` to the transaction, and doing a particular equality check
-
sarang
quite efficiently, too
-
sarang
I'm working on a short writeup of possible consensus updates that includes the mitigation, as well as hidden timelocks and CLSAG signatures
-
koe
sarang I also have a hard time imagining a solution, but it could be my own ignorance which is why I don't want to give up. Much more precise writeup
justpaste.it/3ilv7
-
MRL-discord
<Isthmus> @sarang: +1 to all of that
-
koe
important point with that mitigation is it doesn't work on view-only wallets
-
sarang
The short Janus mitigation costs 32 bytes per subaddress output and has a single extra equality check only for outputs you detect (so there's no extra full-chain verification required)
-
sarang
true
-
sarang
Hidden timelocks cost 32-64 bytes
-
sarang
and some extra verification
-
koe
actually it should be 32 bytes per transaction which contains subaddresses, since you only need one transaction private key for all the subaddresses (reuse r for all subaddresses, and generate new r for non-subaddresses, so rG applies to all the subaddresses)
-
koe
suppose 3 outputs, 2 are subaddresses; include in tx extra: r1G, r1Ks1, r1Ks2, r2G, where r2G is used by the non-subaddress
-
suraeNoether
hey guys, i've been horribly sick for the past few days
-
suraeNoether
i've been in a hole
-
suraeNoether
please accept my apologies for not bringing the community up to speed
-
suraeNoether
sarang, i have notes on CLSAG for you
-
suraeNoether
biggest problem first: for two rings R and R*, a secret key x with public key X in both, for two messages m and m*, the definition of linkability does not imply that Link(Sign(m, R, x), Sign(m*, R*, x)) = 1
-
suraeNoether
unless I'm misreading it
-
suraeNoether
In particular, use R = R* = {X, Y} for any other fixed public key Y
-
suraeNoether
then R \cup R* has 2 elements, 2 signatures have been computed, the definition provided allows Link to output 0
-
suraeNoether
the rest of my notes are copyediting notes, which i'm going to dump into your PMs
-
koe
hi suraeNoether, you feeling better?
-
sarang
suraeNoether: I don't see a way to set up a challenger-player game to capture precisely the case you mentioned
-
sarang
There isn't a good way to know that the player used the same private key
-
sarang
(from the challenger's perspective, I mean)
-
sarang
The Backes-style (k+1)-signing game does capture this, at least
-
suraeNoether
koe hi not really
-
suraeNoether
sarang: i'll think about it tonight
-
suraeNoether
i braindumped the rest of my notes on you in PM
-
koe
damn
-
Isthmus
Oh, I'mma copypasta some stuff over here from -dev for later reference (otherwise I'll lose it in backlog) and because some might find it interesting.
-
Isthmus
I've been looking a bit into transaction selection algorithms employed by miners
-
Isthmus
Let’s say the mempool contains apathetic or many transactions, such that including them results in a decrease in the *total* payout. We define two types of miners: altruistic miners mine the transaction(s) and take a hit to their bottom line (i.e. make a donation) so that transactions get processed. A rational miner will only mine subsets of the mempool that don’t decrease the total reward
-
Isthmus
-
Isthmus
(We see lots of altruistic blocks, anything below the main trend)
-
Isthmus
It used to be very common, many blocks in a row would be altruistic:
-
Isthmus
-
Isthmus
Now it is rarer, but still happens. Here is some very recent data:
-
Isthmus
-
Isthmus
(Altruism is disabled in the current core software, so this indicates that somebody is using customized software to construct their blocks).
-
Isthmus
Oh, I should calculate their hashrate
-
Isthmus
1 sec
-
Isthmus
Eh, it'd be a lower bound anyways, since convoluted with mempool history
-
» Isthmus loses interest
-
koe
are all those blocks actually larger than the penalty free zone? e.g. it's not people accepting less than the block reward for no reason
-
koe
could probably just check if size > 300kB, no need to go all in
-
koe
it's 20kB v1, 60kB v2, 300kB v5; where v1 April 18, 2014; v2 March, 2016; v3 September, 2016; v4 January, 2017; v5 April, 2017
-
Isthmus
-
Isthmus
just a hair over 300 kB
-
Isthmus
x-axis = block height
-
Isthmus
y-axis = emission
-
Isthmus
color = size
-
koe
interesting
-
Isthmus
Looks like a string of almost-full and slightly-too-full blocks in a row
-
Isthmus
Still don't have an easy way to look for underclaiming, without implementing a bunch of block weight tracking
-
» Isthmus makes a general note:
-
Isthmus
Differentiation between altruistic mining (where emission + fees + penalty = payout) with underclaiming (emission + fees + penalty != payout)
-
Isthmus
The reason I can't tell the difference between them yet, is because I haven't implemented the calculation for the penalty
-
Isthmus
So I can't tell if the sides of the equation balance
-
koe
are you plotting emission or total payout?
-
Isthmus
emission
-
Isthmus
Calculated by `payout - SUM(fees)`
-
koe
emission always falls when block sizes are high
-
Isthmus
Yea, the penalty term
-
koe
might as well plot total payout, then visual outliers below the curve are altruistic
-
koe
or underclaiming
-
Isthmus
Sure, I've got that handy too
-
Isthmus
-
koe
some people are paying a lot of fees lmao
-
Isthmus
Ah yea, to be more precise, miners below the curve in *THIS* plot are altruistic
-
Isthmus
(not the plot that I showed earlier, since that didn't take into account fees)
-
koe
someone screwed up back around 1300000
-
koe
otherwise 0 altruistic miner visible
-
Isthmus
Heh, yeah looks like blocks are constructed rationally these days
-
koe
there still might be suboptimal blocks (transactions that aren't justified by fees when block weights above penalty free zone)
-
Isthmus
Here's a closeup of that whoopsie around 1300000
-
Isthmus
-
Isthmus
Which almost looks to be independent of block size
-
Isthmus
But maybe I need to adjust the color scale
-
koe
well at 1270000 the block size changed color but pattern remained
-
» Isthmus adjusts colorscale upper limit to 100000 bytes
-
Isthmus
-
Isthmus
Sorry, I wish there was a color bar on here.
-
Isthmus