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?

1 Answer 1


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.

  • 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.
    – user82756
    May 6, 2018 at 14:15
  • That's correct.
    – Claris
    May 6, 2018 at 17:00
  • SPV can validate signature data perfectly fine. They just can't verify a lack of double spends.
    – Dustin
    Feb 21, 2019 at 20:05
  • They can validate nothing useful about a transaction. The signatures are absolutely meaningless.
    – Claris
    Feb 22, 2019 at 9:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.