Uniswap V4 Hooks và mở rộng gốc: Chương mới về an ninh và đổi mới trong Tài chính phi tập trung

Hooks: Công cụ mạnh mẽ để mở rộng chức năng của ứng dụng

Hooks là một mô hình lập trình cho phép các nhà phát triển chèn mã tùy chỉnh trong quá trình thực thi của hệ thống. Thông qua các hàm hoặc khối mã được định nghĩa trước, các nhà phát triển có thể mở rộng và tùy chỉnh hành vi của ứng dụng mà không cần phải sửa đổi mã gốc. Phương pháp này được áp dụng rộng rãi trong nhiều lĩnh vực như hệ điều hành, framework, thư viện, phát triển mạng và hệ thống plugin.

Việc sử dụng Hooks có thể nâng cao đáng kể khả năng mở rộng và tính linh hoạt của chương trình. Các nhà phát triển không cần phải thay đổi mã hiện có một cách lớn cho mỗi lần điều chỉnh chức năng, từ đó giữ cho mã nguồn được gọn gàng và ổn định. Cơ chế mở rộng tinh tế này khiến Hooks trở thành một mô hình lập trình không thể thiếu trong thiết kế phần mềm.

Đáng chú ý rằng lập trình hướng khía cạnh (AOP) thường được so sánh với lập trình Hook. AOP nhằm mục đích hiện thực hóa việc phân tách các mối quan tâm chéo, với mục tiêu tương tự là tăng cường hoặc thay đổi chức năng mà không ảnh hưởng đến logic kinh doanh cốt lõi. AOP có thể được coi là một hình thức lập trình Hook với mức độ trừu tượng cao hơn.

Từ Uniswap V4 đến giao thức gốc Artela, hành trình tiến hóa của DeFi Hooks

Uniswap V4: Cách mạng của Hooks

Vào tháng 6 năm 2023, Uniswap đã phát hành bản nháp whitepaper V4, trong đó tính năng đáng chú ý nhất là việc giới thiệu cơ chế Hooks.

Trên thực tế, Hooks đã được ứng dụng rộng rãi trong hệ thống tài chính truyền thống, chủ yếu để đáp ứng nhu cầu tùy chỉnh cao và khả năng mở rộng. Ví dụ, trong quá trình xử lý giao dịch, có thể chèn thêm logic xác thực như xác thực hai yếu tố, kiểm soát rủi ro và các chiến lược chống rửa tiền. Ngoài ra, Hooks còn có thể được sử dụng để tích hợp API bên ngoài hoặc dịch vụ vi mô, mở rộng các chức năng mới như xác thực danh tính, chuyển đổi tỷ giá và cổng thanh toán. Tuy nhiên, việc đưa Hooks vào lĩnh vực tài chính phi tập trung (DeFi), Uniswap không nghi ngờ gì đã mở ra con đường mới.

Hooks trong Uniswap V4 về cơ bản là một hợp đồng bên ngoài có thể được liên kết với pool thanh khoản khi được tạo ra. Sau đó, pool sẽ gọi hợp đồng Hook đã liên kết để thực hiện các thao tác cụ thể trong các giai đoạn vòng đời khác nhau, cung cấp khả năng tùy chỉnh rất cao. Điều này cho phép các nhà phát triển xây dựng các kịch bản giao dịch cá nhân hóa hơn và các ứng dụng phi tập trung (DApp) phong phú chức năng dựa trên Hooks của Uniswap.

Uniswap V4 hiện hỗ trợ bốn nhóm Hook callback, mỗi nhóm bao gồm một cặp hàm callback:

  1. beforeInitialize/afterInitialize: Dùng để khởi tạo pool thanh khoản
  2. trướcSửaĐổiVịTrí/sauSửaĐổiVịTrí: được sử dụng để thêm, giảm hoặc loại bỏ thanh khoản
  3. beforeSwap/afterSwap: dùng để trao đổi token
  4. beforeDonate/afterDonate: Dùng cho chức năng quyên góp (Tính năng mới trong Uniswap V4, cung cấp phần thưởng cho các nhà cung cấp thanh khoản nằm trong phạm vi giao dịch)

Các Hooks này có thể được thực hiện trước và sau khi giao dịch bắt đầu, để đạt được các chức năng nâng cao như lệnh giới hạn trên chuỗi. Người dùng có thể thiết lập lệnh giới hạn trên hợp đồng Hook, sau đó trong callback afterSwap, dựa trên oracle tùy chỉnh hoặc ủy quyền để xác định xem giá có đáp ứng điều kiện hay không, từ đó quyết định thực hiện hoặc hủy giao dịch.

Thông qua Hooks, Uniswap V4 kết hợp chặt chẽ tính thanh khoản với sự phát triển của DApp, không chỉ tăng cường chức năng của DApp mà còn củng cố hiệu ứng mạng của Uniswap, khiến nó trở thành cơ sở hạ tầng cốt lõi của hệ sinh thái DeFi.

Từ Uniswap V4 đến giao thức gốc Artela, hành trình tiến hóa của DeFi Hooks

Những thách thức về an ninh của Uniswap V4 Hooks

Một đội ngũ an ninh đã thực hiện phân tích sâu về các rủi ro an ninh tiềm ẩn trong cơ chế Hooks của Uniswap V4. Ngoài rủi ro từ các hợp đồng Hook độc hại, ngay cả các hợp đồng Hook lành mạnh cũng dễ có lỗ hổng. Qua phân tích, phát hiện rằng hơn 30% các dự án có nguy cơ an ninh. Những lỗ hổng này chủ yếu phát sinh từ sự tương tác phức tạp giữa Hook, PoolManager và các bên thứ ba bên ngoài, có thể được phân thành hai loại lớn:

  1. Vấn đề kiểm soát truy cập: Chủ yếu liên quan đến các hàm callback trong Uniswap V4, những hàm này chỉ nên được phép gọi bởi PoolManager, và không thể bị các địa chỉ khác (bao gồm tài khoản bên ngoài và hợp đồng) gọi. Chẳng hạn, trong kịch bản phân phối phần thưởng, nếu các hàm liên quan có thể bị bất kỳ tài khoản nào gọi, phần thưởng có thể bị nhận sai. Do đó, đối với Hook, việc xây dựng cơ chế kiểm soát truy cập mạnh mẽ là vô cùng quan trọng, đặc biệt khi chúng có thể bị gọi bởi các bên ngoài hồ.

  2. Vấn đề xác thực đầu vào: Do việc xác thực đầu vào không đúng cách trong một số cài đặt Hook dễ bị tấn công, có thể dẫn đến nhiều loại tấn công khác nhau, bao gồm cả tấn công tái nhập. Trường hợp phổ biến nhất là gọi các hợp đồng bên ngoài không đáng tin cậy trong các hàm Hook quan trọng. Kẻ tấn công có thể đăng ký các hồ bơi quỹ độc hại cho các token giả mạo, sau đó kích hoạt Hook để thực hiện các thao tác trong hồ bơi quỹ. Khi tương tác với hồ bơi quỹ, logic token độc hại có thể chiếm quyền kiểm soát luồng điều khiển, dẫn đến hành vi xấu.

Ngay cả khi đã thực hiện các biện pháp kiểm soát truy cập cần thiết đối với các hàm bên ngoài/công cộng nhạy cảm và xác thực các tham số đầu vào, giảm thiểu các rủi ro an ninh liên quan đến hai loại Hook ở trên, nhưng lỗ hổng hợp đồng vẫn không thể hoàn toàn tránh khỏi. Đặc biệt là khi Hook được triển khai như một hợp đồng có thể nâng cấp, còn có thể đối mặt với các vấn đề liên quan đến lỗ hổng hợp đồng có thể nâng cấp giống như một thư viện hợp đồng thông minh nổi tiếng.

Nguyên nhân cơ bản của những thách thức an ninh này là việc lập trình Hook đã làm tăng độ phức tạp của hợp đồng thông minh, từ đó mở rộng bề mặt tấn công. Mặc dù một số thư viện hợp đồng thông minh cung cấp các phương pháp tốt nhất, nhưng về bản chất, chúng vẫn chỉ thêm "ràng buộc sử dụng an toàn" cho các nhà phát triển. So với hợp đồng thông thường, hợp đồng Hook cần những quy định sử dụng an toàn nghiêm ngặt hơn. Do đó, để lập trình Hook được áp dụng rộng rãi, cần một khuôn khổ toàn diện, bao gồm môi trường thực thi an toàn, các kiểu lập trình phù hợp với Hook, và các ràng buộc sử dụng nghiêm ngặt hơn.

Từ Uniswap V4 đến giao thức gốc Artela, hành trình nâng cao của cuộc cách mạng DeFi Hooks

Giao thức gốc của một nền tảng blockchain: Hỗ trợ lập trình Hook ở cấp độ giao thức

Xét rằng Uniswap V4 Hooks được thực hiện thông qua hợp đồng thông minh, vấn đề an ninh của nó cũng bắt nguồn từ những hạn chế vốn có của hợp đồng thông minh. Vậy có tồn tại một giải pháp hỗ trợ lập trình Hook từ cấp độ giao thức không? Cơ chế mở rộng bản địa của một nền tảng blockchain nào đó đã cung cấp cho chúng ta câu trả lời.

Nền tảng này là một mạng lưới blockchain Layer 1 tương thích EVM với khả năng mở rộng cao và hiệu suất cao, được thiết kế dành cho các nhà phát triển để xây dựng các ứng dụng mô-đun, phong phú về chức năng, có thể mở rộng và tùy chỉnh. Nền tảng đã giới thiệu một mô-đun lập trình mới gọi là mô-đun mở rộng gốc, một cách đổi mới đưa lập trình hướng khía cạnh (AOP) vào mạng lưới blockchain.

Mở rộng gốc này cần chỉ định điểm kết nối, tức là vị trí thực hiện trong suốt vòng đời xử lý giao dịch, tương tự như callback của Hook. Các điểm kết nối bao gồm:

  1. Khởi tạo khối
  2. Xác thực giao dịch
  3. Thực hiện trước
  4. Thực hiện xong
  5. Khối được xác nhận cuối cùng

Hiện tại, mở rộng gốc này chỉ hỗ trợ TypeScript, mã của nó được biên dịch thành WebAssembly (WASM) bytecode và được triển khai lên mạng. Sau khi triển khai hoàn tất, chủ sở hữu hợp đồng thông minh có thể liên kết hợp đồng với mở rộng gốc. Chủ sở hữu hợp đồng thông minh là tài khoản có địa chỉ tài khoản bên ngoài (EOA) có thể được kiểm tra thông qua isOwner(address) returns (bool).

Mở rộng gốc của nền tảng được thực hiện dưới dạng Hooks cấp giao thức, có ưu điểm nổi bật so với Hooks của Uniswap V4:

Đầu tiên, mở rộng gốc sử dụng WASM để thực thi mã của nó, hiệu suất thực thi cao hơn EVM nhiều lần.

Thứ hai, mở rộng gốc có thể Hook toàn bộ vòng đời giao dịch, không chỉ giới hạn ở logic cốt lõi của DeFi, từ đó xây dựng các ứng dụng phi tập trung phong phú hơn.

Cuối cùng, cũng là điểm quan trọng nhất, mở rộng gốc hoạt động độc lập trong một môi trường sandbox an toàn, sự cách ly này đảm bảo rằng việc thực thi mở rộng sẽ không ảnh hưởng đến độ an toàn của việc thực thi hợp đồng.

Tính cách ly của các mở rộng gốc đã hạn chế việc gọi lẫn nhau giữa hợp đồng Hook với các hợp đồng khác bên ngoài như các hợp đồng thông thường, giúp giải quyết hiệu quả các vấn đề về kiểm soát truy cập và xác thực đầu vào của Uniswap V4 Hooks. Đối với các hợp đồng DeFi giống như Uniswap, việc triển khai trên nền tảng này có thể tận hưởng trải nghiệm Hook nhanh hơn, mạnh mẽ hơn và an toàn hơn.

Từ Uniswap V4 đến giao thức bản địa Artela, hành trình tiến hóa của DeFi Hooks

Tóm tắt

Là một người tham gia và lãnh đạo quan trọng trong lĩnh vực tài chính phi tập trung, Uniswap đã đóng vai trò then chốt trong việc thúc đẩy sự tiến bộ của ngành và hoàn thiện chức năng. Hooks được giới thiệu trong Uniswap V4 chắc chắn sẽ dẫn dắt hướng phát triển của các sàn giao dịch phi tập trung, trở thành đối tượng mà các thế hệ sau sẽ cố gắng bắt chước.

Tuy nhiên, Uniswap V4 Hooks bị giới hạn bởi những hạn chế của chính hợp đồng thông minh, không thể ngăn chặn về cơ bản việc gọi lẫn nhau giữa hợp đồng Hook và các hợp đồng bên ngoài khác, dù cho thiết kế giao thức có nghiêm ngặt đến đâu và thư viện công cụ có hoàn thiện đến đâu, vẫn tồn tại những rủi ro tiềm ẩn về an toàn.

Một mạng lưới blockchain Layer 1 tương thích EVM hiệu suất cao đã xem xét cơ chế mở rộng gốc chạy độc lập trên WASM ngay từ khi thiết kế giao thức, cung cấp hỗ trợ gốc cho lập trình Hooks, nâng cao đáng kể tính bảo mật. Điều này cung cấp một giải pháp nâng cao cho các giao thức tài chính phi tập trung coi bảo mật là đường sống.

Từ Uniswap V4 đến giao thức gốc Artela, hành trình tiến hóa của DeFi Hooks

Xem bản gốc
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Phần thưởng
  • 3
  • Chia sẻ
Bình luận
0/400
GateUser-cff9c776vip
· 12giờ trước
Móc của Schrödinger treo lên không biết là tăng lên hay giảm.
Xem bản gốcTrả lời0
FUD_Whisperervip
· 07-12 23:42
hooks bull à, tương tác hiệu quả bơm满
Xem bản gốcTrả lời0
HappyToBeDumpedvip
· 07-12 23:35
hooks đẹp trai quá, yêu quá yêu quá~
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)