Elliptic Curve Questions

Some things are not clear to me yet.

  1. I understand the Elliptic Curve creation has the formula y2=x3 + ax +b How and where are the values defined to create the curve? Are this always the same values everytime you create a new set of keys?

  2. The first point 0 seems that’s a given value, how and where is this value created? Is this always the same?

  3. The parameters of the box around the curve seems defined in the system. Where are those values defined? Hardcoded in de software?

Thanks for the great course!

1 Like

Bitcoin’s elliptic curve actually has a name - secp256k1. Here’s some info on it:

https://en.bitcoin.it/wiki/Secp256k1

As to where the parameters are stored, it would be inside the relevant functions. So a ‘generate address’ function would just reference the secp256k1 spec.

1 Like

Hi @Grant_Hawkins,

I am a bit confused on the relation between the origin point and the generator point. I feel like I need to take it one step back, as everything in the ECC proces starts with just having these two. I question then:

  • I understand that the generator point I choose myself. Is this point then private or is it publicly known?
  • And the origin point from where I draw the first line, is that one fixed for all ECC calculations? Does everyone know my particular origin point or does everyone use the same point for all of their own calculations?

Thanks in advance!

1 Like

Both points should be pre-defined as parameters for whatever system you’re dealing with.

For the Bitcoin elliptic curve (see my above post), point G is given about halfway down the page.

If it’s within some signature scheme (for example), that scheme will have some G that you use for it.

So everyone uses the same origin and generator. Private key is how many ‘steps forward’ they take from there, and Public key is the coordinates where they ‘finish’.

3 Likes

OOOOOHH I get it now, thanks!

1 Like

I don’t understand how the public key is calculated.
You said that the private key is the number of steps.
So basically you start at H, then you calculate points one at a time until you finally do K transformations.
(If K is the private key.)

  1. Well if K is an insanely large number, then how is this possible? Obviously it would take forever to do that many computations…

  2. How is a point on a graph a “pub key”? A point on a graph consists of two numbers, an x and a y coordinate. But the pub key is a single large number, not a point on a graph.