Визначення

Keypair — це пов'язана криптографічна пара з закритого ключа (private key) та відкритого ключа (public key). У Solana використовуються ключі на базі алгоритму Ed25519. Закритий ключ слугує для підпису транзакцій, а відкритий ключ водночас виконує роль адреси гаманця в мережі. Ці два ключі математично пов'язані, проте з відкритого ключа неможливо відновити закритий.

Як працює

Процес можна розділити на три етапи:

  • Генерація. Криптографічна бібліотека створює випадковий закритий ключ — 32 байти ентропії. З нього математично виводиться відкритий ключ. Разом вони утворюють keypair.
  • Зберігання. Закритий ключ ніколи не передається мережею. У гаманцях на кшталт Phantom він зберігається в зашифрованому вигляді на пристрої, а користувачеві видається seed-фраза для відновлення.
  • Підписання. Коли ви ініціюєте транзакцію, закритий ключ створює цифровий підпис. Вузли Solana перевіряють цей підпис за допомогою відкритого ключа — без розкриття самого закритого ключа.

Усі дії в мережі Solana: переказ SOL, взаємодія зі смарт-контрактами, делегування стейку — вимагають підпису keypair'ом. Без нього транзакція буде відхилена.

Приклад

Ви встановлюєте гаманець Phantom і натискаєте «Створити новий гаманець». Додаток генерує keypair: закритий ключ шифрується та зберігається локально, а відкритий ключ відображається як ваша адреса, наприклад 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU. Коли ви відправляєте 0,5 SOL іншому користувачеві, гаманець підписує транзакцію вашим закритим ключем. Мережа бачить лише відкритий ключ і цифровий підпис — цього достатньо для підтвердження, що транзакцію санкціоновано саме вами.

Типова помилка

Змішувати поняття keypair та відкритого ключа, вважаючи їх одним і тим самим. Відкритий ключ — це лише половина keypair'а, і хоча він достатній для отримання коштів, будь-яка відправка чи взаємодія з програмами неможлива без закритого ключа. Інша поширена помилка — зберігати закритий ключ у незашифрованому вигляді у файлі чи месенджері. Навіть короткочасна витік закритого ключа означає повну втрату контролю над коштами, оскільки будь-хто з цим ключем може підписувати транзакції від вашого імені.

Пов'язані матеріали

Внутрішні переходи

  • Public key — детальніше про відкриту половину keypair'а та її роль як адреси в Solana
  • Memo — як додавати текстові примітки до транзакцій, підписаних keypair'ом

Додаткові ресурси

  • Офіційна документація Solana: розділ про криптографію та генерацію keypair за допомогою CLI-інструменту solana-keygen
  • Специфікація Ed25519 — для розуміння математичної основи, на якій побудовані ключі Solana