Что такое ERC-4626?
ERC-4626 — это стандарт токенов Ethereum, определяющий общий интерфейс для токенизированных хранилищ (vault), работающих с одним базовым активом ERC-20.Токенизированное хранилище принимает базовый криптоактив и выпускает взаимозаменяемые токены долей, которые представляют пропорциональное право требования на активы под управлением хранилища.Официальная спецификация ERC-4626 стандартизирует депозиты, выводы, выпуск долей, погашение долей, предварительный расчет обменного курса и лимиты хранилища.
ERC-4626 относится к категории окончательных стандартов Ethereum Request for Comments.Стандарт был создан, чтобы упростить интеграцию хранилищ, приносящих доход, с кошельками, децентрализованными приложениями, агрегаторами и другими смарт-контрактами.Этот стандарт также иногда называют стандартом токенизированных хранилищ (Tokenized Vault Standard).ERC-4626 не определяет единую инвестиционную стратегию и не гарантирует доходность внесенных активов.Он определяет, как совместимые хранилища передают сведения об учете активов и функциях входа и выхода.Что такое токенизированное хранилище?
Токенизированное хранилище — это смарт-контракт, который управляет криптоактивами и выпускает токены, представляющие права требования на эти активы.Пользователь вносит поддерживаемый хранилищем базовый актив и получает доли хранилища.Хранилище может выдавать активы в кредит, отправлять их в стейкинг, предоставлять ликвидность, хранить в резерве или использовать иную стратегию, заданную кодом.Если стратегия приносит доход, стоимость, представленная каждой долей, может увеличиться.Если стратегия приводит к потере активов, стоимость, представленная каждой долей, может снизиться.Поэтому доля хранилища не обязательно равна одной единице базового актива.Ее стоимость зависит от соотношения активов под управлением хранилища и общего количества находящихся в обращении долей.Зачем был создан ERC-4626?
Токенизированные хранилища существовали и до ERC-4626, но часто использовали разные функции, правила учета и терминологию.Приложению, интегрирующему несколько хранилищ, требовался отдельный адаптер для каждой реализации.Пользовательские адаптеры увеличивали объем разработки и создавали дополнительные возможности для ошибок учета.ERC-4626 ввел общий интерфейс, благодаря которому совместимые хранилища используют одинаковый базовый набор функций депозита, вывода, выпуска, погашения и предварительного расчета.Стандартизация повышает компонуемость: одно приложение может взаимодействовать со множеством хранилищ через знакомый набор функций.Однако стандартизация не делает стратегии хранилищ одинаковыми.У каждого хранилища могут быть свои активы, комиссии, риски, лимиты, администраторы и инвестиционная логика.Базовые активы и доли хранилища
ERC-4626 различает активы и доли.Актив — это токен ERC-20, который вносят в хранилище и выводят из него.Доля — это токен ERC-20, выпускаемый хранилищем и представляющий право требования на активы под его управлением.Например, пользователь может внести 100 единиц базового токена и получить 100 долей, если первоначальный коэффициент конвертации равен одному активу на долю.Если впоследствии в хранилище будет 110 активов, а долей останется 100, каждая доля будет представлять примерно 1,1 актива.Если хранилище потеряет десять активов, каждая доля может представлять примерно 0,9 актива.Точный результат зависит от правил учета хранилища, комиссий, округления и результатов стратегии.Доли ERC-4626 — это токены ERC-20
Хранилище ERC-4626 должно реализовывать стандарт ERC-20 для токена долей.Поэтому у держателей долей могут быть балансы ERC-20, разрешения на расходование, функции передачи и одобрения.Хранилище также должно реализовать необязательные функции метаданных ERC-20 для названия, символа и количества десятичных знаков токена долей.Хранилище может сделать доли непередаваемыми, отменяя вызовы пользователей
Функция asset
Функция
Функция totalAssets
Функция
Как работает обменный курс ERC-4626
Обменный курс хранилища показывает, сколько базовых активов соответствует определенному количеству долей.Упрощенный расчет делит общий объем активов под управлением на общее количество выпущенных долей.В реальных реализациях могут применяться виртуальные активы, виртуальные доли, комиссии, смещения или специфический для стратегии учет.Обменный курс может вырасти, если хранилище получает доходность или безвозмездно получает активы.Он может снизиться, если хранилище теряет активы или учитывает безнадежный долг.Обменный курс не обязательно является рыночной ценой на внешней торговой площадке.Это соотношение для учета, определяемое контрактом хранилища.Функция convertToShares
Функция
Если приложению нужен вероятный результат фактического депозита, следует использовать
Функция convertToAssets
Функция
Deposit и mint
Функции
При вызове
При вызове
Функция deposit
Функция
При успешном депозите должно генерироваться стандартизированное событие
Функция mint
Функция
При успешном выпуске должно генерироваться событие
Withdraw и redeem
Функции
При вызове
При вызове
Функция withdraw
Функция
При успешном выводе должно генерироваться стандартизированное событие
Функция redeem
Функция
При успешном погашении должно генерироваться событие
Функции предварительного расчета ERC-4626
ERC-4626 включает функции предварительного расчета, которые оценивают результат входной или выходной транзакции при текущих ончейн-условиях.Это функции
previewDeposit и previewMint
previewWithdraw и previewRedeem
Лимиты максимального депозита и выпуска долей
Функция
Функция
Лимиты максимального вывода и погашения
Функция
Функция
События ERC-4626
В дополнение к обычным событиям передачи долей ERC-20 стандарт ERC-4626 определяет события
Событие
Событие
События
Доходность хранилища и стоимость долей
Обычно доходность хранилища ERC-4626 отражается ростом объема активов, приходящихся на каждую долю.Контракту не нужно выпускать новые доли каждому держателю при получении дохода.Вместо этого то же количество долей может стать погашаемым на больший объем базовых активов.Если реализация остается совместимой со стандартом, хранилище может распределять стоимость и иным способом.Пользователям следует проверить, как и когда доходы стратегии учитываются функцией
Комиссии хранилища
ERC-4626 допускает взимание комиссий хранилищами.Могут взиматься комиссии за вход, выход, управление, результативность и расходы на стратегию.Стандарт не устанавливает единую структуру комиссий или максимальную ставку.Функции предварительного расчета должны учитывать комиссии, применимые к моделируемой операции.Общие функции конвертации должны исключать комиссии.Пользователям следует выяснить, кто получает комиссии, как они рассчитываются, может ли администратор их изменять и взимаются ли они в активах или долях.После учета всех комиссий и убытков высокая заявленная доходность может оказаться значительно ниже.Округление и небольшие депозиты
В расчетах ERC-4626 используется целочисленная арифметика, поскольку смарт-контракты не могут выпускать дробные доли меньше минимальной единицы токена.Поэтому из-за округления вкладчик может получить немного меньше долей, чем следует из точного математического расчета.Потери становятся существеннее, если депозит дает лишь очень небольшое количество единиц долей.В крайнем случае результат округления депозита может составить ноль долей.Пользователь, внесший активы и не получивший долей, фактически передает стоимость существующим держателям долей.Приложениям следует отклонять депозиты, при которых выпускается неприемлемо малое количество долей.Что такое инфляционная атака ERC-4626?
Инфляционная атака манипулирует соотношением активов и долей хранилища, особенно если хранилище пустое или в нем очень мало ликвидности.Злоумышленник может внести небольшую первоначальную сумму, а затем напрямую перевести в хранилище базовые активы, не выпуская дополнительные доли.Такое пожертвование увеличивает объем активов, приходящихся на уже имеющиеся у злоумышленника доли.Из-за этого депозит следующего пользователя может округлиться до очень малого количества долей или до нуля.Злоумышленник может погасить первоначальные доли и присвоить часть или все активы жертвы.В актуальном руководстве по безопасности ERC-4626 описана манипуляция первым депозитом и ее связь с округлением.
Защита от инфляционных атак
Один из способов защиты — использовать виртуальные активы и виртуальные доли при расчете обменного курса.Эти виртуальные значения задают более безопасный первоначальный курс до внесения реальных депозитов.Дополнительное десятичное смещение также может обеспечить долям более высокую точность по сравнению с базовым активом.Повышенная точность усложняет округление обычного депозита до нуля долей.В поддерживаемых актуальных реализациях могут быть предусмотрены такие меры защиты, но не каждое развернутое хранилище ERC-4626 их использует.Приложениям также следует устанавливать минимальное количество долей на выходе и отклонять невыгодные депозиты.Еще один возможный подход — заранее внести в хранилище начальную ликвидность, которую нельзя вывести, однако он создает иные операционные особенности.Риск проскальзывания
Проскальзывание возникает, когда фактический результат депозита или вывода отличается от ожидаемого пользователем.Другая транзакция может изменить обменный курс между предварительным расчетом и исполнением транзакции пользователя.На результат также могут повлиять комиссии, пожертвования активов, отчеты стратегии, убытки и другие депозиты или выводы.Базовые функции входа и выхода ERC-4626 не предусматривают явных параметров минимального результата или максимального объема входа.Расширение ERC-5143 предлагает перегруженные функции с контролем проскальзывания для непосредственного взаимодействия с пользователем.
Приложение также может использовать маршрутизатор или оболочку, проверяющую итоговый результат по заданному пользователем лимиту.Манипуляции стоимостью доли и оракулы
Иногда приложения используют курс конвертации доли ERC-4626 в качестве источника данных о стоимости.Это может быть опасно, если курс можно изменить прямыми пожертвованиями, задержкой учета, низкой ликвидностью или поддающейся манипуляциям стратегией.Протоколу кредитования, принимающему доли хранилища в качестве залога, необходимо понимать, насколько легко могут измениться значения
Риски повторного входа и перевода токенов
Депозиты и выводы взаимодействуют с внешними контрактами токенов.Вредоносный или необычный токен может выполнять обратные вызовы, возвращать неожиданные значения, взимать комиссию за перевод или нестандартно изменять балансы.Внешние контракты стратегий также могут повторно вызывать хранилище.Разработчикам следует безопасно обновлять критические данные учета и использовать подходящую защиту от повторного входа.В рекомендациях по безопасности Solidity объясняется, почему каждый вызов внешнего контракта следует считать потенциальной передачей управления.
Защиты только одной функции входа может быть недостаточно, если злоумышленник способен повторно войти через другую функцию хранилища.Нестандартные базовые токены
Токены с комиссией за перевод могут привести к тому, что хранилище получит меньше активов, чем запрошено вкладчиком.Ребейзинговые токены могут менять баланс хранилища без обычного перевода.Токены с блокировкой адресов или возможностью приостановки операций могут препятствовать выводу.Токены с необычным количеством десятичных знаков могут усложнить конвертацию и отображение.Обновляемый базовый токен может изменить свое поведение после развертывания хранилища.Разработчикам хранилищ следует измерять фактическое перемещение токенов и тестировать конкретный актив, а не считать поведение ERC-20 безупречным.Риски стратегии и ликвидности
Стандартизация ERC-4626 не ограничивает способы использования внесенных активов хранилищем.Стратегия может включать кредитование, стейкинг, предоставление ликвидности, деривативы, мосты или внешнее хранение.Каждая такая деятельность связана с отдельными рисками смарт-контрактов, рынка, контрагентов, оракулов, ликвидации и ликвидности.Хранилище может сообщать о наличии ценных активов, но не иметь возможности быстро их вернуть.Оно также может признать убытки, если внешняя позиция станет неплатежеспособной.Пользователям следует оценивать стратегию, а не только интерфейс ERC-4626.Риски администратора и обновлений
У хранилища ERC-4626 могут быть роли администратора, позволяющие контролировать комиссии, лимиты, стратегии, приостановку операций или экстренный вывод.Обновляемое хранилище может изменить реализацию после того, как пользователи получат доли.Обновления могут устранять уязвимости, но также могут вносить вредоносное или небезопасное поведение.Скомпрометированный администратор может перенаправить активы, одобрить вредоносную стратегию или заблокировать обычный вывод.Пользователям следует проверить полномочия на обновление, временные блокировки, требования к мультиподписи, аварийные права и разделение ролей.Соответствие ERC-4626 не означает, что хранилище децентрализовано или неизменяемо.ERC-4626 и нативный ETH
Базовый стандарт ERC-4626 требует наличия одного базового токена ERC-20.Нативный ETH не является контрактом ERC-20 и поэтому напрямую не соответствует этому требованию.Хранилище может использовать токенизированное представление ETH в качестве базового актива ERC-20.Окончательное расширение ERC-7535 адаптирует интерфейс ERC-4626 для хранилищ, базовым активом которых является нативный ETH.
Пользователям следует уточнить, принимает ли хранилище нативный ETH или его представление в ERC-20: отправка неподходящего актива может завершиться неудачей или сделать средства недоступными.Синхронные и асинхронные хранилища
Стандарт ERC-4626 в первую очередь предназначен для атомарных операций входа и выхода.Если это разрешено, депозит, выпуск долей, вывод или погашение обычно завершаются в рамках одной транзакции блокчейна.Некоторым стратегиям требуется период ожидания, прежде чем активы или доли можно будет получить.Стандарт ERC-7540 расширяет ERC-4626 асинхронными запросами на депозит и погашение.
Это может поддерживать стратегии с отложенными расчетами, ограниченной ликвидностью, кроссчейн-операциями или офчейн-активами.Асинхронное хранилище не следует оценивать так, будто выход из любого хранилища ERC-4626 доступен немедленно.Хранилища с одним и несколькими активами
Стандартное хранилище ERC-4626 имеет один базовый актив ERC-20 и один токен долей хранилища.Некоторым системам хранилищ требуется несколько способов внесения активов, при этом все они дают один и тот же токен долей.Стандарт ERC-7575 адаптирует ERC-4626 для структур хранилищ с несколькими активами и позволяет отделить точку входа в хранилище от токена долей.
Это расширение предусматривает иные требования к интеграции и обнаружению интерфейсов.Контракт не должен заявлять о стандартном поведении ERC-4626, принимая при этом без документированного учета несколько несвязанных активов.Есть ли у ERC-4626 ID интерфейса?
Базовая спецификация ERC-4626 не требует обнаружения интерфейсов ERC-165.Этим она отличается от таких стандартов, как ERC-721, для которых поддержка ERC-165 обязательна.Обычно приложения определяют совместимость с ERC-4626 по функциям, опубликованному ABI, верифицированному исходному коду, сведениям реестра или документации проекта.Вызов одной знакомой функции недостаточен для подтверждения полного соответствия.Интеграции следует проверить весь интерфейс и протестировать обязательное поведение хранилища.Как разработчикам реализовать ERC-4626
Разработчикам следует начать с поддерживаемой и проверенной реализации, а не создавать учет хранилища с нуля.Актуальная документация по API ERC-20 и ERC-4626 содержит повторно используемую реализацию, которую можно расширить стратегией.
Разработчикам все равно необходимо определить, как активы размещаются, оцениваются, возвращаются и защищаются.Следует тестировать депозиты, выпуск долей, выводы, погашения, комиссии, округление, прямые пожертвования, поведение пустого хранилища, убытки и нестандартные базовые токены.Инвариантные тесты должны подтверждать, что пользователи не могут вывести активов больше, чем оправдывают их доли.При проверке безопасности также необходимо охватить администраторов, внешние стратегии, ценовые потоки данных, механизмы обновления и аварийные процедуры.Как пользователям оценить хранилище ERC-4626
Сначала проверьте адреса хранилища и контракта базового актива.Затем выясните, какая стратегия должна обеспечить ожидаемую доходность.Изучите комиссии за вход, выход, управление, результативность и стратегию.Проверьте текущие активы, предложение долей, курс конвертации и доступные лимиты на вывод.Уточните, предусмотрена ли защита от манипуляции первым депозитом и инфляционных атак.Изучите полномочия администратора, права на обновление и приостановку, а также возможности экстренного вмешательства.Разберитесь, являются ли выводы синхронными, отложенными, очередными или зависят от внешней ликвидности.Изучите аудиты и историю инцидентов, не считая аудит гарантией.Установите лимиты проскальзывания и не проводите операции, при которых выпускается крайне мало долей.Прежде чем размещать значительные средства, протестируйте незнакомое хранилище на небольшой сумме.Пример депозита ERC-4626
Предположим, хранилище управляет 1 000 единиц базового актива, а в обращении находится 1 000 долей.До учета комиссий и округления каждая доля представляет примерно одну единицу актива.Пользователь запрашивает у
Затем пользователь вызывает
Хранилище переводит активы, обновляет учет, выпускает 99 долей и создает событие
Распространенные ошибки при работе с ERC-4626
Распространенная ошибка — считать, что одна доля хранилища всегда равна одному базовому активу.Другая ошибка — использовать
Пятая ошибка — считать, что
FAQ
Что означает ERC-4626?
ERC-4626 — это стандарт токенизированных хранилищ Ethereum, которые выпускают доли ERC-20, представляющие права требования на один базовый актив ERC-20.Является ли ERC-4626 токеном ERC-20?
Хранилище ERC-4626 должно реализовывать ERC-20 для своих долей.Что такое базовый актив?
Базовый актив — это токен ERC-20, который принимается при депозите и передается при выводе.Что такое доля ERC-4626?
Доля — это взаимозаменяемый токен, представляющий пропорциональное право требования на активы под управлением хранилища.Всегда ли одна доля равна одному активу?
Нет, курс конвертации меняется в зависимости от активов под управлением, предложения долей, комиссий, округления, прибыли и убытков.Гарантирует ли ERC-4626 доходность?
Нет, стандарт упорядочивает взаимодействие с хранилищами, но не гарантирует положительный результат стратегии.В чем разница между deposit и mint?
В чем разница между withdraw и redeem?
Что возвращает totalAssets?
Функция возвращает объем базовых активов под управлением хранилища согласно его логике учета.Гарантируют ли функции предварительного расчета итоговый результат?
Нет, состояние хранилища может измениться до исполнения транзакции, поэтому приложениям следует использовать защиту от проскальзывания.Могут ли хранилища ERC-4626 взимать комиссии?
Да, хранилища могут взимать раскрытые комиссии за вход, выход, управление, результативность и другие операции.Что такое инфляционная атака ERC-4626?
Это атака, при которой манипулируют ранним обменным курсом хранилища, чтобы депозит жертвы округлился до очень малого количества долей или до нуля.Как хранилище может снизить риск инфляционной атаки?
Возможные меры защиты: виртуальные активы и доли, более высокая точность долей, заблокированная начальная ликвидность и проверки минимального результата.Может ли хранилище ERC-4626 привести к убыткам?
Да, стоимость долей могут снизить убытки стратегии, эксплойты, безнадежные долги, рыночные движения, компрометация администратора и внешние сбои.Можно ли передавать доли ERC-4626?
Обычно поддерживается передача в формате ERC-20, но хранилище вправе сделать доли непередаваемыми.Можно ли использовать нативный ETH в ERC-4626?
Базовый стандарт требует актив ERC-20, а ERC-7535 адаптирует интерфейс для хранилищ с нативным ETH.Может ли хранилище ERC-4626 управлять несколькими базовыми активами?
Базовый стандарт предусматривает один актив, а расширения, например ERC-7575, поддерживают структуры с несколькими активами.Поддерживает ли ERC-4626 отложенные выводы?
Базовый стандарт ориентирован на атомарные операции, а ERC-7540 расширяет его асинхронными процессами запроса и получения активов.Требует ли ERC-4626 поддержки ERC-165?
Нет, базовая спецификация ERC-4626 не требует обнаружения интерфейсов ERC-165.Безопасно ли хранилище ERC-4626 только потому, что оно соответствует стандарту?
Нет, соответствие повышает совместимость, но не доказывает безопасность стратегии, учета, контрактов или администраторов.Заключение
ERC-4626 — стандартный интерфейс Ethereum для токенизированных хранилищ, которые управляют одним базовым активом ERC-20 и выпускают доли ERC-20.Он стандартизирует депозиты, выпуск долей, выводы, погашения, оценку конвертации, функции предварительного расчета, лимиты хранилища и события входа и выхода.Стандарт упрощает интеграцию хранилищ с кошельками и смарт-контрактами, не требуя от всех хранилищ одинаковой инвестиционной стратегии.Доли хранилища представляют пропорциональные права требования, а не фиксированное соотношение один к одному с базовым активом.Их стоимость может расти благодаря доходам стратегии или снижаться из-за убытков, комиссий, безнадежных долгов и нарушений безопасности.Округление, проскальзывание, прямые пожертвования и инфляционные атаки на первый депозит требуют продуманной защиты.Разработчикам следует использовать поддерживаемые реализации, тестировать поведение пустого хранилища, защищать внешние вызовы и предусматривать ограничения минимального результата.Пользователям следует оценивать базовую стратегию, ликвидность, комиссии, полномочия администратора, систему обновлений и порядок вывода, а не полагаться только на совместимость с ERC-4626.Расширения адаптируют стандарт для нативных активов, асинхронных расчетов, защиты от проскальзывания и структур с несколькими активами.Понимание ERC-4626 помогает отличать стандартизированный учет хранилища от отдельных финансовых и технических рисков стратегии, управляющей активами пользователя.Вам также может быть интересно
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
В тренде
Трендовые криптовалюты, которые в настоящее время привлекают значительное внимание рынка
ТОП по объему
Криптовалюты с наибольшим объемом торгов
Недавно добавленные
Криптовалюты недавно внесенные в листинг и доступные для торговли

