Корпоративный мультисиг: внедрение Safe{Wallet} для DeFi-проектов
Safe{Wallet} (бывший Gnosis Safe) — де-факто стандарт мультисигнатурного кошелька в EVM-экосистеме. Под его управлением более $100 млрд активов, код многократно аудирован, а встроенный UI на app.safe.global позволяет начать работу за минуты. Но корректная настройка мультисига — это не просто нажать «создать»: нужно правильно выбрать owners, threshold, учесть gas costs и, опционально, подключить Guard для policy enforcement. Мы помогли настроить treasury для 30+ DeFi-проектов — и знаем, какие подводные камни ждут неопытных пользователей.
Как выбрать threshold и owners?
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 — потеря одного ключа блокирует всё. Сравнение вариантов:
| Порог | Безопасность | Оперативность | Подходит для |
|---|---|---|---|
| 1-of-2 | низкая | высокая | личные кошельки, тест |
| 2-of-3 | средняя | хорошая | стартапы, малые команды |
| 3-of-5 | высокая | приемлемая | средние DAO, фонды |
| 4-of-7 | очень высокая | низкая | крупные казны |
Chain — Safe деплоится отдельно на каждой сети. Один и тот же адрес Safe можно получить на разных сетях через Safe Factory с одинаковым saltNonce — полезно для multichain treasury с единым адресом.
Почему мультисиг может быть уязвим?
Без правильной настройки мультисиг может стать уязвимым: неправильный threshold приводит к блокировке средств, отсутствие Guard — к несанкционированным переводам, а слабые owners — к краже ключей. Наш опыт включает настройку Safe для 5+ лет работы с DeFi-проектами, аудит конфигурации и формальную верификацию политик Guard. Типичная ошибка — использование одного hardware wallet для всех owners, что создаёт единую точку отказа. Отсутствие Safe Guard может привести к потере средств на сумму свыше $100k при целенаправленной атаке.
Типичная ошибка: один Ledger для всех
Некоторые команды хранят все private keys на одном Ledger-устройстве, меняя только аккаунты. Это нарушает принцип мультисига: если устройство скомпрометировано, злоумышленник получает все ключи. Каждый owner должен быть на отдельном физическом устройстве.Какие риски устраняет Safe Guard?
Safe Guard — смарт-контракт, который вызывается перед каждой транзакцией из Safe. Позволяет добавить политики: whitelist адресов получателей, лимиты сумм, запрет определённых функций. Без Guard любые 2-of-3 owner могут отправить любую транзакцию куда угодно. С Guard — дополнительная логика проверки, которую нельзя обойти даже при полном quorum. Реализация стандартизирована в ISafeGuard. Опишите ваш проект, и мы подберём оптимальную конфигурацию Safe для вашей команды.
Подписание и исполнение транзакций
Транзакция создаётся в Safe UI или через SDK. Каждый owner подписывает off-chain (без gas). После сбора threshold подписей — любой может вызвать execTransaction on-chain и заплатить gas. Это не обязательно должен быть owner.
| Операция | Gas cost (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) gas на порядок ниже — Safe там значительно дешевле в использовании. Экономия на газе при переходе на L2 может достигать 90%, что для активного treasury с 50+ транзакциями в месяц означает десятки тысяч долларов годовой экономии. Определите оптимальную конфигурацию для вашего бюджета — запишитесь на техническую беседу.
Процесс настройки
- Аналитика: интервью с командой, определение ролей и сценариев подписания.
- Проектирование: выбор owners, threshold, необходимость Guard. Составляем схему конфигурации.
- Деплой: создание Safe через SDK или UI на нужных сетях с детерминированным адресом.
- Настройка Guard: разработка и развертывание кастомного Guard с проверками (whitelist, лимиты).
- Тест: симуляция транзакций в Tenderly, проверка всех политик.
- Деплой: подтверждение работоспособности, передача документации.
- Поддержка: 2 недели после сдачи, помощь в первых транзакциях.
Программное создание через 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' // для детерминированного адреса }) Рекомендации по безопасности
Каждый owner хранит ключ на отдельном hardware wallet. Backup seed-фраз — физически, в разных местах. При смене члена команды — добавить нового owner, убрать старого через Safe транзакцию (требует текущего quorum). Никогда не держите threshold = total owners: потеря одного ключа = потеря доступа.
Что входит в работу
В услугу включено:
- Проектирование схемы owners/threshold под вашу команду (2–20 участников)
- Деплой Safe на нужных сетях (Ethereum, L2, sidechains) с детерминированным адресом
- Настройка Safe Guard с кастомными политиками (whitelist, лимиты, запрет функций)
- Интеграция через Safe{Core} SDK для программного управления
- Документация конфигурации, обучение команды, передача доступов
- Поддержка в течение 2 недель после сдачи
Настройка Safe для команды от 2 до 20 участников с правильными политиками — 1-3 дня работы. Свяжитесь с нашими инженерами для консультации по настройке мультисига.







