-
derpy_bridge
<[keybase] unseddd>: kenshamir: +1, thanks for the corrections, and in-depth answer
-
kenshamir[m]
Hey, no problem
-
UkoeHB_
very interesting thanks kenshamir[m]
-
derpy_bridge
<[keybase] unseddd>: Isthmus: another paper for the reading list, 'Short Lattice-based One-out-of-many Proofs and Applications to Ring Signatures':
eprint.iacr.org/2018/773.pdf
-
Isthmus
Thanks Unseddd - I'll check that out :- )
-
sarang
Unfortunately the signatures are quite large
-
derpy_bridge
<[keybase] unseddd>: sarang: I haven't dug into it much, but found it when reading this:
eprint.iacr.org/2020/430.pdf
-
derpy_bridge
<[keybase] unseddd>: maybe the latter work helps with signature size?
-
sarang
Research meeting is today at 17:00 UTC (about two hours from now)
-
sarang
.time
-
monerobux
2020-05-06 - 15:05:10
-
Isthmus
Hey fam
-
Isthmus
Anything on the agenda?
-
Isthmus
I'm helping a Fellow with something, and will be sparsely or not available for the next few hours.
-
sarang
I'll talk a bit about a new key PR, but otherwise nothing of particular note this week
-
sarang
Was there anything you wanted to discuss?
-
sarang
Isthmus: I'll also talk a bit about Arcturus too
-
sarang
All righty! Time for the weekly research meeting
-
sarang
As always, we begin with GREETINGS
-
ArticMine
Hi
-
UkoeHB_
hi
-
atoc
hi
-
sarang
Let's move on to ROUNDTABLE
-
sarang
Any research of interest that folks wish to share?
-
sarang
I can share a few things, I suppose
-
sarang
I worked up a PR to update how keys are encrypted in memory
-
sarang
This has follow-on effects to how they're stored on disk, and I'm making some additional updates to improve the existing unit tests and add others
-
sarang
and I'm finishing up a test implementation of Arcturus, the extension of Triptych that offers better proof sizes
-
sarang
I'd like to determine exactly what the timing differences are, since initial estimates suggested that Arcturus and Triptych would be very close
-
kenshamir[m]
Sorry if I've missed this; are there any comparisons for Arcturus, Triptych and CLSAG ?
-
sgp_
hello
-
sarang
And kenshamir[m]: I have comparisons for CLSAG and Triptych, but this will add actual implementation data for Arcturus when finished
-
kenshamir[m]
Oh right, very cool
-
sarang
The size data is already known, FWIW
-
sarang
But the Arcturus timing was always an estimate based on operation counts
-
sarang
It's different enough in how it handles transactions that I'd like to know for sure
-
kenshamir[m]
concretely?
-
kenshamir[m]
Is there a link for it?
-
sarang
The size/timing data?
-
kenshamir[m]
Yeah, the size data
-
sarang
Yeah, let me pull it up
-
kenshamir[m]
Probably may not be that helpful for Monero, but there is a new paper out on an endomorphism that allows you to compute aG + bH faster in variable time
-
sarang
-
kenshamir[m]
-
kenshamir[m]
Thank you
-
sarang
Anyway, that's what I wanted to share
-
sarang
Does anyone else have research of interest?
-
UkoeHB_
what's the gist of your encryption update?
-
sarang
The in-memory encryption of keys was being done with a chacha stream that was XORed with keys, instead of just encrypting the keys with chacha directly
-
sarang
This PR makes this change
-
sarang
The existing unit tests for wallet and key encryption also get some updates
-
UkoeHB_
ah interesting
-
sarang
It also transitions old encrypted keys to the new format, which needs better testing that I'm still working on
-
sarang
Seems pretty quiet today!
-
sarang
We could always end early if there isn't more that needs to be discussed...
-
sgp_
I have nothing to add except to remind people that I still want coinbase outputs to be avoided entirely in non-coinbase-spend rings :p
-
sarang
You mean the idea that a ring containing a coinbase output must have all coinbase outputs, right?
-
sarang
sgp_: can you briefly recap your rationale, to ensure everyone is on the same page?
-
sgp_
yes that idea
-
sgp_
rationale is that no normal users spend coinbase outputs
-
sgp_
even people who mine on mining pools never spend coinbase outputs
-
sgp_
so the selection of these is markedly different from expected user spend behavior
-
sarang
When I thought about this earlier, I was concerned that it sort of kicks the can down the road one hop on the graph
-
sgp_
separating these will increase the effective ringsize for most (>99%) users by 10-20%
-
sgp_
sarang: it kicks the can down the road, but it's still MUCH better
-
ArticMine
Interesting
-
sarang
And that if a heuristic was "this coinbase probably isn't the true signer" previously, it would become "this output that came from a coinbase ring probably isn't the true signer" as a somewhat weaker heuristic
-
sarang
Yeah, I think it's better but doesn't totally eliminate it
-
sarang
If it were implemented, there would need to be a decision on what selection distribution to use, which should probably be based on a transparent-chain analysis at minimum
-
sgp_
it's still essentially one set of transactions separated (one ring signature? I'm struggling to explain this simply and also accurately)
-
sarang
to see if it matches the overall distribution
-
ArticMine
The idea is that an ouput from a mining pool is far more likely to e spent by a normal user
-
sgp_
basically the real spend of the after-coinbase output would look the same as several transactions that select this output as the decoys
-
sarang
Yeah
-
sarang
Does my statement about the analysis for a distribution make sense?
-
ArticMine
I agree it mitigates but does not completely eliminate the risk
-
sgp_
but now this accounts for the behavior that the user could just be a miner on a mining pool, for example
-
sgp_
which is hugely broader
-
sarang
But it is true that right now, the spend patterns of coinbase vs non-coinbase are assumed to be the same by the selection algorithm
-
sarang
It'll be very interesting to see that distribution for coinbase-only
-
sgp_
only solo miners can spend coinbase outputs. Miners on mining pools can also spend from-coinbase outputs
-
sarang
right
-
sgp_
so while it kicks the can down the road, in terms of practical behavior, it's a night and day improvement
-
sarang
I'll ping Isthmus here, since his group has access to this sort of data for other chains
-
sgp_
discussion on this idea has been mixed for years. I'd like to see this actually done
-
sgp_
10-20% better effective ringsizes just with smarter selection
-
ArticMine
It is a significant mitigation of the issue. I do not see a clear downside to this.
-
sgp_
downside is to people that are running private pools. They effectively need to "churn" once by not directly sending the coinbase outputs to people
-
sgp_
I think this is a small tradeoff
-
sarang
I think it's an improvement, provided it doesn't introduce unexpected or unintended consequences to the selection distribution, and is based on distribution data from known spends where reasonable (e.g. Bitcoin)
-
zkao
hoi, can someone evaluate how sound this ECDSA adaptor signature is?
joinmarket.me/blog/blog/schnorrless-scriptless-scripts if these ECDSA adaptor signature works, it looks like the atomic swap can be done using a scheme similar to the suggested by andytoshi-sarang (equivalent discrete logs), mixed with the game theory from h4sh3d's proposal: all game theory on bitcoin script (forcing players to act or
-
sgp_
I agree with that caveat, though I want to add my own caveat that I don't see how it can be worse
-
zkao
lose), and no need for monero refund. so it should work on monero today.
-
sarang
zkao: I didn't invent that cross-group discrete log idea; it was andytoshi
-
zkao
yes, i know, u proposed
-
sarang
sgp_: if the coinbase-only selection distribution ends up being very different to the overall distribution, it would introduce a heuristic for coinbase true signers
-
sarang
and for all we know, it could be a very different distribution in that miners/pools spend immediately or something
-
sgp_
luckily then we can approach coinbase with its own algo
-
sgp_
which we can't do now
-
sarang
The non-coinbase distribution could be easily modified to simply redraw if it chooses a coinbase
-
sgp_
if these are actually very different spend patterns, then the possibility for increased privacy is even greater
-
sgp_
since we can handle them separately, not together
-
sarang
The coinbase distribution would simply be some fixed selection distribution on block order, that doesn't need to do the shuffling method we do now
-
sarang
sgp_: right
-
sgp_
my gut suggests coinbase spends are quicker on average
-
sgp_
but Bitcoin data would be great for that ofc
-
sarang
Right
-
sarang
Hopefully someone like Isthmus's group can get that data, since they have easy access to the dataset AFAIK
-
sgp_
I still support avoiding coinbase with the stupid method of re-selecting a coinbase is chosen, though improvements can make that better. I see even this stupid model as an incremental improvement
-
sgp_
*if a coinbase is chosen
-
sgp_
what I'm trying to say is that the data on Bitcoin should help make the selections better, but that they are not prerequisites to switch since it can't be worse than it already is in my eyes
-
sarang
If there were no known distribution from Bitcoin etc., what selection for coinbase-only would you suggest?
-
sarang
Reselect-on-coinbase seems reasonably for non-coinbase rings, but there still would need to be a chosen selection distribution for coinbase-only rings
-
sgp_
same as current probably? I agree that's not ideal
-
sarang
Well, the current one takes block density into account, and that's not relevant for coinbase-only
-
sgp_
keeping in mind most public pools publish this data openly anyway
-
sgp_
so frankly the coinbase rings would be susceptible to a lot of public data causing a high proportion of heuristically dead outputs
-
sgp_
in the worst of cases I say ~90% of of the hashrate accounted for by public pools sharing coinbase data, so ringsize 11 doesn't really help with that in the best of cases
-
sgp_
*I saw ~90%
-
sarang
Well, at that point you could _almost_ suggest removing the requirement for nontrivial rings in coinbase-only at all
-
sarang
*altogether
-
sarang
If the thought is that analysis could reveal true signers in a huge number of cases anyway
-
sgp_
there's a push for pools to not share this data, but I agree that in the current case, coinbase rings should be considered to offer near-zero protection
-
sgp_
really any coinbase spend. in the current situation, they are still heuristically dead, just spread across normal users' transactions
-
sarang
Hmm, we're a bit over time
-
sgp_
yeah we can end
-
sarang
Let's move to ACTION ITEMS and then continue discussion
-
sarang
I have some unit tests update to make for the key encryption PR, and hopefully can get Arcturus code working in C++ with the timing data that I want
-
sarang
Any other updates, action items, etc. before we adjourn?
-
sarang
If not, adjourned!
-
sarang
Logs will be posted shortly
-
sarang
sgp_: if there were a compelling argument for removing rings altogether for coinbase, I could see moving to a straightforward change in the non-coinbase selection algo
-
sarang
But if not, I think it's important to get distribution data on coinbase from elsewhere
-
sarang
Otherwise any selection algorithm is a shot in the dark
-
sgp_
we can proceed with no rings for coinbase until we have an algo, sure
-
sarang
FWIW I'm not saying I am convinced of this yet :)
-
sgp_
In my assumptions I basically considered them useless before triptych or something like that anyway
-
sgp_
you've had two years to think about it, what more do you need? :p
-
sarang
Data on spend patterns
-
sarang
The argument about public pool data is much more compelling IMO
-
sarang
Because it shifts the question from "how do spends of coinbase or after-coinbase differ from general outputs" to "these outputs are mostly dead anyway due to pool data"
-
sgp_
ultimately my concerns are about normal users having smaller effective ringsizes. Not only will they not realistically spend coinbase outputs, but they definitely won't spend coinbase outputs that are likely heuristically dead
-
sarang
Well, getting Bitcoin (or other transparent chain) separated data would help to tell us this
-
sgp_
but that explains why I haven't cared a ton about the coinbase selection. Why care if it won't likely matter anyway haha
-
sgp_
well I can tell you about a year ago, 90% of the hashrate was produced by pools that showed what blocks they mined. It might be slightly different now, but this is still common
-
sarang
Well, let's consider the case where that's still true but we do a better selection algo
-
sarang
Then at _worst_, there's an effective ring size of 1
-
sarang
But at best, there's still signer ambiguity
-
sgp_
sure, which is why I assumed just leaving the coinbase selection the same anyway
-
sarang
Moving to a bad selection algo means that an adversary with good data could heuristically unmask signers much better
-
sarang
using coinbase age distribution data they obtain
-
sarang
And we should of course assume that good adversaries have done this
-
sarang
And so we should do it too :)
-
sgp_
are you talking about coinbase-only rings still? I'm confused
-
sgp_
I'm assuming the base case of the same algo as right now, but rerolling if 1+ coinbase are selected
-
sarang
If coinbase are removed, then the non-coinbase selection algorithm would probably be "the current thing, but re-draw on coinbase selection"
-
sarang
But the coinbase-only selection distribution is currently unknown, but obtainable from other chains
-
sarang
An analyst who has that selection distribution could use differences between it and whatever we might choose to heuristically unmask coinbase signers
-
sarang
And of course they could/should/would use any pool data they find
-
sgp_
sure, so we can use an algo for non-coinbase, but honestly most of the time it will be useless with this ringsize, even if the selection is awesome
-
ArticMine
<sgp_> well I can tell you about a year ago, 90% of the hashrate was produced by pools that showed what blocks they mined. It might be slightly different now, but this is still common <--- Would this in fact be the downside. Only the most recent coinbase output is the real one
-
sgp_
ArticMine: we may find people spend immediately, yes. But that's not incrementally worse with coinbase-only rings
-
sarang
sgp_: I think it's useful to maximize the benefit from the coinbase-only selection, even for a marginal benefit in case many decoys are dead by pool data
-
sarang
Otherwise, a bad selection algo might be as bad as no ring at all
-
sarang
(heuristically, at least...)
-
sgp_
sure, I agree with you
-
sgp_
point is that I don't consider this a reason not to implement
-
sarang
And it seems straightforward to obtain this data
-
sarang
consider it due diligence
-
sgp_
I see it as a further area of improvement, but that the decision can be made even without this data
-
sgp_
(I just don't want to keep moving the goalposts)
-
sarang
I see what you mean; that the decision of _whether_ to do it might be independent of the knowledge of a specific distribution to use if it were implemented
-
ArticMine
The cpoinbase spend pattern of pools is very predictable
-
sarang
ArticMine: sure, so we should find out what it is
-
sgp_
ArticMine: yes, we're dealing with super public, predictable behavior here
-
sarang
Of course, not everyone mines in pools
-
sgp_
hence why I've been concerned we're wasting 10-20% of decoys of transactions for years now
-
sarang
and then you have to weigh the likelihood of unmasking those signatures with the current scheme versus any new scheme
-
sgp_
sarang: can you be specific about which type of signatures?
-
ArticMine
So the question becomes are there enough regular non coinbase txs to make it look like a real coinbase tx is a fake
-
ArticMine
sgp_ I am turning the argument on its head
-
sarang
The heuristic of "the coinbase is probably not the signer in this random transaction, because I don't think coinbase are selected this way" is different from "this coinbase in this coinbase-only transaction must be the signer, because of pool data and probably also this other heuristic I built"
-
sarang
So if you're not a pool miner, the latter means you're unmasked almost certainly
-
sarang
Whereas the former seems a weaker heuristic in practice
-
sarang
but a heuristic nonetheless
-
sgp_
the short answer is that private miners will have a worse selection for their coinbase outputs than they have right now. They will need to churn once
-
ArticMine
The question I have is how can one tell in the current system a real from a fake coinbase output
-
sgp_
ArticMine: most pools publish "real ones"
-
sgp_
for private pools, them spending a real one will be pretty well-hidden among non-coinbase outputs (like as if they had churned once with this coinbase-only switch)
-
sgp_
I wrote about all this in my "Let's Stop Using Coinbase Outputs" post a while back
-
ArticMine
So the issue becomes the tie lag between publication and spending of the output
-
ArticMine
time
-
sarang
ArticMine: a good heuristic is probably to determine if known coinbase spend patterns differ significantly from non-coinbase spend patterns
-
sarang
(they probably do)
-
ArticMine
Namely can the unspent coinbase be picked up by another normal transaction before it is spent
-
sgp_
maybe but I think that's not the main focus here
-
ArticMine
I see it as critical since it would obfuscate if it is real or not
-
sarang
It's not about who spends first... it's about the spend-age distribution
-
sarang
The selection algo should match this
-
ArticMine
Yes the spend age distribution of the coinbase
-
sarang
If it turns out they're much different, then separating them with separate algos is reasonable in most cases (but harms private miners if pool lists kill all the decoys, as has been said)
-
sgp_
note that spend-time distribution is only one (important) part
-
sarang
Yes, I don't mean to imply that it's the only factor
-
ArticMine
but they would still be included in the regular transaction only with a different algo
-
sarang
but it is one that used to lead to good heuristics
-
sgp_
sarang: yeah, just clarifying :)
-
sarang
and it's something that is straightforward to get from other chains
-
sarang
(provided you're willing to use them as a proxy)
-
sgp_
users not mining is another good heuristic
-
sgp_
s/mining/mining directly
-
monerobux
sgp_ meant to say: users not mining directly is another good heuristic
-
ArticMine
Solo miners or miners who spend or donate hashrate as opposed to those using a pool that pays out upon mining a block
-
ArticMine
Also the mining dynamics of Bitcoin and Monero are very different
-
sarang
Well, getting known spend data for Monero coinbase would require using published pool data or other external data
-
sarang
Using another chain is a proxy at best
-
sarang
Or using old Monero data where decoys can be removed using chain reaction etc.
-
sarang
as Miller et al. did for their ground-truth on spend distribution data (which matched Bitcoin trends reasonably well)
-
moneromooo
I may be talking out of my butt here, but it seems likely Bitcoin usage stayed at close to 0 for a few years, while monero did not.
-
moneromooo
Ethereum data would show a quicker uptake, though quicker than monero. But these probably give us min/max curves.
-
jwinterm
-
sarang
I mean, any assumption that Monero patterns match any others is essentially an extrapolation, maybe backed up by early known Monero data and then extrapolated to the present
-
sarang
But if you were trying to build a heuristic, it seems like the thing you'd do
-
_ArmannY
hi , anyone have node-cryptonote-util for xmr RandomX ?
-
_ArmannY
hi , anyone have node-cryptonote-util for xmr RandomX ?