Greetings to all developers!
Before I bring up one of the most important UX issues in our wallets in my opinion, a bit of background:
About a month ago I found this call from @nuttycom to write a small TypeScript parser library that could be embedded in various services, for example Gemini exchange could use this for their customers to specify their UA address and the parser would automatically extract the Sapling address from there, since due to technical limitations they can only support this type of address.
I tried to find a freelance developer on the TypeScript forum who could do this, but two people told me that they don’t know enough about Zcash to do it. So I started looking at the source code and realized that the best way to do this is with the Rust library for Zcash addresses. Fortunately, I have an understanding of how things work because I working in Python for my business tasks. But I didn’t know Rust or TypeScript and decided to just get started on my own, using neural network, and then ask for help from those who are fluent in the topic to fix both parts if needed. I’m grateful to Kris and @1337bytes for refactoring my attempt and now we have a second version of reliable and well optimized code with strict parameters (zaddr_wasm_parser on npmjs). Anyone can check how it works in practice because there is a test html file in the repository to decompose UA into components.
Now I’ll get to the proposal part. While testing, I found that all popular wallets for Zcash offer by default to use a UA address that contains an Orchard (also formalized UA-format), a Sapling (Z-address) and a transparent T-address.
And potentially with this transparent part there is the problem of revealing information that the user would not want to share. And it seems that none of the UX wallets report this. (I could be wrong about all the wallets and apologize in advance if I did.)
In practice, this T-address from UA is completely unused anywhere today, but it can be extracted with this or other open source parser. And if a user interacted with the exchange with their transparent address, and then shared the UA with an unlimited number of people by tweeting it or posting it on this forum (which happens quite often), then they are potentially revealing all their activity with the exchange: deposits and withdrawals. I was honestly surprised by this finding. And I think that wallet users should be warned about such things in advance, in the application interface.
I suggest @pacu to discuss this part at the next Arborist Call and formulate ways to solve this issue. Either remove the transparent address from UA, which is used by default, since it is completely unused anywhere at the moment. Or think about appropriate warnings on the page with that address.
And by the way, anyone may use the test html to take the clear Orchard to share it without risk of revealing unnecessary information.
Thank you for your attention!