Механизм Hook Uniswap v4: потенциал и сопутствующие вызовы
Uniswap v4 скоро выйдет, и это обновление вводит множество инновационных функций, среди которых механизм Hook вызывает особое внимание.
Механизм Hook позволяет выполнять пользовательский код на определенных узлах жизненного цикла пула ликвидности, значительно увеличивая масштабируемость и гибкость пула. Однако сложность Hook также приносит новые потенциальные риски безопасности. В этой статье систематически рассматриваются проблемы безопасности и потенциальные риски, связанные с механизмом Hook, с целью содействия безопасному развитию сообщества.
Основная механика Uniswap v4
Три важные функции Uniswap v4: Hook, одиночная архитектура и молниеносный учет.
Крючок
Hook - это контракт, который работает на разных стадиях жизненного цикла пула ликвидности. Внедрение Hook позволяет реализовать нативную поддержку динамических сборов, добавление лимитных ордеров на блокчейне, а также функции, такие как распределение крупных заказов через средневзвешенную цену по времени. В настоящее время имеется 8 обратных вызовов Hook, разделенных на 4 группы:
передИнициализацией/послеИнициализации
beforeModifyPosition/afterModifyPosition
передОбменом/послеОбмена
передПожертвованием/послеПожертвования
Синглтон, молниеносная бухгалтерия и механизм блокировки
Однообразная архитектура и молниеносная бухгалтерия направлены на повышение производительности за счет снижения затрат и обеспечения эффективности. Она вводит контракт PoolManager для хранения и управления состоянием всех пулов.
Версия v4 внедрила механизм молниеносной бухгалтерии и блокировки. Механизм блокировки работает следующим образом:
Запросите lock в контракте locker на PoolManager
PoolManager добавляет адрес этого контракта locker в очередь lockData и вызывает его обратный вызов lockAcquired.
контракт locker выполняет свою логику в обратном вызове
PoolManager проверяет состояние очереди lockData и изменения валюты, и после проверки удаляет данный контракт locker.
Механизм блокировки предотвращает одновременный доступ и гарантирует, что все транзакции будут обработаны. Любые изменения будут зафиксированы во внутреннем балансе пула, а фактический перевод будет выполнен по завершении операции.
В связи с наличием механизма блокировки внешние аккаунты не могут напрямую взаимодействовать с PoolManager и должны делать это через контракт. Существуют два основных сценария взаимодействия с контрактом:
контракт locker поступает из официальной кодовой базы или развернут пользователем, может рассматриваться как взаимодействие через маршрутизатор
контракт locker и Hook интегрированы в один и тот же контракт, что можно рассматривать как взаимодействие через Hook.
Модель угроз
Мы в основном рассматриваем две модели угроз:
Модель угроз I: Hook сам по себе является доброкачественным, но содержит уязвимости
Модель угроз II: Hook сам по себе является злонамеренным.
Проблемы безопасности в модели угроз I
Мы в основном сосредотачиваемся на потенциальных уязвимостях, характерных для версии v4, и уделяем особое внимание следующим двум Hook:
Хук для хранения средств пользователей
Хук для хранения ключевых статусных данных
В результате исследования было выявлено две основные проблемы: проблемы контроля доступа и проблемы проверки ввода.
Проблемы с контролем доступа
Функция обратного вызова в v4 должна вызываться только PoolManager. Если соответствующая функция может быть вызвана любым аккаунтом, это может привести к неправильному получению вознаграждений и другим проблемам. Поэтому крайне важно установить надежный механизм контроля доступа.
Вопросы проверки ввода
Из-за существования механизма блокировки пользователи должны получать lock через контракт, чтобы выполнять операции с пулом. Но все еще существуют потенциальные сценарии атак:
Hook неавторизованный пользователь собирается взаимодействовать с пулом средств
Некоторые ключевые функции Hook позволяют произвольные внешние вызовы
Неавторизованные внешние вызовы могут привести к таким проблемам, как атаки повторного входа.
Меры предосторожности
Чтобы избежать подобных проблем с безопасностью, необходимо реализовать необходимый контроль доступа к чувствительным функциям, проверять входные параметры и рассмотреть возможность внедрения защиты от повторного входа.
Проблемы безопасности в модели угроз II
Мы разделяем Hook на два типа:
Хостинг Hook: не является точкой входа, пользователь взаимодействует с ним через маршрутизатор
Независимый Hook: это точка входа, позволяющая пользователям взаимодействовать напрямую
Хук с управлением
Активы пользователя были переведены или авторизованы для router. Поскольку PoolManager выполняет проверку баланса, злоумышленникам трудно напрямую украсть активы, но они могут атаковать, манипулируя механизмом управления комиссиями.
Независимый Hook
Независимые хуки получили больше власти и могут выполнять любые операции. Основные риски включают:
Устойчивый прокси
Контракт с логикой самоуничтожения
Меры предосторожности
Оценка того, является ли Hook вредоносным, имеет решающее значение. Для управляемых Hook следует обратить внимание на поведение управления затратами; для независимых Hook следует обратить внимание на возможность обновления.
Заключение
Данная статья описывает основные механизмы и потенциальные риски безопасности, связанные с механизмом Hook в Uniswap v4. В последующих статьях будет проведен глубокий анализ вопросов безопасности в каждой модели угроз.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
20 Лайков
Награда
20
3
Поделиться
комментарий
0/400
MonkeySeeMonkeyDo
· 07-28 11:47
Следует уделять особое внимание мерам безопасности.
Подробное объяснение механизма Hook Uniswap v4: сочетание потенциала и рисков безопасности
Механизм Hook Uniswap v4: потенциал и сопутствующие вызовы
Uniswap v4 скоро выйдет, и это обновление вводит множество инновационных функций, среди которых механизм Hook вызывает особое внимание.
Механизм Hook позволяет выполнять пользовательский код на определенных узлах жизненного цикла пула ликвидности, значительно увеличивая масштабируемость и гибкость пула. Однако сложность Hook также приносит новые потенциальные риски безопасности. В этой статье систематически рассматриваются проблемы безопасности и потенциальные риски, связанные с механизмом Hook, с целью содействия безопасному развитию сообщества.
Основная механика Uniswap v4
Три важные функции Uniswap v4: Hook, одиночная архитектура и молниеносный учет.
Крючок
Hook - это контракт, который работает на разных стадиях жизненного цикла пула ликвидности. Внедрение Hook позволяет реализовать нативную поддержку динамических сборов, добавление лимитных ордеров на блокчейне, а также функции, такие как распределение крупных заказов через средневзвешенную цену по времени. В настоящее время имеется 8 обратных вызовов Hook, разделенных на 4 группы:
Синглтон, молниеносная бухгалтерия и механизм блокировки
Однообразная архитектура и молниеносная бухгалтерия направлены на повышение производительности за счет снижения затрат и обеспечения эффективности. Она вводит контракт PoolManager для хранения и управления состоянием всех пулов.
Версия v4 внедрила механизм молниеносной бухгалтерии и блокировки. Механизм блокировки работает следующим образом:
Механизм блокировки предотвращает одновременный доступ и гарантирует, что все транзакции будут обработаны. Любые изменения будут зафиксированы во внутреннем балансе пула, а фактический перевод будет выполнен по завершении операции.
В связи с наличием механизма блокировки внешние аккаунты не могут напрямую взаимодействовать с PoolManager и должны делать это через контракт. Существуют два основных сценария взаимодействия с контрактом:
Модель угроз
Мы в основном рассматриваем две модели угроз:
Проблемы безопасности в модели угроз I
Мы в основном сосредотачиваемся на потенциальных уязвимостях, характерных для версии v4, и уделяем особое внимание следующим двум Hook:
В результате исследования было выявлено две основные проблемы: проблемы контроля доступа и проблемы проверки ввода.
Проблемы с контролем доступа
Функция обратного вызова в v4 должна вызываться только PoolManager. Если соответствующая функция может быть вызвана любым аккаунтом, это может привести к неправильному получению вознаграждений и другим проблемам. Поэтому крайне важно установить надежный механизм контроля доступа.
Вопросы проверки ввода
Из-за существования механизма блокировки пользователи должны получать lock через контракт, чтобы выполнять операции с пулом. Но все еще существуют потенциальные сценарии атак:
Неавторизованные внешние вызовы могут привести к таким проблемам, как атаки повторного входа.
Меры предосторожности
Чтобы избежать подобных проблем с безопасностью, необходимо реализовать необходимый контроль доступа к чувствительным функциям, проверять входные параметры и рассмотреть возможность внедрения защиты от повторного входа.
Проблемы безопасности в модели угроз II
Мы разделяем Hook на два типа:
Хук с управлением
Активы пользователя были переведены или авторизованы для router. Поскольку PoolManager выполняет проверку баланса, злоумышленникам трудно напрямую украсть активы, но они могут атаковать, манипулируя механизмом управления комиссиями.
Независимый Hook
Независимые хуки получили больше власти и могут выполнять любые операции. Основные риски включают:
Меры предосторожности
Оценка того, является ли Hook вредоносным, имеет решающее значение. Для управляемых Hook следует обратить внимание на поведение управления затратами; для независимых Hook следует обратить внимание на возможность обновления.
Заключение
Данная статья описывает основные механизмы и потенциальные риски безопасности, связанные с механизмом Hook в Uniswap v4. В последующих статьях будет проведен глубокий анализ вопросов безопасности в каждой модели угроз.