Explicación detallada del mecanismo Hook de Uniswap v4: potencial y riesgos de seguridad coexistentes

robot
Generación de resúmenes en curso

El mecanismo Hook de Uniswap v4: potencial y desafíos coexistentes

Uniswap v4 está a punto de ser lanzado, y esta actualización introduce muchas funciones innovadoras, entre las cuales el mecanismo Hook ha llamado especialmente la atención.

El mecanismo Hook permite ejecutar código personalizado en nodos específicos del ciclo de vida del pool de liquidez, lo que mejora enormemente la escalabilidad y flexibilidad del pool. Sin embargo, la complejidad del Hook también conlleva nuevos riesgos de seguridad potenciales. Este artículo presentará de manera sistemática los problemas de seguridad y riesgos potenciales relacionados con el mecanismo Hook, con el fin de promover el desarrollo seguro de la comunidad.

El mecanismo central de Uniswap v4

Las tres características importantes de Uniswap v4 son Hook, arquitectura de singleton y contabilidad relámpago.

Gancho

Hook es un contrato que opera en diferentes etapas del ciclo de vida de un fondo de liquidez. Al introducir Hook, se pueden implementar funciones nativas que admiten tarifas dinámicas, añadir órdenes límite en la cadena, y ejecutar órdenes grandes a través de un creador de mercado ponderado por tiempo, entre otras. Actualmente, hay 8 callbacks de Hook, divididos en 4 grupos:

  • beforeInitialize/afterInitialize
  • beforeModifyPosition/afterModifyPosition
  • antesDelIntercambio/despuésDelIntercambio
  • antesDeDonar/despuésDeDonar

¿Por qué se dice que Hook es una "espada de doble filo" en Uniswap V4?

Singleton, contabilidad relámpago y mecanismo de bloqueo

La arquitectura de singleton y la contabilidad relámpago están diseñadas para mejorar el rendimiento al reducir costos y garantizar eficiencia. Introduce un contrato PoolManager para almacenar y gestionar el estado de todos los pools.

La versión v4 introduce el contabilidad relámpago y el mecanismo de bloqueo. El funcionamiento del mecanismo de bloqueo es el siguiente:

  1. El contrato locker solicita lock en PoolManager
  2. PoolManager añade la dirección del contrato locker a la cola lockData y llama a su callback lockAcquired.
  3. El contrato locker ejecuta su lógica en la callback.
  4. PoolManager verifica el estado de la cola lockData y el incremento de moneda, valida y luego elimina el contrato del locker.

El mecanismo de bloqueo previene el acceso concurrente y asegura que todas las transacciones puedan ser liquidadas. Cualquier modificación se registrará en el saldo interno del pool, y la transferencia real se realizará al finalizar la operación.

Debido a la existencia del mecanismo de bloqueo, las cuentas externas no pueden interactuar directamente con PoolManager, deben hacerlo a través de un contrato. Principalmente hay dos escenarios de interacción con el contrato:

  • El contrato locker proviene del repositorio de código oficial o es desplegado por el usuario, y puede ser visto como una interacción a través de un enrutador.
  • El contrato de locker y Hook se integran en el mismo contrato, lo que se puede ver como una interacción a través de Hook.

Modelo de Amenaza

Principalmente consideramos dos modelos de amenaza:

  • Modelo de amenaza I: Hook en sí mismo es benigno, pero tiene vulnerabilidades
  • Modelo de amenaza II: Hook es malicioso por sí mismo.

Problemas de seguridad en el modelo de amenazas I

Nos centramos principalmente en las vulnerabilidades potenciales específicas de la versión v4, discutiendo en detalle las siguientes dos Hook:

  1. Hook para custodiar los fondos de los usuarios
  2. Hook que almacena datos de estado clave

Se ha encontrado que existen principalmente dos tipos de problemas: problemas de control de acceso y problemas de validación de entradas.

Problemas de control de acceso

Las funciones de retorno en la versión 4 solo deberían ser llamadas por el PoolManager. Si las funciones correspondientes pueden ser llamadas por cualquier cuenta, esto podría llevar a problemas como la recepción incorrecta de recompensas. Por lo tanto, es crucial establecer un mecanismo de control de acceso sólido.

Problema de validación de entrada

Debido a la existencia del mecanismo de bloqueo, los usuarios deben obtener un lock a través del contrato para poder realizar operaciones en la piscina. Sin embargo, todavía existen escenarios de ataque potenciales:

  • Hook usuarios no verificados que planean interactuar con el fondo
  • Algunas funciones Hook clave permiten llamadas externas arbitrarias.

Las llamadas externas no confiables pueden dar lugar a problemas como ataques de reentrada.

Medidas de prevención

Para evitar este tipo de problemas de seguridad, se deben implementar controles de acceso necesarios en las funciones sensibles, verificar los parámetros de entrada y considerar la implementación de protección contra reentradas.

¿Por qué se dice que Hook es una "espada de doble filo" en Uniswap V4?

Problemas de seguridad en el modelo de amenaza II

Dividimos los Hooks en dos categorías:

  • Hook de custodia: no es un punto de entrada, los usuarios interactúan con él a través del enrutador
  • Hook independiente: es el punto de entrada, permite a los usuarios interactuar directamente.

Hook de custodia

Los activos del usuario son transferidos o autorizados al router. Debido a que el PoolManager realiza verificaciones de saldo, es difícil que un Hook malicioso robe activos directamente, pero podría atacar manipulando el mecanismo de gestión de tarifas.

Gancho independiente

El Hook independiente ha obtenido más poder y puede ejecutar cualquier operación. Los principales riesgos incluyen:

  • Agente escalable
  • Contrato con lógica de autodestrucción

Medidas de prevención

Es crucial evaluar si el Hook es malicioso. Para los Hooks gestionados, se debe prestar atención al comportamiento de gestión de costos; para los Hooks independientes, se debe evaluar si son actualizables.

¿Por qué se dice que Hook es una "espada de doble filo" en Uniswap V4?

Conclusión

Este artículo describe los mecanismos centrales y los riesgos de seguridad potenciales relacionados con el mecanismo Hook de Uniswap v4. Artículos posteriores analizarán en profundidad los problemas de seguridad bajo cada modelo de amenaza.

UNI1.69%
HOOK5.93%
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 3
  • Compartir
Comentar
0/400
MonkeySeeMonkeyDovip
· 07-28 11:47
Es importante prestar especial atención a la prevención de la seguridad.
Ver originalesResponder0
PumpStrategistvip
· 07-28 09:37
El riesgo supera con creces la rentabilidad
Ver originalesResponder0
NFTArchaeologistvip
· 07-25 13:54
La seguridad debe ser la prioridad.
Ver originalesResponder0
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)