15:09:47 meeting 2hr https://github.com/monero-project/meta/issues/646 16:38:22 Today I cannot make the meeting, so here is a summary: I've phased out merchant wallets in favor of a unified key hierarchy. This is better for UX (users won't have to decide which type of wallet they need) and also for privacy (all wallets have unlinkable addresses by default). 16:38:34 There are now 7 different wallet tiers: https://gist.github.com/tevador/50160d160d24cfc6c52ae02eb3d17024#46-wallet-access-tiers 16:38:44 thanks tevador :) it's looking good, I just left some comments 16:39:33 I've also slightly changed the key derivation function by padding the secret key to the hash block length. This should be more secure. A new recoverable signature scheme for addresses is documented in chapter 3.4. 16:40:10 I'm now working on a different address encoding scheme based on some feedback. The address prefix will be more human-readable. Also all addresses will contain a signature, making them somewhat longer (about 188 characters), but this leads to an overall more robust and simpler design. 16:57:36 Those tiers seem to multiply like rabbits 17:00:36 meeting time: https://github.com/monero-project/meta/issues/646 17:00:36 1. greetings 17:00:36 hello 17:01:01 Hi 17:01:09 Hi there 17:01:58 hi 17:03:46 2. updates: anyone working on stuff they want to mention? tevador gave his update just before the meeting 17:04:10 me: nothing to really update here; I am revising my wallet architecture based on tevador's ongoing work 17:05:28 I am doing chain analysis work on BCH with the `igraph` R package. The packages is fast and fairly memory efficient. I think that it could be used to answer some Monero transaction graph questions that people sometimes muse about. 17:06:32 Have a quick example for such a question? 17:06:51 Basically, questions about how intertwined the Monero "transaction graph" is, and how quickly a new output is intertwined. 17:07:15 I am starting on the effort to get merchant input on Seraphis address schemes, but I think I should wait until the "menu" becomes stable. 17:07:45 7 entries and counting 17:08:34 You mean this from earlier in the log, right? https://gist.github.com/tevador/50160d160d24cfc6c52ae02eb3d17024#46-wallet-access-tiers 17:09:03 I've been working on subaddress support in monero-lws, I hit a point where I feel it makes sense to submit a proposal for lightwallet servers generally to support subaddresses in a clean way. planning to submit it today 17:09:17 rbrunner: Given a particular output (i.e. vertex/node) of a particular age, what proportion of the Monero transaction graph can be reached from that vertex/node? 17:09:27 In other words, what is the anonymity set of that output? 17:09:43 I see 17:12:35 4.5 key hierarchy is also golden in Tevador's linked gist. My, we will have so many secret keys, they build hierarchies :) 17:12:50 cool jberman[m] thanks :) 17:13:32 rbrunner: I think this hierarchy will be final, there isn't much more you can extend it to do (if anything). 17:14:08 Comforting, in a way. I hope well get all this complexity properly under control, that's all I worry. 17:14:22 It's fascinating of course, functionality-wise 17:14:47 How high we will tower over other coins with these capabilities? 17:15:17 Once I pause my BCH work again, I will return to making the OSPEAD technical specification more layperson-friendly and then publicly release it. If anyone wants to give input on the draft, just let me know and I will send it your way. 17:17:37 3. discussion; any discussion items? perhaps from the agenda? questions about JAMTIS maybe? 17:17:45 jberman[m]: awesome! TheCharlatan has an open pull request integrating lws in farcaster (he wrote a client lib in rust https://github.com/TheCharlatan/monero-lws-rs) 17:19:38 Those lightwallet servers will also have to catch up to JAMTIS or whatever will get built? 17:20:05 Guess so, implementing some of those tiers 17:20:39 UkoeHB: About your proposal to relax the 10 block lock: It seems that people do not compromise on ring signatures in order to enable quick spending. So somehow we need to figure out how to keep ring sigs but eliminate the 10 block lock. 17:20:47 Which is what makes it an open research question. 17:20:52 We might want to clearly separate a jamtis address and its optional associated data like recipeint ids, invoices, etc. This would avoid the problems users have with integrated addresses, where people see two distinct addresses that are the same under the hood. 17:21:39 The CRC can still encompass the whole address. 17:21:50 there may be other ways to accomplish quick spending such as batched chained payments or multiple outs on a single tx 17:21:53 the whle address + remainder. 17:22:50 re keeping ring sigs, or we eliminate them :) 17:22:59 it's about time we prioritized that 17:23:14 I don't have a lot of optimism, but let me know if you have any ideas. 17:23:25 any fingerprintability should be a priority to eliminate for us right? 17:23:37 Right, we have quite a number of people freaking out a little when the integrated address is not equal to the "base" address they see e.g. on their ledger 17:23:45 I'll remind everyone that MRL is not systematically monitoring the academic literature about Monero, and solutions to our problems like the 10 block lock may lie in that literature. I still have the moneroresearch.wtf domain name, which hopefully will be Where To Find Monero Research in the future. 17:23:48 ring sigs are cans of worms in that regard with open vulns 17:24:16 Rucknium[m]: i'd say MRL should and has had that in its mandate - to stay up to date on the lit 17:26:10 endogenic: Sure, but you need the resources to do it. We don't have the resources at the moment. 17:26:17 sure we do 17:26:25 we dont have the researchers to do it 17:26:50 MRL isn't an entity, if you want to read papers then go do it 17:27:02 indeed 17:27:27 is there a pubmed equivalent for math/crypto ?? 17:27:40 If one wanted to have a look, is there a go-to web address? 17:27:47 Usually one uses adaptor signatures for parallel composition of txs (independent outputs), and tx chaining for serial composition (dependent outs) 17:27:54 arxiv has a number of preprints. 17:28:07 "pre" being importand here. 17:28:13 So the bleeding edge? 17:28:44 By resources I meant researchers. But last time I said "human resources" people didn't like that term. 17:28:54 :) 17:28:58 Lol 17:29:07 You... you... consumer... 17:30:45 And don't get me started on human capital... 17:31:15 ok it seems like we are out of topics, how about we end the meeting here? 17:31:26 thanks koe 17:33:18 rbrunner: It's not just cryptography that "may be" useful to Monero is being published. People are writing on Monero specifically and we aren't checking what they are saying, which is both an opportunity and a threat vector 17:33:21 See https://scholar.google.com/scholar?as_ylo=2021&q=monero 17:36:03 i mean, so would moneroresearch.wtf simply have the results of that google scholar output? maybe curated a bit to weed out stuff? 17:39:42 The rough idea is yes, basically that. Curated and commented, categorized. Mostly for "internal" use, but we can direct potential new researchers there too. 17:41:26 tevador: new architecture diagram https://www.irccloud.com/pastebin/pXIH9Mfj/ 17:45:06 My idea is RPC can wrap the WalletManager 17:46:54 When would be a good time to consider (can? should?) using ristretto? Do any of the upcoming changes lend themselves to such an additonal change? 17:48:17 Now is probably a good time to consider it, if ever. The amount of work to implement and audit it would be significant though. 17:50:48 i do want to follow up regarding the DAA discussion from a few weeks ago 17:50:52 if time permits 17:52:21 go for it 17:54:07 I'd be curious about the overall performance changes with ristretto. The equality check is faster. I am assuming the current key image check would be replaced by some part of ristretto. 17:57:04 I think overall the effect would be small, since tx verification/construction is dominated by membership proofs and range proofs. 18:15:35 Rucknium[i]: Thanks for the Google Scholar link. The Monero-mentioning entries there seem to be spaced roughly about 5 days apart 18:23:32 Right. Which illustrates the scale of the problem/opportunity. 18:44:16 ha, ironically i had a meeting that I forogt about so I had to rush to that. 18:47:05 I think the level of work required to really explore the DAA and properly test solution will require a great deal of effort. I think the wise thing for me to do now is finish up this publication im working on before switching gears to this effort 18:48:17 im not a fan of multi tasking or piecemealing my work: I think it leads to mistakes (especially if it is technical) 18:50:02 my estimate for working on the DAA, start to finish, complete with testing, is about 1 year full time (40 hours/week at 75% efficiency) 18:51:35 i base that on my past experience working R&D programs in control systems 19:08:11 did you check out https://github.com/zawy12/difficulty-algorithms ? 19:08:25 there has already been a lot of research on it by an electrical engineer 19:09:00 also https://github.com/zawy12/difficulty-algorithms/issues 19:16:27 I did, and I dont think this work is rigorous enough relative to the importance of the problem. 19:17:40 it isnt something I would personally feel comfortable publishing without disclaimers. testing and prototyping is different, however 20:10:17 moneromooo: the associated address data are not at all like the payment id. Sending to the wrong payment id (or none) means the payment won't be recognized by the recipient. The jamtis address metadata are only informational for the sender and don't affect the resulting transaction. 20:10:50 additionally, the invoice addresses will have the same ID displayed to the user as the non-invoice variants 20:12:56 UkoeHB: I think the performance benefit of ristretto could be noticeable because we wouldn't need to multiply every group element by 8^-1 in proofs 20:15:50 OK. I'm not sure why you are telling me that. 20:16:25 That is, I don't see the link to what I said. 20:17:24 tevador: not really, I'd wager it's less than 5% overall 20:19:18 most of tx verification cost is scalarmultKey in the membership proof (unless you have very small ring size) 20:20:11 ristretto would mean we lose supercop (ASM implementation), sounds like an overall performance loss 20:21:34 moneromooo: then can you clarify the issue? 20:22:28 selsta: we only need the encoding/decoding part from ristretto, everything else can stay the same I think 20:22:43 Alice buys stuff from Bob. Bob gives Alice an adress containing the price for that stuff. Alice sees a different address because her software "unwrapped" the address Bob gave. Alice freaks out. 20:23:22 So, I think Alice would not freak out if the two addresses had an exact same prefix, with a clear demarcation where the extra data begins (eg, a / character or similar). 20:23:23 I still don't understand what you mean by "Alice sees a different address" 20:24:34 She compares both addresses and notices they're not the exact same. 20:24:47 Why would the software display a different address? 20:25:22 The software will display something like h8eug-w77qs-aaf7m-ww63i-hn33c as the recipient ID, which is independent of the address metadata 20:25:24 Because people would program it to do that -_- 20:25:57 it's literally impossible to "unwrap" a jamtis invoice 20:25:58 So you're assuming that all software will display a canonical form, and therefore it'll be OK ? 20:26:05 OK. 20:26:24 the key K3 will change if you modify anything in the address 20:27:37 basically, you need 3 keys K1, K2, K3 to construct a tx. Address contains K1, K2 and K3 is calculated based on the hash of the address contents 20:27:58 what happened with integrated addresses was that wallets would display the base address with the payment id separate so people would freak out 20:29:06 that wounds like bad wallet design 20:29:09 sounds* 20:29:25 afaik ledger still hasn't fixed this to this day 20:29:39 not sure if the GUI did :D 20:54:13 Which may instill a bit of humbleness into any assumptions how fast we will have an ecosystem supporting something so multi-faceted and multi-functional as JAMTIS 20:55:16 If after so many years proper UI/UX for integrated addresses is not yet here, LWS servers just NOW get a PR to support subaddresses, MyMonero to this day does not fully support subaddresses ... 20:55:55 And now we have a proposal on the table with 7 tiers. Really, I am in awe, it's pure genious, but oh all the additional complexity. 20:56:05 I know, know, I start to repeat myself :) 20:56:11 Then we better add this quick to leave people more time to get it done ^_^ 20:57:06 Good idea ... 20:59:51 Maybe we need WOW to go ahead, and we iron out kinks based on their experiences. 21:00:02 Not all of the tiers have to be implemented in software from the beginning. But the scheme supports those access levels if they are deemed useful in the future to implement. 21:05:14 I am hoping a more modular design will make it easier to implement different pieces ad hoc and third-party. It should mostly be a matter of porting things around, instead of needing to grok wallet2 first. 21:06:19 "And now we have a proposal on..." <- Something to keep in mind: scope creep. More isnt better if you cant execute. I always tell people to be mindful of this and work programs in an iterative fashion. For example: get the most important features first, then the next most, so on and so forth. There are plenty of examples of failed efforts due to this. The Librem 5 is an example. 21:20:37 And by contrast, the PinePhone is an example of good project management 21:20:56 It's still better to have a design that supports more rather than less because we're unlikely to have a second chance to do a complete overhaul of addresses. When the proposal is complete, I will also add a "minimal implementation" specs that can ignore all of the extra features. 21:34:10 I agree, it's a good chance, and I don't doubt that much thought went already into this, and will continue to go into. 21:34:33 But on the other hand the project has grown to massive proportions, don't you agree? 21:35:46 Modularity is a big plus, and may enable to pull this off. Just let us learn from similar things, in a broad sense, that ran into problems. 21:36:02 seraphis is a massive project 21:36:08 Take USB 3 / 3.1 / 3.2 / Thunderbolt whatever. 21:36:43 Despite best intentions, massive consumer confusion, big growing pains, things that are not compatible (yet) etc. 21:37:27 The "implement what tiers you like" angle does sound a lot like that. 21:37:47 True, Seraphis is massive, but I think from UkoeHB's "address schemes" table to JAMTIS is quite a jump. Or do I mis-interpret? Might be, I confess. 21:39:03 Maybe with good project management, in addition to the without-a-doubt brilliant technical work so far, this will work. 21:39:26 However, if I look at Monero's track record there so far, with "loose consensus" and all ... er ... 21:39:39 Well :) 21:40:31 Maybe define a minimum viable functionality and then hide all the other, more advanced stuff, until the minimum is properly implemented :) 21:41:42 I think it's important to fully define the entire API, otherwise there may be painful/infeasible refactors down the road. 21:42:03 the entire core API* 21:43:02 Anyway, I am more than a little bit out of my league as far as the whole technology and crypto is concerned, I may well overestimate the problems now. 21:44:39 Or the refactors simply don't happen, right, see wallet2 ... 21:45:40 Today there was a thread on Reddit where somebody seriously argued BTC has big advantages over XMR because it's almost guaranteed that BTC won't change. Interesting. 21:47:09 Alright, enough rumbling from me for today. 'Night :) 21:57:04 I guess you can never make everyone happy. Some people will complain about missing features, some people will complain about too many features. 23:03:22 my recommendation is to make sure you have a clearly defined task list and labor estimate for each activity, specific time lines arent as important 23:03:37 i meant to send that an hour ago 23:03:49 my bad, pulled in too many directions 23:05:13 regardless, im not a crypto or CS guy, but any big undertaking needs a solid plan of execution with clear goals. Do not skip this step and if anyone needs my help or wants to run something by me I cam set aside some time 23:05:53 jesus my typing is bad - digital keyboards are too small for my hands 23:17:57 "Today there was a thread on..." <- That is a trade off between pradictability and adaptability. Change is good if it is useful for survival and sustainment. For its own sake not so much. 23:44:22 "selsta: we only need the..." <- Wouldnt you also need the ristretto equality check and hash to point algo? 23:59:12 Here is libsodiums ristretto implementation: https://github.com/jedisct1/libsodium/blob/447cd270d993d30bcf1ca436a416d6a052694542/src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c#L2746