If we’re designing wallets for our money, there’re always going to be trade-offs. If we want our money to keep being private and self-custodial that is. Therefore, we can have different kinds of wallets that are better for different people or usages, each with their own pros and cons.
One of the downsides of a light wallet is that they have to ask an external node for the list of all new transactions, check them with your private keys, and see what’s yours and what’s not. That’s called syncing because when it’s done, you could say that your wallet and the node are synced with each other. That’s a downside because it takes time. The longer you went without syncing, the longer the next time is gonna take.
There’s a quick fix that we can use, kind of a hack. What if we give the node our view-key so it can check the list for us, and just tell the wallet much faster what’s ours and that’s all. That’s exactly what some wallets do. They can connect to special nodes that basically act as servers of our money transactions. They hold the view keys of wallets created in that system, and as they see new transactions coming in the new blocks, just like any other node, they check them agains the view keys they have stored. When the quick wallets connect to them, they just report the matching transactions, and it all feels pretty much instant to our users.
The downsides of these quick wallets is that you’re giving that node-server your view key, so they can see all the transactions you receive. You’re giving up your privacy as a receiver for speed. They see when you received money and how much, so you have to trust whoever runs that node. In this case, it would be better that you run it yourself, but that requires more technical knowledge and setup. See how there’re not perfect solutions?