18:57:33 does this need to change? 18:57:57 https://matrix.monero.social/_matrix/media/v1/download/matrix.org/UpgXmwkQjiAeKOUNKiutBKLC 18:57:59 https://xcancel.com/mattjamesbtc/status/1816617395865419951#m 19:06:24 can't pander to maxis trying to 1 up someone on twitter. monero is renowned for being open about its strengths/flaws 19:08:58 if there is an error in bulletproofs security audits / proofs then monero can be printed from thin air, so you have to trust that this is not the case (Rucknium knows more about that). the entire context of selectively highlighted screenshot is just telling people that there is more involved than looking at a pile of coins on a table and saying 19:08:58 look, there's 10 coins on this table , i proved the supply 19:38:25 We don’t need to appease them by having such a text on getmonero 19:38:41 That was written by sarang. 19:38:43 bitcoin can (and was) printed from thin air 19:39:04 Its just easier to notice on a transparent chain 19:40:06 Yes and if we are not confident about monero math, we should just outright shutdown monero project 😂 19:40:16 Ringct has been implemented improperly by other chains, like haven or shadowcash, that both suffered inflation bugs 19:40:35 Cryptography != monero math 19:41:22 Just get more audits done ? Instead of hoping there are no bugs or saying hey don’t use it there might be bugs 19:41:27 Bitcoin relies on cryptography as well. both rely on complex math to ensure the creation of supply is limited to consensus rules 19:42:17 bp has been exploited, but monero's implementation was not 19:42:57 A few big companies and other blockchains learned the hard way what happens when you dont listen to the neothers 19:43:32 Noethers 19:45:53 the only problem i see would be making people think transparent do not also "rely on complex math to ensure the creation of supply" ^ but i still see no issue with monero being based as usual 19:46:46 we are getting more audits done.. on bp++ .. fcmp++ and such lol 19:47:41 we cant control how other people interoperate the same text either, relax 19:48:33 i came out of my death bed because of the ctrl+f "the the" pull request editing chat logs 19:52:00 :D lololol 19:52:52 stating "then you need a transparent asset" is not correct 19:54:53 I think that text is a transcript of sarang speaking 🧐 19:55:21 yeah we're saying that transparent assets are physical coins on a table 19:55:23 does btc actually have a 100 guarantee of supply? 19:55:37 *100% 19:55:49 no 19:56:00 then the statement is wrong 19:56:22 that's what it is predicated on 19:56:28 Especially since they dont hard fork. 19:57:00 https://cointelegraph.com/news/inflation-bug-still-a-danger-to-more-than-half-of-all-bitcoin-full-nodes 19:57:18 https://www.getmonero.org/2020/01/17/auditability.html yes its sarang 19:58:26 "In trying to fix the problem, the next released update, 0.15.0, included features that inadvertently allowed a malicious attacker to double spend the same UTXO in one transaction. Instead of causing a system crash, this new bug caused older software clients to recognize such double-spend transactions as valid." 20:00:02 was that btc or montero? ( ͡° ͜ʖ ͡°) 20:00:39 the preceding paragraphs leading into the incorrect statement "You can choose to represent amounts in the clear, like Bitcoin does; you can be sure that the supply is what you expect it to be" 20:00:51 <3​21bob321:monero.social> I have cement… 20:00:55 Btx 20:00:57 Btc 20:01:24 i can look at btc blockchain and add up to/from amounts and see the amount being created/moved around , but monero not 20:02:27 dangerous freedom has a website. I believe he recently said it is still not completely finished 20:03:05 https://www.moneroinflation.com/ 20:03:30 if we are stating things about supply on the site, should we link to that? 20:04:03 thx plowsof, I just woke up from my afternoon nap lol 20:04:38 probably in misc. on this page https://www.moneroinflation.com/ (and maybe also in that blog, depends what the proposed changes are) 20:04:49 this page* https://www.getmonero.org/resources/tools/ 20:11:51 Hey, the website also says to take everything with a grain of salt 20:11:59 opened an issue about it, thanks for sharing rando https://github.com/monero-project/monero-site/issues/2339 20:14:04 anytime! 20:27:34 This bug made me look into the Monero codebase to see if the consensus code checked that key images were unique within a transaction 20:28:07 Maybe I'm not looking in the right place, but it seems like there wasn't a check for key image duplicates until fork v7 20:31:15 Do dangerousfreedoms investigations cover that period adequately? 20:31:35 and do you know off-hand the date of v7 hardfork 20:33:37 Approx April 6th 2018 20:33:50 Literally just sent him a PM lol 20:34:12 I could write a Python script for this too 20:35:50 Looks like btc might have found it because of us, or vice versa 20:36:04 jeffro256: here: https://github.com/monero-project/monero/blob/eac1b86bb2818ac552457380c9dd421fb8935e5b/src/cryptonote_core/cryptonote_core.cpp#L1297 ? 20:37:13 Oh that's right, I forgot about that function 20:37:23 I was looking at the other key image checks in `check_tx_input` 20:38:31 Our DB will also throw an error for duplicate KIs 20:40:14 when adding to the chain. That other check covers the txpool 20:40:39 Well not just the txpool but it means txpool txs are also checked 20:40:44 Right, since they get added one-by-one and checked in between 20:43:19 Technically, we could prob skip the `check_tx_inputs_keyimages_diff` check for txs of hf >= 7 because of the strictly ordered check in `check_tx_input` later and save ourselves a small set population/allocation per tx 20:43:34 Not worth the effort though IMO 20:48:13 Yeah, it would probably be a good idea to try consolidate as much of the consensus rules as we can into a single location, right now they are all over the place, but it would be a lot of effort and probably not worth the risk. 20:49:26 as IIRC there are quite a few checks which are duplicated like this 20:54:45 boog900: Maybe we can start with documenting them. Then we would have more info about expected resource consumption under load, what shortcuts are safe and which unsafe, etc. 20:55:33 https://monero-book.cuprate.org/ 20:55:45 https://monero-book.cuprate.org/consensus_rules/transactions/inputs.html#unique-key-image 20:55:56 Like that :) 20:56:21 Thanks. Does it document what happens in the txpool? 20:58:46 For example, what checking does monerod do when it gets a tx from a peer that it allegedly has already seen before. Does it just do a couple of Kekkack (sp?) hashes to check the txid or does it do verification of the cryptography again? 20:59:01 It documents the consensus checks, not the exact verification process 20:59:22 And do nodes check tx validity before relaying them to peers, etc 21:00:03 Keccak is the correct spelling :D 21:01:38 boog900: A small note: In the "definitions" section, it defines the "Block Hash" as "the keccak hash of the block". This isn't *quite* true, if you're referring to the block ID or the PoW hash. The Block ID is the keccak hash of the "block hashing blob", which is the block header concatenated with the "tx tree hash" and a varint of the number of txs. And the PoW hash is the Rando 21:01:39 mX hash of this same "hashing blob". https://github.com/monero-project/monero/blob/caa62bc9ea1c5f2ffe3ffa440ad230e1de509bfd/src/cryptonote_basic/cryptonote_format_utils.cpp#L1466 21:03:08 https://github.com/monero-project/monero/blob/caa62bc9ea1c5f2ffe3ffa440ad230e1de509bfd/src/cryptonote_basic/cryptonote_format_utils.cpp#L1446 21:09:36 FCMP is going to put a lot more load on the nodes. It would be good to know where the efficiency improvements may be. 21:10:01 I did have Block PoW Hash in the definitions at some point, I don't know why I removed it, I'll add it back. 21:10:03 I used Block Hash for what you would call Block ID. 21:10:05 I don't really want to describe the exact process to arrive at a block hash in the definitions, I do want to expand the book with type formats, tx, blocks etc. I think it will be better suited there. 21:10:07 FWIW the block ID is calculated using a different blob to the PoW hash 21:14:44 I'll change the definition to include block hashing blob 21:15:16 and leave the processes for getting the block hashing blob out for now 21:23:10 > FWIW the block ID is calculated using a different blob to the PoW hash 21:23:11 Well, it's the same block hashing blob (IIUC), but the RandomX cache is initialized with the "seed" block hash, so it's not *just* a function of the block hashing blob. Is that correct? 21:23:25 I think that's a good idea 21:23:58 slightly different blob: https://github.com/serai-dex/serai/blob/3de1e4dee2aaccb122a4d6172de1a1f4a218c47a/networks/monero/src/block.rs#L129 21:28:06 this was the definition I had before: 21:28:07 `POW Hash: the hash calculated by using the active proof of work function.` 21:28:09 I'll change it to this and add it back: 21:28:11 `Block PoW Hash: the hash calculated from the block hashing blob by using the active proof of work function.` 21:30:40 Oh you're right ! TIL 21:31:27 The `t_serializable_object_to_blob` call in `get_object_hash` in `calculate_block_hash` causes an extra varint to get prepended 21:31:51 Doesn't seem intentional ...... 21:32:05 Too late now though lol. That's interesting ! 21:33:00 I spent quite a long time debugging that ngl 21:34:06 I agree it's defiantly not intentional, we are stuck with it now though :P 21:34:22 That sounds good. Only thing is "Block PoW Hash" vs just "PoW Hash" seems a little redundant IMHO 21:40:22 <0​xfffc:monero.social> Very interesting discussion imho 🙏🏻 21:50:19 Rucknium to answer your questions: 21:50:21 > what checking does monerod do when it gets a tx from a peer that it allegedly has already seen before. Does it just do a couple of Kekkack (sp?) hashes to check the txid or does it do verification of the cryptography again 21:50:23 When receiving a tx-pool we check if we have it before doing the cryptography checks, although we do do some smaller checks first, like version and tx size. 21:50:25 > And do nodes check tx validity before relaying them to peers 21:50:27 yes 21:50:46 *When receiving a tx-pool transaction 22:18:24 Ah `POW Hash` is still there, the formatting is just messed up.