The secp256k1 curve is defined by the equation y2 = x3 + 7 with coordinates X and Y over the field GF(p) with p=2256 – 232 – 977, not the field of real numbers. This field consists of the integers modulo p. In this field, there is no concept of “smaller” or “larger”, no concept of “decimals”, and no concept of “positive” or “negative”. For example, the numbers -1 and 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,908,834,671,662 represent the same field element. One is small, the other is large; one is negative, the other is positive.

Furthermore, the modulo effect applies for all arithmetic operations. For addition, subtraction, and multiplication, it just means reducing modulo p after performing normal addition, subtraction, or multiplication. But that’s not all. Division is the reverse operation of multiplication, so a/b mod p is really asking “what value of x in the field satisfies a = bx mod p?” which is a very different thing from division in the reals. Similarly, a square root is the reverse operation of squaring, so √a is really asking “what value of x in the field satisfies a = x2 mod p?”.

7 has no square roots in this field. That is, there exists no integer x such that x2 mod p = 7. Thus, there is no point on the secp256k1 curve with X coordinate 0. 13 + 7 = 8 does have a square root (namely, 29,896,722,852,569,046,015,560,700,294,576,055,776,214,335,159,245,303,116,488,692,907,525,646,231,534) so in principle it would have been possible to choose G to have X coordinate 1. It’s not known how the X and Y coordinate of G were chosen however, but presumably an X coordinate was picked for which x3 + 7 does have a square root mod p, and then one of these square roots was chosen as the Y coordinate.

More reading:

Leave a Reply

Your email address will not be published. Required fields are marked *