12:13:47 Hey, I know it's probably too early but I'm not familiar with the process of protocol changes. 12:13:47 Will the seraphis and jamtis papers be peer reviewed? And will they be submitted for independent third party audits? 12:41:08 Usually the answer is yes to both, but I think we're too far out for either to be on the radar ATM. 12:41:24 UkoeHB: thoughts on submitting Seraphis paper for peer-review? 12:41:50 We would definitely conduct multiple 3rd-party audits on both Seraphis and JAMTIS before implementation, of course. But that's likely a year or more out. 13:08:10 a year goes fast 13:09:42 For sure, but we have to have a "completed" approach to review, and really a "completed" implementation as well, plus be 100% sure we want to go that route before funding it. 13:09:51 Would be good to pivot to focus on that after the hard-fork. 14:29:20 For sure. Just wondering. Thanks Seth 15:17:12 I don’t plan to submit seraphis to any journals, if that’s what you’re asking (someone else can do that if they really feel like it). ‘Peers’ in the privacy coin world are very welcome to review the paper. 15:17:17 Meeting 1.75hr 15:18:43 The division of labor is great, so step up if you want to see something happen :) 15:27:33 UkoeHB: you'll be going "full time" on seraphis once v0.18 is out? 15:28:23 full time? 15:33:48 as in that will be the next major focus for monero development 15:35:02 what am I doing right now? https://github.com/UkoeHB/monero/commits/seraphis_lib lol 16:59:55 meeting time https://github.com/monero-project/meta/issues/691 16:59:55 1. greetings 16:59:55 hello 17:00:48 hi 17:01:07 howdy 17:01:10 Hello 17:02:27 Hi 17:02:29 o/ 17:02:43 hi 17:03:11 2. updates, what is everyone working on? 17:04:44 As per @Rucknium's request, together with @jberman I'm documenting the Decoy Algorithm, and the Gamma Picker. My approach is to create isolated unit tests, where each one of them goes a step further in the decision tree, testing corner cases, as well as going through the "happy" (typical) path. Each such test... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/4c43742938f528ae8feb99fcb2baa41fd560b3ee) 17:04:51 `/wall o'text` 17:05:32 me: Continuous development on Seraphis. Today or tomorrow I should have unit tests for binned reference sets (bins are deterministic, bin locations are manually defined). I think overall it is better to let the bin location selection be wallet-defined, both due to complexity and for flexibility/continuous improvement outside of the hardfork schedule. 17:06:13 Gathering info about fee discretization. Set up reeemuru 's `analitiko` Shiny app on a VPS at https://analitiko.app/ . OSPEAD tasks. 17:08:19 Btw the view tag PR was merged, hurray :)! I will be rebasing multisig pr 8149 today. 17:09:24 3. ok, let's talk about discretizing fees 17:09:35 update from me: mainly PR review/updating my own PR's. I also dug into Dandelion++ tx broadcast a bit and found that there was not a leak where I suspected there might be one on tx re-submission to a node, so that was good 17:13:07 The basic idea with discretizing fees is to enforce a limited number of fee values at consensus. The advantage would be mitigating fee-based analysis of txs (wallet implementation fingerprinting, user behavior analysis, tx construction timing which is very impactful for multisig), and also saving a few bytes on tx size by using a compact representation. There are a few ideas to implement it: 1) mandate 1 significant 17:13:08 figure in the fee value, 2) use powers of some multiplier (e.g. 1.2, 1.5, 2), 3) use powers of some multiplier rounded to 1 significant figure. 17:13:43 My current view on discretizing fees: As has been discussed, high-precision fees can present a privacy risk due to fingerprinting. There are two issues I can think of right now that may be a drawback of discretizing fees: 17:15:29 1) Around discrete jumps that are high in percent terms, a poorly-constructed fee estimator may interpret the move from a 1 unit to 2 unit fee (i.e. a doubling of fees) as a signal to aggressively outbid competitors. Then there is a snowballing effect and a fee bubble, which would be irritating to users. 17:17:39 2) Discretizing fees may complicate other attempts to increase transaction uniformity by implementing some fee-smoothing ideas from, for example Ethereum's EIP-1559 fee mechnism 17:18:06 can you summarize fee smoothing? 17:18:27 But I think that the privacy benefits overrule both those issues, so I think we should move ahead with discretizing fees 17:18:36 Not to mention if you can artificially trigger raised fees and wait to see how long TXs take to use higher fees, right? Less accuracy increasing the severity of bad implementations which therefore makes them easier to detect? 17:20:32 Not really/not to a increased degree notable enough? 17:21:05 I am not an expert in EIP-1559, but from my understanding, the fee mechanism makes ETH gas fees more predictable. That reduces distinct fee levels. We also have to think about not just the fees themselves but also think about what fee estimation algorithm produced the fee -- if the fee estimation method can be reverse-engineered based on blockchain data or the mempool status, then that can create the anonymity "puddles". 17:22:00 So if there is less of a need to estimate fees -- i.e. the consensus rules gives an optimal fee -- then there is less scope for fingerprintability of fee estimation algorithms. 17:22:39 Even with discretized fees, some analysis will be possible. Hopefully rather than puddles, we will have more of a venn diagram where it isn't clear which puddle you're looking at. 17:23:06 I am a bit confused about talking about "estimates". Was always thinking that Monero fees are simply calculated? 17:23:38 Whether with high precision or maybe in more discrete steps in the future, but product of a formula? 17:23:40 fee estimator = estimating what fee you need to get your tx into the chain within '2mins, 10mins, 1hr, etc' 17:24:36 So this still quite theoretical for Monero, at least at the moment? 17:24:46 kayabanerve[m]: I think it would depend on the implementation... hard to know in advance 17:24:53 rbrunner: right 17:25:38 but the fee is based on the size (weight) of the tx. so does the fingerprintability concern center on when a tx was made? 17:25:48 We could theoretically provide a fee estimator in wallet2 and reduce differences that way 17:26:04 gingeropolous: that's only for the minimum fee, you can pick any fee value above that (and people do) 17:26:53 roight roight 17:27:01 rbrunner: In my mind this is the tricky part: You can have a free-for-all, as we have now. Transactions are included in a transaction basically as a first-price auction (assuming miners are rational). People can bid anything, which leads to privacy problems. Or we could bake a specific fee formula into consensus, but that leads to side deals between miners and users, which is harmful to privacy, as ArticMine alluded to a week or 17:27:01 two ago. 17:27:22 kayabanerve[m]: yeah wallet2 already has a fee estimator, so most txs already fall into one big pool 17:28:02 UkoeHB: ^ . The puddle attack would be something like the fee is 1, as it should be, and someone sends a few at 2. Half the wallets start using 3 saying it increased by 100%! We're at load! Use an even higher fee! Then the other half of sane wallets say 1 is fine, this is momentary. For the next few minutes you can fingerprint into puddles. 17:28:03 the fee estimator just chooses your tx priority, that's all (a more advanced estimator could bid arbitrary amounts) 17:28:22 Maintaining the first-price auction implicitly assumes that at some point Monero will have a fee market, either intermittently or permanently. If we didn't think Monero would ever have a fee market, then we would be better off baking a fee formula into consensus. 17:28:23 UkoeHB: Great to hear 17:29:51 So the basic idea with discretization is to leave freedom to choose fees to people, just not down to an arbitrary precision? 17:29:59 Note that sech1 said earlier, "No, wallet bumps the fee automatically when mempool is full" 17:30:35 Yeah, I think the wallet uses the next-higher standard multiplier then 17:30:37 kayabanerve[m]: I see, yeah it would be one vector for puddling. In practice, any implementation that isn't a copy paste of wallet2 right now, is going to be fingerprintable since the granularity is so high. With lower granularity, there would be a lot more overlap between different estimators. 17:31:23 UkoeHB: Considering wallet2 has one, I'd even be willing to discuss ruckniums original comment at this time 17:32:01 Not that it wasn't valuable or a fair theoretical point. Solely that most wallets will be successfully covered without issue and edge cases already are edges like you say. 17:32:05 about snowballing? 17:32:45 Snowballing and the privacy implications further discussed 17:33:05 Are you suggesting there would be _worse_ privacy with discretized fees? 17:33:13 I'm not saying we don't we have to review the code before deployment. I'm saying if we get that impl right... The ecosystem should be fine 17:33:57 UkoeHB: With puddling attacks which isn't applicable when an identical algorithm is applied, so no, I'm dropping that suggestion, but yes, I did suggest it had drawbacks originally 17:34:23 What exactly are you suggesting? 17:34:56 I think to avoid the fee "snowballing" or "bubble", it may be sufficiently to have a decent fee estimator in `wallet2`. The snowballing or bubble would probably only occur if the vast majority of wallets are misinterpreting the fee rise. If only a few fringe wallet implementations misinterpret it, then we would not have the cascading effect, probably. 17:35:40 I was pointing out non uniform, low quality algorithms, could be identified with on purposely triggered algorithms since increments would be more notable since they're no longer granular 17:35:54 Rucknium[m]: This is what I'm currently stating my belief is 17:36:12 *on purposely triggered snowballs 17:36:20 By the way, if anyone is interested in an extensive and rigorous analysis of Ethereum's EIP-1559, see: https://arxiv.org/abs/2012.00854 17:36:34 Rucknium[m]: there is also a recursive prisoner's dilemma with fee estimators. If fee estimators consistently overestimate fees, then users will just select lower fees manually (or switch to a wallet that performs better). 17:37:05 kayabanerve[m]: This can be "regularized" 17:38:12 I mean, the fee estimator can have a logarithmic-like ceiling protection. 17:38:41 UkoeHB: In theory, yes. With bounded rationality and satisficing behavior, users may tolerate poor fee estimation algorithms. `bitcoind` apparently has an algorithm that systematically overestimates necessary fees, and a huge number of people still use it. 17:39:01 Yep. So as long we get a good algorithm into wallet2 which the ecosystem then naturally adopts... All good :) 17:39:12 kayabanerve[m]: I'm not sure that discretized fees would have a bigger problem from triggered algorithm increments than non-discretized fees. Your trigger-er just needs to know what conditions are required to get a statistically significant response from the algorithm under scrutiny. 17:41:26 UkoeHB: Yeah, potentially not. I think my interest was in the fact that as a small integer it'll be rounded and because of the significant change at each step, normal network latency effects on fees which may cause a few % of variation, offering natural deviation, may be dropped. Because there's no longer a perpetual cycle of such sightly different tx fees... It cleans up the data a bit 17:42:09 That was my theoretical thought process I 100% haven't implemented nor extensively reviewed current fee policies before wanting to bring up current discussion. I do know there's already a mask on fees which handles this to some degree 17:45:23 In conclusion... anyone who think 'please dont do this' or 'eh dont bother'? 17:45:39 Seems to me that progressing in steps could be a good idea. Start small, e.g. with making tx construction time estimates much harder by discretization 17:45:54 and leave the complicated fee estimator wars and snowballs for later 17:46:19 rbrunner: the fee pr rounds fees to 2 sig figs in wallet2 https://github.com/monero-project/monero/pull/7819 17:46:57 rbrunner: also, I am mostly looking at discretizing fees for seraphis (although we could expedite it to an earlier fork too) 17:47:25 Hmmm .. somehow missed that. 17:47:25 I said this before the meeting, but I'll put it on the record here in the meeting log: I'm willing and able to research a fee estimation algorithm that handles discrete fees, minimizes privacy risks, and reduces the likelihood of a fee bubble. Not now, but down the road as we get closer to Seraphis implementation on mainnet. 17:47:38 I think that the dynamic blocksize might also soften the blow in regards to any positive feedback loops in the fee levels 17:48:39 Since the blocksize is not fixed, keeping a steady fee pressure would push the blocksize up, which in turn would reduce the fee pressure for new transactions and increase the total cost of keeping the pressure up 17:49:09 Rucknium[m]: I think that would a really valuable long-term project, so I am looking forward to it :) 17:49:24 I think the dynamic bloc size is good for long-term fee stability, but it would still be subject to temporary short-term spikes in tx demand and feees 17:49:45 "Yeah, potentially not. I think..." <- If one wallet is using a different algorithm than another or you're trying to pinpoint a tx to a particular point in time, more granular fees imo are definitely more likely to leak this and therefore the puddles form easier when that is the case. I can't imagine a circumstance where this wouldn't hold 17:50:00 ^ 17:52:53 Anyone have opinions on what a good scaling factor would be? I really like powers of 1.5 rounded to 1 sig fig (conveniently, this distribution includes every power of 10 from 1 to 1e19). 17:53:35 UkoeHB: If you implement this is the code now, and then somehow we figure out that it's a really bad idea before it hits mainnet, how difficult would it be to reverse it in the code implementation? 17:54:32 Rucknium[m]: probably not that hard 17:55:16 I think the scaling factor should be evaluated against the pressure it puts towards pushing the blocksize up. ie.: "If we bump to the next fee level, how many more transactions can we fit in a block? How much faster are blocks going to grow?" 17:56:45 If the granularity is too small, then a user/wallet might have to skip a few levels at a time to justify their inclusion in the next block 17:57:19 But if the granularity is too coarse, then the blocksize growth might become unstable 17:57:58 Just shillin' here, but this calls for a proper simulation... 17:58:08 :) 17:58:30 merope: sound's like you have some homework :) 17:58:59 One CCS proposal at a time 😅 17:59:32 I wouldn't know how to model it, but intuition tells me this is a control theory problem 17:59:55 It sounds like it, alright (I'm a control engineer) 18:00:06 (but maybe this already obvious to you) 18:00:06 maybe some homework for mj-xmr[m] ? 18:00:10 *this was 18:01:02 It's not just a control theory problem. People are not atoms ;) 18:01:09 UkoeHB: If anybody has time to give me a 1-2 hours tutorial, I can take it up. 18:01:25 Rucknium[m]: Discrete control theory. Happy now? 18:01:30 It has control theory elements 18:01:47 Ok, we are at the hour mark so I'll call it. Thanks for attending everyone 18:01:47 I will implement round(pows(1.5)) as an interim solution so I can make further progress on my PoC. 18:02:01 Thanks for moderating! 18:03:15 ArticMine: you here to help mj-xmr[m] figure out the dynamic block size? 18:03:46 https://xkcd.com/1570 18:03:53 An engineer syllogism 18:03:53 I am good at understanding numbers. 18:03:53 The stock market is made of numbers. 18:03:53 Therefore I– Wow, where did all my money just go? 18:04:40 mj-xmr[m]: I'd start with ZtM2 section 7.3.2 (there are some small changes in https://github.com/monero-project/monero/pull/7819 ) 18:04:43 Rucknium: would it help you if you learned that I'm at the 5th scene of this cartoon already? :) 18:12:32 > <@rucknium:monero.social> An engineer syllogism... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/76cebb38a6a325242a54df3e13546b8d85434af4) 21:12:54 heyo 21:13:33 would like to know if there has been any time dedicated into making monero, say, unlaundearable? 21:14:28 have been thinking about ways of maintaining privacy whilst making it hard for those who do not want to be excellent to each other 21:14:40 such as? 21:16:01 nothing that seems to work 21:16:04 thats why i came to ask here 21:16:37 lol, I am not aware of anything 21:17:55 is there any plan to work on this 21:17:55 hmm 21:21:32 anyone interested in looking into this? 21:21:37 because i would 21:22:39 privacy respectful anti-laundering.. hmm 21:22:52 maybe you could integrate some kind of zk-kyc 21:23:05 im not sure if that’s logically possible 21:23:14 I think ZCash is working on this. 21:23:28 anti-laundering zec? 21:24:07 Yes, Zooko has mentioned he wants ZCash to be too traceable for criminals, but still private and fungible. 21:24:17 Wouldn't that go against the very definition of fungibility though? 21:24:26 merope: that’s what i was gonna say 21:24:40 lmao 21:25:00 and zec already has the ability to share transactions with a txn view key 21:25:14 for tax purposes 21:25:18 but that’s just non-private 21:26:29 just impose an automatic government tax on all transactions, I'm sure that will work greatt 21:27:03 Hilarious timing on my part to respond right after the message about Zec - but I was referring to the original idea: if you find a criterium/metric that allows you to tell those "bad apples" apart, then you've broken the definition of fungibility, ie. not being able to tell them apart 21:27:38 UkoeHB: You mean like Zcash's dev ta-oh, wait 21:28:10 yeah, and if you fail to be verified as a non-launderer you will be looked at with a furrowed brow 21:29:50 from an academic perspective, itd be cool to have some impossibilty proofs 21:34:41 You're describing what CBDCs will be 21:34:45 Private for me but not for thee 21:35:04 Only those with the Government Approved sticker can spend, and only how "they" see fit to allow 21:35:38 (until someone hacks the fed's SQL server) 21:37:35 Precisely 23:16:03 "I think ZCash is working on this..." <- gross