Hướng dẫn · Rủi ro ví · · tác giả Stefan Tsezarov
Bạn thực sự ký gì khi phê duyệt một token
Quyền được chi tiêu có thể quan trọng không kém một khoản thanh toán.
Bạn mở một ứng dụng swap, chọn token và kết nối ví. Trước khi swap, ví yêu cầu bạn phê duyệt việc chi tiêu.
Có vẻ không có token nào rời đi. Trông như một bước thiết lập.
Đúng là một bước thiết lập—nhưng nó cho một địa chỉ khác quyền chuyển token của bạn. Tùy vào những gì bạn phê duyệt, quyền đó có thể còn lại rất lâu sau khi bạn đóng trang.
Phê duyệt là một phần bình thường khi dùng ứng dụng crypto. Rủi ro là cấp nhiều quyền hơn bạn định, hoặc cấp cho sai địa chỉ.
Hướng dẫn này giải thích quyền đó có nghĩa là gì, cần kiểm tra gì trước khi ký, và phải làm gì nếu bạn đã phê duyệt thứ gì đó đáng ngờ.
Nó nói về Ethereum và các mạng tương thích. Các blockchain khác dùng hệ thống phân quyền khác.
01Phê duyệt cho quyền chi tiêu
Ví của bạn giữ các khóa bạn dùng để cho phép hành động. Số dư token của bạn được ghi trong hợp đồng thông minh của token.
Để một ứng dụng swap hay cho vay chuyển được những token đó, thường nó cần bạn cho phép trước. Bạn cấp quyền đó cho một địa chỉ gọi là spender. Số lượng được phép gọi là allowance.
Giả sử bạn muốn swap 50 USDC.
- Phê duyệt 50 USDC cho phép spender lấy tối đa số đó.
- Phê duyệt USDC không giới hạn cho phép nó lấy số dư USDC hiện có của bạn, kể cả USDC bạn nhận sau này, chừng nào quyền đó còn hiệu lực.
Phê duyệt đó liên quan đến token được chỉ định trên mạng đó. Riêng nó không cấp quyền truy cập mọi thứ trong ví của bạn.
Một phê duyệt token tiêu chuẩn thường không có hạn. Nó tồn tại cho đến khi bạn thay đổi hoặc thu hồi nó, hoặc allowance của nó được dùng hết. Đóng trang web hay ngắt kết nối ví không xóa nó. Revoke.cash giải thích sự khác biệt giữa ngắt kết nối và thu hồi.
02Những yêu cầu khác nhau cấp những quyền khác nhau
Cách diễn đạt của ví mỗi nơi một khác. Đây là những yêu cầu chính cần nhận ra:
| Yêu cầu | Những gì nó có thể cho phép |
|---|---|
| Approve hoặc hạn mức chi tiêu | Một spender có thể chuyển tối đa một lượng xác định của một token. |
| Set approval for all | Một operator có thể chuyển mọi NFT của bạn trong bộ sưu tập hoặc hợp đồng được chỉ định, kể cả những NFT bạn có được sau này khi phê duyệt còn hiệu lực. |
| Permit | Một chữ ký có thể được gửi lên sau để tạo allowance cho token. |
| Permit2 | Một chữ ký có thể cho phép một allowance có thời hạn hoặc một lần chuyển duy nhất, tùy theo yêu cầu. |
“Approval for all” rộng hơn việc phê duyệt một NFT, nhưng vẫn giới hạn trong hợp đồng NFT liên quan. ERC-721 định nghĩa các quyền này.
Một chữ ký có thể cho phép chi tiêu mà không cần phí gas
Một phê duyệt tiêu chuẩn thường cần một giao dịch trên chuỗi. Một permit bắt đầu bằng chữ ký ngoài chuỗi: bản thân việc ký không tạo giao dịch blockchain hay tính phí gas.
Người khác có thể gửi chữ ký đó lên sau và trả phí giao dịch.
Với permit ERC-2612 tiêu chuẩn, deadline là thời điểm cuối cùng chữ ký có thể được gửi lên. Nó không phải ngày hết hạn của allowance được tạo khi chữ ký được gửi. ERC-2612 quy định cách hoạt động này.
Permit2 hoạt động khác. Nó cần một phê duyệt token sẵn có cho hợp đồng Permit2, rồi hỗ trợ hoặc quyền chi tiêu có thời hạn, hoặc lần chuyển ký một lần. Tài liệu Permit2 của Uniswap giải thích cả hai cách.
Bạn không cần thuộc lòng các tiêu chuẩn. Hãy nhớ điều này:
Không có phí gas không có nghĩa là không có hậu quả tài chính.
Không phải chữ ký nào cũng cấp quyền chi tiêu. Một thông điệp đăng nhập có thể phục vụ mục đích khác. Hãy đọc những gì yêu cầu cho phép thay vì đánh giá nó qua nút “Ký”.
03Kẻ lừa đảo lợi dụng các quyền này thế nào
Một trang giả không phải lúc nào cũng yêu cầu bạn gửi crypto. Nó có thể yêu cầu bạn “xác minh ví”, “nhận phần thưởng” hay “tiếp tục”.
Đằng sau nút đó là một yêu cầu cấp quyền chi tiêu cho kẻ tấn công.
Sau đó trang có thể hiển thị lỗi. Bạn đóng nó, nghĩ rằng không có gì xảy ra. Nhưng kẻ tấn công có thể đã có một phê duyệt hoặc chữ ký dùng được.
Lần chuyển có thể diễn ra ngay hoặc sau đó. Bạn không nhận được yêu cầu thứ hai để phê duyệt nó.
Cụm từ khôi phục của bạn không cần bị đánh cắp thì điều này mới xảy ra. Ngay cả ví phần cứng cũng không thể bảo vệ bạn khỏi một quyền có hại do chính bạn cho phép. Revoke.cash mô tả giới hạn này.
04Năm bước kiểm tra trước khi phê duyệt hoặc ký
1. Đối chiếu yêu cầu với hành động bạn định làm
Một lần swap có thể hợp lý khi cần quyền với token bạn đang bán.
Một lần đăng nhập đơn giản hay nhận airdrop thông thường không nên cần quyền không hạn chế với các token hiện có của bạn. Nếu trang ghi “Xác minh” còn ví ghi “Phê duyệt chi tiêu”, hãy dừng lại và làm rõ lý do.
2. Kiểm tra ai nhận được quyền
Spender là địa chỉ nhận quyền truy cập. Một logo hay tên hợp đồng quen thuộc không chứng minh nó thuộc về ứng dụng.
Hãy dùng tài liệu chính thức của ứng dụng để kiểm tra hợp đồng và mạng dự kiến. Một số ứng dụng dùng nhiều hợp đồng, nên đoán từ nhãn địa chỉ là không đáng tin.
3. Giới hạn số lượng
Khi ví cho phép, chỉ phê duyệt đúng mức hành động cần.
Với lần swap 50 USDC, một allowance không giới hạn làm lộ nhiều USDC hơn cần thiết. Hạn mức nhỏ hơn giới hạn mức độ rủi ro đó; nó không làm một spender độc hại trở nên đáng tin.
4. Đọc chữ ký cẩn thận như đọc giao dịch
Hãy tìm token, spender, số lượng, mạng và mọi deadline hay hạn dùng. Tên trường mỗi nơi một khác.
Nếu ví không giải thích yêu cầu đủ rõ để bạn hiểu, hãy từ chối và tìm hiểu qua tài liệu chính thức của ứng dụng.
5. Giữ tiền tiết kiệm tách biệt khỏi các ứng dụng lạ
Hãy dùng một ví riêng với số dư nhỏ để thử dịch vụ mới. Tránh kết nối ví giữ khoản tiết kiệm dài hạn của bạn.
Điều này giới hạn những gì một phê duyệt có hại có thể chạm tới.
05Nếu bạn đã phê duyệt thứ gì đó
Nếu bạn nghi ngờ một vụ đánh cắp đang diễn ra, hãy hành động nhanh. Dọn dẹp phê duyệt thường lệ và một chữ ký bị lộ là hai tình huống khác nhau.
Với các phê duyệt hiện có:
- Hãy tự mở Revoke.cash hoặc Token Approval Checker của Etherscan. Tránh các liên kết do tài khoản “hỗ trợ” tự liên hệ gửi đến.
- Kiểm tra từng mạng bạn dùng. Bạn có thể xem một địa chỉ công khai mà không cần ký giao dịch nào.
- Thu hồi các quyền bạn không còn cần, ưu tiên các spender đáng ngờ và các allowance không giới hạn không cần thiết.
- Xác nhận rằng từng giao dịch thu hồi thành công. Có tính phí mạng.
Thu hồi xóa quyền chi tiêu. Nó không lấy lại tài sản đã bị chuyển đi. Ngắt kết nối trang không thay thế được việc này. FAQ của Revoke.cash nói về các giới hạn này.
Nếu bạn đã ký một permit đáng ngờ
Một chữ ký chưa được dùng có thể không hiện trong trình kiểm tra phê duyệt.
Thu hồi một allowance nhìn thấy được có thể không vô hiệu hóa chữ ký đó. Ví dụ, một permit ERC-2612 chưa hết hạn vẫn có thể tạo allowance nếu nonce của nó—bộ đếm ngăn việc dùng lại—vẫn hợp lệ. Xem đặc tả ERC-2612.
Hãy cân nhắc chuyển tài sản bị ảnh hưởng sang một ví riêng do bạn kiểm soát. Đừng chuyển chúng về địa chỉ bị lộ cho đến khi chữ ký đã bị vô hiệu hóa hoặc không thể dùng được nữa. Việc chuyển tài sản và thu hồi quyền có thể là cuộc đua với kẻ tấn công; không cách nào bảo đảm bạn sẽ đi trước.
Nếu cụm từ khôi phục hoặc khóa riêng của bạn đã bị lộ, hãy tạo ví với cụm từ khôi phục mới. Một tài khoản khác suy ra từ cụm từ bị lộ không phải là sự thay thế an toàn.
Hãy cảnh giác với những lời đề nghị thu hồi tiền tự tìm đến, đặc biệt là đòi trả tiền trước hoặc đòi cụm từ khôi phục của bạn.
06SaveSaveSaveSave có thể giúp bạn kiểm tra gì
Trình quét tin nhắn có thể gắn cờ những câu chữ thúc đẩy bạn ký thông điệp, phê duyệt chi tiêu không giới hạn hoặc cấp quyền token rộng.
Đó là cảnh báo về văn bản bạn dán. Nó không phải việc xem xét yêu cầu bên trong ví của bạn.
Trình quét không xác định một chữ ký cho phép những gì, không liệt kê các allowance hiện có của bạn, và không bảo đảm một spender là đáng tin. Một lần kiểm tra địa chỉ không có cảnh báo nào không phải lý do để phê duyệt nó.
Hãy dùng trình kiểm tra phê duyệt để xem lại các quyền hiện có. Trước khi cấp quyền mới, hãy làm rõ ba điều:
Ai có thể chi tiêu, họ chạm được tới tài sản nào, và bạn đang cho phép bao nhiêu.
Địa chỉ spender và trang web trong hình minh họa là hư cấu. Hướng dẫn này là thông tin chung, không phải tư vấn tài chính.