Да, это тривиально.
Вам просто нужно использовать байтовый массив закрытого ключа (который фактически является 256-bit
скаляром) и умножить его на secp256k1
точку генератора кривых g
, которая сама является точкой на кривой, которая генерирует циклическую группу c. Адреса
ETH
независимо получены из базового ключа secp256k1
publi c, который сам по себе является точкой Кривая.
Вызов метода, который вам нужен - это скалярное умножение кривой.
Генератор:
Gx =
0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
Gy =
0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
Просто добавьте эту точку к себе n
раз, где n
- это заказ закрытого ключа. т.е. g*k
, где k
- закрытый ключ, и вуаля, вы получили ключ publi c.