Uniswap v4 незабаром з'явиться, це оновлення вводить безліч інноваційних функцій, серед яких механізм Hook привертає особливу увагу.
Механізм Hook дозволяє виконувати користувацький код на певних вузлах життєвого циклу ліквідності, що значно підвищує масштабованість і гнучкість пулу. Однак складність Hook також приносить нові потенційні ризики безпеки. У цій статті буде систематично представлено питання безпеки та потенційні ризики, пов’язані з механізмом Hook, щоб сприяти безпечному розвитку спільноти.
Основний механізм Uniswap v4
Три важливі функції Uniswap v4 - це Hook, одноразова архітектура та миттєва бухгалтерія.
Гук
Hook є контрактом, який працює на різних етапах життєвого циклу ліквідного фонду, шляхом впровадження Hook можна реалізувати рідну підтримку динамічних зборів, додавання лімітних ордерів на блокчейні, а також функції розподілу великих замовлень через часову середньозважену ціну. Наразі існує 8 викликів Hook, розділених на 4 групи:
передІніціалізацією/післяІніціалізації
передЗміноюПозиції/післяЗміниПозиції
передОбміном/післяОбміну
передПожертвуванням/післяПожертвування
! [Чому Hook є «палицею з двома кінцями» для Uniswap V4?] ](https://img-cdn.gateio.im/webp-social/moments-f652bf2a22ca7f28f19b4ce9880d0548.webp)
Одиночний екземпляр, миттєва бухгалтерія та механізм блокування
Архітектура Singleton та миттєва бухгалтерія спрямовані на підвищення продуктивності шляхом зниження витрат та забезпечення ефективності. Вона впроваджує контракт PoolManager для зберігання та управління станом усіх пулів.
Версія v4 впроваджує механізм блискавичного обліку та механізм блокування. Механізм блокування працює таким чином:
контракт locker запитує lock на PoolManager
PoolManager додає адресу контракту locker до черги lockData та викликає його зворотний виклик lockAcquired.
контракт locker виконує свою логіку в зворотному виклику
PoolManager перевіряє стан черги lockData та збільшення валюти, після верифікації видаляє цей контракт locker.
Механізм блокування запобігає одночасному доступу та забезпечує, щоб усі транзакції могли бути ліквідовані. Будь-які зміни будуть зафіксовані у внутрішньому балансі пулу, а фактичний переказ буде здійснено після завершення операції.
Через наявність механізму блокування зовнішні рахунки не можуть безпосередньо взаємодіяти з PoolManager, а повинні робити це через контракт. Існує два основних сценарії взаємодії з контрактом:
locker-контракт походить з офіційної кодової бази або розгортається користувачем, може вважатися взаємодією через маршрутизатор
контракт locker та Hook інтегровані в один контракт, що можна вважати взаємодією через Hook
Модель загрози
Ми в основному розглядаємо дві моделі загроз:
Модель загрози I: Hook сам по собі є доброзичливим, але має вразливість
Модель загрози II: Hook сам по собі є шкідливим
Проблеми безпеки в моделі загроз I
Ми головним чином зосереджуємося на потенційних уразливостях, характерних для версії v4, зокрема обговорюємо наступні два Hook:
Зберігання коштів користувачів Hook
Хук для зберігання ключових станів даних
Дослідження виявило, що існує дві основні категорії проблем: проблеми доступу та проблеми валідації вводу.
Проблема контролю доступу
У функціях зворотного виклику в v4 має право викликати лише PoolManager. Якщо відповідні функції можуть бути викликані будь-яким обліковим записом, це може призвести до помилок у отриманні винагороди та інших проблем. Тому важливо встановити надійний механізм контролю доступу.
Вхідна перевірка
Через наявність механізму блокування, користувачі повинні отримати lock через контракт, щоб виконати дії в пулі. Але все ще існують потенційні сценарії атак:
Hook непідтверджений користувач планує взаємодіяти з пулом коштів
Деякі ключові функції Hook дозволяють будь-які зовнішні виклики
Ненадійні зовнішні виклики можуть призвести до проблем, таких як атаки повторного входу.
Заходи запобігання
Щоб уникнути подібних проблем із безпекою, необхідно впровадити контроль доступу до чутливих функцій, перевірити вхідні параметри та розглянути можливість впровадження захисту від повторних викликів.
! [Чому Hook є «палицею з двома кінцями» для Uniswap V4?] ](https://img-cdn.gateio.im/webp-social/moments-ba4bfa88e0ac0b6246e82ad879361ff3.webp)
проблеми безпеки в моделі загроз II
Ми розділяємо Hook на два типи:
Хостинг Hook: не є точкою входу, користувач взаємодіє з ним через маршрутизатор
Незалежний Hook: це точка входу, що дозволяє користувачам безпосередньо взаємодіяти
Хостингова Hook
Активи користувача були переведені або авторизовані рутером. Оскільки PoolManager виконує перевірку балансу, зловмисні хук-системи важко безпосередньо викрасти активи, але можуть атакувати, маніпулюючи механізмом управління витратами.
Незалежний Hook
Незалежний Hook отримав більше повноважень, може виконувати будь-які дії. Основні ризики включають:
Можливість оновлення代理
Контракт з логікою самознищення
Заходи безпеки
Оцінка того, чи є Hook шкідливим, є надзвичайно важливою. Для керованого Hook слід звертати увагу на поведінку управління витратами; для незалежного Hook слід звертати увагу на можливість оновлення.
! [Чому Hook є «палицею з двома кінцями» для Uniswap V4?] ](https://img-cdn.gateio.im/social/moments-97c1e5846e4f09953053fb97876f16)
Висновок
Ця стаття узагальнює основні механізми та потенційні ризики безпеки, пов'язані з механізмом Hook Uniswap v4. У подальших статтях буде проведено детальний аналіз проблем безпеки в рамках кожної моделі загрози.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Докладно про механізм Hook Uniswap v4: потенціал і ризики безпеки одночасно
Механізм Hook в Uniswap v4: потенціал і виклики
Uniswap v4 незабаром з'явиться, це оновлення вводить безліч інноваційних функцій, серед яких механізм Hook привертає особливу увагу.
Механізм Hook дозволяє виконувати користувацький код на певних вузлах життєвого циклу ліквідності, що значно підвищує масштабованість і гнучкість пулу. Однак складність Hook також приносить нові потенційні ризики безпеки. У цій статті буде систематично представлено питання безпеки та потенційні ризики, пов’язані з механізмом Hook, щоб сприяти безпечному розвитку спільноти.
Основний механізм Uniswap v4
Три важливі функції Uniswap v4 - це Hook, одноразова архітектура та миттєва бухгалтерія.
Гук
Hook є контрактом, який працює на різних етапах життєвого циклу ліквідного фонду, шляхом впровадження Hook можна реалізувати рідну підтримку динамічних зборів, додавання лімітних ордерів на блокчейні, а також функції розподілу великих замовлень через часову середньозважену ціну. Наразі існує 8 викликів Hook, розділених на 4 групи:
! [Чому Hook є «палицею з двома кінцями» для Uniswap V4?] ](https://img-cdn.gateio.im/webp-social/moments-f652bf2a22ca7f28f19b4ce9880d0548.webp)
Одиночний екземпляр, миттєва бухгалтерія та механізм блокування
Архітектура Singleton та миттєва бухгалтерія спрямовані на підвищення продуктивності шляхом зниження витрат та забезпечення ефективності. Вона впроваджує контракт PoolManager для зберігання та управління станом усіх пулів.
Версія v4 впроваджує механізм блискавичного обліку та механізм блокування. Механізм блокування працює таким чином:
Механізм блокування запобігає одночасному доступу та забезпечує, щоб усі транзакції могли бути ліквідовані. Будь-які зміни будуть зафіксовані у внутрішньому балансі пулу, а фактичний переказ буде здійснено після завершення операції.
Через наявність механізму блокування зовнішні рахунки не можуть безпосередньо взаємодіяти з PoolManager, а повинні робити це через контракт. Існує два основних сценарії взаємодії з контрактом:
Модель загрози
Ми в основному розглядаємо дві моделі загроз:
Проблеми безпеки в моделі загроз I
Ми головним чином зосереджуємося на потенційних уразливостях, характерних для версії v4, зокрема обговорюємо наступні два Hook:
Дослідження виявило, що існує дві основні категорії проблем: проблеми доступу та проблеми валідації вводу.
Проблема контролю доступу
У функціях зворотного виклику в v4 має право викликати лише PoolManager. Якщо відповідні функції можуть бути викликані будь-яким обліковим записом, це може призвести до помилок у отриманні винагороди та інших проблем. Тому важливо встановити надійний механізм контролю доступу.
Вхідна перевірка
Через наявність механізму блокування, користувачі повинні отримати lock через контракт, щоб виконати дії в пулі. Але все ще існують потенційні сценарії атак:
Ненадійні зовнішні виклики можуть призвести до проблем, таких як атаки повторного входу.
Заходи запобігання
Щоб уникнути подібних проблем із безпекою, необхідно впровадити контроль доступу до чутливих функцій, перевірити вхідні параметри та розглянути можливість впровадження захисту від повторних викликів.
! [Чому Hook є «палицею з двома кінцями» для Uniswap V4?] ](https://img-cdn.gateio.im/webp-social/moments-ba4bfa88e0ac0b6246e82ad879361ff3.webp)
проблеми безпеки в моделі загроз II
Ми розділяємо Hook на два типи:
Хостингова Hook
Активи користувача були переведені або авторизовані рутером. Оскільки PoolManager виконує перевірку балансу, зловмисні хук-системи важко безпосередньо викрасти активи, але можуть атакувати, маніпулюючи механізмом управління витратами.
Незалежний Hook
Незалежний Hook отримав більше повноважень, може виконувати будь-які дії. Основні ризики включають:
Заходи безпеки
Оцінка того, чи є Hook шкідливим, є надзвичайно важливою. Для керованого Hook слід звертати увагу на поведінку управління витратами; для незалежного Hook слід звертати увагу на можливість оновлення.
! [Чому Hook є «палицею з двома кінцями» для Uniswap V4?] ](https://img-cdn.gateio.im/social/moments-97c1e5846e4f09953053fb97876f16)
Висновок
Ця стаття узагальнює основні механізми та потенційні ризики безпеки, пов'язані з механізмом Hook Uniswap v4. У подальших статтях буде проведено детальний аналіз проблем безпеки в рамках кожної моделі загрози.