ECDSA
Last updated
Last updated
Definition of an elliptic curve: $y^2 = ax^3 + bx + c$
Elliptic curve that Ethereum uses: $y^2 = x^3 + 7$
unique characteristic of an elliptic curve is that its possible to connect two points to produce a third point - kind of like a binary operation
points on an elliptic curve form a group
identity element - point at infinity (straight line; gradient is infinite)
if A = (x, y), the inverse of A is A = (x, -y)
ECDSA malleability attack
every point has an image across the x-axis (how about the point on the x-axis where the tangent is vertical)
points on an ECDSA also form an abelian group
tl;dr of elliptic curve addition:
we have the points
in the curve
which gives us a third point (x_r, y_r)
ethereum has ECDSA precompiles (ecrecover) so we can do elliptic curve manipulation on chain
bn128 curve is pairing friendly