Cơ chế Hook của Uniswap v4: Tiềm năng và Thách thức đồng hành
Uniswap v4 sắp ra mắt, lần nâng cấp này giới thiệu nhiều tính năng đổi mới, trong đó cơ chế Hook được chú ý đặc biệt.
Cơ chế Hook cho phép thực thi mã tùy chỉnh tại các nút cụ thể trong vòng đời của pool thanh khoản, làm tăng đáng kể khả năng mở rộng và tính linh hoạt của pool. Tuy nhiên, độ phức tạp của Hook cũng mang lại những rủi ro an ninh tiềm ẩn mới. Bài viết này sẽ giới thiệu hệ thống 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.
Móc
Hook là hợp đồng hoạt động ở các giai đoạn khác nhau của vòng đời của quỹ thanh khoản, thông qua việc giới thiệu Hook có thể đạt được hỗ trợ động phí nguyên bản, thêm lệnh giới hạn trên chuỗi, thực hiện thị trường phân tán các đơn hàng lớn thông qua trung bình trọng số theo thời gian, v.v. Hiện tại có 8 callback Hook, được chia thành 4 nhóm:
trướcKhởiTạo/sauKhởiTạo
trướcSửaĐổiVịTrí/sauSửaĐổiVịTrí
trướcHoán đổi/sauHoán đổi
trướcDonate/sauDonate
Mẫu đơn, ghi sổ chớp nhoáng và cơ chế khóa
Kiến trúc đơn thể và ghi sổ chớp nhoáng nhằm nâng cao hiệu suất bằng cách giảm chi phí và đảm bảo hiệu quả. Nó giới thiệu một hợp đồng PoolManager để lưu trữ và quản lý trạng thái của tất cả các bể.
Phiên bản v4 đã giới thiệu tính năng ghi sổ nhanh và cơ chế khóa. Cách hoạt động của cơ chế khóa như sau:
hợp đồng locker yêu cầu lock trên PoolManager
PoolManager thêm địa chỉ hợp đồng locker vào hàng đợi lockData và gọi lại lockAcquired
Hợp đồng locker thực hiện logic của nó trong callback
PoolManager kiểm tra trạng thái hàng đợi lockData và sự gia tăng tiền tệ, xác thực sau đó xóa hợp đồng locker đó.
Cơ chế khóa ngăn chặn việc truy cập đồng thời và đảm bảo rằng tất cả giao dịch đều có thể được thanh toán. Mọi thay đổi sẽ được ghi lại trong số dư nội bộ của pool, việc chuyển khoản thực tế sẽ được thực hiện khi kết thúc thao tác.
Do vì sự tồn tại của cơ chế khóa, 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. Chủ yếu có hai tình huống tương tác hợp đồng:
hợp đồng locker đến từ kho mã chính thức hoặc được triển khai bởi người dùng, có thể coi là tương tác thông qua bộ định tuyến
Hợp đồng locker và Hook được tích hợp vào cùng một hợp đồng, có thể coi là tương tác thông qua Hook.
Mô hình đe dọa
Chúng tôi chủ yếu xem xét hai loại 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 đã là độc hại
Vấn đề an ninh trong mô hình đe dọa I
Chúng tôi chủ yếu tập trung vào các lỗ hổng tiềm ẩn đặc trưng của phiên bản v4, thảo luận trọng tâm về hai loại Hook sau đây:
Hook bảo quản quỹ của người dùng
Hook lưu trữ dữ liệu trạng thái chính
Qua nghiên cứu, phát hiện ra hai loại vấn đề chính: vấn đề kiểm soát truy cập và vấn đề xác thực đầu vào.
Vấn đề kiểm soát truy cập
Hàm callback trong v4 chỉ nên được gọi bởi PoolManager. Nếu hàm tương ứng có thể được gọi bởi bất kỳ tài khoản nào, có thể dẫn đến việc phần thưởng bị nhận sai. Do đó, việc thiết lập cơ chế kiểm soát truy cập mạnh mẽ là vô cùng quan trọng.
Vấn đề xác thực đầu vào
Do bởi sự tồn tại của cơ chế khóa, người dùng phải nhận được lock thông qua hợp đồng để thực hiện các thao tác trong bể. Nhưng vẫn tồn tại các tình huống tấn công tiềm ẩn:
Hook người dùng chưa xác minh dự định tương tác với quỹ tiền
Một số hàm Hook quan trọng cho phép gọi từ bên ngoài một cách tùy ý.
Các cuộc gọi bên ngoài không được tin cậ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
Để tránh các vấn đề an ninh như vậy, cần thực hiện kiểm soát truy cập cần thiết cho các hàm nhạy cảm, xác minh các tham số đầu vào và xem xét thực hiện bảo vệ tái nhập.
Vấn đề an ninh trong mô hình đe dọa II
Chúng tôi chia Hook thành hai loại:
Hook dạng ủy thác: không phải là điểm truy cập, người dùng tương tác với nó thông qua bộ định tuyến
Hook độc lập: là điểm truy cập, cho phép người dùng tương tác trực tiếp
Hook ủy thác
Tài sản của người dùng được chuyển nhượng hoặc ủy quyền cho router. Do PoolManager thực hiện kiểm tra số dư, việc đánh cắp tài sản trực tiếp bằng cách sử dụng Hook ác ý là khó khăn, nhưng có thể tấn công bằng cách thao túng cơ chế quản lý phí.
Hook độc lập
Hook độc lập đã 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. Các rủi ro chính bao gồm:
Đại lý có thể nâng cấp
Hợp đồng có logic tự hủy
Biện pháp phòng ngừa
Đánh giá xem Hook có độc hại hay không là rất quan trọng. Đối với Hook loại lưu ký, cần chú ý đến hành vi quản lý chi phí; đối với Hook loại độc lập, cần chú ý đến khả năng nâng cấp.
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 tiềm ẩn. Các bài viết tiếp theo sẽ phân tích sâu về các vấn đề an ninh trong từng mô hình mối đe dọa.
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.
20 thích
Phần thưởng
20
3
Chia sẻ
Bình luận
0/400
MonkeySeeMonkeyDo
· 07-28 11:47
Cần đặc biệt chú trọng đến công tác phòng ngừa an toàn.
Giải thích cơ chế Hook của Uniswap v4: Tiềm năng và rủi ro an toàn đồng tồn tại
Cơ chế Hook của Uniswap v4: Tiềm năng và Thách thức đồng hành
Uniswap v4 sắp ra mắt, lần nâng cấp này giới thiệu nhiều tính năng đổi mới, trong đó cơ chế Hook được chú ý đặc biệt.
Cơ chế Hook cho phép thực thi mã tùy chỉnh tại các nút cụ thể trong vòng đời của pool thanh khoản, làm tăng đáng kể khả năng mở rộng và tính linh hoạt của pool. Tuy nhiên, độ phức tạp của Hook cũng mang lại những rủi ro an ninh tiềm ẩn mới. Bài viết này sẽ giới thiệu hệ thống 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.
Móc
Hook là hợp đồng hoạt động ở các giai đoạn khác nhau của vòng đời của quỹ thanh khoản, thông qua việc giới thiệu Hook có thể đạt được hỗ trợ động phí nguyên bản, thêm lệnh giới hạn trên chuỗi, thực hiện thị trường phân tán các đơn hàng lớn thông qua trung bình trọng số theo thời gian, v.v. Hiện tại có 8 callback Hook, được chia thành 4 nhóm:
Mẫu đơn, ghi sổ chớp nhoáng và cơ chế khóa
Kiến trúc đơn thể và ghi sổ chớp nhoáng nhằm nâng cao hiệu suất bằng cách giảm chi phí và đảm bảo hiệu quả. Nó giới thiệu một hợp đồng PoolManager để lưu trữ và quản lý trạng thái của tất cả các bể.
Phiên bản v4 đã giới thiệu tính năng ghi sổ nhanh và cơ chế khóa. Cách hoạt động của cơ chế khóa như sau:
Cơ chế khóa ngăn chặn việc truy cập đồng thời và đảm bảo rằng tất cả giao dịch đều có thể được thanh toán. Mọi thay đổi sẽ được ghi lại trong số dư nội bộ của pool, việc chuyển khoản thực tế sẽ được thực hiện khi kết thúc thao tác.
Do vì sự tồn tại của cơ chế khóa, 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. Chủ yếu có hai tình huống tương tác hợp đồng:
Mô hình đe dọa
Chúng tôi chủ yếu xem xét hai loại mô hình đe dọa:
Vấn đề an ninh trong mô hình đe dọa I
Chúng tôi chủ yếu tập trung vào các lỗ hổng tiềm ẩn đặc trưng của phiên bản v4, thảo luận trọng tâm về hai loại Hook sau đây:
Qua nghiên cứu, phát hiện ra hai loại vấn đề chính: vấn đề kiểm soát truy cập và vấn đề xác thực đầu vào.
Vấn đề kiểm soát truy cập
Hàm callback trong v4 chỉ nên được gọi bởi PoolManager. Nếu hàm tương ứng có thể được gọi bởi bất kỳ tài khoản nào, có thể dẫn đến việc phần thưởng bị nhận sai. Do đó, việc thiết lập cơ chế kiểm soát truy cập mạnh mẽ là vô cùng quan trọng.
Vấn đề xác thực đầu vào
Do bởi sự tồn tại của cơ chế khóa, người dùng phải nhận được lock thông qua hợp đồng để thực hiện các thao tác trong bể. Nhưng vẫn tồn tại các tình huống tấn công tiềm ẩn:
Các cuộc gọi bên ngoài không được tin cậ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
Để tránh các vấn đề an ninh như vậy, cần thực hiện kiểm soát truy cập cần thiết cho các hàm nhạy cảm, xác minh các tham số đầu vào và xem xét thực hiện bảo vệ tái nhập.
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
Tài sản của người dùng được chuyển nhượng hoặc ủy quyền cho router. Do PoolManager thực hiện kiểm tra số dư, việc đánh cắp tài sản trực tiếp bằng cách sử dụng Hook ác ý là khó khăn, nhưng có thể tấn công bằng cách thao túng cơ chế quản lý phí.
Hook độc lập
Hook độc lập đã 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. Các rủi ro chính bao gồm:
Biện pháp phòng ngừa
Đánh giá xem Hook có độc hại hay không là rất quan trọng. Đối với Hook loại lưu ký, cần chú ý đến hành vi quản lý chi phí; đối với Hook loại độc lập, cần chú ý đến khả năng nâng cấp.
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 tiềm ẩn. Các bài viết tiếp theo sẽ phân tích sâu về các vấn đề an ninh trong từng mô hình mối đe dọa.