Ví & bảo mật

Cấp quyền token (Token approval)

Còn gọi là: token approval · approve · allowance · cấp quyền chi tiêu

Định nghĩa

Cấp quyền token là thao tác cho phép một hợp đồng thông minh được chi tiêu một lượng token nhất định trong ví của bạn, bắt buộc trước khi swap hay gửi token vào nhiều ứng dụng DeFi.

Cấp quyền token hoạt động thế nào

Trên Ethereum và các mạng EVM, DEX hay giao thức cho vay không thể tự lấy token từ ví bạn. Bạn phải ký giao dịch approve, đặt mức trần (allowance) mà hợp đồng được dùng. Nhiều ứng dụng mặc định xin quyền không giới hạn để bạn không phải approve lại mỗi lần.

Rủi ro: quyền đã cấp vẫn còn hiệu lực sau khi bạn rời trang. Nếu hợp đồng bị hack, hoặc bạn approve cho hợp đồng lừa đảo, kẻ gian có thể rút token bất cứ lúc nào mà không cần thêm chữ ký. Các chữ ký kiểu Permit còn cấp quyền không tốn phí gas nên dễ bị ký nhầm.

Hãy đặt mức approve vừa đủ khi ví cho phép, và định kỳ thu hồi quyền cũ bằng công cụ revoke hoặc trình khám phá khối.

Ví dụ

Giả sử bạn swap 100 USDC trên một DEX và ví đề xuất approve không giới hạn. Bạn sửa mức approve thành 100 USDC. Tháng sau hợp đồng của DEX đó bị khai thác lỗ hổng. Những người approve không giới hạn có thể mất toàn bộ USDC trong ví, còn quyền của bạn đã dùng hết nên 3.000 USDC còn lại vẫn an toàn.

Lỗi thường gặp

  • Approve không giới hạn cho mọi trang web mới mà không đọc tên hợp đồng.
  • Ký thông điệp Permit vì nghĩ rằng không tốn gas thì không nguy hiểm.
  • Không bao giờ kiểm tra và thu hồi các quyền cũ đã cấp.

Học và thực hành

Câu hỏi thường gặp

Thu hồi quyền token có tốn phí không?

Có, thu hồi là một giao dịch on-chain nên bạn phải trả phí gas của mạng đó.

Approve có làm mất token ngay không?

Không, approve chỉ cấp quyền. Token chỉ rời ví khi hợp đồng được cấp quyền thực hiện lệnh chuyển, vì vậy rủi ro nằm ở việc bạn cấp quyền cho ai.