-
Rucknium[m]
Meeting in less than one hour
-
one-horse-wagon[
Roger that
-
UkoeHB
-
UkoeHB
1. greetings
-
UkoeHB
hello
-
rbrunner
hi
-
one-horse-wagon[
Hello to everyone.
-
Rucknium[m]
Hi
-
tevador
Hi
-
UkoeHB
2. updates, what's everyone working on? looks like low turnout so might be a short meeting
-
Rucknium[m]
me: OSPEAD work
-
Rucknium[m]
In my CCS proposal I said "The upcoming hard fork, which does not yet have a fixed date, will include an increase in the ring size. The discontinuity that the hard fork creates can be leveraged to better understand how ring signatures work in pratcice [sic] on the Monero blockchain. Therefore, some of the research work will occur after the hard fork."
-
UkoeHB
me: finished unit testing legacy balance recovery with my seraphis lib, still on vacation until sept so working slowly, will probably make a new CCS next week
-
Rucknium[m]
Judging by the crash in on-chain transaction volume and the number of wallets that were not ready for the hard fork, we can safely say that the expected discontinuity has been achieved! 🎉🎉🎉🎉🎉
-
UkoeHB
I discovered that legacy balance recovery is 4-10x more work than seraphis balance recovery due to A) the key image import workflow for view-only wallets, B) the possibility of duplicate onetime addresses that needs to be handled.
-
tevador
I'm waiting for feedback on some Jamtis changes. In the meantime, I'm planning to implement a deterministic binning strategy as an alternative to UkoeHB's current code.
-
tevador
Some recent discussion happened here:
monero-project/research-lab #84 also tangentially related to time locks.
-
jberman[m]
been working on hard fork monitoring/cold wallet stuff. I think the crash in volume is primarily from the light wallet ecosystem (MyMonero, Exodus, Guarda, Edge, not sure of others), though it seems some people are still having sporadic issues in other wallets
-
UkoeHB
tevador: yeah I'll get there... tbh pretty worn out on making changes after a year of continuous development
-
Rucknium[m]
If anyone wants the empirical probability mass functions of the BTC&BCH<C&DOGE spent output age for each week since 2015, it is here:
rucknium.me/data/weekly-spent-output-age-empirical-pmfs.tar.xz
-
tevador
^ I'm planning to use this.
-
Rucknium[m]
tevador: Could you explain more?
-
tevador
From the datasets you collected, predicting the real spend-age distribution seems impossible. So I want to try a different empirical strategy.
-
tevador
Not fully fleshed out yet.
-
Rucknium[m]
Ok sounds good.
-
one-horse-wagon[
I thought the hard fork went very well. The issues seemed to be minor and came from those that did not update the software beforehand.
-
Rucknium[m]
Do we want to discuss possible research priorities for the next hard fork, whenever it is? In other words, research on things that could only be realistically implemented in a hard fork?
-
UkoeHB
sure we can move on
-
UkoeHB
3. discussion
-
UkoeHB
idk what priorities there are for next hardfork, maybe improving the defaul decoy selection algorithm?
-
rbrunner
Does that need a hardfork however?
-
Rucknium[m]
Priorities could be: (1) Seraphis, obviously (2) nlocktime removal (or not) (3) 10 block lock removal (4) making p2pool much more attractive than centralized pool mining (5) Fee discretization and its implications (6) Possible enforcement of a decoy selection algorithm (7) tx_extra issues
-
UkoeHB
perhaps BP++ will gain enough steam to be implemented
-
Rucknium[m]
No, decoy selection does not need a hard fork. It is "best" to be implemented in a hard fork, but not necessary
-
Rucknium[m]
jberman updated the decoy selection algorithm twice last year without a hard fork
-
rbrunner
Interesting, wasn't even aware
-
Rucknium[m]
"Best" as in it is 25% better to implement a new DSA at a hard fork ;)
-
UkoeHB
a large-scale overhaul should probably coincide with a hard fork for better adoption (which has privacy impacts)
-
Rucknium[m]
But much better to implement one ASAP as soon as we have a well-supported improved one.
-
Rucknium[m]
I think the privacy impacts of a poor DSA occur as we speak. Yes, there will be some issues with transaction non-uniformity as people update their wallet software, but that was also the case for jberman's fixes last year.
-
tevador
btw, the removal of the current lock time field would also simplify decoy selection
-
UkoeHB
tevador: really? you still need to keep track of historical locked outputs
-
UkoeHB
it only has an impact for seraphis where we get a clean slate
-
one-horse-wagon[
How much of a demand is there to get rid of the 10 block lockout?
-
Rucknium[m]
Pretty high demand. Haveno wants it gone or reduced. So does LocalMonero. Users also probably want it gone
-
Rucknium[m]
I would assume it would simplify things for Serai. kayabanerve , is that right?
-
ErCiccione
yeah it's probably the biggest hit for Monero's UX
-
ErCiccione
as far as i understood we also never got close to the current limit of 10 and the reasoning behind choosing exactly 10 is unclear. At least to me
-
ErCiccione
good to know an hard fork is not needed btw
-
Rucknium[m]
A hard fork is needed to change the 10 block lock AFAIK. A HF is not needed for decoy selection changes.
-
UkoeHB
Historically all known reorgs have been 2 or 3 blocks deep. Making the lock 10 blocks means there is a good safety factor in case of network instability that enables deeper reorgs.
-
jberman[m]
Fwiw the changes I made to the algo wouldn’t result in definitively identifiable pools of decoy selection algos, except for the one where if the change wasn’t made, 99% of rings would be compromised (the integer truncation one)
-
jberman[m]
I think a change to the algo that would result in identifiable pools without a HF needs a very high bar to pass
-
rbrunner
would *not* result I guess?
-
Rucknium[m]
We need to define "identifiable" precisely at some point
-
Rucknium[m]
In terms of probabilities
-
jberman[m]
Well both need a very high bar to pass. But I did mean what was written
-
rbrunner
Ah, yes, now I understand
-
rbrunner
We should not do something like that lightly
-
jberman[m]
Also sorry to derail, but I think the most critical next significant step we need to take post hard fork is getting security proofs for multisig/a more comprehensive audit completed with the aim moving it out of experimental. I think it’s worth reaching out to veorq for that
-
UkoeHB
that would be nice to have
-
one-horse-wagon[
UkoeHB: The 10 block lockout has served Monero well and I don't see how you can lower or eliminate it without risking major problems?
-
isthmus
Haha it is kind of a "Chesterton's Fence" situation
-
UkoeHB
-
Rucknium[m]
So what would be the next concrete steps for multisig? The MAGIC Monero Fund could put in some funds, possibly.
-
isthmus
A while back I tried to formulate a framework for approaching a potential reduction of the lock time, I dunno if it is helpful
-
isthmus
-
isthmus
I do not believe #2 to be correct anymore, based on subsequent work by hasu showing that lock time is not a strong mechanism against 51% attacks
-
isthmus
-
isthmus
Not all aspects apply to Monero (because the paper treats BTC mining as specialized-purpose equipment and RandomX is for general-purpose equipment, meaning that the switching costs are not the same). But much of it is very applicable
-
» isthmus ends ramble
-
Rucknium[m]
isthmus: Is it OK if I link that here?:
-
Rucknium[m]
-
isthmus
Yep
-
UkoeHB
ok we are at the end of the hour so I'll call it here, thanks for attending everyone
-
jberman[m]
<Rucknium[m]> "So what would be the next..." <- I'll be back with a plan next week :)
-
isthmus
Hey Ruck do you have viz for these PMFs or should I bake some up?
-
Rucknium[m]
isthmus: Yes I have some beautiful gifs if I do say so myself:
-
Rucknium[m]
-
isthmus
Oh hell yea there's a whole stats lecture in here
-
isthmus
These are quite beautiful
-
Rucknium[m]
I have some higher-resolution versions of the gifs if you want to see them.
-
isthmus
Yea for sure, I could stare at these things for a while
-
isthmus
-
isthmus
What's the "x" column in the data you linked to earlier?
-
Rucknium[m]
x is age. The unit is block. Or, rather, the target block time interval according to each coin
-
isthmus
Ah great that makes sense, thanks
-
Rucknium[m]
Note that "1" is actually "0" since I prepared these for the log plots. Zero as in confirmed in the same block, a "merlin" block, or less than half of the target block time, e.g. 5 minutes for bitcoin, since I rounded.
-
Rucknium[m]
Isn't merlin the term for block with out-of-order time stamps? Can't find a good reference now...
-
isthmus
Yea, that's the terminology I use
-
isthmus
First ones in Monero were documented a few years ago in some obscure corner of our wiki
-
Rucknium[m]
Ok. Citation: isthmus
-
isthmus
:D
-
Rucknium[m]
I didn't try to do any correction of those out-of-order blocks, in other words. The overall analysis was complicated as it is.
-
isthmus
Yea, I think that's an edge case that can be ignored for the purpose what these analyses are getting at
-
isthmus
How were the input data to generate these PMFs structured? (Just out of curiosity, to see if I might have some other uses for it)
-
Rucknium[m]
Can you be more specific? Do you mean the process or something else?
-
Rucknium[m]
The intermediate data is on the Research Computing Server by the way
-
isthmus
Ah let me just explain directly what I'm after instead of asking vague questions
-
isthmus
It is possible that NRL will soon move towards implementation of the unified heuristic framework for analyzing Monero’s transaction tree topology. We have sophisticated enough infra and a long enough (too long…) list of heuristics to work with.
overleaf.com/read/bxbpmwxgs
-
isthmus
At first this chain length analysis might not seem like a big deal (actually at first I thought it would not be very powerful) due to low sender / recipient fingerprint correlation. And then I realized, quite sadly, that change output chains are going to be where most of the information will be statistically loud enough to scream at you.
-
isthmus
The thing I’m curious about is a heuristic for change output chain thread count and length. For example, a hot wallet that makes 1000 transactions will probably not have 1 chain that is 1000 long, except in edge cases like an initial deposit with a big enough balance and strictly sequential transactions.
-
isthmus
What would we expect to see? 1000 transactions with 10 change chains that are an average of 100 blocks deep? Or 100 change chains that are an average of 10 blocks deep?
-
isthmus
I was wondering if your input data (which clearly had some input/output structure) contains the information to learn about the statistical distribution of various characteristics of change chains (also maybe convergence and some higher-order stuff)
-
isthmus
If it's low hanging fruit from the available data, it could be cool to get a read from other chains. But I wouldn't put much time into it, because I believe this is probably relatively dependent on many factors (perhaps most importantly the input selection algorithm)
-
Rucknium[m]
Here are the high-resolution gifs. The text of the document is slightly out-of-date compared to the doc with the low-resolution gifs. Also I can't get the log-log scale graphs to load on Firefox but for some reason they load OK on Tor Browser. But of course it takes a long time to load the page with Tor
-
Rucknium[m]
-
Rucknium[m]
isthmus: The intermediate data has the full transaction graph. I think that's what you want, right?
-
isthmus
Yeppers
-
Rucknium[m]
In fact a large part of the processing code was re-purposed code from this project, which directly analyzed the BCH transaction graph:
-
Rucknium[m]
-
Rucknium[m]
So I have the full tx graph edgelist for each coin somewhere
-
Rucknium[m]
It doesn't have any of the tx characteristics that are usually used to perform heuristic chain analysis to get the probably change outputs though. Just output -> tx -> output and amounts. Not even addresses. Just outputs defined by their position in the tx output field.
-
isthmus
👀
-
isthmus
Oh yea, I'll probably skip it then. I was already on the fence given the expected mediocre cross-chain representativeness, and I think that messing with attribution labels on a plaintext chain would just be a distraction from executing it on Monero
-
Rucknium[m]
isthmus: Did you see Egger et al. (2022) "On Defeating Graph Analysis of Anonymous Transactions"? I think it may have implications for the "heuristics framework".
-
Rucknium[m]
-
Rucknium[m]
I'm not very strong with graph theory though
-
isthmus
Yea, they're related to a degree. I don't think I came right out and said it in the doc, but one of the main motivators for the unified heuristics framework was to leverage all of the information available from fungibility defects to seed initial weights for bipartite graph analysis
-
isthmus
(which is how Egger et al formulate parts of the problem)
-
isthmus
The reason I had that in mind is because of some 2019-ish MRL research along that vein, see
youtube.com/watch?v=xicn4rdUj_Q
-
isthmus
If you wanted to start stacking 5 years of MRL work into a monster graph matching machine, I'd use the heuristics framework as preprocessing for bipartite graph analysis (i.e. initial seeds)
-
Rucknium[m]
My take-away from Egger et al. (2022) was that graph analysis was less powerful than I had thought., at least as a "global" attack. The million XMR question is if probability weights can strengthen graph analysis enough to make it substantially dangerous.
-
gingeropolous
a silly counter measure to the change chain might be something that tells the user "your output has been used by n txs".. though the 10 block lock sorta.....
-
isthmus
Sorry I just realized that my overleaf link above requires making an account. Here's a copy with no login
raw.githubusercontent.com/Mitchellp…rk_doc/main/heuristic_framework.pdf
-
isthmus
I started this doc in late 2020 and haven't updated it in quite a while, so it might be missing some new heuristics or maybe we fixed some
-
isthmus
@gingeropolous +1
-
isthmus
Did somebody do that recently? Maybe I saw something on reddit... Can't quite recall
-
Rucknium[m]
-
isthmus
🔥
-
Rucknium[m]
IMHO, users deliberately waiting until their outputs have been used as decoys in X transactions is not an optimal strategy, if used systematically. Since it means an adversary could just rule out those first X transactions.
-
isthmus
Agree, I decoy scanner is cool to watch but should not drive transacting habits
-
isthmus
anyways, unfortunately Egger et al's optimistic takeaway does not translate to the heuristics framework described in the doc, since NRL's work uses transaction metadata to establish priors for partitioning the graph by fingerprint, whereas the partitioning samplers in their work are oblivious to that information
-
isthmus
"partitioning" just being used in two very different contexts
-
isthmus
I gotta get back to work, will swing by later
-
Rucknium[m]
The MAGIC Monero Fund recently specifically outreached to one of the authors of the Egger et al. (2022) paper to see if they want to be funded for more Monero research. We'll see.
-
gingeropolous
yeah
-
UkoeHB
I discovered something unpleasant. On my machine it costs ~2ms per commitment to initialize generator caches for bulletproofs (
github.com/UkoeHB/monero/blob/a4ce3…eraphis/bulletproofs_plus2.cpp#L123 it's 64 generators per commitment, each of them needing one blake2b hash and one cryptonote hash-to-point). To get 128 commitments, that's a fixed cost of ~250ms the first
-
UkoeHB
time you touch BP code. Right now we only need 16 commitments because max outputs is 16, but with seraphis in the squashed model you also need to range proof the inputs. I am working with 128 commitments: 16 max outputs + 112 max inputs.
-
UkoeHB
kayabaNerve if elligator2 is significantly faster than cryptonote hash-to-point, this may be a good reason to use that.
-
UkoeHB
sorry 128 generators per commitment* since you need 2 at each index
-
UkoeHB
or maybe we just need a giant hash table baked into the source...
-
UkoeHB
524kB