ECDSA

  • 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

Last updated