Визначення

Authority — це публічний ключ, який має право виконувати певні дії над обліковим записом у Solana. Іншими словами, це адреса, уповноважена змінювати стан, оновлювати дані або керувати конкретним акаунтом.

У технічному плані authority — це необовʼязкове поле в структурі багатьох облікових записів (наприклад, токен-акаунтів, mint-акаунтів), що вказує, хто саме може викликати інструкції для їх модифікації. Якщо authority не встановлено або скинуто, акаунт стає незмінним у відповідній частині логіки програми.

Як працює

Solana побудована на моделі власності облікових записів, де кожен акаунт має поле owner — програму, яка може змінювати його дані. Authority працює на рівень вище: це дозвіл усередині логіки самої програми.

  • Owner визначає, яка програма має технічний доступ до даних акаунта.
  • Authority визначає, який публічний ключ має логічне право ініціювати зміни через цю програму.

Коли програма отримує інструкцію, вона перевіряє, чи збігається підписувач з authority, вказаним в акаунті. Якщо збіг є — дія виконується, якщо ні — транзакція відхиляється.

Типові сценарії використання authority:

  • Mint-акаунт SPL-токена: authority може карбувати (mint) нові токени або заморозити акаунт.
  • Токен-акаунт: authority може делегувати право переказу іншій адресі.
  • Програмні акаунти (PDA): authority часто встановлюється на PDA, щоб програма самостійно керувала станом без участі зовнішнього підписувача.

Authority можна змінити або повністю скасувати (встановити як null), що робить відповідні дії неможливими назавжди. Це ключовий механізм для довіри: користувачі перевіряють authority контракту перед взаємодією з ним.

Приклад

Створюється новий SPL-токен з початковою пропозицією. Mint-акаунт цього токена має authority, встановлену на гаманець розробника. Це дозволяє розробнику карбувати додаткові токени. Після завершення емісії розробник викликає інструкцію set_authority і передає null як нову authority. Відтоді ніхто, включно з розробником, не може створити нові токени — пропозиція фіксується назавжди.

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

Плутанина між owner і authority. Нові розробники часто вважають, що зміна owner акаунта автоматично змінює права управління токеном чи програмою. Насправді owner визначає лише, яка програма може писати в акаунт, тоді як authority — хто має логічне право ініціювати ці зміни. Щоб повністю заблокувати можливість карбування токена, недостатньо змінити owner mint-акаунта — потрібно саме скинути його authority.

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

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

  • Private key — як приватний ключ повʼязаний з authority та підписом транзакцій.
  • Multisig — як розподілити authority між кількома учасниками для підвищення безпеки.