tevador presented the Interactive Payment Protocol (IPP, Appendix B) and Instant Sync Protocol (ISP, Appendix C) from the Jamtis draft appendix. Discussion focused on UX of multi-round message exchanges, blockchain restorability of IPP payments, challenges of direct wallet-to-wallet data exchange (compared to multisig), static address support, hybrid encryption as mitigation for post-quantum risks, and alternatives including public key sharing infrastructure or Monero-PSK.
tevador: I have published the interactive payment protocol (IPP) and the instant sync protocol (ISP) in the Jamtis draft appendix. I'd like to discuss these today.
jberman: My opinion on the ISP is that I don't like the UX and am pretty eh on its inclusion in the spec as its a tacit encouragement for wallets to implement it
jberman: But it's a cool idea and I respect that it's 0 added cost on addresses / chain space
jeffro256: Re: UX, I would assume that wallets can implement this exchange automatically. Bob and Alice wouldn't actually be copying and pasting messages 4 times
jeffro256: I mean, you could if you wanted it to be airgapped ig
rbrunner: Hmm, isn't this the same problem as with multisig data exchanges earlier: wallets can't directly see each other?
tevador: Note that jberman is speaking about Appendix C, while jeffro256 is speaking about Appendix B
jberman: ^
jbabb: Jamtis-ISP > Monero-PSK
jeffro256: Oh oops, sorry, yeah I was talking about IPP
tevador: Yes, Appendix C was added in response to the Monero-PSK proposal
tevador: It's the closest thing we can do with Jamtis
jberman: One thing to be clear about for IPP: is there a way to restore an IPP wallet from blockchain data? I was under the impression that wasn't the case, but the spec isn't perfectly clear on that
rbrunner: Exchanging data directly between wallets is a problem that I thought long and hard and found no easy and straightforward way
jeffro256: rbrunner: Are you taking about IPP or ISP? For IPP, you wouldn't need a transport layer with long-term storage like Bitbucket since messages can fail at any point and you end up okay. Whereas the same can't necessarily be said about multisig. Also you only need 2-way comms, not N-way comms
tevador: jberman: the interactive payment is restorable from blockchain data (as an internal payment)
spirobel: yes and there is another way to do it in one round. so wallets can be shared publicly and users can directly send the tx without having to wait for the other party to be online
jeffro256: *bitmessage
rbrunner: jeffro256: Data exchange between wallets quite in general. If if only "both online" and "only 2 way", how would they find each other?
rbrunner: *Even if only ...
spirobel: i am not a fan of jamtis. and pushing it down everyones throat. but i dont want to stand in your guys way if you want to implement it
spirobel: i personally dont want to use it because i think this pq crypto is too new and unproven
spirobel: people can just use signal or other messaging apps and treat the addresses as secret key material
jberman: Aka public key sharing infrastructure?
rbrunner: Well, standing up to a task, actually producing something, and then proposing it, is not "pushing it down my throat" in my book
jeffro256: Lots of ways. For example, if a merchant has a website that you interact with anyways, you could use a HTTP API (hopefully somewhat standardized)
tevador: "PQ crypto new and unproven" - that's why we have hybrid encryption, IMO that's not a real reason against Jamtis.
rbrunner: Exactly, let's standardize something :)
spirobel: jeffro256: yes i am currently working on exactly this. i have a few endpoints already specified and working.
jberman: jeffro256: Specifically for the case of friend wants to pay a friend e.g. not a merchant payment
jberman: Or merchant hasn't set up a server
tevador: "people can just use signal" - good luck doing that with a static donation address
jpk68: I think having to use public key-sharing infrastructure is way more of a UX hurdle than, say long addresses with Jamtis
jpk68: Look at how unusable PGP is for the average person
rbrunner: Getting something accepted as new standard in our, well, quite chaotic ecosystem, is a bit of a challenge, me thinks ...
rbrunner: me thinks
jberman: tevador: And with the scheme, as soon as you share a static address from your wallet, your wallet then has to scan the chain into perpetuity to identify receives
rucknium: Is anyone very familiar with BitPay? I think they have wallet-specific interaction protocols for BTC and other coins.
spirobel: rucknium: no idea never heard of them
jberman: Lol
spirobel: jberman: i want to add messaging functionality anyway. so there is the possibility to do it automated and standardized but the user is not forced to. they can also send the receiver a snippet / link over any other (encrypted) chat app / email
spirobel: jpk68: yes its not good. so we have to do better
jberman: Automated = via a messaging server in the middle
jeffro256: If neither of you run a server of your own (e.g. you're both on mobile), and you're okay with bouncing messages off another server, Websockets is a good option
tevador: jberman: my response was directed to spirobel, who thinks we don't need to support static addresses at all (see Monero-PSK)
spirobel: no use to private payments if people communicate non encrypted or over centralized services all the time
rucknium: BitPay as a whole model isn't very good because they require a lot of controls. I think they did KYC of consumers for merchant txs in some jurisdictions.
jberman: Lol
jberman: spirobel argue your case why Monero should get rid of static addresses
tevador: Jamtis ISP is a way to get instant sync while still supporting static addresses (with the caveat that you lose instant sync if you use a static address)
rucknium: BitPay is big. So get familiar maybe
spirobel: jberman: i never made this case. i am saying that there should be the option for people to have addresses that dont require syncing. and there should be the option to have static addresses where the sender notifies the receiver out of band, and the receiver then notes down the channel opening so he can recover from seed
jeffro256: If you are in-person, RFC payments
spirobel: and my case is: there is no contradiction to jamtis there you guys can do your pq stuff with 400 bytes addresses and i do my stuff
spirobel: no need for this discussion
rucknium: bitjson, who does a lot of Bitcoin Cash protocol work, used to work at BitPay:
github.com/bitjson blog.bitjson.com
tevador: Everyone can do their stuff, but the official software cannot support everyone's stuff.
jberman: spirobel: So receiver has to have info saves from the channel opening in order to recover from seed = receiver can't recover instant sync from seed alone
jberman: Saved
spirobel: jberman: yes the receiver can recover from seed. both can recover from seed
jberman: How can the receiver recover from seed alone in that case?
tevador: If someone needs to post a static address somewhere, Jamtis offers better long term privacy than a legacy address.
spirobel: jberman: by finding the channel opening the receiver noted down as i mentioned
jberman: How do they find it from seed alone?
rbrunner: So that's "from seed", but not "from seed alone"?
tevador: jberman: We've been asking spirobel for a draft proposal for a long time. All I've seen are hand waving arguments.
spirobel: by noting it down in a tx. in both cases a secret that is derived from seed is embedded in a tx so it can be found later
jberman: I've also seen insults and poor logic
spirobel: doesnt matter who writes it
spirobel: i dont know what your point is just move on
spirobel: the logic is very simple
tevador: The proposal needs to be written by someone who knows the solution, which only seems to be you.
jberman: This is an interesting idea. A scheme expanding on this and explaining how it works would be interesting to read
rbrunner: What speaks against a draft proposal? Things still in flux? Lack of time right now?
spirobel: yes i will write it down and build a poc once I have more time
spirobel: the issue with being unable to tell if an address hasnt been used doesnt exist with public / static addresses. it is not like jamtis isp as it requires only one round and the two parties dont have to be online at the same time. thats it
tevador: spirobel: you confused Jamtis IPP and Jamtis ISP. Jamtis ISP works offline after an initial 1 round setup.
tevador: spirobel: of course the problem exists with static addresses. Addresses that have once been published may not stay published forever and you can't know who's still keeping them.
jpk68: Sorry if this sounds rude, but once something like Jamtis is no longer in use, is it possible to remove the user-facing code for it from the codebase? I guess this would apply to Carrot as well. It seems like needless attack surface if it's not in use anymore
jpk68: For example, in the wallet implementations
tevador: spirobel: of course the problem exists with static addresses. Addresses that have once been published may not stay published forever and you can't know who's still keeping them.
UkoeHB: jeffro256: the view-all tier accompanied by a thorough (well-implemented) audit is unconditional (would have to think hard on if you can make such an audit with just the view-all key, which would make that key functionally unconditional). Unviewable enotes would be isolated from viewable, making them essentially in a separate wallet.
tevador: "view-all" is really "view-all-within-specs"
UkoeHB: jpk68: in the case of moving completely to PQ? Sends to Jamtis addrs would no longer work, whether or not there is user-facing code.
jpk68: ukoehb: Yes, I understand that. I just mean that, for example, it seems there would be not much point in having carrot_core/carrot_impl if Carrot isn't being used anymore (and is somewhat unrelated to consensus rules). I might be misunderstanding something
UkoeHB: jpk68: everything needs to remain at least minimally supported for existing users
jpk68: So once there are no users (i.e. when we switch to full PQ), then it's unneeded?
tevador: It's needed to restore legacy wallets, at the very least.
jpk68: Ah, I forgot about that. Thanks.
jeffro256> sech1: should we discuss including the number of txs in the block header hasing blob in v17 in next week;s meeting?
tevador: Do you mean excluding? AFAIK it's already included.
libera.monerologs.net/monero…