Как DeFiHelper обеспечивает безопасность средств пользователей
Безопасность — вопрос жизни и смерти для всех пользователей криптовалют. Как обстоит вопрос с безопасностью у DeFiHelper?
При проектировании сервиса мы отталкивались от трех главных требований:
- Гибкость: пользователь может в любой момент забрать средства или выполнить действия вручную, а сервис не должен ограничиваться только определенными контрактами. Система должна быть универсальной и гибкой при подключении новых протоколов.
- Скорость разработки: протокол получает комиссию за совершенные автоматизации, а новые протоколы должны быстро включаться в нашу экосистему DFH.
- Безопасность: сервис должен быть лишен доступа к приватным ключам пользователя, а взлом любого из компонентов системы не должен ставить под угрозу клиентские средства.
Эти требования естественным образом привели нас к решению разделить протокол на два слоя.
Первый, базовый слой — это управляющий токен DFH, система управления и голосование. Этот слой работает на Ethereum и он контролирует все.
Второй слой — это автоматизации на уровне каждого отдельного контракта протокола. Сейчас протокол работает с Ethereum, Binance Smart Chain, Polygon, Avalanche и Moonriver.
Принципиально важно, что DeFiHelper — децентрализованный некастодиальный сервис и не хранит средства пользователей на общих контрактах. У DFH нет контроля на средствами пользователя и сервис не может ими распоряжаться. В отличие от AutoFarm и других похожих приложений мы не размещаем средства пользователей в общих пулах (vaults) и не обмениваем ваши деньги на суррогатный токен пула. Почему это важно? При отправке средств в пул пользователь теряет над ними контроль. В случае взлома такого протокола или его части все средства в пуле находятся под угрозой.
Наша техническая команда выбрала иной путь. При активации автостейкинга или создании индивидуальной автоматизации с помощью конструктора DeFiHelper разворачивает для каждого пользователя индивидуальный контракт. Исходный код контракта открыт, и любой может проверить какие функции доступны владельцу контракта, а какие сервису. Вот пример контракта. Обратите внимание на модификатор onlyOwner — он присваивается методам, которые может вызвать только владелец контракта (пользователь DFH).
Архитектура DeFiHelper позволяет проводить транзакции в блокчейне за пользователя и в то же время держит его средства в безопасности. Если приватные ключи отдельных модулей сервиса (Insector или Consumer) будут скомпрометированы, украсть смогут только текущий баланс этих кошельков с набежавшими процентами от автостейкинга, но тело депозита останется в целости и сохранности. Максимум, что смогут сделать злоумышленники — списать средства в казну протокола (treasury). А оттуда деньги выводятся только через голосования держателей токенов DFH.
Итого:
- Для максимальной безопасности протокол архитектурно разделен на два слоя.
- DeFiHelper не имеет доступа к приватным ключам вашего кошелька.
- Контроль над вашими средствами только у вас.
- DeFiHelper выполняет лишь те действия, которые вы разрешите специальному контракту под вашим контролем.
- DeFiHelper не может потерять ваш депозит. Это может произойти только при атаке с других векторов: при взломе кошелька или протокола, в котором вы держите депозит.
- Код DeFiHelper открыт и аудирован авторитетными специалистами по информационной безопасности.