Визначення
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