Page cover

Permit Signatures là gì?

Mô tả Permit

Do phải trả phí gas, nhiều ứng dụng thích yêu cầu quyền phê duyệt không giới hạn (approve), có nghĩa là bạn chỉ cần trả gas một lần. Điều này có thể là rủi ro bảo mật vì ứng dụng giữ quyền truy cập không giới hạn này trong thời gian không xác định. Lý tưởng nhất là bạn chỉ nên cấp approve giới hạn, bao phủ một số lượng token cụ thể cần cho một giao dịch nhất định. Nhưng khi đó bạn sẽ phải trả gas cho mỗi lần approve.

EIP2612arrow-up-right cố gắng giải quyết vấn đề này bằng cách cho phép ký thông điệp phê duyệt offchain. Nhờ đó, bạn không cần gửi giao dịch onchain và có thể cấp approve giới hạn mà không phải trả phí gas.

Chữ ký Permit hoạt động như thế nào?

EIP2612 là một phần bổ sung cho tiêu chuẩn ERC20, nghĩa là các token ERC20 có thể triển khai chức năng bổ sung này, nhưng phần lớn token không hỗ trợ nó. Chữ ký Permit dựa trên tiêu chuẩn EIP712arrow-up-right, tiêu chuẩn này xác định cách chuẩn hóa để ký dữ liệu có cấu trúc. Dữ liệu cần ký cho Permit signatures chứa cùng thông tin như khi cấp approve onchain: địa chỉ người được ủy quyền chi tiêu (authorized spender address - ASA) và số lượng token.

Permit Approve USDC trên Etherscan

Sau đó dữ liệu này và chữ ký tương ứng có thể được truyền cho hàm token permit(), hàm này sẽ kiểm tra chữ ký và "kích hoạt" approve onchain, sau đó nó sẽ giống như approve onchain thông thường. Mặc dù kiểu chữ ký này cần được "kích hoạt" onchain, việc kích hoạt onchain có thể kết hợp với giao dịch mà bạn cần approve, nên bạn không cần gửi giao dịch riêng biệt.

Lợi ích của Permit Signatures

Như đã nêu ở trên, vấn đề chính mà Permit Signatures giải quyết là bạn có thể cấp approve mà không cần gửi giao dịch phê duyệt riêng biệt. Điều này mang lại hai lợi thế quan trọng:

  • Giảm phiền toái cho người dùng vì họ không phải trả gas hoặc chờ giao dịch được khai thác.

  • Giảm rủi ro bảo mật, vì có thể cấp approve giới hạn chỉ bao phủ số token cần thiết cho các giao dịch cụ thể.

Nhược điểm của Permit Signatures

Mặc dù Permit Signatures có nhiều lợi ích quan trọng, chúng cũng có nhược điểm. Một trong số đó là chúng không được hỗ trợ bởi hầu hết các token, vì vậy bạn không thể dựa vào việc chúng luôn có sẵn. Do hỗ trợ hạn chế trong các token ERC20, chúng cũng không được nhiều ứng dụng hỗ trợ. Để các hợp đồng thông minh hỗ trợ Permit Signatures, họ cần triển khai hỗ trợ này một cách đặc biệt, điều này tạo ra khó khăn thêm cho các nhà phát triển.

Cửa sổ bật lên Permit Approve USDC trên MetaMask

Vì Permit Signatures là chữ ký offchain, chúng cũng thường bị kẻ gian lợi dụng để lừa người dùng và ép họ cấp approve. Nhiều ví như MetaMask giờ hiển thị cảnh báo khi bạn ký approve onchain, nhưng đối với Permit Signatures những cảnh báo đó không có. Do đó, có thể trông giống như bạn chỉ kết nối ví trên một trang web, nhưng thực tế bạn đang cấp approve.

Last updated