monero-project / meta

A Meta Repository for General Monero Project Matters
164 stars 69 forks source link

Monero Research Lab Meeting - Wed 19 June 2024, 17:00 UTC #1025

Closed Rucknium closed 2 months ago

Rucknium commented 2 months ago

Location: Libera.chat, #monero-research-lab | Matrix

Join the Monero Matrix server if you don't already have a Matrix account.

Time: 17:00 UTC Check in your timezone

Main discussion topics:

  1. Greetings

  2. Updates. What is everyone working on?

  3. Stress testing monerod

  4. Potential measures against a black marble attack.

  5. Research Pre-Seraphis Full-Chain Membership Proofs.

  6. Any other business

  7. Confirm next meeting agenda

Please comment on GitHub in advance of the meeting if you would like to propose an agenda item.

Logs will be posted here after the meeting.

Meeting chairperson: Rucknium

Previous meeting agenda/logs:

1022

Rucknium commented 2 months ago

Logs

< r​ucknium:monero.social > Meeting time! https://github.com/monero-project/meta/issues/1025

< r​ucknium:monero.social > 1) Greetings

< isthmus > Heya

< rbrunner > Hello

< k​ayabanerve:monero.social > 👋

< vtnerd > hi

< r​ucknium:monero.social > 2) Updates. What is everyone working on?

< spackle > hi

< isthmus > I did some more work on/with my library for detecting a particular anomaly created by some non-wallet2 codebase that caches decoys and reuses them (across hundreds or thousands of transactions) https://pypi.org/project/ringxor/

< r​ucknium:monero.social > me: Mostly Stressnet things. I wrote a Shiny app to collect and display stressnet data at https://monitor.stressnet.net/ . Set up a stressnet explorer at https://explorer.stressnet.net/ . Wrote a transaction spamming script ( + tested jeffro256 's new feature to make "outputs pay for fees" in a tx).

< jberman > me: continued the fcmp trim_tree algo implementation

< k​ayabanerve:matrix.org > I presented at Monerokon and have an update on Veridise.

< rbrunner > Hmm, that stressnet explorer gives me "502 Bad Gateway" right now. Already spammed to death? :)

< r​ucknium:monero.social > 3) Stress testing monerod https://github.com/monero-project/monero/issues/9348

< spackle > testing is in progress

< vtnerd > I finished stress testing LWS remote scanning. Everything looked as expected except for one outstanding bug report (unrelated to remote scanning). Still waiting to hear back on that

< r​ucknium:monero.social > The node died earlier. Maybe the explorer is dead too. `xmrblocks uses more RAM and CPU than I expected.

< vtnerd > also working on updating the serialization code again, will probably reduce the one PR a bit so that hopefully some more reviews (other than jeffro, thanks!) will come in

< e​msczkp:matrix.org > Hi everyone, I hope my message gets through. I'm Emanuele Ph.D, I worked on the implementation of the compressed sigma-ipa and compared it with bp ipa

< r​ucknium:monero.social > We already got reliable reproduction of out-of-memory error when a stressnet node has lots of connections: https://github.com/monero-project/monero/issues/9348#issuecomment-2170629015

< r​ucknium:monero.social > By boog900

< r​ucknium:monero.social > emsczkp: Hi! Do you want to bring up a topic at this meeting again? More discussion from you is welcome :) Maybe you can discuss at the FCMP agenda item

< r​ucknium:monero.social > Any Monero protocol developers who want to test performance patches can sync a node to stressnet. It's a good time now to test. AFAIK we want to run stressnet for about two months. Discussion happens in #monero-stressnet:monero.social and ##monero-stressnet on IRC

< 0​xfffc:monero.social > ( hi )

< e​msczkp:matrix.org > thanks you r​ucknium, i'll discuss at point FCMP

< rbrunner > Is the traffic on stressnet now "at maximum" already?

< r​ucknium:monero.social > No. I don't know where the maximum will be, but spackle is still sending out txs

< rbrunner > Or all there plans to make happenings like "Now all we all spam together"?

< rbrunner > Alright, will follow the Matrix room to learn more!

< r​ucknium:monero.social > AFAIK, the spam timing will be loosely coordinated. Probably spackle can spam enough all by himself, but others can add more.

< rbrunner > Don't want to complain, but a single source of transactions is probably ... not very typical :) Except if we have a spam wave, that is

< r​ucknium:monero.social > That is true. I have 50,000 outputs ready to go into a spamming cycle. That would be about 75MB of txs in the txpool. The stressnet spamming started about two hours ago. I think we will see how things go and adjust.

< r​ucknium:monero.social > 4) Potential measures against a black marble attack https://github.com/monero-project/research-lab/issues/119

< r​ucknium:monero.social > I don't really have anything to add to this agenda item right now. I think I will have the update that gives Alice a budget constraint by next meeting.

< r​ucknium:monero.social > 5) Research Pre-Seraphis Full-Chain Membership Proofs. https://www.getmonero.org/2024/04/27/fcmps.html

< r​ucknium:monero.social > kayabanerve: , emsczkp

< k​ayabanerve:monero.social > Veridise has completed a proof of the divisor technique. Their proof does force modifications to my R1CS gadget yet nothing notable here. I hope to, by next meeting, have a quote for the review of the proofs.

< a​aron:cypherstack.com > Is this publicly available?

< r​ucknium:monero.social > Fantastic!

< k​ayabanerve:monero.social > Review of the R1CS gadget, as a specification, may or may not fit into the allocated hours. It may require an extension, say +5h (of 24h allocated) which would incur a further cost.

< k​ayabanerve:monero.social > The R1CS gadget, which needs updates, accordingly may be done on a distinct contract OR the work there will continue next week on the current SoW, once I do my updates. We're seeing what's best now.

< e​msczkp:matrix.org > I just wanted to say that my implementation shows a 50% optimization on verification times compared to the BP's IPA

< k​ayabanerve:matrix.org > Aaron Feickert: Not yet. I asked for them to clarify some ambiguous notation. It's not breaking, it's just a bit wonky to read. Once I have that final PDF, or at least their confirmation that the one thus far shared is okay to publish (not an internal preprint), I'll share it. Ideally a day or two.

< k​ayabanerve:matrix.org > emsczkp: Would you please share a link and clarify if you're delaying the verification to a final multiexp or not?

< k​ayabanerve:matrix.org > (to the implementation. I'd be shocked if saving the inversions was so impactful)

< e​msczkp:matrix.org > I can share the repositories. Just a second, I'll make it public. I haven't implemented the multi-exp version yet and I'm working on it

< k​ayabanerve:matrix.org > I'll further clarify I'm holding off on soliciting quotes for further review until I do have the PDF to be shared, as necessary to get quotes. So ideally, in a day or two I can solicit quotes, and ideally we have them Monday for the meeting Wednesday? That somewhat applies weekend quotes, so the review quotes may be up to the wire on the meeting :/ Apologies.

< r​ucknium:monero.social > kayabanerve: That sounds good to me. Thanks for doing all the coordination.

< e​msczkp:matrix.org > this is the repo https://github.com/EmanueleSc/IV-IPA/ , the name is misleading because it would be the final idea... meanwhile "inner-sigma" i.e., the compressed sigma-ipa, and "inner" i.e., the BP IPA are implemented. I can share screenshots of benchmarks

< a​aron:cypherstack.com > Is this approach formalized anywhere?

< k​ayabanerve:monero.social > I'm also soliciting review of the GBP proofs, and have been for a week or so. There's one candidate in mind so I'm hoping that works out. Else, it'll be another candidate spread, likely Goodell and one or two other groups.

< r​ucknium:monero.social > Aaron Feickert: Scala, E., & Mostarda, L. 2024, Efficient inner-product argument from compressed $sigma$-protocols and applications. Paper presented at International Conference on Advanced Information Networking and Applications. https://moneroresearch.info/index.php?action=resource_RESOURCEVIEW_CORE&id=221

< e​msczkp:matrix.org > yes, the approach is formalized here https://moneroresearch.info/index.php?action=resource_RESOURCEVIEW_CORE&id=221&browserTabID=

< k​ayabanerve:monero.social > With GBP proof review, we can move to auditing. With the divisor gadget also signed off on, we can move to its entire circuit?

< r​ucknium:monero.social > ^ I think that's the paper

< k​ayabanerve:monero.social > So progress being made on a few ends there.

< k​ayabanerve:matrix.org > I'll ask Aaron Feickert, who is welcome to reply privately, if

< k​ayabanerve:matrix.org > 1) They're happy with the notation in their proofs and are fine with me sending them off as-is. I assume so yet will double check.

< k​ayabanerve:matrix.org > 2) They reached out to the original authors (and specifically noted the H_i extraction)

< k​ayabanerve:matrix.org > Oh, and 3) If they can confirm again (I did ask back in the day), the cross-product issue preventing more efficient H_i extraction is non-trivial and we should move forward with the protocol as-is.

< a​aron:cypherstack.com > 1. The report made available at the CS repository should be fine for review by anyone interested.

< a​aron:cypherstack.com > 2. We did reach out to the original authors (in early May), but did not hear back.

< a​aron:cypherstack.com > 3. Correct, but I would be thrilled if someone found a way around this limitation :D

< k​ayabanerve:matrix.org > In that case, I won't push it and will move forward with review as-is.

< a​aron:cypherstack.com > That being said, I'd be shocked if there weren't typos in the notation somewhere...

< a​aron:cypherstack.com > (but there are none I know of)

< k​ayabanerve:matrix.org > I want to personally try out the above IP A, as an experiment on the verification times, as it'd save a few inversions. The claims of saving verifier scalings/50% are presumed notational artifacts at this time and not expected IRL.

< k​ayabanerve:matrix.org > I literally implemented it off your notation >:(

< k​ayabanerve:matrix.org > That implies correctness

< k​ayabanerve:matrix.org > Or dyslexia on my end.

< a​aron:cypherstack.com > Heh, I mean typos in general. Sorry, didn't mean to imply more!

< e​msczkp:matrix.org > k​ayabanerve explains so will you test the solution?

< e​msczkp:matrix.org > sorry but I always have the "federation problem" on the server and it's difficult to follow the chat perfectly

< k​ayabanerve:matrix.org > https://libera.monerologs.net/monero-research-lab/20240619

< k​ayabanerve:matrix.org > Refresh that every minute or so, as a workaround

< k​ayabanerve:matrix.org > I will try it out with FCMPs specifically, as an experiment. If it saves a sufficiently notable amount of time, I'd likely request quotes as necessary to evaluate if we have the bandwidth to also move forward with it.

< e​msczkp:matrix.org > ok thanks for the effort, I'm waiting for news and I hope that my contribution is the one expected in order to move forward

< r​ucknium:monero.social > We can end the meeting here. Thanks everyone.

< k​ayabanerve:matrix.org > I'd likely need to see those inversions save 5-10+%. The inversions are expensive, yet I'm not convinced they sufficiently weigh considering the amount of scalar matrix muls we currently face.

< k​ayabanerve:matrix.org > That's off the total proof, not just the IPA.

< r​ucknium:monero.social > Discussion can continue of course :)

< e​msczkp:matrix.org > kayabanerve: Do you have a formal specification I can refer to? I would like to know more

< e​msczkp:matrix.org > I know you have implemented bp+ , and are addressing GBP. I would like to have some material if possible

< a​aron:cypherstack.com > You mean IPA challenge inversions? Those can also be batched, so as to replace multiple inversions with a single inversion and sequence of multiplications

< a​aron:cypherstack.com > (assuming this is what you meant)

< k​ayabanerve:monero.social > My looking into spending the time and effort on this, which expends limited bandwidth, would likely have the aforementioned reward necessary. The current IPA proof itself is available at

< k​ayabanerve:monero.social > https://github.com/kayabaNerve/fcmp-plus-plus/blob/develop/crypto/generalized-bulletproofs/src/inner_product.rs

< k​ayabanerve:matrix.org > I'm pulling up the benchmark command, one moment...

< k​ayabanerve:matrix.org > Sorry, I became quite distracted. I sent on monero.social the link to the current IPA (see logs). The benchmarks can be run with cargo test --all-features -p full-chain-membership-proofs -- --nocapture from https://github.com/kayabaNerve/fcmp-plus-plus/.

< k​ayabanerve:matrix.org > emsczkp:

< e​msczkp:matrix.org > Thank you for the repo, i'll do some experiments on the ipa

< k​ayabanerve:matrix.org > *--release

< k​ayabanerve:matrix.org > One should also benchmark with the --release flag, added after test in the above command.