Как устроен DeFiHelper? Архитектура и подробный разбор платформы
DeFiHelper (далее DFH) — это продвинутый помощник для управления DeFi-портфолио любого масштаба.
DeFiHelper показывает все ваши токены во всех блокчейнах, отделяет волатильные токены от стейблкойнов, отслеживает непостоянные потери и сообщает о резких изменениях доходности, но главное — помогает создавать автоматизированные инвестиционные стратегии и выполняет рутинные действия в блокчейне за вас. Создание инвестиционных стратегий — это основная идея сервиса DeFiHelper.
В этой статье мы объясним принципы работы системы, а также правила формирования и оплаты комиссий протокола.
Архитектура DeFiHelper
Протокол состоит из двух слоев.
Первый, базовый слой — это управляющий токен DFH, система управления и голосование. Этот слой работает на Ethereum.
Второй слой — это автоматизации на уровне каждого отдельного блокчейна. Протокол работает с Ethereum, Binance Smart Chain, Polygon, Avalanche и Waves.
Почему была выбрана именно такая архитектура? При проектировании мы сформулировали несколько основных требований:
- Безопасность: сервис должен быть лишен доступа к приватным ключам пользователя, а взлом любого из компонентов системы не должен ставить под угрозу клиентские средства.
- Гибкость: пользователь может в любой момент забрать средства или выполнить действия вручную, а сервис не должен ограничиваться только определенными контрактами. Система должна быть универсальной и гибкой при подключении новых протоколов.
- Скорость разработки: протокол получает комиссию за совершенные автоматизации, а новые протоколы должны быстро включаться в нашу экосистему DFH.
В результате получился сервис из нескольких подсистем, каждая со своим участком работы. Разберем каждую подсистему отдельно.
Blockchain
- Balance: контракт с информацией о балансах пользователей в системе. С баланса списывается комиссия протокола и стоимость блокчейн-транзакций.
- Treasury: казначейство протокола. Вывести средства из казначейства можно только путем общего голосования держателей токенов DFH.
- Budget: технический контракт для автоматического пополнения баланса консьюмеров (см. ниже).
- Storage: хранилище основных параметров и адресов протокола.
- Store: контракт для пакетной покупки товаров. Например, пакета уведомлений.
- Automate: абстрактный блокчейн-контракт для автоматизированного выполнения действий в блокчейне.
Далее идут оффчейновые компоненты:
- Backend: здесь сосредоточена вся бизнес-логика.
- Inspector: сервис для уточнения фактической комиссии.
- Consumer: сервис для проведения транзакций.
- Staking-oracle: этот оракул принимает решение о рестейкинге.
Пошаговый разбор работы алгоритма DeFiHelper
Разберем работу DFH на конкретном примере. Допустим, пользователь хочет применить алгоритм автостейкинга на один из контрактов.
1. Для совершения любой транзакции в блокчейне нужно оплатить комиссию блокчейна. Поэтому первым делом пользователю надо пополнить свой кошелек в DeFiHelper. Если планируется пользоваться в протоколах на сети Ethereum, нужно зачислить Ethereum. Если стейкинг будет в протоколах на Avalanche, нужно пополнить баланс токенами AVAX. С баланса списывается комиссия блокчейна и комиссия DFH. Неизрасходованный остаток можно вывести в любой момент.
2. Далее пользователь выбирает контракт, который он хочет автоматизировать. DFH — некастодиальный сервис, поэтому пользователю будет предложено развернуть собственный контракт и перевести на него LP-токены. Именно эти токены будут в дальнейшем рестейкаться. Обратите внимание, в самом контракте явно прописано, какие функции могут быть вызваны владельцем контракта (пользователем), а какие — нашим сервисом (Consumer). Благодаря этому DFH может забирать вознаграждение и добавлять депозит в контракт, но забрать тело депозита DFH не может. Это может сделать только автор контракта.
3. Рассмотрим работу автоматизации.
Любой скрипт состоит из условий и действий. Для перехода к действиям скрипт должен проверить и пройти все условия своего выполнения. Если хотя бы одно из условий не будет выполнено, перейти к следующему этапу будет невозможно. Сложность условий ограничена только фантазией автора. Вы можете использовать условия по стоимости газа, времени суток или отклонению стоимости газа от стоимости газа от скользящей средней.
Самое интересное условие — это условие эффективного рестейкинга. Данные о текущем заработке пользователя, доходности и количестве застейканных токенов, а также стоимость транзакции передаются в специальный сервис (staking-oracle), который выдает результат “да” или “нет”. Исходя из ответа, DFH или делает рестейк, или ждет до следующего цикла. Если все условия выполнены, сервис выполняет блокчейн-транзакцию или отправляет уведомление. Действия можно комбинировать.
4. Если алгоритм решает, что пора действовать, система отправляет транзакцию через 1 из N наших консьюмеров. Чем больше консьюмеров, тем больше транзакций одновременно мы можем отправлять. Консьюмерами могут быть только кошельки, добавленные в контракт Balance путем голосования (при проведении транзакции в Balance записывается максимальная сумма транзакции и комиссия протокола, которая может быть списана с клиента). Это предохраняет DFH от ситуации нехватки средств на балансе пользователя для выполнения транзакции. Сервис платит за транзакцию из своих средств, которые лежат на консьюмере и раз в несколько минут списывает полученные средств в доход протокола. Пополнение средств на кошельках Consumers происходит из контракта Budget.
5. После успешного завершения транзакции просыпается Inspector, который уточняет фактическую стоимость транзакции и записывает их в Balance. Раз в несколько минут все “погашенные” транзакции подсчитываются и перемещаются в казначейство (Treasury) протокола. Эти средства являются заработком протокола и время от времени распределяются среди держателей токена.
Таким образом, архитектура DFH позволяет проводить транзакции в блокчейне за пользователя и в то же время держит его средства в безопасности. Если приватные ключи Insector или Consumer будут скомпрометированы, украсть смогут только текущий баланс этих кошельков, но средства пользователей останутся в целости и сохранности. Максимум, что смогут сделать злоумышленники — списать средства в казначейство. А оттуда деньги выводятся только через голосования держателей токенов DFH.
Возникли дополнительные вопросы? Смело задавайте их в нашем Discord или телеграм-чате.
Ссылки
Сайт DeFiHelper | Litepaper | Новостной канал (RU) | Новостной канал (EN) | Чат (RU) | Чат (EN) | Twitter | Discord | Github |Как устроен алгоритм автостейкинга DeFiHelper