Ситуация следующая.
Берем Y от публичного ключа (координаты). С него получаем 3 штуки X. Далее из любого из этих трех Х, получаем 2 штуки Y. Если координаты правильные и есть на кривой, то один из конечных Y будет совпадать с первоначальным. Если координаты не существует, то в ответ получаем либо нулевые либо false на оба Y.
Но есть частые варианты, когда при расчете на выходе мы получаем совсем другие два Y.
Вариант 1.Пример правильной координаты.
y = 0x0000000000000000000000000000000000000000000000000000000000000001
Получаем 3 Х
x1 = 0x1fe1e5ef3fceb5c135ab7741333ce5a6e80d68167653f6b2b24bcbcfaaaff507
x2 = 0xcbb0deab125754f1fdb2038b0434ed9cb3fb53ab735391129994a535d925f673
x3 = 0x146d3b65add9f54ccca28533c88e2cbc63f7443e1658783ab41f8ef97c2a10b5
Берем любой из Х, к примеру
0x1fe1e5ef3fceb5c135ab7741333ce5a6e80d68167653f6b2b24bcbcfaaaff507 . Получаем
y1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e
y2 = 0x0000000000000000000000000000000000000000000000000000000000000001
Y2 совпадает с Y
Вариант 2.Пример не существующей координаты.
y = 0x0000000000000000000000000000000000000000000000000000000000000003
Получаем 3 X
x1 = 0xb5258366f3a4def88770f655ebfdcb00168fe9112dee309a71719c62c697fa80
x2 = 0x3693a7efad031171ed0612ad43d765f4ee7132b59e18020b05be774a011cec18
x3 = 0x1446d4a95f580f958b88f6fcd02acf0afafee43933f9cd5a88cfec52384b1597
Теперь пытаемся получить список Y для любого из трех X. И получаем либо нулевой либо логическое лож, в зависимости от реализации библиотеки.
Тут тоже как бы все логично.
Вариант 3.Но вот третий вариант развития.
y = 0x0000000000000000000000000000000000000000000000000000000000000002
Получаем 3 X
x1 = 0xb5258366f3a4def88770f655ebfdcb00168fe9112dee309a71719c62c697fa80
x2 = 0x3693a7efad031171ed0612ad43d765f4ee7132b59e18020b05be774a011cec18
x3 = 0x1446d4a95f580f958b88f6fcd02acf0afafee43933f9cd5a88cfec52384b1597
Теперь из любого X получаем список Y. И у нас получается такой результат.
y1 = 0x7c66a76dd1a076acbeb5894293daf6beb0f1f143cdf879173c8908892e1f6c68
y2 = 0x839958922e5f8953414a76bd6c2509414f0e0ebc320786e8c376f775d1e08fc7
То есть ни Y1, ни Y2 не совпадают с Y.
При этом, с этих обоих Y, то же получается такой же список X, как полученный на втором шаге.
Получается нет координаты у которой Y может быть 0x0000000000000000000000000000000000000000000000000000000000000002 или 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2d.
Но почему тогда по этому Y, мы получаем список Х, с другими Y позициями? По идее, должен был получиться список Х, с которого нельзя получить Y. Как во втором варианте. И этот случай не единичный.