-
selsta
.merges
-
xmr-pr
8061 8232 8239 8240 8241 8245 8246 8247 8254
-
moneroextremist[
any update on seraphis release date
-
selsta
luigi1112: pls pls pls cli + gui merges
-
UkoeHB
moneroextremist[: far in the future
-
jeffro256[m]
> restricted-rpc is to avoid fingerprinting and also disable things like start/stop mining and stopping the daemon
-
jeffro256[m]
selsta I meant that MD5 is not safe for authentication because its so easy reverse an MD5 hash, so any password is not safe and anyone could start/stop mining if they had challenge data and the hash
-
selsta
oh ok, I see
-
jeffro256[m]
Also how does restricted-rpc prevent fingerprinting?
-
selsta
it removes specific data from get_info that can be used for fingerprinting
-
jeffro256[m]
Ahh yes I forgot about that good point
-
jeffro256[m]
selsta do you know of anyone working on TLS for RPC or the levin protcol?
-
jeffro256[m]
I know vtnerd was doing something called the Noise protocol, which adds a bunch of noise to Levin packets
-
selsta
jeffro256[m]: did you do ./monerod --help and grep for ssl?
-
selsta
there are already options that's why I'm confused
-
selsta
Noise protocol is for P2P traffic and not RPC
-
jeffro256[m]
Oh wow how did I not know about ssl for rpc
-
jeffro256[m]
thats cool
-
jeffro256[m]
i did know noise was for p2p
-
luigi1112
whoa triple plx
-
luigi1112
pls
-
luigi1112
.merges
-
xmr-pr
8061 8232 8239 8240 8241 8245 8246 8247 8254
-
luigi1112
.merges
-
xmr-pr
Merge queue empty
-
gingeropolous
look at all them merges!
-
selsta
.merge+ 8248 8249
-
xmr-pr
Added
-
mj-xmr[m]
Hey, Management, which channel is for
repo.getmonero.org ? I'm getting error: 500
-
moneromooo
It ran out of disk :S I'll see if I can find what's filled it.
-
moneromooo
Looks like it's 149 GB of website tarballs for some reason. Not sure if deleting most of them would break it...
-
moneromooo
All dating from today so I can't even nuke old ones.
-
moneromooo
There's more space now. If anything breaks, let me know, so I know even if I have nfi how to fix :)
-
moneromooo
Especially to do with the site repo, since it's the one I nuke stuff in.
-
moneromooo
It's also a temp solution, since I don't know why these things have been accumulating in the first place...
-
ErCiccione
tarballs for the website should be in their dedicated box IIRC
-
ErCiccione
binaryFate ^
-
moneromooo
It's tarballs made by gitlab.
-
moneromooo
I suspect test "builds".
-
moneromooo
lol, 1.7 million users. Such spam.
-
moneromooo
Sad gitlab doens't make a one click nuke button for these gobshites.
-
kayabaNerve
How is mask normalization handled with BP+? I see where output keys are normalized for comparison against the pseudoOuts yet I don't see where it normalizes the pseudoOuts.
-
kayabaNerve
And is that the only consensus change introduced besides the BP format itself? I looked over the diff and just wanted to confirm that was it.
-
moneromooo
Oddly, it looks like gitlab itself removed those cache files now. I guess it was a temporary "need a lot of disk right now".
-
moneromooo
Or my removing some stuff made it reset the cache. Either way, there's ample free space again and it seems to still work.
-
gingeropolous
xmrchain node uptime 48 days. just started current master
-
UkoeHB
kayabaNerve: IIRC the pseudoOuts are not normalized. Pre-multiplying the output commitments by 1/8 is a time-saving measure since BP+ wants to multiply them by 8.
-
kayabanerve[m]
... right.
-
kayabanerve[m]
Except they still do the equivalence check
-
kayabanerve[m]
Which means that the inputs, which are either of form 1 or 1/8, are checked against the outputs multiplied by 8 to 1
-
kayabanerve[m]
Doesn't that mean amounts get nuked with only 1/8th being spendable?
-
UkoeHB
hmm good question
-
kayabanerve[m]
... and since that's a multiplicative inverse, doesn't that mean the input amounts become incredibly high and effectively an infinite mint?
-
moneromooo
I don't know about any normalizing (unless that means reduction ?) but the 1/8 is to make sure the verifier can't ever get anything not in the main subgroup.
-
kayabanerve[m]
I'm referring to the multiplication by cofactor
-
kayabanerve[m]
Because I understand it's done here to ensure the correct subgroup is used but it still effects the b value directly
-
moneromooo
Well, if you think there might be an exploit, you'd ask luigi1111 (or, if still around somewhere, sarang).
-
kayabanerve[m]
I also understand this never would've made it to prod but I'm pretty sure this is on master with a stagenet height usable for testing?
-
kayabanerve[m]
moneromooo: My comment is the second anyone tries to use this they'll be spending commitments multiplied by INV_EIGHT which isn't feasibly valid in the slightest
-
kayabanerve[m]
I'll rebuild my node later (possibly tomorrow) and try it out. If it immediately breaks then... Yeah. Else I'll try to figure why it isn't breaking and what line I'm missing.
-
luigi1112
the equivalency check is after multiplying by 8 no?
-
luigi1112
amount -> *inv8 -> *8 -> check
-
sethforprivacy
IIRC rbrunner has this running on a private testnet without issues sending transactions kayabanerve
-
kayabanerve[m]
luigi1112: Right but the issue isn't with the outputs
-
kayabanerve[m]
It's with the inputs
-
luigi1112
that was my assumption
-
kayabanerve[m]
Because the outputs are saved as *inv8 and not *8 again when used as inputs...
-
kayabanerve[m]
luigi1112: I know saw a mul by cofactor on the outputs
-
kayabanerve[m]
* I only saw a mul by cofactor on the outputs
-
luigi1112
oh I see
-
kayabanerve[m]
Not to mention if it was on the inputs, we'd have to know which form they were (1 or 1/8)
-
moneromooo
kayabanerve[m]: maybe you could add a test showing how to exploit that (and then if the test fails, we have a guide for fixing it).
-
kayabanerve[m]
So then the thing is we have to get them from the block as 1/8 yet save them to disk as 1 yet I didn't see code doing that. They looked to be copied but I may have just missed the pointer handling.
-
moneromooo
Granted, the core tests are a bit of a pita to write...
-
kayabanerve[m]
moneromooo: I do hear you. It's just not an exploit. It's "this shouldn't work even without any trickery, with an honest wallet". Seth For Privacy: suggested it was running on a local net
-
kayabanerve[m]
So I'm more curious what I'm missing then...
-
moneromooo
OK, I'm not sure what you're talking about exactly, but I know where there's one *8 to match a 1/8, miht be the one you're missing:
-
kayabanerve[m]
-
moneromooo
in expand_transaction, in cryptonote_core.cpp IIRC
-
moneromooo
That's when loading a tx from serialized format.
-
kayabanerve[m]
moneromooo: This would be it if I'm just missing it, thanks :)
-
UkoeHB
-
moneromooo
Hrm. I remembered wrong actually...
-
kayabanerve[m]
UkoeHB: Right, for outPk
-
moneromooo
It's a mul by 1/8.
-
kayabanerve[m]
But when that outPk is saved to disk, and eventually loaded as a ring member... It'll be aG + bH * INV_EIGHT
-
UkoeHB
oh hm
-
kayabanerve[m]
Which means that the pseudoOut will need to be for bH INV_EIGHT
-
kayabanerve[m]
Which means you'll be spending a completely disparate amount
-
luigi1112
seems like that should fail any test param
-
kayabanerve[m]
Which means either it's saving to the disk the *8 form, yet the line you quoted is on a copy, or it has to check every ring member it loads for normalization and repeat *8, voiding any performance savings
-
kayabanerve[m]
luigi1112: Right EXCEPT this will pass BP just fine
-
UkoeHB
this mul 1/8 optimization added so much spaghetti, I don't think it was worthwhile (probably <1% speedup)
-
kayabanerve[m]
It just won't generate a spendable ring member which is why it may have been an oversight
-
luigi1112
UkoeHB rip it all out
-
luigi1112
half serious
-
kayabanerve[m]
UkoeHB: This was my stance and why I was here asking about it. AFAICT, it's not correctly implemented, creates disparate block/disk representative when done successfully, and doesn't have testing as of right now which makes the code living on master broken.
-
luigi1112
is this for the next fork/bp+?
-
kayabanerve[m]
Yeah
-
kayabanerve[m]
Which is why it wasn't noticed. I don't think anyone actually tried spending the BP+ outputs yet :p This would've been caught in a few weeks at worst
-
luigi1112
wait so I'm understanding: is it proposed that new outputs post fork are stored *inv8, then when loaded *8? But no distinction is made vs pre fork outputs which are obviously not stored that way?
-
UkoeHB
luigi1112: apparently that's what the bp+ pr did
-
kayabanerve[m]
luigi1112: But they're not currently loaded *8 so even if that was the intent...
-
kayabanerve[m]
kayabanerve[m]: .
-
UkoeHB
good work kayabanerve[m] noticing this issue
-
luigi1112
woof
-
luigi1112
plz keep investigating :)
-
kayabanerve[m]
You can have it with performance. You just need to save the *8 form and keep INV_EIGHT limited to serialization
-
kayabanerve[m]
But I'm not sure it's feasible to effectively pass it around and I don't recommend the headache
-
luigi1112
doesn't seem worth at all to me
-
UkoeHB
I think the 1/8 adds too much complication. This is the reason I did not implement 1/8 for key images in seraphis (even though it would be a speedup).
-
kayabanerve[m]
Happy to :) I clicked on it when I reviewed Ukoe's next standing multisig PR (impeccable except for one comment I have yet to hear back on) and it stuck out to me, so figured I'd bring it up
-
sethforprivacy
Phew nice find kayabanerve
-
sethforprivacy
Surprised that wasn't caught in audits...
-
UkoeHB
I think:
-
UkoeHB
1) see if we can get errors in test to confirm the failure
-
UkoeHB
2) rip it out
-
kayabanerve[m]
UkoeHB: Some dude called Kayaba should probably submit a Ristretto encode and fix this once and for all :p
-
UkoeHB
sethforprivacy: I don't think audits cover the full protocol from that higher vantage point
-
kayabanerve[m]
sethforprivacy: It's an optimization tacked on outside of the BP+ code yet only halfway implemented. It would've immediately created invalid results and broken any testnet it ran on, unless we all are missing where it saves to disk in the proper form (keeping the 1% performance gain)/corrects it on load (worsening performance)
-
luigi1112
yeah agreed it would fail immediately
-
luigi1112
(if it exists how we think)
-
kayabanerve[m]
Technically you can still create valid proofs under it.
-
luigi1112
yeah but naively you wouldn't I would think
-
kayabanerve[m]
luigi1112: want a few million xmr? 👀
-
luigi1112
probably a lot more than that :P
-
kayabanerve[m]
Well I have to keep some for myself
-
luigi1112
^_^
-
luigi1112
this is like the key image thing all over again
-
kayabanerve[m]
But yeah, Monero wallet would've immediately errored
-
kayabanerve[m]
So Ristretto is
-
kayabanerve[m]
1) marginally slower to encode/decode
-
kayabanerve[m]
2) faster to check equality
-
kayabanerve[m]
But I'm still expecting a marginal performance decrease with its introduction. I'm still advocating for it though because it fixes all of this. The end
-
UkoeHB
-
UkoeHB
(during view scanning)
-
kayabanerve[m]
We just never have this discussion or concern again. Seraphis will already force new keys. We can change curves without issue. We can even promote existing points to Ristretto if we absolutely need to so there truly shouldn't be consensus issues
-
jberman[m]
I've got a local test env of the lastest master including bp+ set up sending and receiving bp+ tx's, spending outputs created from bp
-
UkoeHB
Are we missing an integration test that mines rcttypebpp to chain then tries to spend them out of the ledger?
-
kayabanerve[m]
jberman[m]: In that case we're all missing something and I have no idea where it is. I'm guessing it's saving to disk in mul8 and we just have multiple mul8s
-
moneromooo
core_tests/bulletproof_plus.cpp ought to do that, but they're really GGGHNNN to write...
-
jberman[m]
-
jberman[m]
this is called right before saving to disk
-
UkoeHB
jberman[m]: did you confirm the tx types produced are bp+?
-
UkoeHB
jberman[m]: that line must be doing all the work, nice find
-
kayabanerve[m]
blockchain_db does perform this
-
kayabanerve[m]
-
kayabanerve[m]
>
-
kayabanerve[m]
> this is called right before saving to disk
-
kayabanerve[m]
Yep, also just found it
-
UkoeHB
considering how much more difficult it is to reason about the protocol with this change, I'd advocate a PR to undo the 1/8 stuff
-
kayabanerve[m]
... are we keeping this or can we agree
-
kayabanerve[m]
1) this headache is proof it's not worth it
-
kayabanerve[m]
2) if we're already doing this mul 8 multiple times (signature verification, save to disk, AND wallet scanning) we're nuking the performance benefit
-
kayabanerve[m]
3) it's confusing to change the commitment communication format (the one committed to in hashes) midway through the chain with no need to
-
kayabanerve[m]
UkoeHB: Ditto
-
luigi1112
support
-
moneromooo
FWIW I don't really care about wallet scanning here, just node verification.
-
UkoeHB
undoing this would require a hard reset of any testnet running this
-
kayabanerve[m]
I thought I was just missing it when I started, but then everyone here also agreed this seemed missing, and yet here it was in blockchain_db .-.
-
moneromooo
That happened before, not a problem.
-
jberman[m]
the hardfork isn't scheduled in the testnet yet
-
luigi1112
kayabanerve[m] it did seem too obvious to miss haha
-
moneromooo
Hey, I coded this, I forget things as a matter of course :/
-
UkoeHB
any volunteers to write the PR? otherwise I can do it (would rather focus on seraphis stuff tbh)
-
kayabanerve[m]
luigi1112: Right. I legitimately thought if it was missing, it would've have to been the BP+ code was the tail result so it was never built off of in the tests :p I thought that may technically be possible?
-
kayabanerve[m]
I'll work on it now. First time doing a PR that matters so will be nice
-
UkoeHB
cool thanks kayabanerve[m]
-
luigi1112
is the estimate really like 1%?
-
UkoeHB
probably just need to go through the original pr and find all instances
-
moneromooo
I suppose I should write it. I owe more work to the community and I wrote it... Kinda still in burnout mode though.
-
kayabanerve[m]
moneromooo: I'm excited for the opportunity so don't worry ;)
-
moneromooo
Thanks kayabanerve[m] :D
-
kayabanerve[m]
It's not every day you get to say you helped decide and implement xmr consensus rules :p
-
moneromooo
Would be nice to see the chain verification speed change too.
-
kayabanerve[m]
It's replacing 6 doublings with a scalar mult and equality check, if we do actually need to force BP points to be in the main subgroup (which would be implemented the same way the key image check is)
-
UkoeHB
luigi1112: on average, each output in a tx corresponds to ~80-100 variable base multiplications, so avoiding one mul-group-order per output is pretty small
-
UkoeHB
(back of the napkin)
-
moneromooo
It does remove a exponential to group order, no ? IIRC. Maybe.
-
moneromooo
To check the thing is in the right subgroup.
-
» moneromooo feeling almost angry all the crypto didn't stick
-
UkoeHB
yeah, mul-group-order = exponential to group order
-
moneromooo
Hrm. ISTR this is fairly slow...
-
UkoeHB
in the context of a tx, which has a bp+ proof and clsag proof per output on average, it's not that bad
-
moneromooo
Alright, fair enough.
-
moneromooo
IIRC it seemed like a free win...
-
WillMorrison[m]
just making sure I'm not missing something, monero-wallet-rpc's --tx-notify only gets called when the transaction is first seen and when it has one confirm, right?
-
WillMorrison[m]
I was hoping it would call a third time when the funds unlocked, but I'm not seeing that
-
moneromooo
It's definitely not calling when it reaches 10 confirmations.
-
rbrunner
For what it's worth, that earlier question whether I am running a testnet: Yes, for weeks already, jberman's view tags branch, to test that. Not BP+ in any case
-
WillMorrison[m]
<moneromooo> "It's definitely not calling when..." <- so to watch for when transactions hit 10 confirms, I need to first add transactions to a group from tx-notify when they hit 1 confirm and then poll them?
-
moneromooo
Well, poll the height I guess. But yes, polling the txes would also work.
-
moneromooo
IIRC tippero polls the height.
-
moneromooo
Jeez. Did I really write that 8 years ago :D
-
WillMorrison[m]
what would polling the height do?
-
moneromooo
Tell you current height, which you can compare to the height at which the received outputs may be spent.
-
moneromooo
Not quite, in case of reorg, but close enough I guess.
-
WillMorrison[m]
Ah I see, where do I get the height that they can be spent at?
-
WillMorrison[m]
and is that a better method of checking than watching for 10 confirms?
-
moneromooo
Good point, they might have an unlock time. In that case, polling the txes is better indeed
-
WillMorrison[m]
ok thanks
-
WillMorrison[m]
unfortunate that polling is required to do this, I was hoping I could avoid it
-
moneromooo
(polling height was just lightweight)
-
cryptogrampy[m]
The monero-javascript library has some nice wallet transaction query methods that may be worth digging into. Not sure what rpc methods they're wrapping:
moneroecosystem.org/monero-javascript/MoneroTransferQuery.html
-
WillMorrison[m]
moneromooo: just making sure I'm not missing some better way, tx-notify is what I should be using for making a monero payment processor, right?
-
WillMorrison[m]
thanks, I'll take a look
-
cryptogrampy[m]
-
cryptogrampy[m]
Also, in the monero-javascript library, the onOutputReceived event is called 3 times - once when unconfirmed, once when confirmed, and once when unlocked.
-
WillMorrison[m]
cryptogrampy[m]: ah that's definitely useful, I'll look now to see how they do that
-
selsta
rbrunner: could you reapprove the ring size 16 PR? it got rebased
-
rbrunner
Done.
-
selsta
ty
-
nioc
wow has been running BP+ for 10 months
-
nioc
not sure if what you are discussing was included in that version
-
kayabaNerve
nioc: Really interesting to hear. I don't know the full history (the PR is only 4 months old) yet I'd assume it has this optimization. It does, technically, work. It just mutates transaction state vs effective state and redefine commitment formulas which makes it... problematic. It's a hassle not worth it overall.
-
kayabaNerve
I did get the presumed patch ready. I've been stuck building for a bit and may go to sleep soon though, so probably looking at publication tomorrow. It's pretty simple overall.
-
selsta
.merge+ 8178
-
xmr-pr
Added
-
GuruJi[m]
Hello everyone. Can I have a question about a specific issue with monerod in this channel?
-
w[m]
If not dev related, ask in #monero:monero.social and ill try to answer you there
-
GuruJi[m]
w[m]: Ok thank you