--- layout: post title: Logs for the Monero Research Lab Meeting Held on 2018-07-09 summary: MRL work, and miscellaneous tags: [dev diaries, crypto, research] author: el00ruobuob / sarang --- # Logs **\** hey **\** Our pal suraeNoether is unavailable today, so this inmate will be running the asylum today **\** Let's go around the room and mention any present or ongoing work of interest to the group **\** In the spirit of fairness, I'll go first **\** hi **\** Waiting on reports from our reviewers, all of which are finalizing with a few delays due to last-minute checks **\** (on BPs, that is) **\** There was a delightful twitteresearcher who pointed out lack of small-subgroup checking **\** Reviewers also noted this, but were unable to identify an exploit **\** hi **\** Regardless, this is now included in the code **\** reviewers clearly lack imagination of twitterati **\** As always, we welcome external research but appreciate responsible disclosure (the lack of which makes a researcher ineligible for hackerone moneyz) **\** Relating to the audit, there was some work on other aspects of the BP code, like generator specifications, fixes to multiexp, etc **\** I posted some code and other materials to my research-lab repo, including notes from my summer course **\** I'll be giving a talk in Portland on fungible digital assets, and another at defcon **\** I got a recent email from someone with an idea for including a transaction-specific subaddress within transactions, which could be used for (among other things) refunds **\** or returns for misdirected funds to exchanges **\** Finally, I've been working through additional sublinear ring sig material and some math on non-power-of-2 bulletproofs (a future thing) **\** why NPO2? **\** Hello everyone. Sorry I'm late **\** does that subaddress email come with the condition of restricted circulation? **\** hyc: NPO2 gives better verification efficiency, which is relevant for any later work involving larger circuits **\** ah cool **\** knaccc: I can share the info if desired **\** just need to check if the researcher wants their name released **\** yes a fedorapaste or something, with name redacted, would be interesting for discussion **\** Yeah, he's been emailing me just before the meeting. When I hear back I'll make a paste of the info **\** Anyway, that's my work this week **\** Move on to others, or questions on my stuff? **\** sounds good **\** I know suraeNoether has been working on nonprofit stuff and also recently on some churn analysis. We really need information on output depth, which a few folks said they were interested in coding **\** What is output depth ? **\** Oh, link to my repo with that material: https://github.com/SarangNoether/research-lab **\** The distribution of coinbase outputs tracked back through the spend tree of a transaction **\** It's useful as parameters for churn analysis **\** Is this something that's been pending for a while ? **\** Kinda rings a bell... **\** yup **\** If it's a few folks that siad they would, then flaked out, I can do it. If it's a few folk that recently said so and are doing it, I won't. **\** Not sure if flaked, or busy, or what **\** I have little experience in lmdb, or I'd jump on it **\** clearly moneromooo sits around all day doing... very little =p **\** Well, remind me whenever you feel like you waited enough :) **\** lol ok **\** I can give more details after meeting **\** ty **\** if you want to poke and prod at the blockchain before writing actual code, I suggest the CLI in py-lmdb **\** hyc: I thought our implementation was non compatible? **\** eh? you point the python module at out liblmdb, no problem **\** at our **\** Ah ok, I had tried a while back to no avail, and had read that we were using too new a version or something **\** py-lmdb itself works great **\** with any recent version of liblmdb **\** great **\** I'll revisit it then **\** Who else wishes to share anything of group interest? **\** on the subject of LMDB, I've been doing a bunch of benchmarking on $secret $systems lately **\** orly **\** point of interest - common filesystems today are all journaling filesystems - they log FS ops before they perform them **\** to give them crash resilience. With LMDB such logging is superfluous. turns out you can creatae Linux ext4 filesystems without journals **\** which gives a nice performance boost **\** also, I've got a patch that lets LMDB use a raw device directly, without any filesystem at all **\** on a bulk load test (loading records sequentially, as fast as possible) this is 2x faster than ext4 with no journal **\** oh wow **\** it turns out you spend a lot of time just growing the file, on a filesystem **\** that's what I can share at the moment. actual results/numbers are under NDA **\** So LMDB on a dedicated GNU / Linux partition **\** yes **\** very cool **\** is there a way to ask an commonly used filesystems to just allow raw access to some regions? **\** With way faster sync for Monero **\** any\* **\** Throwback time... here's the email regarding subaddys: https://paste.fedoraproject.org/paste/KTgF84V-pHPL-dO8V8mAjw **\** knaccc: unfortunately not **\** doh **\** you create a filesystem, it owns all that space **\** Researcher asked to be identified as "that Russian dude" **\** won't give it to you :P **\** haha **\** BTW, iDunk reported much faster sync on HDD with some particular options. **\** i think it was sneurlax who was writing up spend tree code in python **\** Just needs... a lot of data points. To fix a new default. **\** re: churn, i have been planning to put together a 'best practices' infographic that collects some of surae's findings, as well as other usage guidelines, but work keeps eating my headspace. if ppl want to help maybe reach out and we can coordinate together **\** scoobybejesus: righto, didn't see any final product, unless there is and I don't know about it **\** rrol[m]: that'll be great; just waiting on some final numbers **\** is there a way to setup a partition without root? then on make install, partition sets up automatically? **\** oneiric\_: I think it always requires root access **\** soon™ -- do you want the mining pool traceability analysis first or the generalized spend tree code first? **\** damn, very cool work hyc **\** Kinda loses the point of a fs, which is to allow files to live in parallel. So you have to preallocate loads of space to your raw partition. **\** thanks. I guess mostly theoretical for now, impractical for most people to deploy **\** rrol sarang: I also want to see what's known about churning for my Defcon talk **\** sneurlax: getting the distribution of output depths (back to coinbase) for a given txn sample will be the most relevant right now **\** sgp\_[m]: righto **\** oh, and like sarang, I'll be giving a talk at defcon. unlike sarang's. **\** I am not so sure this is impractical to deploy **\** i think thats really exciting you're giving a talk about fungibility at defcon. from what i've seen, people change their mind on that topic fairly easily once presented with some evidence **\** "people" == people that think btc is fungible **\** Yeah, I think it'll be really relevant at the Portland event too, which is attended by a very nontechnical audience **\** I'm shifting my language from private to fungible more and more **\** ^good **\** less overtones/baggage? **\** Telling people how much it would suck if your salary wasn't exchangeable because of some ransomware crap you had nothing to do with **\** oneiric\_: easier to explain why people should care **\** My favorite paying for a meal with two $20 bills **\** In the US **\** fungibility requires a weaker form of untraceability than privacy though **\** sure **\** knaccc, in cryptocurrency though? **\** and I still talk about privacy too **\** so as long as it's not an admission of defeat :) **\** knaccc: weaker, how so? **\** I assume knaccc means breaking links between outputs **\** not necessarily identities of use **\** I use physical coinsas my example, since they have no serial numbers (as opposed to paper bills) **\** privacy can be exposed after the fact **\** weaker is fine for something like cash imo. there are serial numbers so it may only be 99.9999% fungible. with cryptocurrency its either private or extremely public **\** fungibility counts in the moment more **\** very good point **\** In many countries fiat is fungible by law **\** A fun topic, but to keep us on track... **\** Are there other research topics on anyone's plate? **\** (I'd love to continue talking fungibility afterward) **\** ArticMine, as in no serial numbers on bills? **\** I was interested to know if anyone thought that a 38% reduction in wallet output scanning time was significant enough to justify altering the one-time output public key construction. UkoeHB and vtnerd had some interesting comments which I've incorporated into this: https://paste.fedoraproject.org/paste/h069cKbPYUC3ixgVJIPVYw/raw This is very low priority of course **\** I need to think more about changes to any security properties by removing the hash and replacing with a sum in this way **\** yes, I'm sure it would need a thorough security analysis. That's why I was wondering specifically if people thought 38% was enough to bother looking into it **\** To decide whether it's worth it, you'd need to give actual speedup, not speedup for a particular step. **\** /win/win1 **\** moneromooo true, I'm sure there are other factors that I'm not taking into account **\** Seems the topics are winding down a bit, but interesting on all counts **\** Well, thanks to all for attending today, and let's continue the discussions now that the meeting is formally concluded! **\** ^^ **\** thanks everybody :)