This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
elliptic_curves [2025/06/17 15:05] – [Operations] transatoshi | elliptic_curves [2025/06/17 15:08] (current) – [Operations] transatoshi | ||
---|---|---|---|
Line 8: | Line 8: | ||
These are the relevant mathematical operations we can do on Elliptic-curve points. | These are the relevant mathematical operations we can do on Elliptic-curve points. | ||
- | Addition | + | === Addition |
Given two points, we can add them to one another (or subtract) and the result would be a new point on the curve. | Given two points, we can add them to one another (or subtract) and the result would be a new point on the curve. | ||
Multiplication - Given a point, we can multiply it any number of times. | Multiplication - Given a point, we can multiply it any number of times. | ||
Line 24: | Line 24: | ||
If we draw a line passing through P and Q, this line will cross a third point on the curve, R (so that P, Q and R are aligned). If we take the inverse of this point, which is simply the one symmetric to it about the x-axis, we have found the result of adding two curve points, P + Q. Let’s illustrate: | If we draw a line passing through P and Q, this line will cross a third point on the curve, R (so that P, Q and R are aligned). If we take the inverse of this point, which is simply the one symmetric to it about the x-axis, we have found the result of adding two curve points, P + Q. Let’s illustrate: | ||
- |  using Schnorr signature scheme. | The specific Elliptic curve that Grin employs is rust-secp256k1 (y2 = x3 + 7) using Schnorr signature scheme. | ||
- | ==== Key Pairs ==== | ||
- | An ECC system defines a publicly known constant curve point called the generator point, G. The generator point is used to compute any public key. A key pair consists of: | ||
- | Private key k – A randomly chosen 256-bit integer (scalar). | ||
- | Public key P – An Elliptic-curve point derived by multiplying generator point G by the private key. | ||
- | And more clearly, a public key (of private key k) is as follows: | ||
- | |||
- | P = k*G | ||
- | This is easy to compute. | ||
- | |||
- | But, if everybody knows points P and G, can they find out what k is? The answer is no; The difficulty of getting from one point to another is precisely the definition of the Elliptic curve discrete logarithm problem. | ||
- | |||
- | Secp256k1 | ||
- | |||
- | The specific Elliptic curve that Grin employs is rust-secp256k1 (y2 = x3 + 7) using Schnorr signature scheme. |