Визначення
Multisig (від англ. multi-signature — багаторазовий підпис) — це механізм управління криптоактивами, за якого для виконання транзакції потрібно кілька незалежних підписів від різних учасників. На Solana multisig реалізується як окрема on-chain програма, яка створює спільний рахунок-сховище (vault) і контролює доступ до нього за правилами, заданими при створенні.
Простими словами: це спільний гаманець, де жоден учасник самостійно не може переказати кошти — рішення приймається колегіально.
Як працює
На Solana найпоширеніша реалізація multisig — програма Squads (раніше Serum Multisig). Її робота складається з кількох етапів:
- Створення. Ініціатор визначає список учасників (signers), поріг схвалення (threshold) та створює multisig-акаунт. Рахунок-сховище формується як PDA (Program Derived Address) — його адреса детермінована і не належить жодному приватному ключу.
- Пропозиція транзакції. Будь-який учасник формує транзакцію і подає її як пропозицію (proposal) всередині multisig-програми. Транзакція на цьому етапі не виконується — вона лише зберігається on-chain.
- Схвалення. Інші учасники підписують пропозицію своїми ключами. Коли кількість підписів досягає порогу, транзакція вважається схваленою.
- Виконання. Будь-хто з учасників (а в деяких реалізаціях — навіть стороння особа) відправляє команду на виконання схваленої транзакції. Програма перевіряє, що поріг досягнуто, і виконує транзакцію від імені сховища.
Ключова особливість на Solana: авторитетом (authority) над коштами володіє сама multisig-програма через PDA, а не окремий ключ. Це відрізняється від підходів, де multisig реалізується на рівні адреси з кількома приватними ключами.
Приклад
DAO з п'ятьма учасниками ради створює multisig-сховище з порогом 3 з 5 (3/5). На цьому рахунку зберігається казна проєкту у токенах SOL та SPL-токенах.
Коли потрібно оплатити розробника, один із учасників створює пропозицію на переказ 500 SOL. Двоє інших учасників перевіряють реквізити та підписують пропозицію. Після досягнення трьох підписів будь-який учасник натискає «Execute» — програма виконує переказ. Навіть якщо один із п'яти ключів скомпрометовано, зловмисник не зможе вивести кошти самостійно: йому потрібно отримати ще щонайменше два підписи.
Типова помилка
Зберігання всіх ключів на одному пристрої. Якщо всі підписувачі використовують ключі, які зберігаються на одному сервері або під контролем однієї людини, multisig втрачає сенс — компрометація цього пристрою означає компрометацію всіх підписів одночасно. Кожен ключ має фізично та логічно належати різним людям і зберігатися на окремих пристроях (железні гаманці, різні комп'ютери, холодне зберігання).
Друга поширена помилка — встановлення порогу 1 з N. У такій конфігурації будь-який учасник може одноосібно виконати транзакцію, що робить multisig формальністю без реального захисту.
Пов'язані матеріали
Внутрішні переходи
- Authority — поняття авторитету в архітектурі Solana, яке безпосередньо пов'язане з тим, хто має право підписувати транзакції від імені акаунта.
- Phishing — вид атак, проти яких multisig є одним із інструментів захисту, оскільки ускладнює одиночне виконання шкідливої транзакції.