Tiến hóa của DeFi Hooks: Từ Bảo mật Hợp đồng Uniswap V4 đến Giao thức Bản địa Artela

Trung cấp5/21/2024, 3:41:36 PM
Bài viết này giải thích về mô hình lập trình Hooks, cho phép các nhà phát triển chèn mã tùy chỉnh vào đường thực thi của hệ thống, ứng dụng hoặc thư viện thông qua các hàm hoặc khối mã được xác định trước, cải thiện khả năng mở rộng và tùy chỉnh của chương trình. Uniswap V4 giới thiệu Hooks, thông qua đó các hàm như phí động, đơn đặt hàng giới hạn giá trị trên chuỗi, và nhà sản xuất thị trường trung bình trọng số thời gian có thể được triển khai, nâng cao chức năng của DApp và hiệu ứng mạng của Uniswap.

Các Hooks là gì

Hooks, hoặc Hook Programming, 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 vào đường đi thực thi của hệ thống, ứng dụng hoặc thư viện thông qua Hooks, được định nghĩa trước là các hàm hoặc khối mã. Không cần sửa đổi mã gốc. Hooks thường được sử dụng trong nhiều môi trường và khung lập trình, như hệ điều hành, khung và thư viện, phát triển web và hệ thống plug-in.

Bằng cách sử dụng Hooks, các nhà phát triển có thể tăng tính mở rộng và tính tùy chỉnh của chương trình mà không cần phải sửa đổi mã nguồn gốc cho mỗi yêu cầu thay đổi hoặc mở rộng, điều này giúp giữ mã nguồn sạch sẽ và ổn định. Hooks cung cấp một phương pháp triển khai thanh lịch cho việc mở rộng phần mềm và là một mô hình lập trình rất hữu ích trong thiết kế phần mềm.

Đặc biệt, AOP (Aspect-oriented Programming) thường được so sánh với lập trình Hook. AOP là một mô hình lập trình modular thực hiện các quan tâm cắt ngang, và mục tiêu không phải là thay đổi logic kinh doanh chính. Nó nâng cao hoặc sửa đổi chức năng nếu cần thiết. Tôi sẽ không mở rộng về AOP ở đây. Bạn có thể đơn giản nghĩ về AOP như một trừu tượng cấp cao hơn của lập trình HooK.

Uniswap V4: Cách Mạng Hooks

Vào tháng 6 năm 2023, Uniswap đã công bố và công khai phiên bản nháp của bản mô tả Uniswap V4. Một tính năng quan trọng của Uniswap V4 là sự giới thiệu của Hooks.

Hooks đã được sử dụng rộng rãi trong các hệ thống tài chính Web2, vì những hệ thống này thường yêu cầu một mức độ tùy chỉnh và khả năng mở rộng cao. Các kịch bản tùy chỉnh, như khi xử lý giao dịch, sử dụng Hooks để chèn logic xác thực bổ sung trước và sau khi thực thi giao dịch, chẳng hạn như xác thực phụ, phát hiện kiểm soát rủi ro và các chiến lược chống rửa tiền (AML). Các kịch bản mở rộng bao gồm tích hợp với các API hoặc dịch vụ microservices bên ngoài thông qua Hooks để mở rộng chức năng mới trong hệ thống tài chính, chẳng hạn như các dịch vụ xác thực danh tính, chuyển đổi tỷ giá, cổng thanh toán, v.v. Nhưng bằng cách giới thiệu Hooks vào DeFi, Uniswap đã thiết lập một tiền lệ.

Uniswap V4 Hooks về cơ bản là một hợp đồng bên ngoài được tạo và xác định bởi các nhà phát triển. Khi một hồ bơi thanh khoản được tạo, bạn có thể chọn ghép một hợp đồng Hook. Sau đó, hồ bơi thanh khoản sẽ gọi hợp đồng Hook đã được ghép trước đó để thực hiện các hoạt động cụ thể tại các giai đoạn khác nhau của vòng đời, cung cấp một mức độ tùy chỉnh cao. Các nhà phát triển có thể sử dụng các Hook của Uniswap để đáp ứng các kịch bản giao dịch cá nhân hóa hơn và xây dựng các ứng dụng phi tập trung với các chức năng phong phú hơn, chẳng hạn như:

  • Phí động: Thông qua Hooks, các hồ chứa thanh khoản có thể điều chỉnh phí một cách linh hoạt dựa trên biến động của thị trường hoặc các tham số đầu vào khác để phù hợp tốt hơn với điều kiện thị trường;
  • Đơn Đặt Hàng Trên Chuỗi: Các Hooks có thể tạo và thực hiện các đơn đặt hàng giới hạn trên chuỗi, cho phép người dùng giao dịch với giá cụ thể;
  • Trọng số thời gian Trung bình người tạo thị trường (TWAMM): Sử dụng cơ chế Hooks để tạo một hồ bơi thanh khoản hỗ trợ chiến lược TWAMM để phân phối đồng đều các giao dịch của các đơn đặt hàng lớn trong một khoảng thời gian. \

Hiện tại, Uniswap V4 hỗ trợ bốn nhóm gọi lại Hook, mỗi nhóm chứa một cặp gọi lại:

  • beforeInitialize/afterInitialize: Khởi tạo hồ bơi thanh khoản;
  • beforeModifyPosition/afterModifyPosition: thêm/giảm/xóa thanh khoản;
  • trước khi đổi/sau khi đổi: trao đổi;
  • beforeDonate/afterDonate: Donation (một tính năng mới được giới thiệu bởi Uniswap V4, gợi ý cung cấp thanh khoản trong phạm vi giao dịch).

Biểu đồ dưới đây minh họa quá trình Hook trước/ Hook sau khi hoán đổi như được trình bày trong bài báo trắng. Có thể thấy rằng trước và sau khi thực hiện hoán đổi, nó sẽ kiểm tra trước xem cờ tương ứng của Hook của hồ bơi thanh khoản có được kích hoạt không. Nếu nó được kích hoạt, sau đó nó sẽ gọi các hàm tương ứng của hợp đồng Hook.

Các Hooks này có thể được thực hiện trước khi giao dịch bắt đầu và sau khi giao dịch kết thúc, cho phép chức năng tương tự như đơn đặt hàng giới hạn trên chuỗi. Người dùng đặt một đơn đặt hàng giới hạn trên hợp đồng Hook, sau đó sử dụng một trình gọi oracle tùy chỉnh hoặc quản lý trong cuộc gọi sauSwap để xác định xem giá có đáp ứng giới hạn hay không. Nếu có, giao dịch sẽ được thực hiện. Nếu không, giao dịch sẽ bị hủy bỏ.

Uniswap V4 sâu kết nối thanh khoản với sự phát triển của DApp thông qua Hooks. Nó tăng cường các chức năng của DApp và cũng tăng cường hiệu ứng mạng của Uniswap, biến nó thành cơ sở hạ tầng cốt lõi của toàn bộ hệ sinh thái DeFi.

Vấn đề an ninh của Uniswap V4 Hooks

Nhóm BlockSec đã khám phá các rủi ro bảo mật của cơ chế Hooks trong Uniswap V4. Ngoài thực tế là bản thân hợp đồng Hook là độc hại, các hợp đồng Hook lành tính cũng cực kỳ dễ bị tổn thương. Nhóm BlockSec đã phân tích kho lưu trữ Awesome Uniswap v4 Hooks (commit hash 3a0a444922f26605ec27a41929f3ced924af6075) và thấy rằng hơn 30% dự án trong kho lưu trữ dễ bị tấn công. Các lỗ hổng này chủ yếu bắt nguồn từ các tương tác rủi ro giữa Hook, PoolManager và các bên thứ ba bên ngoài và chủ yếu có thể được chia thành hai loại:

  • Vấn đề kiểm soát truy cập: Mối quan tâm chính là các hàm gọi lại trong Uniswap V4. Những hàm này chỉ nên được gọi bởi PoolManager và không thể được gọi bởi các địa chỉ khác (bao gồm cả EOA và hợp đồng). Ví dụ, trong trường hợp phần thưởng được phân phối bởi các khóa pool, phần thưởng có thể được yêu cầu một cách không chính xác nếu chức năng tương ứng có thể được gọi bởi bất kỳ tài khoản nào. Do đó, Hooks phải thiết lập các cơ chế kiểm soát truy cập mạnh mẽ, đặc biệt là khi chúng có thể được gọi bởi các bên khác ngoài pool chính;
  • Nhập câu hỏi xác minh: Các loại tấn công khác nhau, bao gồm các cuộc tấn công tái nhập biết đến, đều là kết quả của việc không xác thực đầu vào đúng cách trong một số triển khai Hook dễ bị tổn thương. Tình huống phổ biến nhất là khi các hợp đồng bên ngoài không đáng tin cậy được gọi trong một số chức năng Hook chính. Để tấn công những Hook dễ bị tổn thương này, kẻ tấn công có thể đăng ký một quỹ tiền ác mục cho token giả của mình, sau đó gọi Hook để sử dụng quỹ. Quỹ thực hiện các hoạt động. Khi tương tác với quỹ, logic token độc hại chiếm đoạt luồng điều khiển để tham gia vào hành vi không mong muốn.

Ngay cả khi kiểm soát truy cập cần thiết đến các chức năng nhạy cảm bên ngoài/công cộng được triển khai đúng cách và các tham số đầu vào được xác minh để giảm thiểu các rủi ro an ninh liên quan đến hai loại Hooks trên, lỗ hổng hợp đồng chính nó không thể hoàn toàn tránh được, đặc biệt nếu Hook có thể nâng cấp được triển khai. Nếu hợp đồng được triển khai, bạn cũng có thể gặp phải các vấn đề liên quan tương tự như lỗ hổng UUPSUpgradeable của OpenZeppelin.

Lý do nằm ở chỗ lập trình Hook làm tăng độ phức tạp của các hợp đồng thông minh, từ đó mở rộng bề mặt tấn công. Đối với các hợp đồng thông minh thông thường, OpenZeppelin cung cấp một loạt các thư viện thực hành tốt nhất để đảm bảo rằng các hợp đồng được phát triển dựa trên nó được an toàn. Tuy nhiên, về cơ bản, nó bổ sung "các ràng buộc sử dụng bảo mật" cho các nhà phát triển. Trong khi đó, hợp đồng Hook yêu cầu "ràng buộc sử dụng bảo mật" thậm chí còn chặt chẽ hơn so với hợp đồng thông thường. Do đó, để lập trình Hook được áp dụng rộng rãi, cần có một khung toàn diện: nó đòi hỏi một môi trường thực thi an toàn, các mô hình lập trình áp dụng cho Hooks và các ràng buộc sử dụng chặt chẽ hơn.

Artela Aspect: Hỗ trợ Cấp giao thức cho Lập trình Hook

Uniswap V4 Hooks được thực hiện thông qua hợp đồng thông minh, và các vấn đề về bảo mật của nó cũng do các hạn chế của hợp đồng thông minh gây ra. Liệu có một giải pháp hỗ trợ lập trình Hook từ cấp độ giao thức không? Artela Aspect đưa ra câu trả lời cho chúng ta!

Artela là một mạng lưới blockchain Layer 1 có khả năng mở rộng cao và hiệu suất cao tương thích với EVM, được thiết kế để các nhà phát triển xây dựng ứng dụng có tính module, phong phú về tính năng, có khả năng mở rộng và tùy chỉnh. Artela xác định một mô-đun có thể lập trình mới như một phần mở rộng nguyên bản được gọi là Aspect, mà sáng tạo giới thiệu AOP vào mạng lưới blockchain. Aspect cần phải chỉ định một điểm kết nối, tức là vị trí mà Aspect được thực thi trong toàn bộ vòng đời xử lý giao dịch. Tương tự như gọi lại của Hook, các điểm kết nối bao gồm:

  • Khởi tạo Khối
  • Xác minh giao dịch
  • Tiền Thực Hiện
  • Post Execute
  • Kết thúc khối

Aspect hiện chỉ hỗ trợ TypeScript, và mã của nó được biên dịch thành mã bytecode WebAssembly (WASM) và triển khai lên mạng Artela. Sau khi triển khai Aspect, chủ sở hữu hợp đồng thông minh có thể ràng buộc hợp đồng của họ với Aspect. Chủ sở hữu hợp đồng thông minh được xác định là địa chỉ tài khoản bên ngoài (EOA) có thể vượt qua kiểm tra isOwner(address) trả về (bool) trong hợp đồng thông minh.

Sau đó, các giao dịch tiếp theo gọi hợp đồng thông minh sẽ được xử lý bởi Aspect, như được thể hiện trong sơ đồ dưới đây:

Là một triển khai Hooks ở mức giao thức, Artela Aspects có những ưu điểm lớn hơn so với Uniswap V4 Hooks:

Đầu tiên, Artela Aspects sử dụng WASM để thực thi mã của mình, và hiệu suất thực thi cao hơn hàng chục lần so với EVM;

Thứ hai, Artela Aspects có thể kết nối toàn bộ vòng đời giao dịch, không chỉ là logic cốt lõi của DeFi, mà còn có thể xây dựng DApps với các chức năng phong phú;

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

Việc cách ly Artela Aspects hạn chế các cuộc gọi tương hỗ giữa hợp đồng Hook như một hợp đồng bình thường và các hợp đồng bên ngoài khác, giải quyết vấn đề cứng đầu về kiểm soát truy cập và xác minh đầu vào của Uniswap V4 Hooks. Đối với các hợp đồng DeFi như Uniswap, bạn có thể tận hưởng trải nghiệm Hook nhanh hơn, mạnh mẽ và an toàn hơn bằng cách triển khai nó trên Artela.

Tóm tắt

Là một người tham gia quan trọng và lãnh đạo trong ngành công nghiệp DeFi, Uniswap đã đóng vai trò quan trọng trong việc thúc đẩy tiến bộ ngành công nghiệp và tăng cường tính năng. Việc giới thiệu Hooks trong Uniswap V4 không thể phủ nhận ảnh hưởng đối với sự phát triển của DEX và được các người kế nhiệm hưởng ứng một cách hăng hái.

Tuy nhiên, Uniswap V4 Hooks bị hạn chế bởi những rằng buổi của các hạn mặc định của hợp đồng thông minh. Bất kể thiết kế giao thủc cụ và công cụ có đều mạnh mặc là thế nào, nó cũng không thể ngăn chặn một cách cấu trúc sự gọc nhau giữa các hạn mặc định và các hạn mặc định bên ngoài, đằng lên nguy cơ tiên sẽ.

Artela, với mạng blockchain Layer 1 tương thích EVM hiệu suất cao, đã thiết kế Aspect để chạy độc lập trong WASM từ lúc bắt đầu của giao thức, hỗ trợ Hook programming ngay từ bản gốc. Điều này cải thiện đáng kể bảo mật, cung cấp một giải pháp tiên tiến cho các giao thức DeFi coi trọng bảo mật như tiêu chí hàng đầu.

Tuyên bố:

  1. Bài viết này ban đầu có tựa đề “Tiến hóa của DeFi Hooks: Từ Bảo mật Hợp đồng Uniswap V4 đến Giao thức Bản địa Artela” được sao chép từ [Web3 của Gate.io]. Tất cả bản quyền thuộc về tác giả gốc [web3 Trung Dũng Táo]. Nếu bạn có bất kỳ ý kiến ​​nào về việc sao chép, vui lòng liên hệ với Gate Họcđội, đội sẽ xử lý nó càng sớm càng tốt.

  2. Thông báo: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ đại diện cho quan điểm cá nhân của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.

  3. Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết dịch là không được phép.

Tiến hóa của DeFi Hooks: Từ Bảo mật Hợp đồng Uniswap V4 đến Giao thức Bản địa Artela

Trung cấp5/21/2024, 3:41:36 PM
Bài viết này giải thích về mô hình lập trình Hooks, cho phép các nhà phát triển chèn mã tùy chỉnh vào đường thực thi của hệ thống, ứng dụng hoặc thư viện thông qua các hàm hoặc khối mã được xác định trước, cải thiện khả năng mở rộng và tùy chỉnh của chương trình. Uniswap V4 giới thiệu Hooks, thông qua đó các hàm như phí động, đơn đặt hàng giới hạn giá trị trên chuỗi, và nhà sản xuất thị trường trung bình trọng số thời gian có thể được triển khai, nâng cao chức năng của DApp và hiệu ứng mạng của Uniswap.

Các Hooks là gì

Hooks, hoặc Hook Programming, 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 vào đường đi thực thi của hệ thống, ứng dụng hoặc thư viện thông qua Hooks, được định nghĩa trước là các hàm hoặc khối mã. Không cần sửa đổi mã gốc. Hooks thường được sử dụng trong nhiều môi trường và khung lập trình, như hệ điều hành, khung và thư viện, phát triển web và hệ thống plug-in.

Bằng cách sử dụng Hooks, các nhà phát triển có thể tăng tính mở rộng và tính tùy chỉnh của chương trình mà không cần phải sửa đổi mã nguồn gốc cho mỗi yêu cầu thay đổi hoặc mở rộng, điều này giúp giữ mã nguồn sạch sẽ và ổn định. Hooks cung cấp một phương pháp triển khai thanh lịch cho việc mở rộng phần mềm và là một mô hình lập trình rất hữu ích trong thiết kế phần mềm.

Đặc biệt, AOP (Aspect-oriented Programming) thường được so sánh với lập trình Hook. AOP là một mô hình lập trình modular thực hiện các quan tâm cắt ngang, và mục tiêu không phải là thay đổi logic kinh doanh chính. Nó nâng cao hoặc sửa đổi chức năng nếu cần thiết. Tôi sẽ không mở rộng về AOP ở đây. Bạn có thể đơn giản nghĩ về AOP như một trừu tượng cấp cao hơn của lập trình HooK.

Uniswap V4: Cách Mạng Hooks

Vào tháng 6 năm 2023, Uniswap đã công bố và công khai phiên bản nháp của bản mô tả Uniswap V4. Một tính năng quan trọng của Uniswap V4 là sự giới thiệu của Hooks.

Hooks đã được sử dụng rộng rãi trong các hệ thống tài chính Web2, vì những hệ thống này thường yêu cầu một mức độ tùy chỉnh và khả năng mở rộng cao. Các kịch bản tùy chỉnh, như khi xử lý giao dịch, sử dụng Hooks để chèn logic xác thực bổ sung trước và sau khi thực thi giao dịch, chẳng hạn như xác thực phụ, phát hiện kiểm soát rủi ro và các chiến lược chống rửa tiền (AML). Các kịch bản mở rộng bao gồm tích hợp với các API hoặc dịch vụ microservices bên ngoài thông qua Hooks để mở rộng chức năng mới trong hệ thống tài chính, chẳng hạn như các dịch vụ xác thực danh tính, chuyển đổi tỷ giá, cổng thanh toán, v.v. Nhưng bằng cách giới thiệu Hooks vào DeFi, Uniswap đã thiết lập một tiền lệ.

Uniswap V4 Hooks về cơ bản là một hợp đồng bên ngoài được tạo và xác định bởi các nhà phát triển. Khi một hồ bơi thanh khoản được tạo, bạn có thể chọn ghép một hợp đồng Hook. Sau đó, hồ bơi thanh khoản sẽ gọi hợp đồng Hook đã được ghép trước đó để thực hiện các hoạt động cụ thể tại các giai đoạn khác nhau của vòng đời, cung cấp một mức độ tùy chỉnh cao. Các nhà phát triển có thể sử dụng các Hook của Uniswap để đáp ứng các kịch bản giao dịch cá nhân hóa hơn và xây dựng các ứng dụng phi tập trung với các chức năng phong phú hơn, chẳng hạn như:

  • Phí động: Thông qua Hooks, các hồ chứa thanh khoản có thể điều chỉnh phí một cách linh hoạt dựa trên biến động của thị trường hoặc các tham số đầu vào khác để phù hợp tốt hơn với điều kiện thị trường;
  • Đơn Đặt Hàng Trên Chuỗi: Các Hooks có thể tạo và thực hiện các đơn đặt hàng giới hạn trên chuỗi, cho phép người dùng giao dịch với giá cụ thể;
  • Trọng số thời gian Trung bình người tạo thị trường (TWAMM): Sử dụng cơ chế Hooks để tạo một hồ bơi thanh khoản hỗ trợ chiến lược TWAMM để phân phối đồng đều các giao dịch của các đơn đặt hàng lớn trong một khoảng thời gian. \

Hiện tại, Uniswap V4 hỗ trợ bốn nhóm gọi lại Hook, mỗi nhóm chứa một cặp gọi lại:

  • beforeInitialize/afterInitialize: Khởi tạo hồ bơi thanh khoản;
  • beforeModifyPosition/afterModifyPosition: thêm/giảm/xóa thanh khoản;
  • trước khi đổi/sau khi đổi: trao đổi;
  • beforeDonate/afterDonate: Donation (một tính năng mới được giới thiệu bởi Uniswap V4, gợi ý cung cấp thanh khoản trong phạm vi giao dịch).

Biểu đồ dưới đây minh họa quá trình Hook trước/ Hook sau khi hoán đổi như được trình bày trong bài báo trắng. Có thể thấy rằng trước và sau khi thực hiện hoán đổi, nó sẽ kiểm tra trước xem cờ tương ứng của Hook của hồ bơi thanh khoản có được kích hoạt không. Nếu nó được kích hoạt, sau đó nó sẽ gọi các hàm tương ứng của hợp đồng Hook.

Các Hooks này có thể được thực hiện trước khi giao dịch bắt đầu và sau khi giao dịch kết thúc, cho phép chức năng tương tự như đơn đặt hàng giới hạn trên chuỗi. Người dùng đặt một đơn đặt hàng giới hạn trên hợp đồng Hook, sau đó sử dụng một trình gọi oracle tùy chỉnh hoặc quản lý trong cuộc gọi sauSwap để xác định xem giá có đáp ứng giới hạn hay không. Nếu có, giao dịch sẽ được thực hiện. Nếu không, giao dịch sẽ bị hủy bỏ.

Uniswap V4 sâu kết nối thanh khoản với sự phát triển của DApp thông qua Hooks. Nó tăng cường các chức năng của DApp và cũng tăng cường hiệu ứng mạng của Uniswap, biến nó thành cơ sở hạ tầng cốt lõi của toàn bộ hệ sinh thái DeFi.

Vấn đề an ninh của Uniswap V4 Hooks

Nhóm BlockSec đã khám phá các rủi ro bảo mật của cơ chế Hooks trong Uniswap V4. Ngoài thực tế là bản thân hợp đồng Hook là độc hại, các hợp đồng Hook lành tính cũng cực kỳ dễ bị tổn thương. Nhóm BlockSec đã phân tích kho lưu trữ Awesome Uniswap v4 Hooks (commit hash 3a0a444922f26605ec27a41929f3ced924af6075) và thấy rằng hơn 30% dự án trong kho lưu trữ dễ bị tấn công. Các lỗ hổng này chủ yếu bắt nguồn từ các tương tác rủi ro giữa Hook, PoolManager và các bên thứ ba bên ngoài và chủ yếu có thể được chia thành hai loại:

  • Vấn đề kiểm soát truy cập: Mối quan tâm chính là các hàm gọi lại trong Uniswap V4. Những hàm này chỉ nên được gọi bởi PoolManager và không thể được gọi bởi các địa chỉ khác (bao gồm cả EOA và hợp đồng). Ví dụ, trong trường hợp phần thưởng được phân phối bởi các khóa pool, phần thưởng có thể được yêu cầu một cách không chính xác nếu chức năng tương ứng có thể được gọi bởi bất kỳ tài khoản nào. Do đó, Hooks phải thiết lập các cơ chế kiểm soát truy cập mạnh mẽ, đặc biệt là khi chúng có thể được gọi bởi các bên khác ngoài pool chính;
  • Nhập câu hỏi xác minh: Các loại tấn công khác nhau, bao gồm các cuộc tấn công tái nhập biết đến, đều là kết quả của việc không xác thực đầu vào đúng cách trong một số triển khai Hook dễ bị tổn thương. Tình huống phổ biến nhất là khi các hợp đồng bên ngoài không đáng tin cậy được gọi trong một số chức năng Hook chính. Để tấn công những Hook dễ bị tổn thương này, kẻ tấn công có thể đăng ký một quỹ tiền ác mục cho token giả của mình, sau đó gọi Hook để sử dụng quỹ. Quỹ thực hiện các hoạt động. Khi tương tác với quỹ, logic token độc hại chiếm đoạt luồng điều khiển để tham gia vào hành vi không mong muốn.

Ngay cả khi kiểm soát truy cập cần thiết đến các chức năng nhạy cảm bên ngoài/công cộng được triển khai đúng cách và các tham số đầu vào được xác minh để giảm thiểu các rủi ro an ninh liên quan đến hai loại Hooks trên, lỗ hổng hợp đồng chính nó không thể hoàn toàn tránh được, đặc biệt nếu Hook có thể nâng cấp được triển khai. Nếu hợp đồng được triển khai, bạn cũng có thể gặp phải các vấn đề liên quan tương tự như lỗ hổng UUPSUpgradeable của OpenZeppelin.

Lý do nằm ở chỗ lập trình Hook làm tăng độ phức tạp của các hợp đồng thông minh, từ đó mở rộng bề mặt tấn công. Đối với các hợp đồng thông minh thông thường, OpenZeppelin cung cấp một loạt các thư viện thực hành tốt nhất để đảm bảo rằng các hợp đồng được phát triển dựa trên nó được an toàn. Tuy nhiên, về cơ bản, nó bổ sung "các ràng buộc sử dụng bảo mật" cho các nhà phát triển. Trong khi đó, hợp đồng Hook yêu cầu "ràng buộc sử dụng bảo mật" thậm chí còn chặt chẽ hơn so với hợp đồng thông thường. Do đó, để lập trình Hook được áp dụng rộng rãi, cần có một khung toàn diện: nó đòi hỏi một môi trường thực thi an toàn, các mô hình lập trình áp dụng cho Hooks và các ràng buộc sử dụng chặt chẽ hơn.

Artela Aspect: Hỗ trợ Cấp giao thức cho Lập trình Hook

Uniswap V4 Hooks được thực hiện thông qua hợp đồng thông minh, và các vấn đề về bảo mật của nó cũng do các hạn chế của hợp đồng thông minh gây ra. Liệu có một giải pháp hỗ trợ lập trình Hook từ cấp độ giao thức không? Artela Aspect đưa ra câu trả lời cho chúng ta!

Artela là một mạng lưới blockchain Layer 1 có khả năng mở rộng cao và hiệu suất cao tương thích với EVM, được thiết kế để các nhà phát triển xây dựng ứng dụng có tính module, phong phú về tính năng, có khả năng mở rộng và tùy chỉnh. Artela xác định một mô-đun có thể lập trình mới như một phần mở rộng nguyên bản được gọi là Aspect, mà sáng tạo giới thiệu AOP vào mạng lưới blockchain. Aspect cần phải chỉ định một điểm kết nối, tức là vị trí mà Aspect được thực thi trong toàn bộ vòng đời xử lý giao dịch. Tương tự như gọi lại của Hook, các điểm kết nối bao gồm:

  • Khởi tạo Khối
  • Xác minh giao dịch
  • Tiền Thực Hiện
  • Post Execute
  • Kết thúc khối

Aspect hiện chỉ hỗ trợ TypeScript, và mã của nó được biên dịch thành mã bytecode WebAssembly (WASM) và triển khai lên mạng Artela. Sau khi triển khai Aspect, chủ sở hữu hợp đồng thông minh có thể ràng buộc hợp đồng của họ với Aspect. Chủ sở hữu hợp đồng thông minh được xác định là địa chỉ tài khoản bên ngoài (EOA) có thể vượt qua kiểm tra isOwner(address) trả về (bool) trong hợp đồng thông minh.

Sau đó, các giao dịch tiếp theo gọi hợp đồng thông minh sẽ được xử lý bởi Aspect, như được thể hiện trong sơ đồ dưới đây:

Là một triển khai Hooks ở mức giao thức, Artela Aspects có những ưu điểm lớn hơn so với Uniswap V4 Hooks:

Đầu tiên, Artela Aspects sử dụng WASM để thực thi mã của mình, và hiệu suất thực thi cao hơn hàng chục lần so với EVM;

Thứ hai, Artela Aspects có thể kết nối toàn bộ vòng đời giao dịch, không chỉ là logic cốt lõi của DeFi, mà còn có thể xây dựng DApps với các chức năng phong phú;

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

Việc cách ly Artela Aspects hạn chế các cuộc gọi tương hỗ giữa hợp đồng Hook như một hợp đồng bình thường và các hợp đồng bên ngoài khác, giải quyết vấn đề cứng đầu về kiểm soát truy cập và xác minh đầu vào của Uniswap V4 Hooks. Đối với các hợp đồng DeFi như Uniswap, bạn có thể tận hưởng trải nghiệm Hook nhanh hơn, mạnh mẽ và an toàn hơn bằng cách triển khai nó trên Artela.

Tóm tắt

Là một người tham gia quan trọng và lãnh đạo trong ngành công nghiệp DeFi, Uniswap đã đóng vai trò quan trọng trong việc thúc đẩy tiến bộ ngành công nghiệp và tăng cường tính năng. Việc giới thiệu Hooks trong Uniswap V4 không thể phủ nhận ảnh hưởng đối với sự phát triển của DEX và được các người kế nhiệm hưởng ứng một cách hăng hái.

Tuy nhiên, Uniswap V4 Hooks bị hạn chế bởi những rằng buổi của các hạn mặc định của hợp đồng thông minh. Bất kể thiết kế giao thủc cụ và công cụ có đều mạnh mặc là thế nào, nó cũng không thể ngăn chặn một cách cấu trúc sự gọc nhau giữa các hạn mặc định và các hạn mặc định bên ngoài, đằng lên nguy cơ tiên sẽ.

Artela, với mạng blockchain Layer 1 tương thích EVM hiệu suất cao, đã thiết kế Aspect để chạy độc lập trong WASM từ lúc bắt đầu của giao thức, hỗ trợ Hook programming ngay từ bản gốc. Điều này cải thiện đáng kể bảo mật, cung cấp một giải pháp tiên tiến cho các giao thức DeFi coi trọng bảo mật như tiêu chí hàng đầu.

Tuyên bố:

  1. Bài viết này ban đầu có tựa đề “Tiến hóa của DeFi Hooks: Từ Bảo mật Hợp đồng Uniswap V4 đến Giao thức Bản địa Artela” được sao chép từ [Web3 của Gate.io]. Tất cả bản quyền thuộc về tác giả gốc [web3 Trung Dũng Táo]. Nếu bạn có bất kỳ ý kiến ​​nào về việc sao chép, vui lòng liên hệ với Gate Họcđội, đội sẽ xử lý nó càng sớm càng tốt.

  2. Thông báo: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ đại diện cho quan điểm cá nhân của tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.

  3. Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được đề cập, việc sao chép, phân phối hoặc đạo văn các bài viết dịch là không được phép.

เริ่มตอนนี้
สมัครและรับรางวัล
$100