Cơ chế Hook Uniswap v4: Đổi mới và thách thức an toàn đồng hành

robot
Đang tạo bản tóm tắt

Cơ chế Hook Uniswap v4: Đổi mới và thách thức đồng hành

Uniswap v4 sắp ra mắt, phiên bản này sẽ đưa ra nhiều đổi mới quan trọng, bao gồm hỗ trợ số lượng bể thanh khoản không giới hạn cho mỗi cặp giao dịch và phí động, thiết kế đơn lẻ, kế toán chớp nhoáng, cơ chế Hook, và hỗ trợ tiêu chuẩn token ERC1155. Trong đó, cơ chế Hook được chú ý vì tiềm năng mạnh mẽ của nó.

Cơ chế Hook cho phép thực thi mã tùy chỉnh vào những thời điểm nhất định trong vòng đời của bể thanh khoản, làm tăng đáng kể khả năng mở rộng và linh hoạt của bể. Tuy nhiên, sự linh hoạt này cũng mang lại những thách thức an ninh mới. Bài viết này sẽ hệ thống giới thiệu các vấn đề an ninh và rủi ro tiềm ẩn liên quan đến cơ chế Hook, nhằm thúc đẩy sự phát triển an toàn của cộng đồng.

Cơ chế cốt lõi của Uniswap V4

Ba tính năng quan trọng của Uniswap v4 là Hook, kiến trúc đơn thể và kế toán chớp nhoáng.

cơ chế Hook

Hook là hợp đồng hoạt động ở các giai đoạn khác nhau của vòng đời bể thanh khoản, có thể hỗ trợ phí động gốc, thêm lệnh giới hạn trên chuỗi, hoặc thực hiện giao dịch phân tán các đơn hàng lớn thông qua nhà tạo lập thị trường trung bình theo thời gian (TWAMM).

Hiện tại có tám callback Hook, được chia thành bốn nhóm:

  • trướcKhởiTạo/sauKhởiTạo
  • trướcSửaĐổiVịTrí/sauSửaĐổiVịTrí
  • trướcHoán/ sauHoán
  • trướcKhiTặng/sauKhiTặng

Tại sao Hook được coi là "con dao hai lưỡi" của Uniswap V4?

Đơn thể, ghi sổ chớp nhoáng và cơ chế khóa

Kiến trúc đơn thể và ghi sổ chớp nhằm nâng cao hiệu suất. Tất cả các pool thanh khoản được lưu trữ trong cùng một hợp đồng thông minh PoolManager.

Cơ chế khóa hoạt động như sau:

  1. hợp đồng locker yêu cầu khóa trên PoolManager
  2. PoolManager sẽ thêm địa chỉ locker vào hàng đợi và gọi lại nó.
  3. logic thực hiện hợp đồng locker, tương tác với pool có thể dẫn đến sự gia tăng tiền tệ không bằng 0
  4. PoolManager kiểm tra hàng đợi và trạng thái tăng trưởng tiền tệ, xác thực sau đó xóa locker đó

Phương pháp này điều chỉnh số dư ròng nội bộ, không phải chuyển khoản ngay lập tức. Chuyển khoản thực tế diễn ra khi kết thúc thao tác, đảm bảo không có token chưa được thanh toán.

Tài khoản bên ngoài không thể tương tác trực tiếp với PoolManager, mà phải thông qua hợp đồng. Có hai tình huống tương tác chính:

  • Thông qua hợp đồng locker ( được triển khai bởi chính thức hoặc người dùng, bộ định tuyến )
  • hợp đồng locker và Hook được tích hợp vào cùng một hợp đồng

Mô hình đe dọa

Chúng tôi chủ yếu xem xét hai mô hình đe dọa:

  • Mô hình đe dọa I: Hook bản thân là vô hại nhưng có lỗ hổng
  • Mô hình đe dọa II: Hook bản thân nó là độc hại.

Vấn đề an ninh trong mô hình đe dọa I

Chúng tôi chú ý đến các lỗ hổng tiềm ẩn đặc thù của phiên bản v4, chủ yếu được chia thành hai loại:

  • Giữ tiền của người dùng bằng Hook
  • Hook lưu trữ dữ liệu trạng thái quan trọng

Các lỗ hổng được phát hiện chủ yếu xuất phát từ sự tương tác rủi ro giữa hook, PoolManager và bên thứ ba bên ngoài, có thể được chia thành:

  • Vấn đề kiểm soát truy cập
  • Vấn đề xác thực đầu vào

Trong 22 dự án liên quan, có 8 cái (36%) có lỗ hổng, trong đó 6 cái có vấn đề kiểm soát truy cập, 2 cái dễ bị ảnh hưởng bởi các cuộc gọi bên ngoài không đáng tin cậy.

Vấn đề kiểm soát truy cập

Hàm callback trong v4 (8 hook callback và lock callback ) chỉ nên được gọi bởi PoolManager. Việc thiết lập cơ chế kiểm soát truy cập mạnh mẽ là rất quan trọng.

Vấn đề xác thực đầu vào

Mặc dù có cơ chế khóa, vẫn tồn tại các kịch bản tấn công tiềm ẩn:

  • hook không xác thực người dùng tương tác với quỹ
  • Hàm hook quan trọng cho phép gọi từ bên ngoài tùy ý

Điều này có thể dẫn đến các vấn đề như tấn công tái nhập.

Biện pháp phòng ngừa

  • Thực hiện kiểm soát truy cập cần thiết đối với các hàm nhạy cảm
  • Xác minh tham số đầu vào
  • Triển khai bảo vệ tái nhập

Tại sao Hook được coi là "con dao hai lưỡi" của Uniswap V4?

Vấn đề an ninh trong mô hình đe dọa II

Chúng tôi chia Hook thành hai loại:

  • Hook ủy thác: Người dùng tương tác với hook thông qua bộ định tuyến
  • Hook độc lập: Người dùng tương tác trực tiếp với hook

Hook ủy thác

Tài sản của người dùng được chuyển cho router. Hook độc hại khó có thể trực tiếp đánh cắp, nhưng có thể thao tác cơ chế quản lý phí.

Hook độc lập

hook nhận được nhiều quyền lực hơn, có thể thực hiện bất kỳ thao tác nào. Rủi ro chính:

  • Đại lý có thể nâng cấp
  • Có logic tự hủy

Biện pháp phòng ngừa

  • Đánh giá xem hook có độc hại không
  • Chú ý đến hành vi quản lý chi phí của hook dạng ủy thác
  • Quan tâm đến việc hook độc lập có thể nâng cấp hay không

Kết luận

Bài viết này tóm tắt các cơ chế cốt lõi liên quan đến cơ chế Hook của Uniswap v4 và các rủi ro an ninh. Mặc dù cơ chế Hook là một đổi mới, nhưng nó cũng mang đến những thách thức an ninh mới. Các bài viết tiếp theo sẽ phân tích sâu về các vấn đề an ninh dưới từng mô hình mối đe dọa.

Tại sao Hook được coi là "con dao hai lưỡi" của Uniswap V4?

UNI2.3%
HOOK5.99%
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • 5
  • Chia sẻ
Bình luận
0/400
ProbablyNothingvip
· 08-05 15:14
V4 à, các game thủ MEV đang vui mừng
Xem bản gốcTrả lời0
WhaleMistakervip
· 08-05 15:08
Cập nhật killer... cuối cùng cũng đã chờ được.
Xem bản gốcTrả lời0
AirdropHunter420vip
· 08-05 14:51
Bull à hook có chút điều gì đó
Xem bản gốcTrả lời0
NotAFinancialAdvicevip
· 08-05 14:51
Cơ chế hook chỉ là một cái bẫy chờ đợi người mới.
Xem bản gốcTrả lời0
SmartMoneyWalletvip
· 08-05 14:51
Cơ chế hook này tiềm ẩn rủi ro, chỉ chờ đợi nhóm người làm khoản vay nhanh đến gây rối.
Xem bản gốcTrả lời0
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)