SPV clients and full nodes

1

Suppose an SPV client goes offline at block X (meaning it has block headers until block X) and then comes back online when the blockchain is at block Y. At that point, it needs to resynchronise its UTXO set. So, it does the following: (1) get the block headers of blocks X to Y; (2) construct a bloom filter for its addresses and request a full node to send all the transactions matching this bloom filter from block X to Y; (3) the full node does so and if a match is found, sends the transaction data along with a merkle proof to the SPV client; (4) SPV client verifies the proof and if it's correct updates its UTXO set accordingly.

Is this the way things actually happen?

If yes, then my question is then why can't the full node simply do the following: (1) send its UTXO set to the SPV client; (2) SPV client then filters the UTXOs of its interest and put those UTXOs in its own UTXO set.

Is this method not followed because it doesn't involve any verification from SPV client and this the full node can give the SPV client a totally wrong UTXO set?

archita

Posted 2018-11-16T21:44:02.190

Reputation: 13

2

Welcome to Bitcoin.stackexchange. In general, it is best to ask one question at a time. The more questions you ask at the same time, the less likely anyone is to attempt to answer it. I could answer parts of this but I won't because I an unsure about other parts and I don't want to write a partial answer. See the [help] and how do I ask a good question

– RedGrittyBrick – 2018-11-17T15:07:13.323

Answers

2

Is this the way things actually happen?

Yes

If yes, then my question is then why can't the full node simply do the following: (1) send its UTXO set to the SPV client; (2) SPV client then filters the UTXOs of its interest and put those UTXOs in its own UTXO set.

The UTXO set is large and a proof for every UTXO would be required. Proofs for every UTXO would be expensive to build and an extremely large amount of unnecessary data would be sent over the wire thus consuming network bandwidth that could be better used elsewhere.

Andrew Chow

Posted 2018-11-16T21:44:02.190

Reputation: 50 267