I stumbled upon the fact that schnorr signatures will most probably replace the current ECDSA system in a future BIP.

Is it worth learning about ECDSA or this will become obsolete/useless/confusing knowledge ?

Or should I go straight into schnorr signatures, for example how will it impact a model like this

1 Answer 1


Schnorr signatures will not replace ECDSA. Schnorr signature verification is expected to be implemented with the Taproot soft-fork using SegWit witness version 1. This means only outputs that are locked in v1 SegWit version are expected to produce a valid Schnorr signatures.

ECDSA will continue to be used for spending current non-SegWit and v0 SegWit outputs. All outputs having the OP_CHECKSIG opcode will continue to use the legacy ECDSA signing algorithm and verification.

So, understanding ECDSA is important for understanding the signature verification behind spending all outputs that are not native v1 SegWit. According to txstats.com only over 2% of all the BTC value locked belong to native SegWit scripts, that too after almost 2 years of implementation. So it can be safely assumed that V1 implementation might not completely replace all current output locking scripts, needing you to understand ECDSA signing algorithm as well if you plan to build products that would accept Bitcoin that require ECDSA signatures to spend.

  • "a soft-fork [...] cannot remove ECDSA" This is phrased confusingly. I think you're trying to say that we can't allow legacy OP_CHECKSIG operations to be satisfied by a schnorr signature using a soft fork, which is correct. However, when I first read your sentence, it sounded like you were saying that we couldn't remove ECDSA altogether via a soft fork, which is incorrect---we could make legacy OP_CHECKSIG always fail via a soft fork since that would be simply making the rules more strict. Oct 28, 2019 at 19:25
  • @DavidA.Harding Yes you are correct. I think that was a poor choice of words on my part.
    – Ugam Kamat
    Oct 29, 2019 at 5:08

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