-
triplezzz[m]
I just heard sethforprivacy say on a podcast that in Monero the recipient knows the true output in a ring signature. I thought that only the sender knows the true output, not the recipient or any external party. Can someone explain?
-
sech1
of course the recipient knows, otherwise how would they know they received money and how much
-
sech1
oh wait, do you mean decoys? No
-
sech1
recipient knows which of the outputs belongs to him
-
sech1
ring signature is used in transaction inputs
-
triplezzz[m]
I meant output used in ring signature.
-
triplezzz[m]
Not output of the transaction
-
sech1
it's an input for the recipient
-
triplezzz[m]
Yes my wording was bad
-
triplezzz[m]
So recipient does not know which of the 16 is the true spend?
-
sech1
no
-
triplezzz[m]
No they do not, or no you're wrong?
-
sech1
English is not my first language :D
-
sech1
Recipient doesn't know
-
triplezzz[m]
Thank you. Crazy that sethforprivacy would say that
-
ofrnxmr[m]
Seth has a deeper understanding than ELI5. Im sure he meant that if the origin and the destination are cooperating or the same person, they can deduce the correct spend.
-
ofrnxmr[m]
More of a topic for #monero:monero.social
-
triplezzz[m]
No that's definitely not what was being said
-
triplezzz[m]
He must've misspoke
-
triplezzz[m]
When you have a developer saying something crazy I only trust another developer to respond, so I came here
-
triplezzz[m]
-
triplezzz[m]
If you want to do something useful contact him and get him to redact his statement, don't tell me what you're "sure" of
-
ofrnxmr[m]
Seth isnt a dev, again, wrong room for discussion
-
rbrunner
Ha, that input - output - input whatever confusion led to the decision to switch to the term *enote* at least for Seraphis for what is so far called *output*
-
rbrunner
You can then talk about the enotes that serve as inputs for the transactions, and the enotes that the transactions produces as outputs
-
rbrunner
Or, simply as inputs and outputs, because *output* does not have a double meaning anymore that can confuse
-
rbrunner
So, your question seems to me to reformulate as: Can the receiver know which of the enotes that were used as input plus decoys is the true spend?
-
rbrunner
To which I would answer: As far as I know, no
-
rbrunner
But yeah, as ofrnxmr[m] explained, that's only true if the only data available to check is what's written into the blockchain. If people collude, that's a whole different story.
-
rbrunner
And a non-dev question :)
-
veggiemaven[m]1
How dumb and difficult would be to make a new monerod implementation in Rust using currently available crates?
-
veggiemaven[m]1
Would this benefit Monero in any meaningful way?
-
veggiemaven[m]1
Besides a learning exercise
-
someoneelse49549
veggiemaven[m]1: It would be hard, but some important parts are already available as crates
-
someoneelse49549
veggiemaven[m]1: see
github.com/SyntheticBird45/cuprate for motivation of why it should be beneficial
-
veggiemaven[m]1
Yes this is what I was thinking. Essentially you would need to implement the database and networking stuff afaik
-
veggiemaven[m]1
the cryptography is already done as a crate
-
someoneelse49549
veggiemaven[m]1: actually nop. Some crypto parts like ringCT are available but needs to be adapted as well
-
veggiemaven[m]1
What adaptations does it require?
-
veggiemaven[m]1
Implementing crypto is above my paycheck
-
shalit[m]
someoneelse49549: Can someone explain what the benefit of this?
-
someoneelse49549
veggiemaven[m]1: switching from Ristretto Curve to another curve
-
someoneelse49549
implementing MSLAG and CSLAG on top of it
-
someoneelse49549
wait a sec
-
someoneelse49549
-
someoneelse49549
refering to this repo
-
someoneelse49549
shalit[m]: Modularity & security. Modular because if we rewrite it from scratch we can easily make some features easier to rewrite. Secure, because one it's Rust + some decisions & another implementation of the node means a network more resilient to a vulnerability discover on one the nodes
-
someoneelse49549
s/rewrite/add/
-
veggiemaven[m]1
You forgot the most important aspect. Its fun 😀
-
shalit[m]
someoneelse49549: You can achieve the same security you have in rust with cpp just by knowing cpp...
-
shalit[m]
But the second argument sounds reasonable. Thank you for explaining it
-
plowsof11
do we need a Rust room to keep -dev clean of this question every other month
-
veggiemaven[m]1
plowsof11: lol is this a common occurrence?
-
someoneelse49549
> <@shalit:matrix.org> You can achieve the same security you have in rust with cpp just by knowing cpp...
-
someoneelse49549
> But the second argument sounds reasonable. Thank you for explaining it
-
someoneelse49549
Remind me some hot topic on r/rust. Every cpp developpers say that they can write secure code. Every rust developpers tell it's not possible. Anyway, I would like to tell it's not possible, but I just think this is very hard
-
someoneelse49549
plowsof11: there is already #monero-community-dev
-
someoneelse49549
veggiemaven[m]1: yes
-
veggiemaven[m]1
So should we move the conversation elsewhere?
-
someoneelse49549
yes on monero community dev
-
plowsof11
#monero-community-dev:monero.social thanks
-
someoneelse49549
Is monerod storing the txpool_meta_t in the long term just to check for alternative chains or am I missing something?
-
moneromooo
monerod stores txpool_meta_t in the database. I don't think it's used to check for alternative chains.
-
moneromooo
In fact, I am sure it is not. The state of the txpool cannot interfere with alternative chain detection.
-
someoneelse49549
But it's being used in Blockchain::handle_alternative_block() to check for txpool metadata on this alt-block.
-
someoneelse49549
Anyway I still don't understand why we're keeping it stored in the first place
-
moneromooo
Some of the data can be recovered (like its weight) but it's costly not to cache. Some other data cannot (when it was last relayed).
-
moneromooo
Where exactly is it used in handle_alternative_block ?
-
someoneelse49549
line 2065 : if (m_tx_pool.get_transaction_info(txid, td))
-
someoneelse49549
in blockchain.cpp
-
moneromooo
Ah yes. That's because an alternative blck might refer to txes not in the current chain.
-
someoneelse49549
oh so you check the txpool to get that mysterious parent block
-
someoneelse49549
s/parent block/txs/
-
someoneelse49549
alright make sense to me
-
moneromooo
Not sure what you're asking exactly, but transactions are in the txpool, not blocks. But since blocks are made of txes... kinda ?
-
someoneelse49549
yeah i just want to understand why we can't just keep txpool in memory and handle alternative blocks based on the alt_blk we stored in the db (alt_blocks table). So iirc we can't because new alt-block can reference txs that are not in these previous alt_blocks but maybe in the txpool. Sry I'm confused it's not really explained in zero to monero
-
moneromooo
We can keep it in memory. It used to.
-
someoneelse49549
So the txpool_meta & txpool_blob tables are useless?
-
moneromooo
No...
-
someoneelse49549
o
-
moneromooo
Those things have to be stored *somewhere*.
-
someoneelse49549
so these tables. They don't store _EVERY_ state of the txpool from the beginning right?
-
moneromooo
They store only the current state.
-
someoneelse49549
omg IT'S SO MUCH CLEAR
-
someoneelse49549
thx moneromoo
-
someoneelse49549
<someoneelse49549> "What's the purpose of txpool_tx_..." <- . was stuck on this
-
ghostway[m]
Sorry for the spam
-
ghostway[m]
dangerousfreedom @dangerousfreedom:matrix.org: let's maybe start a new chat unencrypted, or verify your session on your desktop session lol
-
Alex|LocalMonero
If someone makes a custom Monero wallet that sends fees at a rate lower than the unimportant rate of the cli wallet, will the network reject such a tx?
-
sech1
yes
-
sech1
unimportant rate is lowest possible for adding a tx to mempool
-
sech1
there is a 5% leeway in monerod code, but using it will make transactions stand out
-
sech1
but it's technically allowed to mine transactions with any fee, even zero fee
-
sech1
they will just not propagate
-
Alex|LocalMonero
<sech1> "they will just not propagate" <- So if a custom wallet uses your monerod to broadcast a tx with zero fee it won't get rejected?
-
sech1
other nodes will not accept it. You can mine it solo, but it will not propagate
-
sech1
and it will require custom monerod
-
Alex|LocalMonero
<sech1> "other nodes will not accept it..." <- Other nodes won't but if the tx is submitted to your normal unmodified monerod then it will?
-
Alex|LocalMonero
<sech1> "and it will require custom..." <- OK got it.
-
sech1
custom monerod with fee limit turned off and custom wallet to create zero fee transactions
-
sech1
even if you submit tx via RPC, fee limit is checked before adding it to your node's mempool