I think one of the biggest things holding Monero back from a user experience standpoint is the need for every user to download a large subset of information each time they want to check their balance.

Although with light wallets this information is not stored permanently we still require a user that has been offline for n blocks to temporarily download and check for new transactions, to ensure they have not missed any transactions that were sent to their address.

This property results because of the mandatory implementation of stealth addresses across the whole of Monero's TX base, which ensures that users must attempt to calculate the spend key for all transactions that occur.

Is there any significant research that has gone into potential solutions to this problem?

Naively, I can only think of modifying the existing approach to this problem which is to give your view key to someone else to perform the calculations. Perhaps instead of allowing them to see transactions which you owned, we could use a MPC scheme, a set of untrusted nodes and split the computation among those nodes so that no one node knew who was holding what funds Then if the results of the MPC were combined by the user, they could understand which TXs were sent to them.


There are various things which have been implemented to aid in light, SPV-like wallets. E.g. light-wallet support for MyMonero, more recently and related, pruning. But you correctly identify one of the main obstacles - scanning the blockchain for receiving funds.

The biggest problem with your suggested approach is divulging the view key to someone else. This is a huge privacy leak. Ultimately, you have to scan the blockchain with your view key to update your balance and get your fresh unspent outputs. This is why there has been a fair amount of work minimizing what a client wallet needs to sync to enable the scanning (this has been dramatically improved over the last year). Currently, using a remote node, the data transferred is pretty minimal for wallets to scan and the scanning code itself has been pretty well optimized.

I do like your thinking outside-the-box though. I'd suggest it best to sound these kind of ideas out in the dev IRC channel #monero-dev rather than SE - it's better suited to this kind of discussion.

  • Are you saying... Start a server running monerod with custom software, and have people give out their view key to this server and have the server check if the person's wallet got any monero? Then have a custom gui and stuff for the client side, etc? Feel free to ask me for clarification, and welcome! – Crypthusiast Feb 7 at 4:03
  • This is already the case for service like MyMonero which do exactly what you describe, im talking about using MPC to blind the node to what its calculating so it doesn't depreciate user privacy – CuriousCasey Feb 7 at 4:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.