On SPV clients and Segwit


An article released by Blockstream claims that after Segwit, SPV clients can verify that transactions have been accepted by the network without having to download the signatures/witness-data.

I'm trying to understand why this was not possible pre-Segwit. Why was the signature data a part of what's sent to an SPV client, when it was of no use to them anyway?


Posted 2018-05-05T13:37:39.467

Reputation: 25



Pre-segwit, the TXID was a hash over the scriptSig (signature data) and the outputs (value, locational data). SPV clients can not validate signature data by definition, so this is not useful information for them to have for anything but verifying the TXIDs position in the merkle tree. For segwit outputs the signatures can be stripped before being provided without altering the TXID, with massive data transfer savings.


Posted 2018-05-05T13:37:39.467

Reputation: 12 846

So are you saying that SPV clients do validate the txid by hashing the pre-image data, and since Segwit changes the structure such that signature data isn't part of the txid now SPV clients don't require it? Am I getting that right?

I probably need to brush up on how SPV clients function in general. – tMGK – 2018-05-06T14:15:00.523

That's correct. – Anonymous – 2018-05-06T17:00:55.113

SPV can validate signature data perfectly fine. They just can't verify a lack of double spends. – Dustin – 2019-02-21T20:05:42.830

They can validate nothing useful about a transaction. The signatures are absolutely meaningless. – Anonymous – 2019-02-22T09:33:41.560