-
Rucknium[m]
MRL meeting here in 3 hours
-
Rucknium[m]
-
Rucknium[m]
Greetings. Hi.
-
vtnerd
hi
-
rbrunner
Hello
-
Rucknium[m]
Updates: What is everyone working on?
-
vtnerd
worked more on webhook/zmq stuff for lws (new-account notification), and a little on noise in p2p
-
rbrunner
Reviewing this, the discussion could also be of wider interest:
monero-project/monero #8619
-
Rucknium[m]
me: starting to measure the ring member dependence problem that affects OSPEAD, which I discussed last week. And searching for solutions.
-
Rucknium[m]
rbrunner: With ring size >=128, will the data storage requires of background sync start to become a problem?
-
Rucknium[m]
I assume that with larger ring size the wallet would have to store more candidate outputs before it loads the spend key.
-
rbrunner
Sounds right, yes. Hard to say. Doesn't this cry out for a little simulation? :)
-
Rucknium[m]
You could simulate, but it's probably easier to just apply a formula
-
Rucknium[m]
data_required_per_detected_ring_inclusion * number_of_outputs_in_wallet * 128, for the worst case scenario
-
rbrunner
My "gut feeling" tells me that this probably won't develop into a real problem. Transactions are quite small, I think we could hit quite a lot of them until we run into storage problems
-
Rucknium[m]
Users likely would not hit the full 128 since they would space out their outputs in time, plus it takes a month or more to approach the 128, theoretically
-
rbrunner
It stores the transaction plus a bit of extra info per "hit".
-
Rucknium[m]
FYI jberman has a new CCS proposal up to work on Seraphis and coding full chain membership proofs (Curve Trees):
repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/401
-
Rucknium[m]
If there are no other agenda items, I will discuss the ring member dependence issue.
-
Rucknium[m]
Correlation.
-
Rucknium[m]
Correlation is a linear measure of the dependence of two random variables. It will not correctly measure dependence when the dependence is partially or completely nonlinear. This is a standard caveat.
-
Rucknium[m]
I simulated 2 million rings of 16 members each with the gamma distribution as decoys and the empirical litecoin distribution as real spends.
-
Rucknium[m]
I computed the correlation between each pair of ring members. The correlation, after taking logs of the data, is about -0.0046
-
Rucknium[m]
Correlation can range from 1 to -1. A correlation of zero means no correlation (but not necessarily no dependence).
-
Rucknium[m]
Like I said before, the dependence between ring members is subtle. -0.0046 is a small magnitude.
-
Rucknium[m]
I think that the correlation is negative because other ring members have a chance to be unlike each other. When a specific ring member is from the decoy distribution, that increases the probability that the other ring members are from the real spend distribution, and vice versa.
-
Rucknium[m]
If I set ring size to only 3, then my correlation is -0.10. That makes sense since there is a much higher probability of ring members being unlike each other when there are two decoys and one real spend.
-
Rucknium[m]
There's the update of more details on the problem. Now for a possible solution.
-
Rucknium[m]
I think there is a possible solution. It's not a quick fix at all. It would take time. I give it a 60-70% probability of "working". By "working" I mean it would give a much better estimate than the current estimator that assumes independent ring members.
-
Rucknium[m]
I think we should give it a shot. The main alternative is to stay with the estimator that requires independent ring members. It is known to be somewhat inaccurate since ring members are actually slightly dependent.
-
Rucknium[m]
Input?
-
rbrunner
Well, as I know pretty much nothing about statistics, I almost automatically go into "project management" thinking instead
-
rbrunner
and there I see trade-off "Make OSPEAD go into service (even) later" and "make OSPEAD (a bit) better"
-
Rucknium[m]
What is your project management input?
-
Rucknium[m]
rbrunner: That's what I think the trade-off is, too
-
rbrunner
I don't remember, do we need a hardfork to introduce it? Maybe not.
-
rbrunner
We already live with more than 1 algorithm :)
-
Rucknium[m]
We don't need a hardfork since wallet software selects decoys. But if we don't do it at a hardfork, then there is some possibility for wallet fingerprinting old vs new versions of wallet2
-
rbrunner
So the idea comes to mind to introduce OSPEAD as-is first, and maybe only after that start an attempt to solve that dependency problem.
-
Rucknium[m]
The risk, in probability terms, of fingerprinting could be estimated IMHO, but I declare it outside the scope of this OSPEAD CCS. It could be in scope of another one
-
rbrunner
The problem that OSPEAD saves is tied to rings, right? So if we really manage to get rid of them, it will retire as well.
-
rbrunner
Or, more in general, decoys of course
-
Rucknium[m]
rbrunner: That's correct.
-
xmrack[m]
Hey sorry I’m late. My update is that k-anonymity is implemented for the block explorer. thanks to hyc for helping design the theory behind it and jeffro256 for helping make the needed modifications to db_lmdb.cpp. I am working on performance updates at the moment.
-
rbrunner
With the caveat of being a statistics noob, as already confessed, I would probably try to get into service what we have now.
-
xmrack[m]
-
rbrunner
"Having now" is anyway only having the "system". We don't have working C++ code for it yet, if I understand correctly.
-
Rucknium[m]
Thanks, xmrack
-
rbrunner
Sounds like a funny thing, that PR
-
rbrunner
(In a positive sense, nice what all gets built.)
-
Rucknium[m]
AFAIK, it would be a small amount of code to implement it. Basically substitute out GAMMA in wallet2 and its parameters for what OSPEAD estimates.
-
rbrunner
Ah, ok, then take won't take overly long.
-
Rucknium[m]
We don't have to decide now what to do. I will poll others, too.
-
rbrunner
Always a good idea. We are not that many people here right now anyway.
-
Rucknium[m]
xmrack: Do you have opinions about this ring member dependency issue? You may want to read the logs from last meeting.
-
xmrack[m]
Rucknium: will have to get back to you on this. Out right now and dont have time to read up
-
Rucknium[m]
Any other items to discuss?
-
rbrunner
Not from me.
-
Rucknium[m]
Let's end the meeting here.
-
hyc
Rucknium[m]: did you get any further on relicensing your OSPEAD stuff?