Great information, but the issue of light wallets isn’t really addressed there.
A wallet scans incoming blocks with transactions and looks for its addresses to understand whether they were involved in any transactions, i.e., whether funds were received by the user or sent from them. If it’s a full node wallet, it requests data from its own node, and there are no issues with this. A light wallet, on the other hand, is designed to retrieve transaction information without downloading full blocks, and certainly without storing them. In the worst case, it just requests exactly what it is interested in, which, accordingly, becomes known to the node it queries. The best case scenario would be requesting the entire block without revealing any information about itself.
However, if the wallet downloads the entire block, the point of using a light wallet is lost. Therefore, the wallet tries to strike a balance: minimizing exposure while also minimizing the amount of data downloaded.
Nevertheless, the node can always make certain judgments or assumptions about what exactly the wallet is interested in. Even if the transaction is shielded, the node may infer, based on the fact that one wallet and another wallet are querying this transaction, that it’s a transaction between those two wallets.
In this document ( Addressing Network-Level Threats in Zcash Using the Nym Network), from this thread (Revised Nym for ZCash Network-level Privacy - #28 by mxx) Anna claims that in Zcash, node can make not just an inference about the ownership of an address, but know for certain. (see section: Compromised lightwalletd server - Threat to Light Clients ) As you can see, I’m asking wallet team how this works