Использование публичных ключей в Monero​


Публичный ключ детерминировано выводится из приватного ключа на основе кривой edwards25519 с небольшой характерной для Monero особенностью.

Публичный ключ предполагает совместное использование. При надлежащей реализации практически невозможно восстановить приватный ключ на основе публичного ключа.

Публичный ключ является точкой (x, y) на эллиптической кривой.

В уравнениях точки представлены прописными буквами.

В контексте, в котором с публичными ключами сталкивается пользователь, они шифруются в шестнадцатеричном формате, где байты следуют, начиная с младшего, например: 016a941812293cf9a86071060fb090ab38d67945e659968cb8cf30e1bc725683

Выведение публичного ключа​

Допустим:

  • P является публичным ключом;
  • x является приватным ключом;
  • G является «базовой точкой»; это просто константа, специфичная для edwards25519; эта точка находится на эллиптической кривой.

Тогда:

P = xG

Публичный ключ является просто базовой точкой (G), умноженной на приватный ключ (x). Умножение точки представляет собой добавление точки к себе самой некоторое количество раз.

Тем не менее такое сложение не является простым векторным сложением. Существует довольно конкретное определение, хорошо описанное в этой статье. Важно то, что результатом сложения всегда будет точка на эллиптической кривой. Например, G + G уже будет другой точкой на кривой.

Варианты использования​

Адрес Monero состоит из публичного ключа траты и публичного ключа просмотра. Эти ключи используются для построения скрытых адресов для получения платежей.