Token approval cho phép một địa chỉ hoặc hợp đồng thông minh thay mặt ví sử dụng token trong phạm vi đã được cấp. Đây là cơ chế phổ biến khi swap token, cung cấp thanh khoản, giao dịch NFT hoặc dùng ứng dụng DeFi.
Bản thân approval không đồng nghĩa tài sản đã bị chuyển đi. Rủi ro xuất hiện khi ví cấp quyền quá lớn, quyền tồn tại lâu hơn nhu cầu hoặc spender — bên được phép chi tiêu — là hợp đồng độc hại hay bị khai thác. Vì vậy, thu hồi quyền truy cập token nên được thực hiện có chọn lọc sau khi kiểm tra đúng ví, đúng mạng và đúng hợp đồng.
Token approval và token allowance là gì?
Trên các mạng tương thích với Ethereum, token theo chuẩn ERC-20 thường dùng cơ chế approve và allowance:
- Token approval là hành động chủ ví cho phép một spender sử dụng token.
- Token allowance là hạn mức spender được phép dùng từ số dư của ví.
- Spender thường là hợp đồng của sàn phi tập trung, giao thức DeFi, cầu nối hoặc ứng dụng khác.
Ví dụ, khi swap một token lần đầu trên sàn phi tập trung, người dùng có thể phải gửi giao dịch phê duyệt trước. Sau đó, hợp đồng swap mới có thể chuyển số token cần thiết từ ví.
Một số ứng dụng đề nghị hạn mức đúng bằng số token đang giao dịch. Một số khác đề nghị hạn mức rất lớn để người dùng không phải approve lại ở lần sau. Quyền lớn mang lại sự tiện lợi nhưng cũng làm tăng mức thiệt hại tiềm tàng nếu hợp đồng có vấn đề.
Approval không giống kết nối ví
Kết nối ví chỉ cho phép website xem địa chỉ công khai và đề nghị người dùng ký thông điệp hoặc giao dịch. Ngắt kết nối website trong ví thường chỉ chấm dứt phiên kết nối, không tự động xóa token allowance đã được ghi trên blockchain.
Muốn revoke token approval, người dùng thường phải gửi một giao dịch on-chain để đưa allowance về 0 hoặc hủy quyền của operator. Giao dịch này cần phí mạng.
Quyền đối với NFT có thể khác token ERC-20
NFT có thể sử dụng quyền cho một tài sản cụ thể hoặc quyền quản lý toàn bộ NFT trong một bộ sưu tập, thường thể hiện qua cơ chế như setApprovalForAll. Nếu một operator đáng ngờ có quyền trên toàn bộ bộ sưu tập, mức rủi ro có thể lớn hơn quyền đối với một NFT riêng lẻ.
Coin gốc của mạng, chẳng hạn loại tài sản dùng để trả phí gas, thường không sử dụng allowance ERC-20 theo cách trên. Tuy nhiên, người dùng vẫn có thể mất coin gốc nếu ký giao dịch chuyển tiền, tương tác với hợp đồng độc hại hoặc để lộ khóa ví.
Khi nào quyền chi tiêu token trở thành rủi ro?

Không phải mọi approval đều phải thu hồi ngay. Hãy ưu tiên đánh giá các trường hợp sau:
- Quyền chi tiêu không giới hạn hoặc cao hơn nhiều so với nhu cầu thực tế.
- Spender thuộc một ứng dụng đã lâu không sử dụng.
- Người dùng không nhận ra tên ứng dụng hoặc địa chỉ hợp đồng.
- Approval được tạo sau khi truy cập website từ quảng cáo, tin nhắn riêng hoặc đường link đáng ngờ.
- Giao thức thông báo gặp sự cố bảo mật, dừng hoạt động hoặc khuyến nghị người dùng thu hồi quyền.
- Ví từng ký giao dịch không rõ nội dung hoặc tương tác với ứng dụng giả mạo.
- Operator NFT được cấp quyền quản lý toàn bộ bộ sưu tập dù nhu cầu ban đầu chỉ là niêm yết một NFT.
Allowance lớn không tự động chứng minh ví đang bị tấn công. Ngược lại, một hạn mức nhỏ cũng không an toàn nếu spender độc hại và ví giữ đúng loại token đó. Cần đánh giá đồng thời hạn mức, địa chỉ spender, thời điểm cấp quyền và nguồn gốc ứng dụng.
Các thủ đoạn dụ người dùng ký approval có thể là một phần của hoạt động tội phạm mạng. Không nên xử lý cảnh báo bằng cách bấm ngay vào liên kết thu hồi được gửi qua email, mạng xã hội hoặc tin nhắn riêng.
Cần kiểm tra gì trước khi thu hồi quyền truy cập token?
1. Kiểm tra đúng địa chỉ ví
Sao chép địa chỉ công khai trực tiếp từ ứng dụng ví. Đối chiếu một số ký tự đầu và cuối trước khi quét approval. Không nhập cụm từ khôi phục, khóa riêng hoặc mật khẩu ví vào bất kỳ công cụ kiểm tra nào.
Việc đọc dữ liệu allowance công khai thường chỉ cần địa chỉ ví. Nếu một trang yêu cầu seed phrase để kiểm tra quyền, đó là dấu hiệu nguy hiểm và cần đóng trang ngay.
2. Chọn đúng mạng blockchain
Approval tồn tại riêng trên từng mạng. Quyền đã cấp trên Ethereum không tự động xuất hiện hoặc bị hủy trên BNB Smart Chain, Polygon hay một mạng khác, ngay cả khi người dùng sử dụng cùng một địa chỉ ví.
Hãy kiểm tra:
- Mạng đang chọn trong ví.
- Mạng mà công cụ đang quét.
- Loại coin cần dùng để trả phí giao dịch.
- Token và spender có thực sự nằm trên mạng đó hay không.
Nếu ví hoạt động trên nhiều mạng, cần kiểm tra từng mạng đã từng sử dụng thay vì kết luận từ một kết quả duy nhất.
3. Đối chiếu hợp đồng token và spender
Tên và biểu tượng token có thể bị sao chép. Địa chỉ hợp đồng mới là dữ liệu quan trọng để phân biệt tài sản. Với mỗi approval, nên xem:
- Địa chỉ hợp đồng token.
- Địa chỉ spender hoặc operator.
- Hạn mức hiện tại.
- Giao dịch đã tạo approval nếu công cụ cung cấp lịch sử.
- Nhãn hợp đồng trên trình khám phá khối, nếu nhãn đó có nguồn rõ ràng.
Không nên dựa hoàn toàn vào logo hoặc tên hiển thị. Nếu không xác định được spender, hãy kiểm tra lịch sử giao dịch của ví và tài liệu chính thức của ứng dụng từng sử dụng.
4. Xác định approval còn cần thiết hay không
Nếu đang sử dụng một giao thức cho lệnh, chiến lược tự động hoặc giao dịch định kỳ, revoke có thể khiến thao tác tiếp theo thất bại và yêu cầu approve lại. Thu hồi approval thường không tự rút tài sản đã gửi vào giao thức và cũng không đóng vị thế đang tồn tại.
Đối với tài sản mới chuyển khỏi sàn, người dùng nên hoàn tất quy trình chuyển crypto sang ví tự quản an toàn trước khi tương tác với ứng dụng DeFi hoặc cấp quyền cho hợp đồng lạ.
5. Xác minh công cụ kiểm tra
Ưu tiên một trong các lựa chọn sau:
- Trình quản lý approval on-chain được tích hợp trong ví, nếu nhà phát triển ví công bố rõ tính năng này.
- Công cụ kiểm tra approval của trình khám phá khối chính thức trên mạng đang dùng.
- Công cụ đa chuỗi có danh tiếng rõ ràng, mã nguồn hoặc tài liệu minh bạch và địa chỉ website được dẫn từ kênh chính thức.
Tên công cụ quen thuộc không đủ để bảo đảm an toàn vì kẻ gian có thể tạo website gần giống. Nên mở công cụ từ trang tài liệu chính thức, dấu trang đã tự lưu hoặc kênh đã xác minh của dự án; tránh quảng cáo tìm kiếm và liên kết trong tin nhắn riêng.
Cách revoke token approval an toàn hơn

Quy trình cụ thể có thể khác giữa các ví và mạng, nhưng nguyên tắc chung gồm các bước sau.
Bước 1: Mở công cụ từ nguồn chính thức
Kiểm tra kỹ tên miền và giao diện. Không tiếp tục nếu trang yêu cầu cụm từ khôi phục, khóa riêng, cài phần mềm điều khiển từ xa hoặc gửi tài sản đến một địa chỉ để “xác minh ví”.
Bước 2: Chọn mạng cần kiểm tra
Chọn chính xác blockchain nơi approval được tạo. Nếu công cụ không hỗ trợ mạng đó, hãy dùng trình khám phá khối chính thức của mạng hoặc tính năng quản lý quyền được ví hỗ trợ.
Bước 3: Kết nối ví hoặc nhập địa chỉ công khai
Nếu chỉ cần kiểm tra, ưu tiên chế độ chỉ đọc bằng địa chỉ công khai. Khi kết nối ví, hãy đọc yêu cầu trong cửa sổ ví và không ký thông điệp không liên quan.
Bước 4: Rà soát từng allowance
Sắp xếp hoặc ưu tiên các quyền có hạn mức không giới hạn, spender không nhận ra và ứng dụng không còn sử dụng. Đối chiếu địa chỉ hợp đồng thay vì chỉ nhìn tên token.
Có thể phân loại nhanh:
| Tình trạng | Hướng xử lý |
|---|---|
| Ứng dụng uy tín, đang sử dụng và hạn mức phù hợp | Có thể giữ, tiếp tục theo dõi |
| Ứng dụng không còn dùng | Cân nhắc revoke |
| Hạn mức không giới hạn | Cân nhắc giảm hoặc revoke sau khi đánh giá nhu cầu |
| Spender không xác định | Dừng tương tác, kiểm tra lịch sử và nguồn chính thức |
| Có cảnh báo sự cố từ dự án | Làm theo hướng dẫn chính thức, kiểm tra giao dịch trước khi ký |
Bước 5: Gửi giao dịch revoke
Công cụ thường tạo giao dịch đặt allowance về 0 hoặc hủy quyền operator. Trước khi xác nhận, cần kiểm tra:
- Mạng hiển thị trong ví.
- Hợp đồng đang được gọi.
- Loại thao tác và dữ liệu giao dịch.
- Phí gas ước tính.
- Cảnh báo từ tính năng mô phỏng giao dịch của ví, nếu có.
Không ký một giao dịch chuyển token hoặc coin gốc chỉ vì trang gọi đó là “phí xác minh”. Phí mạng được thể hiện trong cửa sổ xác nhận của ví, không phải bằng yêu cầu chuyển tiền thủ công đến một địa chỉ khác.
Bước 6: Chờ xác nhận và kiểm tra lại
Sau khi giao dịch được xác nhận, quét lại địa chỉ trên đúng mạng. Allowance cần hiển thị bằng 0 hoặc quyền operator không còn hiệu lực. Nếu giao dịch thất bại, không gửi lặp lại liên tục; hãy kiểm tra số dư coin trả gas, trạng thái mạng và nội dung giao dịch.
Mỗi approval thường cần một giao dịch riêng, vì vậy việc thu hồi nhiều quyền có thể phát sinh nhiều lần phí mạng. Không cần revoke hàng loạt nếu chưa xác định quyền nào thực sự rủi ro.
Thu hồi quyền có bảo vệ ví tuyệt đối không?
Không. Revoke token approval chỉ xử lý quyền chi tiêu cụ thể trên một mạng. Thao tác này không thể:
- Khôi phục tài sản đã bị chuyển khỏi ví.
- Bảo vệ ví nếu seed phrase hoặc khóa riêng đã bị lộ.
- Hủy mọi chữ ký off-chain hoặc mọi loại quyền trên các mạng khác.
- Chặn giao dịch độc hại đã được xác nhận.
- Tự động ngắt tất cả phiên kết nối website.
- Xóa phần mềm độc hại khỏi điện thoại hoặc máy tính.
Nếu nghi ngờ khóa riêng hoặc cụm từ khôi phục đã lộ, chỉ revoke approval là chưa đủ. Người dùng cần cân nhắc tạo ví mới trên thiết bị an toàn và chuyển tài sản còn lại, đồng thời không tiếp tục sử dụng seed phrase cũ. Khi di chuyển tài sản, phải kiểm tra địa chỉ nhận và thử với giá trị nhỏ trước nếu điều kiện cho phép.
Nếu chỉ từng kết nối nhầm website nhưng chưa ký approval, permit hoặc giao dịch, có thể ngắt kết nối phiên và tiếp tục theo dõi. Nếu đã ký nội dung không hiểu rõ, nên kiểm tra cả allowance on-chain, quyền NFT và lịch sử giao dịch.
Thu hồi quyền nên là một phần của chiến lược bảo mật tài sản crypto, không phải biện pháp duy nhất.
Cách hạn chế approval rủi ro trong tương lai

- Chỉ cấp hạn mức phù hợp với giao dịch nếu ứng dụng cho phép tùy chỉnh.
- Đọc kỹ địa chỉ và nội dung trước mỗi lần ký.
- Tách ví lưu trữ dài hạn khỏi ví thường xuyên kết nối ứng dụng.
- Không dùng ví chứa phần lớn tài sản để thử ứng dụng mới.
- Lưu dấu trang website chính thức thay vì tìm lại qua quảng cáo.
- Định kỳ kiểm tra allowance trên các mạng từng sử dụng.
- Ngắt kết nối website sau khi dùng, nhưng nhớ rằng thao tác này không thay thế revoke on-chain.
- Không tương tác với token lạ chỉ vì token xuất hiện trong ví.
- Sử dụng tính năng mô phỏng và cảnh báo giao dịch của ví khi có sẵn.
- Giữ bí mật seed phrase và khóa riêng trong mọi tình huống.
Tóm lại, quy trình đúng không phải là thu hồi mọi quyền một cách vội vàng. Hãy xác định đúng ví, đúng mạng, đúng token và spender; sau đó chỉ revoke những approval không còn cần thiết hoặc có dấu hiệu rủi ro. Việc kiểm tra định kỳ giúp giảm bề mặt tấn công, nhưng vẫn phải kết hợp quản lý seed phrase, thiết bị an toàn và thói quen xác minh lệnh giao dịch và rủi ro giá.
