-
UkoeHB
-
sgp_
has this been discussed?
eprint.iacr.org/2021/089
-
sgp_
they seem to add fuzziness to the view tag, not the FindReceived key
-
UkoeHB
Meeting time
-
UkoeHB
1. Greetings
-
UkoeHB
Hello
-
rbrunner
Hi
-
sgp_
hello
-
SerHack
Hi
-
jberman[m]
Hiya
-
Rucknium[m]
Hi
-
UkoeHB
sgp_: view tags are already fuzzy
-
sgp_
UkoeHB: oh yeah, of course duh. Sorry :)
-
UkoeHB
however if you can compute a view tag then you can also compute a nominal spend key, which reveals more info
-
UkoeHB
but we need that for efficiency on the client side
-
UkoeHB
2. let's do updates, what is everyone working on these days?
-
Rucknium[m]
The MAGIC Monero Fund has its first research grant application, by xmr-ack :
-
Rucknium[m]
-
UkoeHB
-
Rucknium[m]
The general idea is to see how accurately machine learning techniques can identify the real spend in a ring, using a synthetic dataset.
-
Rucknium[m]
The MAGIC Monero Fund is asking MRL for feedback on the grant application. Of course, the final decision rests with the committee.
-
Rucknium[m]
Maybe isthmus would have some input given his experience with machine learning.
-
rbrunner
Is that the background of the currently very high tx traffic on testnet?
-
Rucknium[m]
rbrunner: Yes.
-
rbrunner
Sounds like an interesting project.
-
rbrunner
For a layman like me, at least
-
UkoeHB
I'm wondering how you translate results/models obtained for a synthetic data set to the real data set.
-
gingeropolous
oh jesus he's using the public testnet?
-
rbrunner
You did not notice that huuuuuge amount of traffic there over the last 3 weeks? :)
-
gingeropolous
ugh thats unnecessary
-
rbrunner
Not sure. As soon as somebody wants to confirm results, a public blockchain may be very handy
-
Rucknium[m]
Also, plowsof and I set up an instance of WIKINDX at
moneroresearch.info . It's a place to collect Monero-related papers and annotate them. My hope is that it can help onboard new researchers and help us establish a workflow for reviewing new papers that are written about Monero.
-
Rucknium[m]
I've disabled public user registrations to avoid vandalism, but if anyone wants to create a user to be able to add, edit, and add annotations to papers, just message me and I will create one for you.
-
gingeropolous
also, stagenet might potentially be better. testnet could get hella ugly if/when we actually test the new release. the randomx testnet was brutal
-
gingeropolous
but yeah rbrunner re: public blockchain reproducibility considerations.
-
rbrunner
Hopefully that WIKINDX thing does not need to much babysitting and does not surprise with new security holes every fortnight :)
-
Rucknium[m]
rbrunner: WIKINDX has been around since 2003 apparently. It was hard to set up, but hopefully it is "mature" by now.
-
UkoeHB
3. I guess we can move to discussion. Any items to discuss? Perhaps from the agenda
-
gingeropolous
and UkoeHB re: synthetic vs. real data. I share the same curiosity, and i'd propose to use the bitcoin blockchain with ring sigs superimposed somehow
-
gingeropolous
but, its good to do things in multiple ways i guess
-
rbrunner
I have a question that may be of wider interest and was brought up by a recent video about Seraphis:
-
rbrunner
-
UkoeHB
gingeropolous: yeah you could probably generate the bitcoin blockchain with ring sigs all offline.
-
rbrunner
Under "membership proof delegation" it mentions that this may open up the following possibility:
-
rbrunner
Ignore 10-block lock time when transacting with a *trusted* party (i.e. allow them to make your tx's membership proofs and submit the tx to the network on your behalf).
-
rbrunner
Is that still current? And if yes can you sketch what that means and how that could work in practice?
-
UkoeHB
rbrunner: You would send a `PartialTx` to your friend, and then later they can make membership proofs for the tx and submit it.
-
UkoeHB
-
UkoeHB
-
rbrunner
And it's trusted because by building such a partial tx and sending it to my friend, I still could spend faster and cheat?
-
UkoeHB
that and your friend will know the real spends
-
rbrunner
But I could send such a partial tx very early, within the 10-block spend limit?
-
xmr-ack[m]
<UkoeHB> "I'm wondering how you translate..." <- This is the reason I choose to collect it on the test-net, I need the data to resemble main-net as close as possible. With machine learning, small discrepancies in the training dataset compared to the testing dataset could result in large inaccuracies. I understand a large amount of traffic on the test-net is not ideal, so I'll soon be delaying transactions based on real-user
-
xmr-ack[m]
spending patterns.
-
gingeropolous
but where are u getting those spending patterns?
-
UkoeHB
rbrunner: yes
-
xmr-ack[m]
<gingeropolous> "also, stagenet might potentially..." <- This might be a good common ground.
-
gingeropolous
yeah. testnet has the potential to get restarted, or rolled back, during dev testing etc
-
gingeropolous
could really muck up your work
-
rbrunner
Alright, so that's only a "reduction" or "circumvention" of the 10-block limit in quite special circumstances. And I guess final submit has to wait then?
-
Rucknium[m]
xmr-ack: One good reason to do it on testnet or stagenet would be if you were using network data as features for the machine learning algorithm.
-
UkoeHB
rbrunner: right
-
rbrunner
Ok, thanks!
-
gingeropolous
stagenet shouldn't be fiddled with in that way. stagenet is meant to mimic mainnet, just not have any value. testnet is meant to test consensus rules etc. at least thats the thought. but testnet only really got mucked with during the randomx testing as far as i recall.
-
UkoeHB
delegation is more useful for multisig, tx chaining, collaborative funding
-
xmr-ack[m]
gingeropolous: The gamma distribution proposed in Moser et al. Additionally, I'm going to run an experiment soon where I crawl the last 1,000,000 transactions on main-net using the onion block explorer and calculate the distribution of transaction fees to simulate that as well.
-
xmr-ack[m]
gingeropolous: I didn't know this. That could be a problem
-
UkoeHB
xmr-ack[m]: is there an advantage to generating real txs? your database just reduces to {block height, {reference heights}}
-
rbrunner
Well, testnet was quite stable for a long time now.
-
gingeropolous
we haven't had to test new consensus rules :)
-
rbrunner
True.
-
gingeropolous
i mean, the new ones shouldn't be that fiddly, but who knows
-
xmr-ack[m]
<Rucknium[m]> "xmr-ack: One good reason to do..." <- I have thought about incorporating network features and even ran some experiments in the past where a 1D conv-net was able to differentiate between remote node network traffic with a > 90% accuracy. But that was a quite small dataset and only preliminary results.
-
jberman[m]
UkoeHB: I have some code here that simulates different wallet version strategies to arrive at this FWIW:
j-berman/monero 4baf4c9
-
gingeropolous
i dunno about network features. the permanent thing is the blockchain
-
xmr-ack[m]
<UkoeHB> "xmr-ack: is there an advantage..." <- My reasons so far include:... (full message at
libera.ems.host/_matrix/media/r0/do…54db00368e85005a07d2021036b621cd66d)
-
Rucknium[m]
Monero adversaries almost certainly are collecting more than just blockchain data.
-
xmr-ack[m]
gingeropolous: I agree
-
xmr-ack[m]
Rucknium: They are but I think specifically for this research project that is out of scope. I may continue my research down the road and look into fingerprinting network patterns between: peers, remote nodes, etc...
-
xmr-ack[m]
Fingerprinting network patterns is really cool because you can pretty much bypass all encryption.
-
rbrunner
Uh, you may elaborate a bit, otherwise people will freak out reading the log of this meeting ...
-
xmr-ack[m]
* all encryption. Granted you can only classify high level actions ( ex. user spent monero vs user recieved blocks)
-
xmr-ack[m]
Yea I just edited hahah I realized that needed more context
-
xmr-ack[m]
Let me find a good paper for anyone thats interested
-
rbrunner
"Monero researcher finally admits: Monero *is* traceable" :)
-
xmr-ack[m]
~never~
-
Rucknium[m]
Dandelion++ is supposed to reduce the efficacy of de-anonymization efforts based on monitoring network data, I believe.
-
rbrunner
Had the same thought, yes
-
UkoeHB
I think we can call the meeting here, unless anyone has any last minute comments/questions.
-
UkoeHB
ok thanks for attending everyone
-
xmr-ack[m]
Rucknium[m]: Yea good point. To clarify, the research scenario where traffic patterns could be fingerprinted were only tested in a highly privileged network location. ( ex. a local adversary that could view encrypted packet patterns )
-
xmr-ack[m]
* packet patterns before the traffic reached the remote node)
-
jberman[m]
I don't know much about ML, but doesn't training usually occur with real data, rather than simulated data? i.e. if you're training some model based on simulated data, or data that you control/are creating, doesn't that bias the model toward whatever data you generate, and therefore defeat the purpose of trying to match "main-net conditions", since it trivially is not those conditions, but the conditions of what you created? idk
-
jberman[m]
if that makes sense
-
rbrunner
With the small problem how you test for correct results on mainnet, maybe?
-
rbrunner
Maybe a quite special case with Monero where your data actively resist analysis :)
-
SerHack
jberman[m]: you're totally correct.
-
xmr-ack[m]
<jberman[m]> "I don't know much about ML..." <- Correct, but using test-net or stage-net is the best conditions we have. Collecting the dataset on main-net is not financially feasible and publicly disclosing the true spend of a large number of transactions would have serious privacy implications for other users.
-
xmr-ack[m]
* other users. There is still likely many features within test-net that can be applied to main net.
-
gingeropolous[m]
xmr-ack: any ... thoughts on using bitcoin data and superimposing ringsigs on top of it?
-
xmr-ack[m]
gingeropolous: I mean I could try it but then I can't imagine that dataset working better than true monero transactions.
-
gingeropolous[m]
i think both approaches are worth it
-
xmr-ack[m]
I think it would lose a lot of the value from test-net
-
gingeropolous[m]
honestly, a ML model should be able to do both
-
xmr-ack[m]
Let me post my feature-set ideas to the github proposal
-
jberman[m]
<xmr-ack[m]> "Correct, but using test-net or..." <- ok, but it would seem like you'd need to exclude your own data from the training set, no? cuz including your own data kinda defeats the point of matching any real world conditions?
-
gingeropolous[m]
i.e., one trained on fake data should be able to deconvolute one created from the bitcoin superimposed one
-
xmr-ack[m]
jberman[m]: Potentially, it depends on if the model overfits the training data or not. There are ways to combat this, such as hyperparameter tuning and reducing the number of parameters in the neural net.
-
xmr-ack[m]
Okay I just added the feature-set ideas to the proposal
MAGICGrants/Monero-Fund #15
-
xmr-ack[m]
These are just ideas not set in stone. If anyone finds an error or has a suggestion, please let me know!
-
Rucknium[m]
Another idea, maybe related to gingeropolous 's idea, is to leverage the real spend data from the Moser et al. (2018) paper. That data is outdated, however.
-
Rucknium[m]
In other words, reproduce the spending patterns from that data, but with current-version Monero transaction types. That's a lot of coding though....
-
xmr-ack[m]
Rucknium: I don't think I ever found their actual dataset, I know their github repo has the code to make your own dataset though. If you have it could you send it my way?
-
Rucknium[m]
jberman reproduced some parts of the data somehow
-
xmr-ack[m]
Rucknium: I think re-assessing the spending patterns could be very interesting. I'll look into that if I have time
-
jberman[m]
-
jberman[m]
Adding this to the jupyter notebook after step 46 will download a CSV of the spend times they used to calculate the gamma:
paste.debian.net/1232030
-
jberman[m]
have that result somewhere too will send it over pm
-
Rucknium[m]
Do they identify which transactions spend which outputs? Or only have the spend times available?
-
jberman[m]
log_spend_times pretty sure is just spend times, but they also identify which transactions psend which outputs
-
jberman[m]
think that query right above log_spend_times is basically just querying "what is the age of the output this transaction is spending" and aggregates the answer to that question
-
jberman[m]
for all tx's they know real spends for
-
xmr-ack[m]
<xmr-ack[m]> "Let me find a good paper for..." <-
home.cse.ust.hk/~taow/wf
-
xmr-ack[m]
-
xmr-ack[m]
-
rayka
hello
-
slave_blocker2
is this branch good to analise, to understand ringCT ?
github.com/SarangNoether/skunkworks/tree/rct3
-
UkoeHB
slave_blocker2: probably not, rct3 probably implies this paper
eprint.iacr.org/2019/508
-
UkoeHB
-
rbrunner
Thanks for the pointer. Let's hope this will get filled as fast as your first one once published.