-
UkoeHB
meeting 1.5hr
-
UkoeHB
-
UkoeHB
1. greetings
-
UkoeHB
hello
-
hyc
hi
-
rbrunner
Hello
-
Rucknium[m]
Hi
-
one-horse-wagon[
Hello.
-
ArticMine[m]
Hi
-
UkoeHB
2. updates, what's everyone working on?
-
dangerousfreedom
Hello. I'm still going on through all the math equations in Seraphis and working on the audits framework.
-
dangerousfreedom
s/on//
-
Rucknium[m]
Modifying OpenSats to make a fundraising campaign system for MAGIC (despite not knowing web dev 😶):
github.com/MAGICGrants/opensatswebsite . I am also happy to report that current MAGIC Monero Fund reserves are at 57,000 USD equivalent. That gives us a good buffer for grants so we don't get wiped out from a single grant. Thanks donors, whoever you are.
-
UkoeHB
me: I got distracted learning about thread pools and concurrent program design for most of the last week (slightly related to monero at least, since I want to figure out the best way to do balance recovery in the background using the current seraphis balance recovery model). In the middle of unit testing balance recovery for the legacy-seraphis transition. Full-featured robust legacy balance recovery has a lot of
-
UkoeHB
annoying edge cases...
-
rbrunner
Looking at the code I had a feeling it's possible you are more robust there than `wallet2` itself ...
-
ArticMine[m]
I have been looking at the cost of the ZCash spam attack in Monero
-
UkoeHB
Well a lot of the edge cases don't show up in practice, because real-world reorgs are pretty benign.
-
rbrunner
ArticMine: Is that ongoing, or do you have estimates already?
-
ArticMine[m]
It is ongoing but I do have some estimates.
-
UkoeHB
3. we can move to discussion
-
SerHack
Hi! :)
-
UkoeHB
ArticMine[m]: any you'd care to share, or want to hold off until you have a conclusion?
-
Rucknium[m]
IMHO, a good medium-term goal would be to perform a scaling stress test on a private testnet. I don't think it has been done recently. If it had been done a year ago or more, it would have caught the integer truncation bug that jberman found by code inspection.
-
Rucknium[m]
-
hyc
so we need an automated wallet to generate txns as fast as possible?
-
Rucknium[m]
Yes. And/or spoof system time. xmrack has a tx spammer
-
rbrunner
jberman told me that he wants to do something at least in the general direction of that shortly
-
hyc
we would also need testnet nodes over some distantly connected networks. these tests are easy to boost on a single high end server
-
rbrunner
E.g. building up a very large mempool and see how management code will react to that, to find bottlenecks
-
rbrunner
This should then also be able to show that my PR #8076 is indeed an improvement and does not get victim of one of those bottlenecks - if they exist
-
Rucknium[m]
xmrack 's stagenet spamming already found a small bug in RPC calls when the mempool was very large
-
rbrunner
I just have a gut feeling that good and realistic stress tests won't come cheap.
-
rbrunner
Those probably mean work :)
-
ArticMine[m]
Ramping up the short term median to the equivalent of the ZCash max blocksize can be around 50-70 K USD . If the attack is stopped for more than 100 min then the median resets, and the spammer has to start again.
-
ArticMine[m]
So the start and stop approach of the ZCash spammer gets very expensive.
-
Rucknium[m]
-
hyc
rbrunner: there's only a few dimensions of potential bottleneck. the main point is using realistic test hardware, and the time required to run a test
-
one-horse-wagon[
Wouldn't 4 or 5 decent computers, spread around the U.S. and Europe, running day and night for a month do a good stress test?
-
hyc
they can be load generators, sure. you also need some simulated users who can actually see the impact, e.g. if it slows down their UX
-
ArticMine[m]
The ZCash approach is far from optimal to attack Monero.
-
ArticMine[m]
I am more concerned with a maintenance attack where the short term median is maintained rather than grown. This is tricky because if the attack is stopping for over 100 min the median resets.
-
ArticMine[m]
So I am looking at ways to further harden against a maintenance attack.
-
hyc
raises the question of why the zcash spammer pauses instead of running continuously
-
rbrunner
As far as I know the biggest impact of the Zcash attack is rendering some wallets pretty much non-functional because they are not up to the task to process those "monster" transactions
-
rbrunner
and not in the numbers they occur
-
rbrunner
I think blockchain bloat is not their main problem, by far
-
hyc
but whatever, assume someone attacking monero will know about the median time constraints
-
UkoeHB
maybe the zcash guy needs to take breaks to rearrange funds
-
ArticMine[m]
Very good point. There is no reason for the ZCash spammer to do this
-
ArticMine[m]
... but it is a very strong defense for Monero
-
rbrunner
I have read as a short-time bandaid some wallets have stopped to even look at transactions with more than 20 or 50 outputs ...
-
ArticMine[m]
hyc: Of course which is why I am looking at maintenance
-
monerobull[m]
rbrunner: Jup. Their most popular wallets use the official SDK though, which i think hasn't been updated yet
-
Rucknium[m]
The 10 block lock also makes things more difficult for a spammer, but that's something that can be overcome.
-
rbrunner
Yes, where Zcash is more or less begging to get spammed, Monero already has several defenses in place, and altogether certainly does not look like an easy victim
-
ArticMine[m]
monerobull[m]: In Monero the limit is 16 outputs except for coinbase
-
rbrunner
Of course we still should try to improve, no doubt
-
monerobull[m]
ArticMine[m]: Does that mean i could have coins i don't know about
-
one-horse-wagon[
Rucknium[m]: Doesn't the 10 block lock only apply to a single wallet? A spammer could use the network to tx many wallets, one right after the other, couldn't he?
-
sech1
but coinbase can have unlimited outputs, so a dedicated spammer can solo mine blocks with ~7700 outputs per block
-
sech1
and then use these outputs
-
monerobull[m]
one-horse-wagon[: You also need to fill those wallets first
-
sech1
300k / 39 ~ 7700 (one output is 39 bytes on average)
-
UkoeHB
hmm, with the advent of p2pool it might be worthwhile for scanning to have an 'ignore coinbase' toggle
-
rbrunner
I think wallet2 has this? Not sure.
-
sech1
wallet2 already has this toggle
-
UkoeHB
oh
-
sech1
set refresh-type = ...
-
sech1
in CLI wallet
-
rbrunner
Right, that was it
-
UkoeHB
TIL
-
sech1
set refresh-type = no-coinbase
-
Rucknium[m]
one-horse-wagon: Yes. No "too" difficult. But it bumps the difficulty up a bit for a weekend warrior hacker
-
monerobull[m]
A big percentage of Lightning went down this week to a 998/999 multisig transaction. Our multisig is limited to like 100, right?
-
UkoeHB
monerobull[m]: 16, and it is all off-chain
-
ArticMine[m]
<sech1> "300k / 39 ~ 7700 (one output is..." <- Interesting but then the spammer is not able to sustain the attack. So we are back to resetting the median
-
monerobull[m]
Would this fall under scriptless script?
-
UkoeHB
I think you can get to 30-60 group members with FROST-style key gen (kayabaNerve ?)
-
rbrunner
As I saw with my TechWallet, if you constantly send transactions with many outputs to yourself, in a few hours you can rack up hundreds of outputs easily
-
Rucknium[m]
monerobull: I think that was basically due to an outdated configuration on an "alternative" BTC node implementation. It wasn't a computational bottleneck. But it does once again point to risks with multiple node implementations.
-
rbrunner
But you will spend then all in a burst attack of sorts, and then it's back to square 1
-
hyc
-
sech1
ArticMine[m] why would the spammer be unable to sustain it? If he has enough hashrate to mine blocks, he can mine any size block containing only coinbase outputs, and use them for blocks that he doesn't mine.
-
sech1
actually, 0.6 XMR is enough only for ~3600 1in/2out transactions with current fees...
-
monerobull[m]
Escapethe3r, since you're reading this for your writeup anyways: the write-ups are great, keep em coming :) also agree with retiring TA reports in favor of other content
-
ArticMine[m]
It comes down to the rate of tx generating vs percentage of total hashrate under the spammer's control
-
ArticMine[m]
On can estimate this
-
sech1
my math was wrong, it's enough for ~19500 transactions
-
ArticMine[m]
Per mined block
-
ArticMine[m]
So a stockpiling attack?
-
sech1
what's that?
-
sech1
I can imagine an attacker mining a block and submitting 7.7k transactions to mempool right after that. And again and again
-
ArticMine[m]
The attacker first builds up a supply of outputs
-
ArticMine[m]
Then uses the stockpile to attack
-
sech1
oh btw, coinbase outputs are locked for 60 blocks
-
sech1
so if such attacks ever happens, there's 2 hours advance notice
-
rbrunner
Lol. Cutting it close :)
-
UkoeHB
sech1: would be nice to remove that for seraphis
monero-project/research-lab #104
-
monerobull[m]
sech1: Isn't this whole PoW thing an incentive mechanism to... Not do that
-
monerobull[m]
sech1: Emergency hardfork every time
-
ArticMine[m]
This is a good reason to leave the coinbase lock time alone or even increase it
-
sech1
yes, solely because coinbase can have unlimited number of outputs
-
UkoeHB
I don't the coinbase lock time helps at all with this
-
ArticMine[m]
Also coinbase is not private. So good old censorship becomes a defense
-
rbrunner
All it does is shifting the attack 2 hours into the future *once*?
-
UkoeHB
if the attacker is periodically making blocks, it doesn't matter whether their coinbase outputs are 10 blocks old or 1000 blocks old, either way once the setup period is over the rate they can spend outputs is the same
-
monerobull[m]
Not if you increase lock time to infinity 😅
-
hyc
true, so for this it is irrelevant. but a the lock time is a good defense against spending outputs that disappear due to a reorg
-
ArticMine[m]
Yes there is advance notice of attack and which outputs are going to be used
-
rbrunner
Hmm, sure, but will this knowledge give you advantages as a defender?
-
sech1
if outputs are used in 1in/2out, it's hard to filter them out because of decoys
-
ArticMine[m]
In any case the attacker has to build up an arsenal of outputs that are not private and is therefore a target for the defense
-
sech1
so no, scrap this
-
hyc
feels like this discussion is getting lost in the weeds
-
UkoeHB
if anything, there should be a bonus weight on coinbase outputs to account for the network costs, if they are considered problematic
-
ArticMine[m]
Yes
-
UkoeHB
although that would work at cross-purposes to p2pool, a hard design balance
-
UkoeHB
anyway, we are at the end of the hour I so I think we can close out the meeting; thanks for attending everyone
-
hyc
thanks UkoeHB for facilitating
-
UkoeHB
-
UkoeHB
the latest updates to jamtis I expect to mitigate this to a great extent (perfect forward secrecy for enotes owned by any non-public address, and public addresses can't be linked together)
gist.github.com/tevador/50160d160d2…ment_id=4289801#gistcomment-4289801