Một giao dịch hoán đổi có thể hoàn tất trong khi quyền cấp cho giao dịch đó vẫn còn hiệu lực. Phê duyệt token cho phép một địa chỉ được chỉ định sử dụng token từ ví của bạn, trong phạm vi quyền hạn bạn cấp. Việc đóng ứng dụng không nhất thiết sẽ xóa quyền hạn đó.
Hướng dẫn này tập trung vào các token ERC-20 trên Ethereum và các mạng EVM khác. Các tiêu chuẩn token và blockchain khác sử dụng những hệ thống quyền hạn khác nhau. Việc cần làm trên thực tế là hiểu rõ bên được cấp quyền, số lượng và phạm vi quyền trước khi phê duyệt, sau đó xóa những quyền bạn không còn cần.
Hạn mức là giới hạn chi tiêu gắn với bên được cấp quyền
Trong quy trình ERC-20 thông thường, approve thiết lập một hạn mức, allowance báo cáo số lượng còn lại và transferFrom cho phép bên được ủy quyền chuyển token theo các quy tắc của hợp đồng token. Giao dịch phê duyệt thường thiết lập quyền; hành động tiếp theo của ứng dụng sẽ sử dụng quyền đó.
Hãy xác định bốn yếu tố: mạng, hợp đồng token, địa chỉ chủ sở hữu và địa chỉ bên được cấp quyền. Tên của một website không phải là bản thân quyền hạn. Bên được cấp quyền có thể là một hợp đồng ứng dụng hoặc một địa chỉ khác, và mã của địa chỉ đó quyết định cách quyền hạn có thể được sử dụng.
Hãy xét một ví dụ giả định: một ví đang giữ 200 token. Bạn phê duyệt cho bên được cấp quyền sử dụng 100 token. Số dư vẫn là 200 cho đến khi token thực sự được chuyển đi. Nếu sau đó bên được cấp quyền chuyển 40 token theo một hạn mức hữu hạn tiêu chuẩn, số dư của bạn sẽ còn 160 và hạn mức còn lại là 60. Đây là hai con số riêng biệt.
Bên được cấp quyền có thể sử dụng phần quyền còn lại mà không cần hiển thị thêm lời nhắc phê duyệt, tùy thuộc vào các quy tắc hợp đồng hiện hành. Một lần phê duyệt mới thường thay thế hạn mức hiện tại bằng số lượng bạn chỉ định; số lượng đó không tự động được cộng thêm vào giới hạn cũ.
Phê duyệt không giới hạn có thể áp dụng cho các khoản nạp trong tương lai
Một ứng dụng có thể yêu cầu hạn mức rất lớn để bạn không cần phê duyệt lại cho từng giao dịch. Điều này có thể giảm các bước lặp lại và chi phí phê duyệt, nhưng đồng thời khiến một lượng lớn hơn chịu sự chi phối của quyền hạn đã cấp cho bên được cấp quyền.
Một số cách triển khai phổ biến xem giá trị số nguyên lớn nhất là không giới hạn và không giảm giá trị đó khi token được sử dụng. Đừng cho rằng mọi lần sử dụng đều làm giảm dần một quyền không giới hạn.
Hạn mức cũng có thể vẫn còn hiệu lực khi số dư token của bạn về 0. Nếu sau này bạn nhận thêm cùng loại token tại địa chỉ đó trên cùng một mạng, quyền hiện có có thể được sử dụng lại. Việc ví hiển thị trống không chứng minh rằng các quyền cũ đã biến mất.
Chọn một giới hạn nhỏ hơn sẽ giảm số lượng có thể được sử dụng thông qua quyền đó. Điều này không chứng minh rằng ứng dụng đáng tin cậy hoặc giao dịch được đề xuất là hợp lý.
Thu hồi chính quyền bạn đã thực sự cấp
Hãy kiểm tra các hạn mức khi bạn ngừng sử dụng một ứng dụng, không thể xác định bên được cấp quyền, phát hiện một giới hạn lớn không cần thiết hoặc biết về một sự cố bảo mật liên quan. Mục tiêu là loại bỏ một đường dẫn không cần thiết cho việc sử dụng tiền.
- Kiểm tra tài khoản và mạng. Một quyền trên chuỗi này là riêng biệt với một quyền trên chuỗi khác.
- Xác định token và bên được cấp quyền. Sử dụng màn hình quyền hạn của một ví đáng tin cậy hoặc trình khám phá blockchain phù hợp. Chỉ riêng một nhãn quen thuộc không thể xác minh một địa chỉ.
- Đọc thay đổi được đề xuất. Đối với hạn mức ERC-20 tiêu chuẩn, việc thu hồi thường gửi một giao dịch trên chuỗi để đặt hạn mức của bên được cấp quyền đó về 0. Hãy xác nhận token, bên được cấp quyền và số lượng mới.
- Xác minh xác nhận. Việc thu hồi trên chuỗi sẽ tốn phí gas của mạng, ngay cả khi một dịch vụ tài trợ khoản phí đó. Hãy kiểm tra rằng giao dịch đã thành công và hạn mức liên quan hiện phản ánh đúng thay đổi mong muốn.
Việc thu hồi đang chờ xử lý chưa làm thay đổi trạng thái của chuỗi. Bên được cấp quyền có thể hành động trước khi giao dịch được xác nhận. Việc thu hồi đã hoàn tất sẽ hạn chế việc sử dụng hạn mức đó trong tương lai; việc này không thể lấy lại các token đã được chuyển đi.
Ngắt kết nối website sẽ thay đổi kết nối của ví với website đó. Các phê duyệt hiện có trên chuỗi cần một thay đổi riêng. Nếu khóa riêng tư hoặc cụm từ khôi phục bị lộ, quyền hạn chỉ là một phần của sự cố: việc thu hồi không loại bỏ khả năng người khác dùng các khóa đó để ký.
Nếu bạn sử dụng ví cá nhân cùng với KTX, hãy tách biệt quyền hạn của ví khỏi bảo mật tài khoản nền tảng. Hướng dẫn của KTX về ví lưu ký và không lưu ký giải thích ai kiểm soát việc ủy quyền giao dịch và khôi phục. Xem hướng dẫn sao lưu cụm từ hạt giống của KTX để bảo vệ thông tin khôi phục, và không bao giờ cung cấp cụm từ khôi phục cho một website đề nghị thu hồi quyền.
Quyền đã ký cần được kiểm tra thêm
Ví có thể yêu cầu chữ ký thay vì một giao dịch phê duyệt ngay lập tức. Chữ ký vẫn có thể tạo ra quyền hạn đáng kể. Ví dụ, các permit ERC-2612 cho phép một bên khác gửi ủy quyền đã ký của bạn để thiết lập một hạn mức.
Thời hạn của permit giới hạn thời điểm chữ ký đó có thể được gửi. Thời hạn này không tự động đặt ngày hết hạn cho hạn mức ERC-20 thông thường được tạo ra sau đó. Việc đặt hạn mức về 0 cũng không nhất thiết làm mất hiệu lực của một chữ ký permit cũ chưa được sử dụng; cần xem xét riêng nonce và các quy tắc hiệu lực của chữ ký đó.
Permit2 tạo thêm một lớp: phê duyệt của token đối với hợp đồng Permit2, tiếp theo là các quyền dành cho từng ứng dụng cụ thể. Các quyền dựa trên hạn mức và giao dịch chuyển token bằng chữ ký một lần của nó có các quy tắc khác nhau về số lượng, thời hạn và nonce.
Hãy xem xét từng lớp áp dụng và các ủy quyền đã ký còn tồn đọng. Một công cụ kiểm tra chỉ đọc các hạn mức hiện có trên chuỗi có thể không hiển thị mọi chữ ký đã được ký nhưng chưa gửi. Màn hình hạn mức có vẻ an toàn không thể tính đến một quyền mà nó chưa thể nhìn thấy.
Câu hỏi thường gặp
Tôi có cần phê duyệt ERC-20 để gửi ETH gốc không?
Một giao dịch chuyển ETH gốc thông thường không sử dụng hạn mức ERC-20. Wrapped ETH là một token và có thể sử dụng cơ chế đó. Quyền hạn cấp tài khoản là một vấn đề riêng.
Một phê duyệt không giới hạn có áp dụng cho mọi tài sản trong ví của tôi không?
Một phê duyệt ERC-20 thông thường liên quan đến một token và một bên được cấp quyền cụ thể. Phê duyệt đó không tự động áp dụng cho mọi token hoặc NFT. Tuy nhiên, một yêu cầu ký duy nhất có thể chứa nhiều quyền, vì vậy hãy xem xét toàn bộ phạm vi của yêu cầu.
Tại sao ví có thể yêu cầu tôi đặt hạn mức về 0 trước khi thay đổi hạn mức?
Một số cách triển khai token yêu cầu điều này, và việc thay thế một hạn mức khác 0 có thể tạo ra rủi ro về thứ tự giao dịch. Hãy tuân theo quy trình được hỗ trợ; việc đặt lại không thể hoàn tác việc chi tiêu đã xảy ra.
Ví phần cứng có ngăn được một phê duyệt nguy hiểm không?
Ví phần cứng giúp bảo vệ khóa ký. Tuy nhiên, bạn vẫn có thể dùng các khóa đó để ủy quyền một quyền nguy hiểm. Hãy xem xét chi tiết giao dịch và bên được cấp quyền thay vì chỉ dựa vào thiết bị.
Phê duyệt NFT có hoạt động giống hạn mức token không?
ERC-721 hỗ trợ phê duyệt cho một NFT riêng lẻ và phê duyệt nhà vận hành trên toàn bộ hợp đồng NFT đó. Đây là các cơ chế khác với hạn mức theo số lượng của ERC-20. Hãy kiểm tra tiêu chuẩn và phạm vi trước khi thu hồi.
Bài viết này cung cấp kiến thức chung, không phải lời khuyên bảo mật hoặc đầu tư cá nhân hóa. Cách triển khai token và giao diện ví có thể khác nhau. Không bao giờ tiết lộ khóa riêng tư hoặc cụm từ khôi phục.