08:20:57 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? 08:22:39 of course the recipient knows, otherwise how would they know they received money and how much 08:23:15 oh wait, do you mean decoys? No 08:23:27 recipient knows which of the outputs belongs to him 08:23:41 ring signature is used in transaction inputs 08:24:14 I meant output used in ring signature. 08:24:15 Not output of the transaction 08:24:28 it's an input for the recipient 08:24:56 Yes my wording was bad 08:25:02 So recipient does not know which of the 16 is the true spend? 08:25:07 no 08:25:40 No they do not, or no you're wrong? 08:25:53 English is not my first language :D 08:25:57 Recipient doesn't know 08:26:32 Thank you. Crazy that sethforprivacy would say that 08:28:55 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. 08:28:55 More of a topic for #monero:monero.social 08:29:39 No that's definitely not what was being said 08:29:40 He must've misspoke 08:30:15 When you have a developer saying something crazy I only trust another developer to respond, so I came here 08:59:55 https://twitter.com/MoneroTalk/status/1633272699756634112 33:40 ofrnxmr 09:00:17 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 09:03:38 Seth isnt a dev, again, wrong room for discussion 09:54:41 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* 09:55:21 You can then talk about the enotes that serve as inputs for the transactions, and the enotes that the transactions produces as outputs 09:55:57 Or, simply as inputs and outputs, because *output* does not have a double meaning anymore that can confuse 09:57:29 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? 09:57:44 To which I would answer: As far as I know, no 10:01:57 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. 10:02:10 And a non-dev question :) 12:36:01 How dumb and difficult would be to make a new monerod implementation in Rust using currently available crates? 12:36:18 Would this benefit Monero in any meaningful way? 12:36:25 Besides a learning exercise 12:37:02 veggiemaven[m]1: It would be hard, but some important parts are already available as crates 12:37:07 veggiemaven[m]1: see https://github.com/SyntheticBird45/cuprate for motivation of why it should be beneficial 12:37:38 Yes this is what I was thinking. Essentially you would need to implement the database and networking stuff afaik 12:37:39 the cryptography is already done as a crate 12:37:47 veggiemaven[m]1: actually nop. Some crypto parts like ringCT are available but needs to be adapted as well 12:38:22 What adaptations does it require? 12:38:29 Implementing crypto is above my paycheck 12:38:41 someoneelse49549: Can someone explain what the benefit of this? 12:38:48 veggiemaven[m]1: switching from Ristretto Curve to another curve 12:39:15 implementing MSLAG and CSLAG on top of it 12:39:16 wait a sec 12:39:24 https://github.com/expiredhotdog/RingCT 12:39:25 refering to this repo 12:40:59 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 12:41:31 s/rewrite/add/ 12:41:54 You forgot the most important aspect. Its fun 😀 12:41:55 someoneelse49549: You can achieve the same security you have in rust with cpp just by knowing cpp... 12:41:55 But the second argument sounds reasonable. Thank you for explaining it 12:42:10 do we need a Rust room to keep -dev clean of this question every other month 12:42:31 plowsof11: lol is this a common occurrence? 12:43:25 > <@shalit:matrix.org> You can achieve the same security you have in rust with cpp just by knowing cpp... 12:43:25 > But the second argument sounds reasonable. Thank you for explaining it 12:43:25 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 12:43:44 plowsof11: there is already #monero-community-dev 12:43:45 veggiemaven[m]1: yes 12:44:43 So should we move the conversation elsewhere? 12:45:06 yes on monero community dev 12:51:38 #monero-community-dev:monero.social thanks 14:10:42 Is monerod storing the txpool_meta_t in the long term just to check for alternative chains or am I missing something? 14:21:31 monerod stores txpool_meta_t in the database. I don't think it's used to check for alternative chains. 14:22:29 In fact, I am sure it is not. The state of the txpool cannot interfere with alternative chain detection. 14:29:15 But it's being used in Blockchain::handle_alternative_block() to check for txpool metadata on this alt-block. 14:29:55 Anyway I still don't understand why we're keeping it stored in the first place 14:32:12 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). 14:32:51 Where exactly is it used in handle_alternative_block ? 14:33:41 line 2065 : if (m_tx_pool.get_transaction_info(txid, td)) 14:34:02 in blockchain.cpp 14:35:04 Ah yes. That's because an alternative blck might refer to txes not in the current chain. 14:36:10 oh so you check the txpool to get that mysterious parent block 14:37:01 s/parent block/txs/ 14:37:02 alright make sense to me 14:38:16 Not sure what you're asking exactly, but transactions are in the txpool, not blocks. But since blocks are made of txes... kinda ? 14:42:54 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 14:43:31 We can keep it in memory. It used to. 14:44:18 So the txpool_meta & txpool_blob tables are useless? 14:44:31 No... 14:44:46 o 14:44:49 Those things have to be stored *somewhere*. 14:45:52 so these tables. They don't store _EVERY_ state of the txpool from the beginning right? 14:46:12 They store only the current state. 14:46:25 omg IT'S SO MUCH CLEAR 14:46:51 thx moneromoo 14:50:51 "What's the purpose of txpool_tx_..." <- . was stuck on this 18:33:37 Sorry for the spam 18:33:37 dangerousfreedom @dangerousfreedom:matrix.org: let's maybe start a new chat unencrypted, or verify your session on your desktop session lol 20:50:43 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? 20:52:43 yes 20:52:58 unimportant rate is lowest possible for adding a tx to mempool 20:53:51 there is a 5% leeway in monerod code, but using it will make transactions stand out 20:54:29 but it's technically allowed to mine transactions with any fee, even zero fee 20:54:37 they will just not propagate 21:06:00 "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? 21:07:24 other nodes will not accept it. You can mine it solo, but it will not propagate 21:07:33 and it will require custom monerod 21:12:58 "other nodes will not accept it..." <- Other nodes won't but if the tx is submitted to your normal unmodified monerod then it will? 21:13:23 "and it will require custom..." <- OK got it. 21:15:24 custom monerod with fee limit turned off and custom wallet to create zero fee transactions 21:15:43 even if you submit tx via RPC, fee limit is checked before adding it to your node's mempool