1

I'm wondering if anyone has thought about or implemented a low security sync mode?

Presumably the client would only need to grab the TX hash, P and R values, and number of outputs, to be able to fully scan the whole blockchain for outputs that belong to them.

It would be low security because you would need to trust the node a little, however, unlike full light wallets (MyMonero), the remote node can't see your coins or steal them, however, the node would be able to make you see a false view of the blockchain state.

However, this seems like a nice trade off, especially if run through a mixnet, then the node will have trouble feeding it's modified state to clients, since it will be hard for it to distinguish a target.

1

Let's first start with what's needed to compute which outputs are destined for you:

  • The tx public key (R)
  • Each one-time output destination destination key in the tx (P)
  • Your wallets private view key (a)

Therefore, a wallet either needs to offload (trust) sending their private view key to some other node which can perform the scan, or they have to have all the above locally. The remote node (in your example) cannot steal coins, as it doesn't have your private spend key, but it leaks privacy because the remote node can see how much money is sent to you (you have divulged your private view key). This latter point is the problem.

  • 1
    Perhaps you misunderstand my question, right now it seems as if the wallet sync from a remote node is not downloading this minimal set of information, it is also downloading the PoW hashes to validate blocks which adds additional sync time. What im asking is can we make a sync mode where i as the client fully downloads the most minimal set of information (TX hash P, R and num of outputs) and just ignores everything else. He still keeps his keys local and does the calculations locally, he just never downloads any ancillary information from the chain. – CuriousCasey Feb 15 at 0:59
  • No, a wallet scan (it's not a sync), does not download "POW hashes" to validate blocks. It downloads and scans transactions. – jtgrassie Feb 15 at 1:14
  • I dont think that is the case, how would the wallet be able to validate the transactions fully without having the block headers(which include the PoW hashes)? if this was the case the node could selectivity reorder or exclude transactions from blocks and present a false state of the network to the wallet – CuriousCasey Feb 15 at 1:22
  • Validating a tx and validating a block are separate tasks. And yes, a remote untrusted node can indeed tell the wallet inaccurate information (reasons to use your own node - even if remote). I'd need to double check in the code exactly what's being downloaded, but in any case, downloading an entire block vs just the blocks txs is not going to be that different, as it's the txs that make up most for the block weight. The block header is tiny. All this is irrelevant - to check if you received money, you have to have the tx public key, the output keys and your private view key. – jtgrassie Feb 15 at 1:29
  • To confirm, monero.stackexchange.com/a/2391/7493, the wallet downloads and scans the whole block minus the signatures. The daemon validates the entire block and the wallet checks the txs. As I mentioned, the block header is tiny. You cannot download anything less because you need the txs (which take up the majority of the block). – jtgrassie Feb 15 at 1:58

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.