08:45:27 I think anything advertised as payment channels should not have any third-party trust assumption. I think you can achieve multisigs as a scaling solution, but they're still multisigs and should be phrased as such. 08:49:32 My comments on 'using a threshold multisig for a KES' weren't meant to suggest the results would be perfect payment channels, just that it'd mitigate KES risk. 08:51:26 But when the primary premise is the third-party won't misbehave, then you can just propose wXMR on ICP for very much greater functionality and to underline what the issues/trust assumptions are. 08:51:26 I understand this also requires the other party in the channel to collude with ICP, and the updates optimistically occur off-chain, but it's still very "ugh" IMO. 09:56:30 Also, the Monet paper proposed PoW puzzles to about such third-parties, which the Grease paper replaced with a KES, AFAIK. Monet didn't require a 'smart contract' and Grease didn't require PoW puzzles. Instead, those were the issues with the respective designs. 12:09:32 Hey, I work on EgalChain; is a Monero fork (RandomX, ring sigs, stealth addresses intact) with a consensus-validated state layer on top — signed ops in the coinbase tx.extra, executed each block into an LMDB registry, committed to a Merkle-sum-tree state root. It's testnet-stage, pre-audit. The source code is not yet public; [... too long, see https://mrelay.p2pool.observer/e/zNK3-ZYLa1BGS3pM ] 12:09:32 Here's the design tension I want your reasoning on. The base-layer txs keep Monero's privacy — but the cooperative-banking layer on top is transparent by construction: ops are ed25519-signed with persistent keys, amounts live in a public registry, and the Merkle-sum-tree exists precisely so balances and conservation are prov [... too long, see https://mrelay.p2pool.observer/e/zNK3-ZYLa1BGS3pM ] 12:09:32 So my real question isn't just "does the country_code leak" — it's whether it's coherent at all to run a deliberately-transparent, identity-bound ledger inside a chain whose base threat model is unlinkability. Does the pseudonymous state layer already dissolve the privacy guarantees enough that the passport binding is[... more lines follow, see https://mrelay.p2pool.observer/e/zNK3-ZYLa1BGS3pM ] 12:23:04 > On top of that I bind a passport-derived nullifier (one persistent per-person id) + an ISO country code for a Sybil-resistant, per-country on-chain poll. 12:23:04 That sounds like a bad idea. 12:48:29 Why ? 12:55:53 @egalchain_pioneer:matrix.org: Unlike #monero-dev:monero.social , this room does not have "no fork help" in its description, but this conversation is better to have in #monero-research-lounge:monero.social than here. 13:00:15 Thanks I delete and paste it over there 15:03:08 MRL meeting in this room in two hours. 17:00:04 Good afternoon, all. 17:00:52 Meeting time! https://github.com/monero-project/meta/issues/1421 17:00:55 Hi 17:00:58 o/ 17:01:00 1. Greetings 17:01:02 Hello 17:01:08 hi 17:01:10 Hi 17:01:20 Hi 17:02:25 waves 17:03:21 2. Updates. What is everyone working on? 17:03:23 Howdy 17:03:48 me: Keeping stressnet stressed and helping troubleshoot there. 17:04:44 me: reviewing FCMP++ PRs and upstream bug fixes, reworked my RPC speedup PR , worked on some upstream bug fixes myself 17:04:59 Me: still working on getting the serialization pr 100%, getting closer to (hopefully) solving the weak ptr memleak, and lastly fixing the slowdowns on d++/p2p send code 17:05:08 me: FCMP++ integration PR's, stressnet debugging followup 17:06:07 me: Reading some fun things about lattice commitments and various other things. 17:06:25 I have this item for discussion: https://github.com/monero-project/research-lab/issues/161 (apologies for the late submission). Can be done in agenda item 4. 17:08:07 tevador: Ok it can be discussed during item 4. Thanks. 17:08:13 3. FCMP++ to-do list status. Programming tasks (https://github.com/seraphis-migration/monero/issues/53). Reviews and audits (https://cryptpad.fr/sheet/#/2/sheet/view/yPVIUywwA9-deE9VF6GYm9bXbPdCerdST3UDEEfBxcM/embed/). 17:09:08 * Still slowly making progress on getting integration code merged upstream 17:10:14 * Making progress on the major beta stressnet items, however, I would stlil say the beta is in a state where FCMP++/Carrot code doesn't need to be blocked from mainnet aka it seems to be in a good state 17:10:46 As for the task list , since https://github.com/seraphis-migration/monero/pull/424 was merged and reviewed (thanks Ukoe), I can rebase the wallet knowledge proofs PR , and chug along with that 17:10:57 * UkoeHB has mentioned for multisig he has 1 last test he's working through 17:12:09 I don't have an update on what's next with hw wallets 17:12:36 Also, @plowsof:matrix.org performed wallet sync and cold signing on mobile wallet for stressnet 17:12:50 I keep getting messages that the companies are looking jnto it, but so far nothing has materialized 17:14:00 hot/cold wallet stuff seems pretty close to the finish line as well thanks to @jeffro256:monero.social 17:15:13 helioselene audit is still ongoing, and we're still discussing the next steps for another audit round on the circuit + gadget ipml internally 17:15:23 @jeffro256: Which companies are looking into it if I may ask? 17:15:42 Ledger, Trezor 17:17:21 ofrnxmr yes , these transactions where all signed offline via DataHoarders stressnet payments explorer https://stressnet.p2pool.observer/payments?id=cat 17:18:18 and vtnerds lwsf carrot branch 17:18:29 plowsof: Thanks. Does that mean that the code that we know works is Go code? 17:18:45 Yes working on multisig test. wallet2 is quite poorly designed for testing. 17:18:59 Hello 17:20:15 Anything more about this topic? 17:20:16 afaict yes : for the end user - the difference is after you import the signed transaction set - there is another 10-20 seconds of work that is done (building the tree and things jeffro would know about) but thats all. signed/unsigned tx sizes are just as small as wallet2 tx's 17:21:40 4. Post-quantum encryption (https://github.com/monero-project/research-lab/issues/151#issuecomment-4412416686). Jamtis (https://gist.github.com/tevador/639d083c994c1ef9401832c08e2b7832#appendix-c-instant-sync-protocol). Repurposing unlock_time for relative locks with FCMP++ (https://github.com/monero-project/research-lab/issues/161). 17:23:44 The relative lock is a trade off which might be worth the slight leakage it would cause. 17:23:55 I don't understand how making the unlock time relative does anything to help it support payment channels 17:24:40 @jeffro256: If I'm reading it correctly, I think it's just addressing having a better unlock_time which would preserve the payment channels. 17:25:20 It allows the channel to have 2 presigned transactions: Withdraw (time-locked) and Punish (not locked). The Punish is used if Alice attempts to close the channel with an old state. 17:26:26 But I agree we should investigate specific protocols it would allow before implementing it. 17:27:03 Ah I see. In that case, we would need to move the reference_block field to the signable portion of the transaction 17:27:12 tevador: Which works very well if the fees are much lower than the channel value. 17:27:26 This would break tx chaining and make offline signing weirder 17:27:42 jeffro256: no, it does not need to be signed 17:28:15 only unlock_time = 1 is signed, so Alice cannot change that 17:28:59 I am still a bit confused. Their value does not rest on them being relative now, or does it? I could already lock up to the same block like any relative lock with the "old" locks 17:29:13 She can select whatever reference_lock / anchor_height she wants, but if block_height - anchor_height < 720, the transaction won't be relayed. 17:29:19 > But I agree we should investigate specific protocols it would allow before implementing it. 17:29:19 I agree with this. If there is a specific protocol spec'd that could feasibly work, then it could make sense. FWIW @moneromoo at one point highlighted how there is still a way for someone to hack that kind of unlock time behavior with the current unlock_time: by constructing a tx and putting it on chain with a specific unlock_time, and then pre-signing a tx with that output as an input 17:30:00 You need a relative lock to have payment channels that don't expire 17:30:34 I feel like the fake lock fix could be an issue. How many wallets would realistically be randomly setting unlock_time=1 for normal transactions? 17:30:35 Ah, the clock starts to tick with the mining of the tx, whenever that will be? 17:30:53 Yes, the block starts ticking when Alice submits the malicious old state transaction. 17:30:56 clock* 17:31:15 But does that leave the door open to fraud by anyone who knows the rerandomizations by setting an arbitrary reference block? > only unlock_time = 1 is signed, so Alice cannot change that 17:31:27 *doesn't 17:31:56 No, you cannot make a valid membership proof for an enote that's not in the tree yet (it will be added ~700 blocks later) 17:32:36 unlock_time = 1 tells the consesus protocol to use an old tree root for the proof 17:33:11 Which proves that the transaction is spending only enotes older than 24 hours. 17:34:44 Are these new locks still per tx and not per output? 17:34:47 IIRC, one of the reasons custom unlock time is being eliminated at the deployment of FCMP is that custom unlock time negatively affects the FCMP tree performance. 17:35:04 I think it's a bit of a UX issue to have random 24-hour locks on ordinary transactions. 17:35:40 neptunian: No, there would be no locks on random transactions. 17:35:55 The enote spent is ALREADY older than 24 hours, so there no wait time. 17:36:07 And hasn't the issue with Monero-style locks been that when custom lock time arrives, you have a race in the txpool to spend the tx if multiple people have the right to spend it? 17:36:24 tevador: Ah. I see. Thanks for clarification. 17:36:52 The repurposed unlock_time doesn't work like the old one. It only affects tx validity, not subsequent spending. 17:37:26 Yeah that could work. If we can do a gate on some cryptograpgic condition, then that would be pretty similiar to HTLCs 17:37:44 Basically, with unlock_time = 1, Alice has a pre-signed transaction that will become valid in 24 hours. After that, only the normal 10 block lock applies. 17:38:06 tevador: *assuming no large changes in hashrate 17:38:26 ~24 hours* 17:39:36 I agree with Berman that it would be nice to have at least 1 sketch of a real, useful payment channel before supporting it, but this version of time locks is much closer to actually supporting payment channels 17:39:57 I will try to add a protocol sketch to #161 17:43:06 So it's a tx publish lock, not an enote lock as with the current timelocks. Yeah you can accomplish the same with timelocks by submitting a locked enote then chaining off it. So any protocol using relative locks would presumably already work. 17:43:51 No, it would not work. 17:44:20 UkoeHB would the main difference here be that this relative lock doesn't put the compute / storage burden on tree builders? 17:44:25 Current unlock_time is unconditional, so it also prevents Bob from spending it with his Punish transaction. 17:45:21 The proposed unlock_time functionality would be used to only lock Alice's Withdraw transaction. AFAIK that can't be accomplished with the old locks. 17:45:26 tevador: you can timelock a dummy enote, it doesn't have to be the funds actually transferred by the relatively-locked tx. 17:46:26 jeffro256: yeah, and simplifying the payment channel workflow (if there is one) 17:46:49 OK, so we have a presigned dummy enote. Alice publishes just this dummy, waits 24 hours and then steals the funds from the wrong state transaction. 17:47:44 I haven't seen any workiable protocol using the current broken unlock_time feature. 17:47:57 tevador: probably easier for you to post a sketch then I can logically disprove it (or fail to). 17:48:36 I will post a sketch 17:48:59 For proving, not disproving 17:49:21 I'd agree with Tevador about the relative lock being good given the slight leakage. 17:49:23 It may be best to wait for the full sketch, though. 17:51:51 tevador: what about a 2-of-2 on the dummy so it can't be invalidated by Alice? 17:53:24 UkoeHB: You can try to sketch your protocol using the old locks. I'm strongly suspecting it won't work. 17:54:10 Ooh. A sketch-off. 17:54:52 Thanks, tevador . Anything more on this topic for now? 17:56:39 5. FCMP beta stressnet (https://github.com/seraphis-migration/monero/releases/). 17:58:00 For v2.1, I'd like to have the elusive wallet tx rejection double spend errors fully solved. It seems there are a few issues it has exposed (also present in the current release monerod) that are leading to this rare edge case issue 18:00:01 I'm starting to test the proposed fixes. 18:00:17 ^I've requested @rucknium:monero.social run all the patches we have for identified issues (1 patch by vtnerd as well) + more detailed logging that would help us be certain we have fully solved it 18:00:58 And that logging also includes additional logging that would help us get to the bottom of a distinct issue of more frequent bans, seemingly caused by tx relay v2 18:01:52 Here's a tracker for beta v2.1 : https://github.com/seraphis-migration/monero/pull/415 , I'll updae that as we get more info on the issue with @rucknium:monero.social 's majorly appreciated help 18:02:58 the code @rucknium:monero.social is running includes the 3 PR's under the "sporadic double spend" bullet, and the "log missing requested pool tx" bullet 18:04:55 Anything more on stressnet? 18:05:27 nothin from me 18:05:52 vtnerd how is p2p SSL looking for stressnet? 18:10:22 5. monerosim (https://github.com/Fountain5405/monerosim). 18:11:08 @gingeropolous:monero.social seems to be working on improvements: https://github.com/Fountain5405/monerosim/commits/main/ 18:11:15 I don't know if there is anything to discuss. 18:12:38 its claimed as being completed now https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/589 18:13:52 I think the task described in the CCS is completed. 18:14:21 thanks for looking into this Rucknium 👍 18:14:29 We can end the meeting here. Thanks everyone. 18:15:45 Thanks 18:23:29 Thanks everyone! 18:24:31 @jeffro256: Sorry phone call came in. It was ready last I looked, I'll double check that before Friday 18:25:37 The d++ slowdown took precedence 18:30:42 @vtnerd: I'm in the process of moving, so things are a bit hectic around here for another week or so 18:32:33 19:18:28 plowsof: Thanks. Does that mean that the code that we know works is Go code? 18:32:34 This is scanning code, not signing code. I can only generate/verify SAL proofs, not FCMP. I can generate/sign full txs pre-FCMP++. I think plowsof just means "here's a list shown via my explorer" :) 19:15:16 couldn't have said it better myself, thanks DataHoarder 😅 19:37:38 @tevador can I ping you again for mx25519 PR review plz ? The carrot_core dependencies are almost all merged, which would leave mx25519, I will PR the unclamped changes soon 20:10:53 OK