Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: harvysam on January 29, 2018, 06:49:41 PM



Title: Elliptic curve point of R
Post by: harvysam on January 29, 2018, 06:49:41 PM
I've the Public key which is
0x04 32 bytes X coordinate 32 bytes Y coordinate.
Is there a way we can get the original point value on the Elliptic curve of R?

I did convert the 32 bytes into integer and I believe the curve point is generated using the order of the base point, now can we remove the order of the base point and look at only the values on the curve?


Title: Re: Elliptic curve point of R
Post by: achow101 on January 29, 2018, 10:21:08 PM
What do you mean by "original curve point"? Do you mean the generator point? If so, that's part of the curve parameters. You can only know that by knowing what curve you are using and its parameters. Given just a public key, you cannot know the curve parameters.


Title: Re: Elliptic curve point of R
Post by: harvysam on January 30, 2018, 07:07:54 AM
What do you mean by "original curve point"? Do you mean the generator point? If so, that's part of the curve parameters. You can only know that by knowing what curve you are using and its parameters. Given just a public key, you cannot know the curve parameters.

Using Elliptic Curve of SECP256K1 of bitcoin, I believe with scalar multiplication of "Point P & Q" we get the "point R", but the value what we get is hash values but I can convert it to the integer which results in "77 digits in X and Y coordinate".

I'm trying to learn something that usually in a graph we don't work on large integers, but is there a way to remove the "generator point hash G" so we can see the actual point values like [0,1] or [10,16] etc.,??


Title: Re: Elliptic curve point of R
Post by: mvrcrypto on January 30, 2018, 12:41:04 PM
I did convert the 32 bytes into integer and I believe the curve point is generated using the order of the base point, now can we remove the order of the base point and look at only the values on the curve?

No you can't. On elliptic curve you can multiply a point by a number, but you can't divide a point by anything.
If you could, we had know k and thus we can retrieve private keys from every p2pk signatures on the bitcoin network.

Edit: Or if you want to substract the point (not divide it), you can add the point G'=(Gx, -Gy).
Then, you will have P-G=P+G'


Title: Re: Elliptic curve point of R
Post by: DannyHamilton on January 30, 2018, 02:05:10 PM
Using Elliptic Curve of SECP256K1 of bitcoin, I believe with scalar multiplication of "Point P & Q" we get the "point R",

Correct.

Given a base point of P and a private key scalar value of Q, when you multiply P & Q (using point multiplication on the elliptic curve) the result is public key point R.

but the value what we get is hash values

Incorrect.

It is not a "hash value".  What you get is a pair of very large integers.  If it looks like a "hash value" to you then that means that the method you are using to calculate the value is displaying those integers to you in base 16 (also known as hexadecimal).

but I can convert it to the integer which results in "77 digits in X and Y coordinate".

It was already an integer.  You are just converting the integer from base 16 (hexadecimal) to base 10 (decimal) representation.

I'm trying to learn something that usually in a graph we don't work on large integers,

But in elliptic curve cryptography graphs we DO work on LARGE integers.

but is there a way to remove the "generator point hash G"

The generator point is not a HASH.  It is a POINT.  It is a point on the graph with an X coordinate and a Y coordinate.  The generator point G IS the point P in your example of "scalar multiplication of Point P & Q we get the point R".

If you remove G then you have nothing to multiply by the scalar private key Q.

so we can see the actual point values like [0,1] or [10,16] etc.,??

The large integers ARE the ACTUAL POINT VALUES.