XRP Wiki
REF · 03.13 / Технология и протокол

Адреса, пары ключей и криптография

Как под капотом устроены аккаунты, адреса и подписывающие ключи XRP Ledger.

Аккаунты и адреса

Каждый аккаунт XRP Ledger идентифицируется адресом — строкой, обычно начинающейся с «r», криптографически производной от публичного ключа аккаунта. Этот адрес вы сообщаете, чтобы получать средства, и именно он отображается в блок-эксплорерах при просмотре активности аккаунта.

Два формата адресов

Исторически XRPL поддерживает два представления адресов:

  • Классические адреса — исходный формат, просто адрес, с любым дополнительным платёжным контекстом (например, destination tag), указываемым отдельным полем.
  • X-адреса — более новый формат, кодирующий destination tag непосредственно в самой строке адреса, что снижает риск того, что отправитель правильно скопирует адрес, но забудет отдельно указать обязательный destination tag, — распространённая и дорогостоящая ошибка, особенно при отправке на биржу.

Оба формата ссылаются на совершенно один и тот же аккаунт; какой из них отображает конкретный кошелёк или сервис — вопрос представления, а не различие в самом аккаунте.

Пары ключей

Доступ к аккаунту контролируется криптографической парой ключей:

  • Приватный ключ (или сид/фраза восстановления, из которой он выводится), который должен храниться в секрете и используется для подписи (авторизации) транзакций.
  • Публичный ключ, математически производный от приватного ключа, из которого генерируется адрес аккаунта и с помощью которого кто угодно может проверить, что транзакция была действительно подписана соответствующим приватным ключом.

Поддерживаемые алгоритмы подписи

XRPL поддерживает две криптографические схемы подписи для ключей аккаунтов: широко используемую кривую secp256k1 (ту же, что использует Bitcoin) и Ed25519 — более новую, как правило более быструю и простую кривую, всё чаще выбираемую для новых реализаций. Любую из них можно использовать для генерации валидной пары ключей аккаунта XRPL; сам леджер не отдаёт предпочтения одной перед другой для базовых операций с аккаунтом.

Regular key: смена доступа без изменения адреса

XRPL поддерживает назначение аккаунту regular key — вторичной пары ключей, уполномоченной подписывать транзакции от имени аккаунта, отдельно от его исходного «мастер-ключа». Это позволяет владельцу аккаунта сменить активный подписывающий ключ (например, заподозрив, что исходный ключ мог быть скомпрометирован) без изменения адреса аккаунта, а при желании — полностью отключить исходный мастер-ключ после настройки regular key.

Почему это важно для безопасности

Понимание различия между вашим адресом (публичным, которым безопасно делиться) и вашим приватным ключом или сид-фразой (секретными, которыми нельзя делиться никогда) — самая важная концепция безопасности для любого пользователя XRPL. О том, как это проявляется на практике, см. Wallet Security Best Practices (на английском), а о том, как мультиподпись расширяет эту модель с одним ключом до требования нескольких одобрений, — Advanced Account Features (на английском).