As I understand it, both work with elliptic curves, but there seems to be a difference as EdDSA is generally recommended over ECDSA.
-
1$\begingroup$ I think you will find your answer in this post : crypto.stackexchange.com/questions/58380/… The main difference being the king of curve you are working with (both elliptic, but EdDSA uses Edward curve, which allow a faster and more secure computation of point multiplication). $\endgroup$– FaulstCommented Jun 29, 2018 at 6:58
1 Answer
Partially covered by does TLS 1.3 use ECDSA-Sig-Value encoded signatures for Ed25519 / Ed448? but to add a little, rfc8032 describes EdDSA's advantages as:
EdDSA provides high performance on a variety of platforms;
The use of a unique random number for each signature is not required;
It is more resilient to side-channel attacks;
EdDSA uses small public keys (32 or 57 bytes) and signatures (64 or 114 bytes) for Ed25519 and Ed448, respectively;
The formulas are "complete", i.e., they are valid for all points on the curve, with no exceptions. This obviates the need for EdDSA to perform expensive point validation on untrusted public values; and
EdDSA provides collision resilience, meaning that hash-function collisions do not break this system (only holds for PureEdDSA).
ECDSA also has small sizes (4) though not exactly the same ones -- and (all? most?) applications use ASN.1 which is variable size and a little more complicated, although the algorithm itself doesn't require that. ECDSA also has good performance (1), although Bernstein et al argue that EdDSA's use of Edwards form makes it easier to get good performance and side-channel resistance (3) and robustness (5) at the same time. EdDSA also uses a different verification equation (pointed out in the link above) that AFAICS is a little easier to check.
Standardized ECDSA does require random per message and fails catastrophically if it repeats for different messages (2); rfc6979 by our very own bear proposes a fix for this but has not been widely adopted, at least not yet. (6) just means the EdDSA standard allows omitting the message hash, which the ECDSA standard officially doesn't but in practice people do anyway, so I consider this difference spurious.
For some more on the differences caused/enabled by Edwards form, see:
Elliptic Curves of different forms
What are the differences between the elliptic curve equations?
What is the curve type of SECP256K1?
There's also the general effect of EdDSA being newer, which has both real advantages (learn from and adapt to field experience, optimize for modern systems and implementation methods) and spurious ones (more fashionable and gives the impression of being 'in with the cool kids'). Plus there's the effect of Bernstein not being the US government, which some people just distrust and/or dislike, for reasons that are mostly out of scope here.