Налаштування мультисиг Safe{Wallet}
Safe{Wallet} (колишній Gnosis Safe) — де-факто стандарт мультисигнатурного кошелька у EVM екосистемі. Більш $100 млрд активів під управлінням, аудирований контракт, вбудований UI на app.safe.global. Налаштування коректного мультисиг — це не просто натискання "створити": потрібно правильно вибрати threshold, налаштувати owners, розуміти gas implications й опціонально підключити Safe Guard для policy enforcement.
Ключові параметри при створенні
Owners — адреси, чиї підписи приймаються контрактом. Кожен owner — EOA чи смарт-контракт (наприклад, інший Safe). Використовуйте hardware wallet адреси для owners, не MetaMask браузерні ключі.
Threshold (M-of-N) — скільки підписів потрібно для виконання транзакції. Для командного treasury: 3-of-5 чи 2-of-3. Не робіть 1-of-N для реальних коштів — це одноточковий відказ. Не робіть N-of-N — втрата одного ключа блокує все.
Chain — Safe розгортається окремо на кожній сітці. Один і той же адрес Safe можна отримати на різних сітях через Safe Factory з одинаковим saltNonce — корисно для мультичейн treasury з єдиним адресом.
Процес налаштування
Створення через app.safe.global: вибрати сіть → додати owners → встановити threshold → оплатити deployment (газ). Контракт розгортається через SafeProxyFactory, створюється proxy на перевірений impleметаційний контракт.
Для програмного створення — Safe{Core} SDK:
import { SafeFactory } from '@safe-global/protocol-kit'
const safeFactory = await SafeFactory.create({ ethAdapter })
const safe = await safeFactory.deploySafe({
safeAccountConfig: {
owners: ['0xAlice...', '0xBob...', '0xCarol...'],
threshold: 2,
},
saltNonce: '0x123' // для детермінованого адреса
})
Safe Guard: обмеження поверх мультисиг
Safe Guard — смарт-контракт, що вызывається перед кожною транзакцією з Safe. Дозволяє додати політики: whitelist адрес-отримувачів, ліміти сум, запрет певних функцій.
Без Guard: будь-які 2-of-3 owners можуть відправити будь-яку транзакцію куди угодно. З Guard: додаткова логіка перевірки, яку неможливо обійти навіть при повному quorum.
Підписання й виконання транзакцій
Транзакція створюється у Safe UI чи через SDK. Кожен owner підписує off-chain (без газу). Після сбору threshold підписів — будь-хто може вызвати execTransaction on-chain й оплатити газ. Не обов'язково це повинен бути owner.
| Операція | Gas вартість (Ethereum mainnet) |
|---|---|
| Deployment Safe | ~280,000 gas |
| execTransaction (2-of-3) | ~120,000–150,000 gas |
| Додавання owner | ~80,000 gas |
| Зміна threshold | ~50,000 gas |
На L2 (Arbitrum, Base, Optimism) газ на порядки нижче — Safe там значно дешевше.
Рекомендації по безпеці
Кожен owner зберігає ключ на окремому hardware wallet. Backup seed-фраза — фізично, у різних місцях. При зміні члена команди — додати нового owner, видалити старого через Safe транзакцію (вимагає поточного quorum). Ніколи не встановлюйте threshold = загальна кількість owners: втрата одного ключа = втрата доступу.
Налаштування Safe для команди від 2 до 20 учасників з правильними політиками — 1-3 дні роботи.







