-
ooo123ooo1234[m]
> <@mj-xmr:matrix.org> Before we go on the record, I have to make everybody aware, that there's a parasite looking for a host, after I excreted him. He feels cold and is currently trying to attach to Rucknium and Endor.
-
ooo123ooo1234[m]
> Don't take his comments very seriously. He's just trying to annoy and compromise you. That's what he gets paid for - to hinder Monero's progress.
-
ooo123ooo1234[m]
-
ooo123ooo1234[m]
<hyc> "why does magnitude of hashrate..." <- It doesn't.
-
ooo123ooo1234[m]
<UkoeHB> "If there is a network problem/..." <- +1, is it your own idea ?
-
ooo123ooo1234[m]
<kayabaNerve> "My frustration is the only way a..." <- +1
-
ooo123ooo1234[m]
<kayabaNerve> "As a side note, while I know..." <- What's the another coin ? Any hints ?
-
ooo123ooo1234[m]
<jeffro256[m]> "And on the other side, accepting..." <- There are examples when such merchants say "we've added 0-conf txs, on the first abuse they will be turned off". It isn't safe.
-
ooo123ooo1234[m]
<UkoeHB> "Ah yeah same person, but..." <- every such meeting is an example of very ineffective way of problem solving since no goal / no critical questions / no focus / no priorities; in the best case it's boring, in the worst case it's a show on purpose
-
nikg83[m]
<ooo123ooo1234[m]> "There are examples when such..." <- What abuse ? You can’t unless you do a 51% attack
-
ooo123ooo1234[m]
<nikg83[m]> "What abuse ? You can’t unless..." <- Race condition of mempool with two txs at the same time: 1st one goes to node of exchange, 2nd one goes to everyone else; since node of exchange isn't mining then there is 100% chance that it will be double 0 confirmation spend
-
ooo123ooo1234[m]
It must be low latency broadcast
-
ooo123ooo1234[m]
In btc it was probably just outbidding by fee
-
nikg83[m]
ooo123ooo1234[m]: Send me 1xmr with your race condition, I will payback even if it doesn’t confirm
-
ooo123ooo1234[m]
<nikg83[m]> "Send me 1xmr with your race..." <- How can i be sure that you will not cheat in part "I will payback" ?
-
nikg83[m]
<ooo123ooo1234[m]> "How can i be sure that you..." <- Send 0.001 , I will send 1 back if you can prove your attack
-
ooo123ooo1234[m]
nikg83[m]: It's broken game, are you joking ?
-
ooo123ooo1234[m]
<nikg83[m]> "Send me 1xmr with your race..." <- Reread what I said and you can test it for free locally with your monerod. No need to pay to anyone.
-
nikg83[m]
ooo123ooo1234[m]: Prove the attack on me
-
nikg83[m]
891dgWQKn5NEJMyz9hsnDL7udKu4uYRDfMWuCRW5FjPageGKjupdYNCQYjQQNRNA8ze81kSXZw1FeVj4MmLvF3EGPMgsP8x
-
ooo123ooo1234[m]
nikg83[m]: I need address of monerod used by you. In case of exchange it could be found port scanning or some interactive tests
-
nikg83[m]
ooo123ooo1234[m]: Why will the vendor give you node addr ?
-
ooo123ooo1234[m]
nikg83[m]: I've explained how to find it asking.
-
ooo123ooo1234[m]
* find it without asking.
-
ooo123ooo1234[m]
* be found via port scanning
-
nikg83[m]
ooo123ooo1234[m]: I am a vendor, go scan
-
ooo123ooo1234[m]
nikg83[m]: Vendor with huge volume would have website with domain
-
nikg83[m]
ooo123ooo1234[m]: Huge vendor will not expose his backend servers
-
ooo123ooo1234[m]
nikg83[m]: In the worst case It requires few interactive txs
-
nikg83[m]
ooo123ooo1234[m]: Want me to send you a fixedfloat or any instant exchanger to test your attack ?
-
ooo123ooo1234[m]
nikg83[m]: fixedfloat doesn't support 0 -conf, there are at least 3 conf
-
ooo123ooo1234[m]
exchange also doesn't use 0 conf
-
nikg83[m]
ooo123ooo1234[m]: It will show received and pending verification
-
ooo123ooo1234[m]
nikg83[m]: Yes it could be used for a test. But it wouldn't lead to bounty
-
nikg83[m]
Go attack, come back with a video of your race attack on instant exchange
-
nikg83[m]
ooo123ooo1234[m]: I will pay you 1 xmr
-
ooo123ooo1234[m]
nikg83[m]: Video isn't a proof
-
nikg83[m]
ooo123ooo1234[m]: Bye, don’t pollute this channel anymore
-
ooo123ooo1234[m]
nikg83[m]: ok, but identification of node used by exchanges will take time. And without bounty it isn't interesting.
-
ooo123ooo1234[m]
nikg83[m]: Can we test it with your own node ?
-
ooo123ooo1234[m]
So that step of node ip:port identification skipped ?
-
ooo123ooo1234[m]
Or tell me ip:port of fixedfloat
-
nikg83[m]
ooo123ooo1234[m]: A vendor isn’t going to give you details
-
ooo123ooo1234[m]
* of fixedfloat's monerod
-
ooo123ooo1234[m]
<nikg83[m]> "A vendor isn’t going to give you..." <- Then wait until I will find ip:port of some exchange
-
mj-xmr[m]
<ooo123ooo1234[m]> "> <@mj-xmr:matrix.org> Before we..." <- Facepalm what? Did you give up on all fronts and starting to discuss art now? What next? Poetry?
-
ooo123ooo1234[m]
mj-xmr[m]: I thought that enjo and mj-xmr are two different people. Turns out it isn't. And that file leaks it.
-
mj-xmr[m]
I'd say, that doxing on a public channel in a privacy coin is a reason for permanently banning you and all your socks.
-
ooo123ooo1234[m]
mj-xmr[m]: There are 10 such leaked things. It's literally published by you into git. And it's just my guess.
-
mj-xmr[m]
And you think that you should be pointing this out publicly?
-
mj-xmr[m]
Where in Africa were you born exactly?
-
ooo123ooo1234[m]
<mj-xmr[m]> "Every parasite's gotta make a..." <- Did you try to look into mirror ?
-
mj-xmr[m]
ooo123ooo1234[m]: We used to say this when we were ~8 y.o.
-
mj-xmr[m]
This is MRL, kid.
-
ooo123ooo1234[m]
> <@mj-xmr:matrix.org> We used to say this when we were ~8 y.o.
-
ooo123ooo1234[m]
> This is MRL, kid.
-
ooo123ooo1234[m]
or not to say, who do you know ?
-
ooo123ooo1234[m]
* or not to say, how do you know ?
-
mj-xmr[m]
OK. I'm giving up this BS. I won't ignore your account, because it's funny to see how dumb you are, but I hope I won't be tempted to reply to your crap. Beat it, kid.
-
ooo123ooo1234[m]
mj-xmr[m]: Does it include answers to critical questions ? or not yet
-
ooo123ooo1234[m]
<mj-xmr[m]> "OK. I'm giving up this BS. I won..." <- I'm interested in attacking problems, not people.
-
nioc
let's see what the top of this channel reads...............
-
nioc
Casual chats: #monero-research-lounge
-
nioc
Be excellent to each other
-
mj-xmr[m]
nioc: A valid point.
-
mj-xmr[m]
Too bad that it doesn't apply to Reddit and GitLab. I assume that everybody read the link that I posted?
-
ooo123ooo1234[m]
<nioc> "Be excellent to each other" <- It's relevant when hard problems were being attacked on regular basis. Otherwise it's abused for the sake of personal interests
-
gingeropolous
even if it doesn't fix the 10 block lock, i think the ref outs by pubkey (or something other than its temporal order) makes the blockchain /protocol more robust in the event of netsplit and altchain reorgs, right?
-
gingeropolous
oh right. the messy business about block rewards
-
nioc
it's relevant at all times
-
gingeropolous
?
-
nioc
gingeropolous: my comment was not directed at you :)
-
kayabanerve[m]
UkoeHB: Can we solve the burning bug by having shared keys be multiplied by the key image? So instead of Hs(8raG || i)G + B, it's Hs(8rA || ki || i)G + B
-
kayabanerve[m]
I hate to only be suggesting this a few days AFTER code freeze for the next release but I'd think that end this entire class of attacks and prevent wallets from needing to do any processing of it.
-
kayabanerve[m]
Not to mention the L2 solution flow it offers, which I'm currently being frustrated by, and so on.
-
kayabanerve[m]
I think we've discussed before ki[0] is secure, but it's best to do ki as a whole. Regarding light clients, they'd add 32 bytes per scanned TX (if ki[0]), yet they already needed to get R values so I'm not too concerned about that. While different kis could be provided by a malicious server... so could different output keys/Rs. I really don't see this as changing the surface too much. Pinging jberman as well as I know he got
-
kayabanerve[m]
mad at me when I brought up the bandwidth reqs of a merkle tree membership proof :p
-
kayabanerve[m]
*though I also think we worked that out
-
kayabanerve[m]
* I think we've discussed before ki\[0\] is secure, but it's best to do ki as a whole. Regarding light clients, they'd add 32 bytes per scanned TX (if ki\[0\]), yet they already needed to get R values so I'm not too concerned about that. While different kis could be provided by a malicious server... so could different output keys/Rs. I really don't see this as changing the surface too much. Pinging jberman as well as I know
-
kayabanerve[m]
he got mad at me when I brought up the storage reqs of a merkle tree membership proof :p
-
kayabanerve[m]
And from a multisig side of things, my current timing (which is a 2-round protocol for the entire TX) isn't affected which means I don't believe this has any significant impact to TX creation flow in theory. I couldn't comment on the exact wallet 2 internals though.
-
kayabanerve[m]
s/wallet/wallet2/, s/2//
-
kayabanerve[m]
s/be/hash/, s/multiplied by//
-
kayabanerve[m]
s/be/hash/, s/multiplied by//, s/8rA/8raG/
-
UkoeHB
kayabaNerve: no, unless I am misreading you. ki is a function of Hs(...) + B
-
kayabaNerve
input ki used for the output shared key
-
UkoeHB
It’s not forward compatible with seraphis to bake that into the normal flow
-
kayabaNerve
Not output shared key uses the output ki it won't know because only the receiver would and they're not the receiver, they're the sender, which is derived from the sender's chosen output shared key
-
UkoeHB
Plus there is no clear advantage for non-multisig
-
kayabaNerve
While I do understand Seraphis is intended to be incredibly modular, I do believe this is a legitimate problem we should fix and the solution is to have the linkability tag used to derive output keys. If we can fix this now, yet Seraphis wouldn't support the same fix, I'd posit that's an issue with Seraphis, not an issue with this.
-
UkoeHB
There is already a solution that works with seraphis. I’m not understanding the advantage here
-
kayabaNerve
... I mean, all wallets need to have this code and it's a pain to implement. It's the straw that broke my camel's back with my own wallet impl and made me decide to no longer have it available.
-
kayabaNerve
If Seraphis isn't vulnerable to the burning bug... good. That's how it should be. This is a proposal that isn't for Seraphis.
-
UkoeHB
It looks like a multisig thing. Am I missing something?
-
kayabaNerve
Though I do think it's a problem if we fix this outside of Seraphis and then Seraphis re-introduces it.
-
kayabanerve[m]
In that case, yes.
-
UkoeHB
??
-
kayabanerve[m]
This can be used against exchanges. You send 1 XMR to an exchange, get credited 1 XMR, then send 1 unspendable XMR to exchanges.
-
kayabanerve[m]
It forces EVERY wallet on the network to have the complete contextual state for the entire lifetime of the wallet.
-
UkoeHB
Oh that’s what you’re referring to
-
kayabanerve[m]
And it requires processing code to track this and forces wallets to decide which outputs, of potential many, to use.
-
kayabanerve[m]
Yes. I'm discussing fixing this entire class of attack, against all Monero wallets, by including the key image/linkability tag in the shared key used to calculate the output key, thereby forcing output keys to be unique if validly formed.
-
UkoeHB
I lost the context for a bit
-
kayabanerve[m]
It moves context from the entire wallet's lifetime on the network to solely the transaction in front of it, where if the TX in front of it was mined and confirmed without issue, the output keys must be unique if you can decode them as you normally would.
-
kayabanerve[m]
So there is the Seraphis discussion regarding modularity, as this makes outputs determined after linkability which... may break your msg flow?
-
kayabanerve[m]
I'd have to read through Seraphis to comment there and then you may have a solution to burning bugs that isn't linkability tag inclusion in the shared key hash.
-
kayabanerve[m]
But this proposal is immediately for the current Monero, not Seraphis.
-
UkoeHB
the general solution is to always use a randomly generated address
-
kayabanerve[m]
It's really hard for me to endorse single use subaddresses and constantly communicating new adddresses as a solution .-.
-
kayabanerve[m]
And considering this attack is decided by the sender, not the receiver... you either do have enforce single use subaddresses or have extremely contextual code which may not offer a clear path forward.
-
UkoeHB
something like this definitely wouldn't be ready by this hardfork
-
ooo123ooo1234[m]
<kayabanerve[m]> "And from a multisig side of..." <- +1 for deep questions; This discussion with concrete code and it's model would be even more focused. But it's already quite deep for the beginning
-
kayabaNerve
Right, yet are we saying Seraphis will definitively be the next hard fork/Seraphis is guaranteed to solve this at a protocol level making this discussion in all forms void?
-
UkoeHB
no? it's just not an urgent question, so it's fine to think about it slowly
-
kayabaNerve
I'm not proposing this for today :p
-
kayabaNerve
I'm trying to start this conversation
-
kayabaNerve
... can Seraphis include linking tags when deriving one time keys? Would you consider that incompatible, or solely not preferable to the point it becomes a cost-benefit analysis?
-
kayabaNerve
*TX input linking tags for their one time keys used to derive output keys, to be perfectly clear
-
kayabaNerve
Considering we now have view key construction of linking tags... I don't see why that would be an issue at all tbh
-
kayabaNerve
Eh. It doesn't work with the flow established in 4.8...
-
dEBRUYNE
<kayabanerve[m]> This can be used against exchanges. You send 1 XMR to an exchange, get credited 1 XMR, then send 1 unspendable XMR to exchanges. <= This kind of attack is rather costly no?
-
kayabanerve[m]
dEBRUYNE: It's 0 cost. You send 1 unspendable XMR yet get credit for it anyways.
-
kayabanerve[m]
We have a fix for it, which is wallets knowing every single output they've ever received to, and if it detects a second, larger output, it only credits O2 - O1.
-
dEBRUYNE
Ah right
-
kayabanerve[m]
But that requires fully contextual wallets incapable of scanning individual TXs which makes a few things hell. There's also another angle I'm trying to discuss privately at this time, though it's sufficiently contrived it shouldn't be an issue to dicuss publicly.
-
kayabanerve[m]
s/dicuss/discuss/
-
UkoeHB
kayabanerve[m]: can you make an MRL issue to discuss this?
-
kayabanerve[m]
UkoeHB: Yes, if you first read my PMs to discuss the second stage evolution of this and certify it's sufficiently theoretical it can be disclosed :p
-
UkoeHB
just woke up from a nap gimme a sec
-
kayabanerve[m]
All good :) Thanks for helping
-
kayabanerve[m]
My current conclusion is while this is critical, it's critical for me, not for Monero, and I'm just mad at Monero for forcing me to consider it as critical :p I don't see it as an urgent discussion either, though my life would be easier if I could have Monero consider it critical urgently (making it out of my custom scope)
-
kayabaNerve
monero-project/research-lab #103 <- issue about modifying the shared key derivation to prevent the burning bug, regarding higher level protocols today, RCT, and Seraphis.