<p>Yes, there is!</p>
<p>For a given Y coordinate <em>y</em>, if on the curve, the three corresponding X coordinates are the cube roots of <em>y<sup>2</sup> - 7</em>. If you have any such cube root <em>y<sub>0</sub></em>, then multiplying it with a cube root of <em>1</em> gives you another cube root - for the simple reason that <em>(y0 ∛1)<sup>3</sup> = y<sub>0</sub><sup>3</sup>(∛1)<sup>3</sup> = y<sub>0</sub><sup>3</sup>1 = y<sub>0</sub><sup>3</sup></em>.</p>
<p>Modulo <em>p = 2<sup>256</sup>-2<sup>32</sup>-977</em> (the secp256k1 field size), the three cube roots of <em>1</em> are:</p>
<ul>
<li><em>1</em> (obviously)</li>
<li><em>60197513588986302554485582024885075108884032450952339817679072026166228089408</em></li>
<li><em>55594575648329892869085402983802832744385952214688224221778511981742606582254</em></li>
</ul>
<p>This is exactly analogous to what's going on for the corresponding Y coordinates given an X coordinate; only there the different Y coordinates are related by multiplication with <em>square</em> roots of <em>1</em>, namely <em>1</em> and <em>-1 = p-1</em>.</p>

CC BY-SA 4.0
2023-10-13T23:39:43.150Z
2023-10-13T23:39:43.150Z
Pieter Wuille
<p>Every possible X coordinate on secp256k1 has two corresponding Y coordinates, one of which is the negation of the other. I've also been told that every possible Y coordinate has three corresponding X coordinates (<a href="https://math.stackexchange.com/a/673423/938129">due to the fact that the field size <em>p</em> = 1 mod 3</a>). Is there also a nice relationship between them? Given a point on the curve, how can I obtain the other two points with the same Y coordinate?</p>

<secp256k1><math>
What is the relationship between the three possible X coordinates corresponding to a Y coordinate?
Vojtěch Strnad
# What is the relationship between the three possible X coordinates corresponding to a Y coordinate?

(Asked by: username_0 on 2023-10-13)

Every possible X coordinate on secp256k1 has two corresponding Y coordinates, one of which is the negation of the other. I've also been told that every possible Y coordinate has three corresponding X coordinates ([due to the fact that the field size *p* = 1 mod 3](https://math.stackexchange.com/a/673423/938129)). Is there also a nice relationship between them? Given a point on the curve, how can I obtain the other two points with the same Y coordinate?

**Tags:** secp256k1, math


---

## 1 answers

### Answer by username_1 on 2023-10-13. Score: 8 | Accepted answer

Yes, there is!

For a given Y coordinate *y*, if on the curve, the three corresponding X coordinates are the cube roots of *y2 - 7*. If you have any such cube root *y0*, then multiplying it with a cube root of *1* gives you another cube root - for the simple reason that *(y0 ∛1)3 = y03(∛1)3 = y031 = y03*.

Modulo *p = 2256-232-977* (the secp256k1 field size), the three cube roots of *1* are:

* *1* (obviously)
* *60197513588986302554485582024885075108884032450952339817679072026166228089408*
* *55594575648329892869085402983802832744385952214688224221778511981742606582254*

This is exactly analogous to what's going on for the corresponding Y coordinates given an X coordinate; only there the different Y coordinates are related by multiplication with *square* roots of *1*, namely *1* and *-1 = p-1*.


---

