Một Sự Sâu Rộng Vào Mô Hình Ủy Quyền ERC-20: Cách Permit và Permit2 Hoạt Động, Những Rủi Ro, và Sự Khác Biệt Chính

Người mới bắt đầu4/25/2025, 6:38:53 AM
Khám phá cách Hồ bơi Riêng tư giới thiệu một mô hình mới cho tính riêng tư của blockchain thông qua cơ chế ASP (Nhà cung cấp Bộ Thiết lập Hiệp hội) sáng tạo và bằng chứng không thông báo. Bài viết này xem xét nền tảng lý thuyết của nhóm của Vitalik Buterin, việc triển khai kỹ thuật bởi 0xbow, và cách mà kiến trúc ba lớp của nó cân bằng tính riêng tư của người dùng với nhu cầu quy định. Nó cũng phân tích tác động của giao thức đối với DeFi, so sánh nó với các giải pháp riêng tư khác và khám phá cơ hội và thách thức trong tương lai.

Trong thế giới blockchain, người dùng thường cần cấp quyền (cho phép) để cho phép hợp đồng thông minh chi tiêu token thay mặt họ. Ví dụ, khi sử dụng một sàn giao dịch phi tập trung (DEX) để đổi token, người dùng phải ủy quyền cho hợp đồng sàn giao dịch để chuyển một số lượng cụ thể token từ ví của họ. Dưới hình thức truyền thống ERC-20Theo tiêu chuẩn này, quy trình này yêu cầu hai giao dịch riêng biệt trên chuỗi: một giao dịch để phê duyệt và một giao dịch khác để chuyển token thực tế. Quy trình hai bước này không chỉ rườm rà mà còn tạo thêm phí gas. Để cải thiện cả trải nghiệm người dùng và bảo mật, cộng đồng Ethereum đã giới thiệu cơ chế ủy quyền dựa trên chữ ký.Giấy phép(như ERC-20), và sau này phát triển một phiên bản tiên tiến hơn gọi là Permit2. Các cơ chế mới này cho phép người dùng cấp quyền ủy nhiệm cho mã thông báo thông qua chữ ký off-chain, tránh cần phải thực hiện các giao dịch on-chain phụ thêm.

Trong bài viết này, chúng tôi sẽ bắt đầu với những điều cơ bản bằng cách giải thích cách các phê duyệt ERC-20 truyền thống hoạt động và các hạn chế của chúng. Sau đó, chúng tôi sẽ đi sâu vào cách Permit và Permit2 hoạt động, nhấn mạnh các lợi ích và nhược điểm của chúng, và thảo luận về cách chúng cải thiện cả hiệu suất lẫn bảo mật. Chúng tôi cũng sẽ xem xét các nguy cơ bảo mật tiềm ẩn, đặc biệt làcác cuộc tấn công lừa đảo liên quan đến chữ ký độc hại, và cung cấp mẹo để duy trì an toàn. Cho dù bạn mới bắt đầu với blockchain hoặc chỉ mới bắt đầu hành trình đầu tư tiền điện tử của bạn, hướng dẫn này nhằm giúp bạn hiểu rõ những đổi mới kỹ thuật quan trọng này.

Cơ bản về Mô hình Ủy quyền ERC-20

Trước khi đào sâu vào Permit, hãy xem cách mà mô hình ủy quyền token ERC-20 truyền thống hoạt động và các hạn chế mà nó đem lại.

Cách Phê Duyệt ERC-20 Truyền Thống Hoạt Động Như Thế Nào

ERC-20 là tiêu chuẩn cho các token trên Ethereum. Nó xác định các chức năng như cho phép và chuyển từ, cùng nhau tạo điều kiện cho việc ủy quyền token. Ủy quyền ở đây có nghĩa là người giữ token (chủ sở hữu) cho phép một tài khoản khác, thông thường là một hợp đồng thông minh (người chi tiêu), chuyển một số lượng token nhất định thay mặt họ. Quá trình cơ bản hoạt động như sau:

  1. Người giữ mã gọi hàm approve(spender, amount) của hợp đồng mã gọi. Điều này ghi lại sự cho phép trong bản đồ nội bộ của hợp đồng, thường được biểu diễn dưới dạng allowance[owner][spender] = amount. Ví dụ, nếu người dùng A ủy quyền cho hợp đồng Uniswap chi tiêu tối đa 100 mã thông báo, hợp đồng sẽ lưu trữ allowance[A][Uniswap] = 100. Bước này yêu cầu một giao dịch trên chuỗi và phí gas được người dùng A trả.
  2. Chuyển DeleGate.io (transferFrom): Sau này, khi Uniswap (hoặc một ứng dụng phi tập trung khác) cần chi tiêu token thay mặt cho A, nó gọi hàm transferFrom(A, B, số lượng) trên hợp đồng token. Hợp đồng kiểm tra xem phân quyền[A][Uniswap] có đủ không. Nếu đủ, hợp đồng sẽ chuyển số lượng cụ thể từ A sang B và trừ số lượng đó từ phân quyền.

Giới hạn và Thách thức của Mô hình Phê duyệt

Mô hình hai bước ở trên cho phép người dùng ủy quyền hợp đồng quản lý quỹ của họ mà không bao giờ chia sẻ khóa riêng tư của họ. Tuy nhiên, phương pháp truyền thống này cũng đi kèm với một số vấn đề thực tế:

Cần hai giao dịch, trải nghiệm người dùng kém
Mỗi khi người dùng muốn sử dụng một token mới trên một ứng dụng phi tập trung, họ phải gửi một giao dịch phê duyệt riêng biệt trước khi thực sự thực hiện hành động mong muốn (như đổi hoặc đặt cược). Điều này có nghĩa là ví của họ sẽ yêu cầu xác nhận hai lần và tính thêm phí Gas. Đối với người mới bắt đầu, bước thêm này có thể gây nhầm lẫn và bất tiện.

Quản lý phê duyệt mảnh vụ
Khi người dùng tương tác với nhiều dAppssử dụng cùng token (ví dụ, giao dịch trên Uniswap và sau đó gửi tiền vào một giao thức DeFi khác), mỗi ứng dụng phi tập trung đều yêu cầu phê duyệt riêng biệt, mặc dù đó là cùng một token trong cùng một ví. Điều này dẫn đến việc phê duyệt lặp lại, lãng phí thời gian và gas.

Ngoài ra, vì mỗi ứng dụng phi tập trung quản lý phê duyệt của mình một cách độc lập, người dùng có ít sự kiểm soát tập trung hơn đối với các phê duyệt của họ. Một số công cụ, như Revoke.cashDeBank, cho phép người dùng xem và quản lý sự cho phép token, nhưng nhiều người dùng không nhận biết chúng. Và ngay cả khi họ biết, việc thu hồi quyền vẫn yêu cầu giao dịch trên chuỗi, điều này tăng chi phí. Kết quả là nhiều sự chấp thuận cũ hoặc không sử dụng đơn giản bị quên.

Những rủi ro của việc phê duyệt không giới hạn
Để tránh giao dịch phê duyệt thường xuyên, nhiều dApps đề xuất người dùng cấp quyền phê duyệt không giới hạn, cho phép hợp đồng chi tiêu toàn bộ số dư token của người dùng, mà không có thời hạn. Mặc dù cách tiếp cận này tiết kiệm công sức sau này, nhưng nó đưa ra các rủi ro bảo mật nghiêm trọng: nếu dApp hoặc hợp đồng bị xâm phạm, kẻ tấn công có thể rút hết tất cả các token đã được phê duyệt.

Những thách thức này đã thúc đẩy các nhà phát triển tìm kiếm các phương án tốt hơn. Lý tưởng, người dùng chỉ cần ký một lần (tốt nhất là ngoại chuỗi và không tốn gas) để hoàn thành cả việc phê duyệt và hành động. Việc phê duyệt cũng nên được giới hạn về phạm vi và thời hạn để giảm thiểu các rủi ro tiềm ẩn. Đây chính là động lực sau việc giới thiệu ERC-20 Permit.

Giấy phép: Ủy quyền dựa trên chữ ký ERC-20 (EIP-2612)

Khái niệm Văn bản Đủ Điều kiện được giới thiệu lần đầu tiên bởiDAIHợp đồng stablecoin sau đó được chuẩn hóa dưới dạng EIP-2612. Nói ngắn gọn, Permit cho phép người dùng ủy quyền chuyển token bằng cách sử dụng chữ ký ngoại chuỗi, loại bỏ nhu cầu gửi một giao dịch phê duyệt riêng biệt trên chuỗi. Hãy xem xét cách nó hoạt động và những đặc điểm nổi bật của nó.

Cách Permit Hoạt Động

Permit là một cơ chế cấp phép dựa trên chữ ký số. Theo tiêu chuẩn EIP-2612, các hợp đồng token ERC-20 hỗ trợ Permit sẽ thêm một chức năng gọi là permit() với dạng như sau:

hàm cho phép(
chủ sở hữu địa chỉ, người tiêu dùng địa chỉ,
uint256 giá trị, uint256 hạn chót,
uint8 v, bytes32 r, bytes32 s
) ngoại;

Ở đây, chủ sở hữu, người tiêu dùng và giá trị xác định ai cấp quyền, ai nhận quyền và số lượng được phép. deadline cho biết thời hạn của chữ ký. Các tham số v, r và s tạo thành ECDSAchữ ký số. Sử dụng Permit, người dùng vượt qua việc phê duyệt trên chuỗi riêng biệt - họ chỉ cần ký tin nhắn (mà không cần trả Gas) và bao gồm chữ ký này cùng với giao dịch của họ để hoàn tất quyền ủy quyền trong một bước.


Quy trình cấp phép

So với phê duyệt truyền thống, Giấy phép loại bỏ nhu cầu giao dịch bổ sung trên chuỗi, tiết kiệm cả thời gian và phí Gas. Nó cũng cho phép kiểm soát chi tiết các phê duyệt. Ví dụ: người dùng có thể ký Giấy phép cho phép chi tiêu chính xác 50 USDC, chỉ có giá trị trong 5 phút. Ngay cả khi chữ ký bị lộ, nó sẽ trở nên không sử dụng được sau thời hạn, giảm rủi ro. Ngày nay, nhiều giao thức DeFi, chẳng hạn như sàn giao dịch phi tập trung và nền tảng cho vay, đã hỗ trợ Permit. Các ví dụ nổi tiếng bao gồm Uniswap V2/V3mã thông tin LP, DAI, vàUSDC, các đồng tiền này đã triển khai chuẩn EIP-2612, cho phép phê duyệt dựa trên chữ ký chỉ trong một bước.

Tuy nhiên, hạn chế lớn nhất của Permit là nó phải được triển khai trực tiếp trong hợp đồng mã thông báo. Nếu nhà phát triển mã thông báo chưa thêm phương thức permit() - có nghĩa là nó không hỗ trợ EIP-2612 - thì Permit đơn giản không thể được sử dụng. Kể từ khi EIP-2612 chỉ được giới thiệu vào năm 2020, nhiều mã thông báo cũ không bao gồm nó, và thậm chí các mã thông báo mới cũng không luôn luôn áp dụng nó. Điều này hạn chế việc áp dụng của Permit: các mã thông báo không được hỗ trợ vẫn yêu cầu luồng phê duyệt truyền thống.

Vấn đề khác là phần mềm ví tiền điện tử phải xử lý và hiển thị đúng các chữ ký Permit, thường được định dạng bằng EIP-712. Hầu hết các ví tiền chính hiện đã hỗ trợ điều này, nhưng một số vẫn hiển thị dữ liệu nguyên thủy thay vì thông điệp có thể đọc được, làm cho người dùng khó hiểu họ đang ký gì. Thiếu giao diện rõ ràng cho EIP-2612, ví tiền có thể làm trở ngại cho người dùng hiểu biết về việc phê duyệt dựa trên chữ ký. Hơn nữa, trong trường hợp triển khai song song (như hợp đồng có cùng địa chỉ trên các chuỗi khác nhau), chữ ký có thể được sử dụng lại trong các môi trường khác. Do đó, người dùng phải xác minh rằng ID chuỗi và địa chỉ hợp đồng trong chữ ký của họ phù hợp với môi trường hiện tại để ngăn ngừa việc cấp quyền cho token trên Chuỗi A bị lạm dụng bởi các địa chỉ hợp đồng giống hệt trên Chuỗi B.

Điều quan trọng là, Permit cải thiện đáng kể hiệu suất và linh hoạt của việc phê duyệt ERC-20, đánh dấu một cột mốc quan trọng trong cơ chế phê duyệt không cần gas. Tuy nhiên, đó không phải là một giải pháp hoàn hảo: nó đòi hỏi sự hỗ trợ từ cấp độ token, và nó mang lại những rủi ro mới. Tiếp theo, chúng ta sẽ xem xét cách mà Permit2 của Uniswap xây dựng và mở rộng nền tảng đã đặt bởi Permit.

Permit2: Hợp đồng Quản lý Ủy quyền Toàn cầu

Khi cơ chế Cho phép trở nên phổ biến, một thách thức mới đã nảy sinh: làm thế nào để mở rộng sự tiện lợi của việc ủy quyền dựa trên chữ ký cho các token không hỗ trợ Cho phép? Để giải quyết vấn đề này và tối ưu hóa trải nghiệm ủy quyền trên các kịch bản khác nhau, đội ngũ Uniswap giới thiệu Permit2 vào năm 2022. Không giống như một tính năng cụ thể của token, Permit2 là một hợp đồng thông minh quản lý ủy quyền độc lập. Nó hoạt động như một trung gian cho việc ủy quyền token, cung cấp chức năng ủy quyền thống nhất và tối ưu hóa. Hãy phân tích nguyên tắc và tính năng của Permit2.

Cách Permit2 Hoạt Động

Permit2 hoạt động như một dịch vụ truyền tải ủy quyền. Khái niệm cốt lõi của nó rất đơn giản: người dùng cấp một sự chấp thuận một lần cho hợp đồng Permit2, sau đó quản lý các ủy quyền con sau này đến các ứng dụng khác nhau. Đây là cách hoạt động của nó:

  1. Ủy quyền Permit2 một lần: Người dùng phê duyệt Permit2 cho mỗi mã thông báo bằng phương pháp phê duyệt truyền thống (Permit2, max_amount). Một số lượng lớn hoặc không giới hạn được khuyến nghị vì đây là sự chấp thuận chính. Sau khi hoàn thành, hợp đồng Permit2 có khả năng gọi transferFrom thay mặt cho người dùng cho mã thông báo đó. Điều này đòi hỏi một giao dịch trên chuỗi nhưng chỉ cần được thực hiện một lần.
  2. Chữ ký ngoại chuỗi cho Phụ hợp lệ: Khi người dùng muốn tương tác với một DApp (ví dụ, sử dụng Bộ định tuyến Đa token của Uniswap cho các trao đổi đa token), họ ký một thông điệp phê duyệt ngoại chuỗi theo đặc tả của Permit2. Chữ ký này bao gồm các chi tiết như token được phép, số lượng, người chi tiêu mục tiêu (như một hợp đồng DApp cụ thể), và thời gian hết hạn.
  3. Yêu Cầu Chuyển DApp Sử Dụng Chữ Ký: Khi một ứng dụng phi tập trung nhận chữ ký của người dùng và cần sử dụng các token, thay vì gọi trực tiếp vào hợp đồng token, nó gọi các chức năng của Permit2 (như permitTransferFrom). Chức năng này xác minh dữ liệu chữ ký của người dùng và xác nhận rằng hoạt động nằm trong phạm vi cho phép (token, số lượng, hạn chót). Sau khi xác minh, Permit2 sử dụng quyền phê duyệt chính của mình để gọi transferFrom, chuyển các token từ người dùng sang người nhận được chỉ định. Điểm quan trọng: Hợp đồng Permit2 chính nó hoạt động như người chi tiêu, sử dụng quyền lực của mình để chuyển token, với một bước xác minh chữ ký bổ sung.
  4. Hoàn thành hoạt động: Khi Permit2 thực hiện thành công transferFrom, tiền sẽ di chuyển suôn sẻ từ người dùng đến DApp hoặc địa chỉ được chỉ định. Từ quan điểm của người dùng, họ chỉ cung cấp chữ ký trong giao dịch, trong khi hợp đồng xử lý tất cả các hành động tiếp theo.

Quy trình ủy quyền Permit2 rất đơn giản: người dùng chỉ cần cấp quyền tối đa cho Permit2 một lần cho mỗi mã thông báo. Sau đó, khi tương tác với các ứng dụng (như Bộ định tuyến Toàn cầu Uniswap hoặc các giao thức khác), họ chỉ cần bao gồm chữ ký Permit2 trong giao dịch của họ để hoàn tất việc ủy quyền và chuyển giao, mà không cần phê duyệt thêm trên chuỗi. Hợp đồng Permit2 xác minh chữ ký và thực hiện việc chuyển giao bằng quyền phê duyệt chính của nó. (Nguồn:Giới thiệu Permit2 & Universal Router)

Thông qua mô hình này, Permit2 mở rộng khái niệm ủy quyền dựa trên chữ ký của EIP-2612 cho tất cả các token ERC-20, bất kể chúng có tự triển khai phương thức permit() hay không. Miễn là người dùng ban đầu ủy quyền cho hợp đồng Permit2, họ có thể sử dụng chữ ký cho các hoạt động tiếp theo. Đáng chú ý, Uniswap đã thiết kế Permit2 như một hợp đồng không chủ sở hữu, không thể nâng cấp được triển khai với cùng một địa chỉ trên mạng chính Ethereum và nhiều mạng Lớp 2. Điều này có nghĩa là tất cả các ứng dụng thực sự sử dụng cùng một phiên bản Permit2, đạt được chức năng "phê duyệt một lần, sử dụng ở mọi nơi" thực sự.

Các tính năng chính của Permit2

Là một hệ thống ủy quyền thế hệ tiếp theo, Permit2 không chỉ cho phép các phê duyệt dựa trên chữ ký cho tất cả các token mà còn cung cấp các tính năng bổ sung để tăng cường bảo mật và tính khả dụng. Dưới đây là những tính năng chính của nó:

Hết hạn tự động
Tất cả các sự cho phép Permit2 đều có thể bao gồm một dấu thời gian để hết hạn. Người dùng có thể chỉ định khi sự cho phép con của họ nên hết hạn khi ký. Khi thời hạn đã qua, Permit2 sẽ từ chối chữ ký, ngay cả khi sự chấp thuận chính vẫn hoạt động. Điều này một cách hiệu quả giải quyết rủi ro của việc sự chấp thuận vô thời hạn vẫn còn tồn tại mà không sử dụng.

Chuyển Giao Chữ Ký Một Lần Sử Dụng
Permit2 cung cấp chế độ chuyển chữ ký trực tiếp, trong đó người dùng có thể ủy quyền việc chuyển một loại token cụ thể cho người nhận chỉ bằng một chữ ký, mà không cần thiết lập phép ủy quyền trước. Điều này hoàn hảo cho các kịch bản thanh toán một lần: người dùng có thể ký một tin nhắn ủy quyền chuyển 100 token đến địa chỉ của bạn bè, và người bạn hoặc trung gian có thể thực hiện việc chuyển bằng chữ ký này. Khi đã sử dụng, chữ ký trở thành không hợp lệ, không còn quyền hạn lưu lại.

Chấp nhận và Chuyển khoản hàng loạt
Permit2 ưu tiên hiệu suất bằng cách cho phép xử lý theo lô của nhiều phê duyệt hoặc chuyển khoản. Người dùng có thể ủy quyền một số lượng khác nhau của nhiều mã thông báo cho một giao thức duy nhất chỉ với một chữ ký, hoặc thực hiện chuyển khoản của nhiều mã thông báo trong một giao dịch duy nhất. Điều này giúp tiết kiệm Gas và giảm bước cho người dùng nâng cao.

Thu hồi lô hàng
Bên cạnh việc phê duyệt hàng loạt, người dùng có thể thu hồi quyền cho nhiều token/ứng dụng trong một giao dịch duy nhất. Điều này khiến việc dọn dẹp các quyền phê duyệt lịch sử trở nên thuận tiện hơn nhiều.

Chứng kiến dữ liệu bổ sung
Permit2 bao gồm các giao diện như cho phép chuyển giao chứng nhận từđược phép bao gồm dữ liệu xác minh bổ sung trong chữ ký. Điều này hỗ trợ những tình huống phức tạp hơn, như bao gồm thông tin giao dịch cụ thể trong chữ ký để ngăn chặn việc tái sử dụng chữ ký trong ngữ cảnh khác nhau.

Thông qua các tính năng này, Permit2 không chỉ tái tạo tất cả các lợi ích của Giấy phép mà còn tăng cường tính linh hoạt và kiểm soát an ninh. Đặc biệt, việc hết hạn tự động và chuyển chữ ký sử dụng một lần làm cho việc ủy quyền cần thiết tối thiểu trở thành tiêu chuẩn, giảm rủi ro lâu dài.

Để tóm tắt, Permit2 hoạt động như một phần mở rộng và cải tiến của cơ chế Permit truyền thống. Hãy xem xét các khác biệt chính giữa hai phương pháp này:

Sự Áp Dụng Và Triển Khai Hệ Sinh Thái Permit2

Kể từ khi Uniswap giới thiệu Permit2, nhiều dự án đã tích hợp cơ chế này, tăng tốc quá trình tiêu chuẩn hóa ngành công nghiệp. Theo dữ liệu mới nhất từ Dune Analytics, tính đến tháng 4 năm 2025, hơn 3,1 triệu địa chỉ trên Ethereum mainnet đã cấp quyền cho hợp đồng Permit2, cho thấy sự phổ biến của nó.


Tình hình Hệ sinh thái và Triển khai của Permit2. Nguồn:Dune Analytics

Ví dụ, Uniswap đã tích hợp Permit2 vào Bộ định tuyến Phổ quát của mình, cho phép trao đổi nhiều mã thông báo và NFT trong một giao dịch duy nhất. Thông qua Bộ định tuyến Phổ quát, người dùng có thể liên kết nhiều hoạt động trong một giao dịch, chẳng hạn như trao đổi ba mã thông báo để có hai mã thông báo mục tiêu và mua NFT, với tất cả các yêu cầu ủy quyền được xử lý bởi chữ ký Permit2. Điều này đáng kể tối ưu hóa quy trình và giảm chi phí Gas tổng cộng, thể hiện tác động trực tiếp của Permit2 vào việc cải thiện trải nghiệm người dùng.

Hơn nữa, với việc triển khai mã nguồn mở của Permit2 trên nhiều chuỗi khác nhau, một số lượng ngày càng tăng của ví và công cụ DApp đã bắt đầu hỗ trợ nó. Các công cụ bảo mật như Revoke.cash đã cập nhật dịch vụ của họ để cho phép người dùng xem và thu hồi các bản ghi ủy quyền Permit2. Matcha cũng đã triển khai mô-đun SignatureTransfer của Permit2, cho phép cơ chế "ủy quyền một lần".

Mặc dù đã có tiến triển, việc áp dụng rộng rãi của Permit2 đối mặt với thách thức. Một mặt, các nhà phát triển cần thêm thời gian cho việc tích hợp: so với việc sử dụng phê duyệt của ERC-20 trực tiếp, triển khai Permit2 đòi hỏi xử lý logic chữ ký, tăng chi phí phát triển. Điều này có thể ngăn cản các nhóm nhỏ hơn. Mặt khác, việc giáo dục người dùng rất quan trọng: nhiều DApps sử dụng Permit2 cần giảng dạy người dùng về ý nghĩa của chữ ký. Hiện tại, các lợi ích thống nhất của Permit2 dường như vượt qua những điểm ma sát này, nhưng thâm nhập thị trường đầy đủ vẫn sẽ mất thời gian.

So sánh Permit2 với các giải pháp mới: Session Keys và ERC-4337

Trong 8 năm qua, cơ chế ủy quyền ERC-20 đã phát triển từ nhiều giao dịch thành chữ ký không tốn gas và hiện đến tài khoản thông minh. Mỗi bước tiến đã tìm cách tối ưu hóa cân bằng giữa trải nghiệm người dùng (giảm yêu cầu giao dịch và chữ ký) và chi phí gas. Dưới đây là một so sánh về các công nghệ này:


Ngoài Permit2, hai giải pháp ủy quyền mới nổi bật đáng chú ý là Session Keys vàERC-4337 Tài khoản Trừu tượng hóa, mỗi cái cung cấp các phương pháp tiếp cận riêng biệt đối với vấn đề.

Session Keys đặc biệt độc đáo, vì chúng không phải là mô hình ủy quyền nghiêm ngặt mà thay vào đó là cơ chế khóa tạm thời ở cấp độ ví hoặc tài khoản. Thay vì sửa đổi hợp đồng token, chúng cho phép các ví tạo ra các khóa riêng tư tạm thời có hạn, hạn chế số lượng cho các hoạt động cụ thể. Điều này làm cho chúng lý tưởng cho việc mua các mặt hàng trong trò chơi và thanh toán siêu nhỏ một lần. Trọng tâm của chúng là giảm thiểu rủi ro ủy quyền đơn lẻ, được thiết kế đặc biệt cho các tương tác tạm thời của người dùng, khác với phương pháp sửa đổi hợp đồng của Permit/Permit2.

ERC-4337 thực hiện một cách tiếp cận khác bằng cách nhúng logic ủy quyền trực tiếp vào tài khoản thông minh, cho phép người dùng tùy chỉnh điều kiện ủy quyền và có thể bỏ qua các bước phê duyệt truyền thống. Thông qua cơ chế UserOperation và Paymaster linh hoạt, nó đạt được bảo mật và trải nghiệm người dùng tốt hơn.

Nhìn vào xu hướng tương lai, những giải pháp khác nhau này có khả năng cùng tồn tại. Trong tương lai ngắn hạn, Permit2 sẽ tiếp tục là tiêu chuẩn cho các ứng dụng phi tập trung mới nổi, cải thiện trải nghiệm người dùng thông qua việc ủy quyền một lần trong khi thúc đẩy giáo dục về bảo mật và hỗ trợ công cụ để giảm thiểu rủi ro lừa đảo. Trong tương lai trung hạn, khi ERC-4337 và sự trừu tượng tài khoản trở nên phổ biến hơn trên các Layer 2 và mainnets, người dùng sẽ có thể thoát ra khỏi các hạn chế phê duyệt ERC-20 truyền thống, quản lý ủy quyền một cách chính xác và thông minh hơn, tiềm năng giảm thiểu nhu cầu sử dụng Permit2.

Tầm nhìn dài hạn là tạo ra một trải nghiệm ủy quyền mượt mà và trực quan như Web2, nơi người dùng chỉ cần nhấp vào một nút và tất cả các phê duyệt cần thiết diễn ra tự động ở nền, với các lời nhắc rõ ràng chỉ xuất hiện trong các tình huống rủi ro cao. Để đạt được tầm nhìn này sẽ đòi hỏi sự hợp tác liên tục và sáng tạo trên các giao thức cơ bản, ví và ứng dụng phi tập trung. Permit2 đại diện cho một bước quan trọng trong hành trình chuyển đổi này, nhưng vẫn còn một quãng đường dài phía trước trước khi đạt được trạng thái lý tưởng. Trên con đường này, cả cộng đồng và các nhà phát triển nên duy trì một cách tiếp cận thực dụng, hiểu rõ đầy đủ về các điểm mạnh và hạn chế của mỗi giải pháp và cùng nhau làm việc để xây dựng một môi trường ủy quyền an toàn và thân thiện với người dùng hơn.


Nhìn chung, Permit2 cung cấp một giải pháp thiết thực có thể được thực hiện ngay lập tức, trong khi các công nghệ như Khóa phiên và ERC-4337 hướng tới những cải tiến cơ bản và lâu dài hơn trong cách xử lý ủy quyền.

Rủi ro an ninh của việc ủy quyền dựa trên chữ ký

Như với bất kỳ công nghệ mới nào, Permit và Permit2 không chỉ giới thiệu hiệu suất mới mà còn mang đến những rủi ro mới, đặc biệt là về các cuộc tấn công ủy quyền dựa trên chữ ký.

Trong các hệ thống dựa trên chữ ký như Permit2 và EIP-2612 Permit, thiết kế hợp đồng cốt lõi bao gồm nhiều lớp bảo vệ để ngăn chặn việc sử dụng sai mục đích và các cuộc tấn công phát lại:

1. Bảo vệ Phát lại Dựa trên Nonce

Permit2 duy trì một bộ đếm nonce riêng biệt cho mỗi bộ ba (chủ sở hữu, mã thông báo, người chi) . Mỗi khi người dùng ký một sự cho phép mới, nonce tương ứng được tăng lên. Nếu một kẻ tấn công cố gắng tái sử dụng một chữ ký cũ, nó sẽ thất bại vì hợp đồng kiểm tra xem nonce đã được sử dụng hay chưa.

2. Thực thi thời hạn

Mỗi chữ ký phải bao gồm trường thời hạn. Khi hợp đồng xác thực chữ ký, nó đảm bảo thời gian khối hiện tại nhỏ hơn hoặc bằng thời hạn. Nếu chữ ký đã hết hạn — ngay cả khi nó vẫn hợp lệ — nó sẽ bị từ chối. Điều này ngăn chặn việc sử dụng sau này các quyền ủy quyền kéo dài.

3. Kiểm soát Phép Ứng Biến Tốt

Chữ ký Permit2 có thể chỉ định một phần phép tối đa. Trước khi bất kỳ chuyển token nào xảy ra, hợp đồng kiểm tra xem số lượng yêu cầu có nằm trong giới hạn này không. Hợp đồng không tự động chi tiêu toàn bộ số lượng được phê duyệt, cho phép người dùng sử dụng phần phép của họ và giảm thiểu rủi ro của một cuộc tấn công tiêu tốn toàn bộ.

4. Chế Độ Sử Dụng Một Lần và Theo Lô

Ngoài việc phê duyệt dựa trên trợ cấp liên tục, Permit2 cũng hỗ trợ chữ ký sử dụng một lần thông qua SignatureTransfer. Những chữ ký này chỉ có giá trị cho một giao dịch và trở nên không hợp lệ ngay sau khi thực hiện. Điều này lý tưởng cho các khoản thanh toán một lần và ngăn chữ ký được sử dụng lại hoặc khai thác sau này.

Những lớp bảo vệ này giúp cho các hệ thống ủy quyền kiểu Giấy phép cải thiện trải nghiệm người dùng và tiết kiệm gas đồng thời giảm thiểu các rủi ro cổ điển như "các cuộc tấn công phát lại", "quá ủy quyền", và "độ tin cậy chữ ký vô thời hạn".

Tuy nhiên, ngay cả khi có sự bảo vệ an toàn ở mức hợp đồng, kỹ thuật xã hội (đặc biệt là lừa đảo) vẫn là mối đe dọa khó nhất để đối phó. Ở phần tiếp theo, chúng tôi sẽ xem xét các chiến thuật lừa đảo phổ biến và cách mà kẻ tấn công lừa người dùng ký phê duyệt độc hại mà không hề hay biết sử dụng Permit2. Chúng tôi cũng sẽ cung cấp mẹo để giữ an toàn.

Làm thế nào để xảy ra các cuộc tấn công lừa đảo chữ ký?

Lừa đảo chữ ký xảy ra khi kẻ tấn công lừa nạn nhân ký các tin nhắn cụ thể để chiếm quyền kiểm soát tài sản của họ. Trong khi các cuộc tấn công truyền thống có thể liên quan đến việc thực thi các hợp đồng hay giao dịch độc hại, trong thời đại Permit, một quyền ủy quyền chữ ký độc hại duy nhất là đủ để rút tiền. Dưới đây là cách các cuộc tấn công này thường diễn ra:

  1. Nạn nhân nhấp vào phiên bản giả mạo của trang web DEX nổi tiếng (trang web lừa đảo). Khi người dùng cố gắng tương tác, trang web yêu cầu chữ ký ví, tuyên bố rằng đó là để “xác nhận đăng nhập” hoặc mục đích khác có vẻ hợp lệ. Tuy nhiên, yêu cầu này thực sự là chữ ký ủy quyền Permit2, cấp cho hợp đồng của kẻ tấn công quyền rút USDC của nạn nhân một cách không giới hạn với một thời hạn hiệu lực kéo dài.
  2. Nạn nhân, thiếu cảnh giác, ký yêu cầu trực tiếp. Tại thời điểm này, không có chi phí gas nào và không có hoạt động trên chuỗi xảy ra, không để lại dấu vết nghi ngờ nào.
  3. Khi kẻ tấn công có được chữ ký, họ ngay lập tức gọi hàm permit() của hợp đồng Permit2 để gửi nó. Sau khi hợp đồng Permit2 xác minh chữ ký, nó ghi nhận sự cho phép cho hợp đồng của kẻ tấn công dưới địa chỉ của nạn nhân (tương đương với việc nạn nhân thực hiện một approve, nhưng được hoàn thành bởi kẻ tấn công). Thao tác này có thể vẫn không được nạn nhân nhận thấy vì ví của họ không hiển thị bất kỳ chi phí nào - chỉ có bản đồ phân phối token của họ được cập nhật trên blockchain.
  4. Sau đó, kẻ tấn công ngay lập tức khởi xướng một giao dịch transferFrom(victim, attacker_address, amount) từ địa chỉ của họ, thành công chuyển USDC của nạn nhân bằng quyền ủy thác Permit2 gần đây. Nạn nhân chỉ nhận ra vụ trộm khi đã quá muộn.

Trong các cuộc tấn công này, người dùng không bao giờ thực hiện bất kỳ giao dịch "chuyển nhượng" hoặc "ủy quyền" rõ ràng nào, nhưng tài sản của họ biến mất một cách bí ẩn. Chìa khóa nằm ở việc chữ ký trở thành ủy quyền. Những kẻ tấn công cẩn thận ngụy trang các yêu cầu chữ ký để xuất hiện như các hoạt động bình thường, hạ thấp cảnh giác của người dùng. Tuy nhiên, một khi đã ký, nó giống như bàn giao chìa khóa cho tài sản của bạn.

Thậm chí tồi tệ hơn, một số kẻ tấn công sử dụng các phương pháp kỹ thuật để tăng tính ẩn danh. Ví dụ, họ sử dụng cơ chế CREATE2 của Ethereum để tạo ra các địa chỉ hợp đồng độc hại duy nhất cho mỗi nạn nhân. Điều này khiến các danh sách đen truyền thống trở nên không hiệu quả vì mỗi cuộc tấn công sử dụng một địa chỉ khác nhau.

Hầu hết các vụ lừa đảo tiền điện tử gần đây đều liên quan đến việc xác minh chữ ký. Ví dụ, Scam Sniffer’sthống kêTừ đầu năm 2024, số liệu cho thấy hơn 55 triệu đô la tài sản bị đánh cắp thông qua lừa đảo chữ ký chỉ trong một tháng. Kể từ khi kích hoạt của Permit2, kẻ tấn công đã trở nên hung hãn hơn trong việc thuyết phục người dùng ký quyền cho các phép lệnh/Permit2, dẫn đến nhiều nạn nhân trong thời gian ngắn. Rõ ràng, khi quyền ký quyền được lạm dụng, nó có thể gây thiệt hại nặng nề và khó phát hiện.

Tại sao rủi ro lừa đảo dựa trên chữ ký cao hơn so với các phương pháp truyền thống?

Quyền cho phép độc hại theo cách truyền thống đòi hỏi người dùng thực hiện giao dịch trên chuỗi, nơi ví thông thường hiển thị cảnh báo rõ ràng như 'Bạn đang cho phép XXX sử dụng token của bạn' và yêu cầu phí gas. Người dùng có kinh nghiệm thường cẩn trọng hơn với những điều này. Tuy nhiên, yêu cầu chữ ký trên giao diện ví thường chỉ được mô tả đơn giản là 'yêu cầu chữ ký dữ liệu' chứ không phải là hành động tài chính, khiến người dùng giảm sự cảnh giác. Hơn nữa, vì chữ ký không tốn phí gas, kẻ tấn công có thể tiến hành các cuộc tấn công lừa đảo quy mô lớn mà không cần lo lắng về chi phí - họ có lợi nhuận ngay cả khi chỉ có một vài cuộc tấn công thành công.

Ngoài ra, các ví cụ khác nhau hiển thị các tin những EIP-712 theo cách khác nhau. Một số ví tiện điện tử hiện đại (như phiên bản mới nhấtMetaMask ) phân tích và hiển thị các trường rõ ràng, hiển thị thông báo như “ủy quyền hợp đồng để chi tiêu X số lượng token của bạn.” Tuy nhiên, nhiều ví tiền chỉ hiển thị dữ liệu thập lục phân hoặc mô tả đơn giản, làm cho việc xác minh tính xác thực trở nên khó khăn đối với người dùng bình thường. Kẻ tấn công lợi dụng điều này bằng cách nhúng mô tả đánh lừa trong các thông báo (như giả vờ là chữ ký NFT mint) để lừa người dùng ký.

Vì các chữ ký ủy quyền không ảnh hưởng ngay lập tức đến tài sản, nạn nhân có thể không phát hiện nguy cơ ngay lập tức. Kẻ tấn công có thể chọn thời điểm chiến lược để tấn công. Thay vì thực hiện ngay lập tức, họ có thể chờ đợi cho đến khi ví của nạn nhân chứa nhiều tài sản hơn hoặc đến một thời điểm cụ thể, điều này làm phức tạp hơn việc theo dõi. Với các chữ ký có thời hạn hiệu lực kéo dài, kẻ tấn công cũng có thể lợi dụng các biến động giá để tối đa hóa lợi nhuận của họ, hiệu quả mang lại cho họ một lựa chọn giao dịch miễn phí. Nguy cơ này giải thích tại sao các chữ ký cho phép thường áp đặt các hạn chót ngắn.

Khả năng của Permit2 để ủy quyền nhiều mã thông báo chỉ với một chữ ký duy nhất làm cho người dùng khó hiểu rõ ràng về những hệ quả. Ví dụ, một trang web lừa đảo có thể yêu cầu một chữ ký Permit2 trong khi đặt nổi bật quyền cho chỉ một hoặc hai mã thông báo, nhưng ẩn mình nhúng quyền rộng lớn cho các mã thông báo bổ sung trong cùng một chữ ký. Người dùng có thể dễ dàng bỏ qua những quyền ẩn này nếu ví của họ không hiển thị tất cả chi tiết một cách rõ ràng. Hơn nữa, kẻ tấn công thường sử dụng các tên hợp đồng lừa dối như “WalletGuard” trong chữ ký của họ, che giấu các hợp đồng độc hại được thiết kế để đánh cắp quyền mã thông báo.

Làm thế nào người dùng có thể bảo vệ bản thân khỏi các cuộc tấn công chữ ký?

Hãy nhớ rằng việc ký kết tương đương với việc đồng ý - đừng bao giờ để việc không có phí xăng khiến bạn bất cẩn. Khi ví của bạn yêu cầu chữ ký, hãy đọc kỹ chi tiết tin nhắn. Đảm bảo trang web hoặc DApp yêu cầu chữ ký là hợp pháp và nội dung tin nhắn phù hợp với hành động dự định của bạn. Ví dụ: nếu bạn chỉ đăng nhập vào một trang web, chữ ký phải chứa văn bản đăng nhập có thể đọc được (như hầu hết các DApp sử dụng), không phải là một chuỗi địa chỉ và số mã thông báo.

Đảm bảo phần mềm ví của bạn hỗ trợ hiển thị dữ liệu EIP-712. Các ví lớn như MetaMask,TrustWalletLedger Liveđang cải thiện trải nghiệm hiển thị nội dung chữ ký của họ. Ví dụ, MetaMask hiện có thể phân tích các thông báo quyền thông thường thành ngôn ngữ thông thường. Nếu ví của bạn chỉ hiển thị dữ liệu hexa dài khi ký, hãy xem xét chuyển đổi hoặc cập nhật. Người dùng ví cứng cũng nên cập nhật firmware của họ để hỗ trợ các định dạng mới, hoặc họ có thể không nhìn thấy thông tin chính xác trên màn hình.

Dù sử dụng chữ ký Permit hay Permit2, bạn thường có thể điều chỉnh các tham số ủy quyền. Đừng ký cho số lượng không giới hạn (giá trị = 2^256-1) trừ khi hoàn toàn cần thiết - thay vào đó, chỉ ủy quyền số lượng bạn cần cộng với một bộ đệm nhỏ. Ngoài ra, đừng đặt hạn chót quá xa trong tương lai. Điều này sẽ giúp giới hạn các thiệt hại tiềm năng, và chữ ký sẽ cuối cùng hết hạn.

Phát triển thói quen thường xuyên kiểm tra trạng thái ủy quyền địa chỉ của bạn bằng các công cụ như Revoke.cash, Phê duyệt mã thông báo Etherscan hoặc các tính năng tích hợp trong ví của bạn. Điều này bao gồm cả phê duyệt truyền thống và phụ cấp Permit2. Nếu bạn phát hiện bất kỳ ủy quyền đáng ngờ hoặc không cần thiết nào, hãy thu hồi chúng ngay lập tức. Đối với Permit2, hãy lưu ý hai cấp độ thu hồi: thứ nhất, ủy quyền chính (bạn chấp thuận chính hợp đồng Permit2, mà bạn có thể muốn đặt thành 0 khi không sử dụng); thứ hai, ủy quyền phụ (các khoản phụ cấp của Permit2 cho các DApp khác nhau, thường tự động hết hạn nhưng có thể bị chấm dứt sớm nếu chúng có thời hạn hiệu lực dài). Nếu bạn nghi ngờ mình đã ký một Giấy phép đáng ngờ, hành động an toàn nhất là ngay lập tức điều chỉnh nonce: ký giấy phép mới cho cùng một người chi tiêu (ngay cả với 0 khoản trợ cấp) để vô hiệu hóa chữ ký cũ thuộc sở hữu của kẻ tấn công.

Luôn cẩn thận khi truy cập các trang web lạ hoặc tải ứng dụng. Không bấm vào các liên kết không rõ, đặc biệt là “ưu đãi quảng cáo” hoặc “sự kiện đúc” được chia sẻ qua quảng cáo trên mạng xã hội hoặc tin nhắn riêng. Rất nhiều nỗ lực lừa đảo diễn ra thông qua các tài khoản chính thức giả mạo đăng tải liên kết hoạt động gian lận, dẫn đến yêu cầu chữ ký. Hãy tạo thói quen nhập trực tiếp URL DApp chính thức hoặc sử dụng các đánh dấu trang để tránh rơi vào các trang web giả mạo.

Tóm lại, đạt được sự cân bằng giữa sự tiện lợi và bảo mật là rất quan trọng. Mặc dù các công nghệ Giấy phép rất tiện lợi, nhưng người dùng phải cảnh giác về phòng ngừa rủi ro. Khi hệ sinh thái trưởng thành, các sản phẩm ví và plugin trình duyệt đang phát triển khả năng bảo vệ chống lại lừa đảo chữ ký, chẳng hạn như cảnh báo chữ ký liên quan đến số lượng lớn. Chúng tôi mong muốn mitiGate.io các cuộc tấn công như vậy thông qua cả cải tiến kỹ thuật và giáo dục trong tương lai.

Kết luận

Từ những hạn chế của các mô hình ủy quyền ERC-20 truyền thống đến sự ra đời của Permit, và sau đó là sự sáng tạo đột phá Permit2 của Uniswap, chúng ta đã chứng kiến sự nỗ lực của hệ sinh thái Ethereum để cải thiện trải nghiệm người dùng và bảo mật. Permit2 giảm đáng kể quy trình ủy quyền mã thông qua chữ ký ngoại tuyến, giảm thiểu các rủi ro của việc phê duyệt lặp lại và quyền hạn không giới hạn, đồng thời giới thiệu các tính năng hữu ích như cơ chế hết hạn và các hoạt động theo lô. Tuy nhiên, những cơ chế mới này đi kèm với trách nhiệm mới—người dùng cần nâng cao nhận thức về an ninh, trong khi ví tiền và ứng dụng phi tập trung phải cùng nhau bảo vệ người dùng khỏi các cuộc tấn công chữ ký. Nhìn vào tương lai, với sự phát triển công nghệ tiếp theo, như trừu tượng hóa tài khoản, quản lý ủy quyền mã thông tin được dự kiến sẽ trở nên mượt mà và an toàn hơn.

Penulis: John
Penerjemah: Sonia
Pengulas: Pow、KOWEI、Elisa
Peninjau Terjemahan: Ashley、Joyce
* Informasi ini tidak bermaksud untuk menjadi dan bukan merupakan nasihat keuangan atau rekomendasi lain apa pun yang ditawarkan atau didukung oleh Gate.io.
* Artikel ini tidak boleh di reproduksi, di kirim, atau disalin tanpa referensi Gate.io. Pelanggaran adalah pelanggaran Undang-Undang Hak Cipta dan dapat dikenakan tindakan hukum.

Một Sự Sâu Rộng Vào Mô Hình Ủy Quyền ERC-20: Cách Permit và Permit2 Hoạt Động, Những Rủi Ro, và Sự Khác Biệt Chính

Người mới bắt đầu4/25/2025, 6:38:53 AM
Khám phá cách Hồ bơi Riêng tư giới thiệu một mô hình mới cho tính riêng tư của blockchain thông qua cơ chế ASP (Nhà cung cấp Bộ Thiết lập Hiệp hội) sáng tạo và bằng chứng không thông báo. Bài viết này xem xét nền tảng lý thuyết của nhóm của Vitalik Buterin, việc triển khai kỹ thuật bởi 0xbow, và cách mà kiến trúc ba lớp của nó cân bằng tính riêng tư của người dùng với nhu cầu quy định. Nó cũng phân tích tác động của giao thức đối với DeFi, so sánh nó với các giải pháp riêng tư khác và khám phá cơ hội và thách thức trong tương lai.

Trong thế giới blockchain, người dùng thường cần cấp quyền (cho phép) để cho phép hợp đồng thông minh chi tiêu token thay mặt họ. Ví dụ, khi sử dụng một sàn giao dịch phi tập trung (DEX) để đổi token, người dùng phải ủy quyền cho hợp đồng sàn giao dịch để chuyển một số lượng cụ thể token từ ví của họ. Dưới hình thức truyền thống ERC-20Theo tiêu chuẩn này, quy trình này yêu cầu hai giao dịch riêng biệt trên chuỗi: một giao dịch để phê duyệt và một giao dịch khác để chuyển token thực tế. Quy trình hai bước này không chỉ rườm rà mà còn tạo thêm phí gas. Để cải thiện cả trải nghiệm người dùng và bảo mật, cộng đồng Ethereum đã giới thiệu cơ chế ủy quyền dựa trên chữ ký.Giấy phép(như ERC-20), và sau này phát triển một phiên bản tiên tiến hơn gọi là Permit2. Các cơ chế mới này cho phép người dùng cấp quyền ủy nhiệm cho mã thông báo thông qua chữ ký off-chain, tránh cần phải thực hiện các giao dịch on-chain phụ thêm.

Trong bài viết này, chúng tôi sẽ bắt đầu với những điều cơ bản bằng cách giải thích cách các phê duyệt ERC-20 truyền thống hoạt động và các hạn chế của chúng. Sau đó, chúng tôi sẽ đi sâu vào cách Permit và Permit2 hoạt động, nhấn mạnh các lợi ích và nhược điểm của chúng, và thảo luận về cách chúng cải thiện cả hiệu suất lẫn bảo mật. Chúng tôi cũng sẽ xem xét các nguy cơ bảo mật tiềm ẩn, đặc biệt làcác cuộc tấn công lừa đảo liên quan đến chữ ký độc hại, và cung cấp mẹo để duy trì an toàn. Cho dù bạn mới bắt đầu với blockchain hoặc chỉ mới bắt đầu hành trình đầu tư tiền điện tử của bạn, hướng dẫn này nhằm giúp bạn hiểu rõ những đổi mới kỹ thuật quan trọng này.

Cơ bản về Mô hình Ủy quyền ERC-20

Trước khi đào sâu vào Permit, hãy xem cách mà mô hình ủy quyền token ERC-20 truyền thống hoạt động và các hạn chế mà nó đem lại.

Cách Phê Duyệt ERC-20 Truyền Thống Hoạt Động Như Thế Nào

ERC-20 là tiêu chuẩn cho các token trên Ethereum. Nó xác định các chức năng như cho phép và chuyển từ, cùng nhau tạo điều kiện cho việc ủy quyền token. Ủy quyền ở đây có nghĩa là người giữ token (chủ sở hữu) cho phép một tài khoản khác, thông thường là một hợp đồng thông minh (người chi tiêu), chuyển một số lượng token nhất định thay mặt họ. Quá trình cơ bản hoạt động như sau:

  1. Người giữ mã gọi hàm approve(spender, amount) của hợp đồng mã gọi. Điều này ghi lại sự cho phép trong bản đồ nội bộ của hợp đồng, thường được biểu diễn dưới dạng allowance[owner][spender] = amount. Ví dụ, nếu người dùng A ủy quyền cho hợp đồng Uniswap chi tiêu tối đa 100 mã thông báo, hợp đồng sẽ lưu trữ allowance[A][Uniswap] = 100. Bước này yêu cầu một giao dịch trên chuỗi và phí gas được người dùng A trả.
  2. Chuyển DeleGate.io (transferFrom): Sau này, khi Uniswap (hoặc một ứng dụng phi tập trung khác) cần chi tiêu token thay mặt cho A, nó gọi hàm transferFrom(A, B, số lượng) trên hợp đồng token. Hợp đồng kiểm tra xem phân quyền[A][Uniswap] có đủ không. Nếu đủ, hợp đồng sẽ chuyển số lượng cụ thể từ A sang B và trừ số lượng đó từ phân quyền.

Giới hạn và Thách thức của Mô hình Phê duyệt

Mô hình hai bước ở trên cho phép người dùng ủy quyền hợp đồng quản lý quỹ của họ mà không bao giờ chia sẻ khóa riêng tư của họ. Tuy nhiên, phương pháp truyền thống này cũng đi kèm với một số vấn đề thực tế:

Cần hai giao dịch, trải nghiệm người dùng kém
Mỗi khi người dùng muốn sử dụng một token mới trên một ứng dụng phi tập trung, họ phải gửi một giao dịch phê duyệt riêng biệt trước khi thực sự thực hiện hành động mong muốn (như đổi hoặc đặt cược). Điều này có nghĩa là ví của họ sẽ yêu cầu xác nhận hai lần và tính thêm phí Gas. Đối với người mới bắt đầu, bước thêm này có thể gây nhầm lẫn và bất tiện.

Quản lý phê duyệt mảnh vụ
Khi người dùng tương tác với nhiều dAppssử dụng cùng token (ví dụ, giao dịch trên Uniswap và sau đó gửi tiền vào một giao thức DeFi khác), mỗi ứng dụng phi tập trung đều yêu cầu phê duyệt riêng biệt, mặc dù đó là cùng một token trong cùng một ví. Điều này dẫn đến việc phê duyệt lặp lại, lãng phí thời gian và gas.

Ngoài ra, vì mỗi ứng dụng phi tập trung quản lý phê duyệt của mình một cách độc lập, người dùng có ít sự kiểm soát tập trung hơn đối với các phê duyệt của họ. Một số công cụ, như Revoke.cashDeBank, cho phép người dùng xem và quản lý sự cho phép token, nhưng nhiều người dùng không nhận biết chúng. Và ngay cả khi họ biết, việc thu hồi quyền vẫn yêu cầu giao dịch trên chuỗi, điều này tăng chi phí. Kết quả là nhiều sự chấp thuận cũ hoặc không sử dụng đơn giản bị quên.

Những rủi ro của việc phê duyệt không giới hạn
Để tránh giao dịch phê duyệt thường xuyên, nhiều dApps đề xuất người dùng cấp quyền phê duyệt không giới hạn, cho phép hợp đồng chi tiêu toàn bộ số dư token của người dùng, mà không có thời hạn. Mặc dù cách tiếp cận này tiết kiệm công sức sau này, nhưng nó đưa ra các rủi ro bảo mật nghiêm trọng: nếu dApp hoặc hợp đồng bị xâm phạm, kẻ tấn công có thể rút hết tất cả các token đã được phê duyệt.

Những thách thức này đã thúc đẩy các nhà phát triển tìm kiếm các phương án tốt hơn. Lý tưởng, người dùng chỉ cần ký một lần (tốt nhất là ngoại chuỗi và không tốn gas) để hoàn thành cả việc phê duyệt và hành động. Việc phê duyệt cũng nên được giới hạn về phạm vi và thời hạn để giảm thiểu các rủi ro tiềm ẩn. Đây chính là động lực sau việc giới thiệu ERC-20 Permit.

Giấy phép: Ủy quyền dựa trên chữ ký ERC-20 (EIP-2612)

Khái niệm Văn bản Đủ Điều kiện được giới thiệu lần đầu tiên bởiDAIHợp đồng stablecoin sau đó được chuẩn hóa dưới dạng EIP-2612. Nói ngắn gọn, Permit cho phép người dùng ủy quyền chuyển token bằng cách sử dụng chữ ký ngoại chuỗi, loại bỏ nhu cầu gửi một giao dịch phê duyệt riêng biệt trên chuỗi. Hãy xem xét cách nó hoạt động và những đặc điểm nổi bật của nó.

Cách Permit Hoạt Động

Permit là một cơ chế cấp phép dựa trên chữ ký số. Theo tiêu chuẩn EIP-2612, các hợp đồng token ERC-20 hỗ trợ Permit sẽ thêm một chức năng gọi là permit() với dạng như sau:

hàm cho phép(
chủ sở hữu địa chỉ, người tiêu dùng địa chỉ,
uint256 giá trị, uint256 hạn chót,
uint8 v, bytes32 r, bytes32 s
) ngoại;

Ở đây, chủ sở hữu, người tiêu dùng và giá trị xác định ai cấp quyền, ai nhận quyền và số lượng được phép. deadline cho biết thời hạn của chữ ký. Các tham số v, r và s tạo thành ECDSAchữ ký số. Sử dụng Permit, người dùng vượt qua việc phê duyệt trên chuỗi riêng biệt - họ chỉ cần ký tin nhắn (mà không cần trả Gas) và bao gồm chữ ký này cùng với giao dịch của họ để hoàn tất quyền ủy quyền trong một bước.


Quy trình cấp phép

So với phê duyệt truyền thống, Giấy phép loại bỏ nhu cầu giao dịch bổ sung trên chuỗi, tiết kiệm cả thời gian và phí Gas. Nó cũng cho phép kiểm soát chi tiết các phê duyệt. Ví dụ: người dùng có thể ký Giấy phép cho phép chi tiêu chính xác 50 USDC, chỉ có giá trị trong 5 phút. Ngay cả khi chữ ký bị lộ, nó sẽ trở nên không sử dụng được sau thời hạn, giảm rủi ro. Ngày nay, nhiều giao thức DeFi, chẳng hạn như sàn giao dịch phi tập trung và nền tảng cho vay, đã hỗ trợ Permit. Các ví dụ nổi tiếng bao gồm Uniswap V2/V3mã thông tin LP, DAI, vàUSDC, các đồng tiền này đã triển khai chuẩn EIP-2612, cho phép phê duyệt dựa trên chữ ký chỉ trong một bước.

Tuy nhiên, hạn chế lớn nhất của Permit là nó phải được triển khai trực tiếp trong hợp đồng mã thông báo. Nếu nhà phát triển mã thông báo chưa thêm phương thức permit() - có nghĩa là nó không hỗ trợ EIP-2612 - thì Permit đơn giản không thể được sử dụng. Kể từ khi EIP-2612 chỉ được giới thiệu vào năm 2020, nhiều mã thông báo cũ không bao gồm nó, và thậm chí các mã thông báo mới cũng không luôn luôn áp dụng nó. Điều này hạn chế việc áp dụng của Permit: các mã thông báo không được hỗ trợ vẫn yêu cầu luồng phê duyệt truyền thống.

Vấn đề khác là phần mềm ví tiền điện tử phải xử lý và hiển thị đúng các chữ ký Permit, thường được định dạng bằng EIP-712. Hầu hết các ví tiền chính hiện đã hỗ trợ điều này, nhưng một số vẫn hiển thị dữ liệu nguyên thủy thay vì thông điệp có thể đọc được, làm cho người dùng khó hiểu họ đang ký gì. Thiếu giao diện rõ ràng cho EIP-2612, ví tiền có thể làm trở ngại cho người dùng hiểu biết về việc phê duyệt dựa trên chữ ký. Hơn nữa, trong trường hợp triển khai song song (như hợp đồng có cùng địa chỉ trên các chuỗi khác nhau), chữ ký có thể được sử dụng lại trong các môi trường khác. Do đó, người dùng phải xác minh rằng ID chuỗi và địa chỉ hợp đồng trong chữ ký của họ phù hợp với môi trường hiện tại để ngăn ngừa việc cấp quyền cho token trên Chuỗi A bị lạm dụng bởi các địa chỉ hợp đồng giống hệt trên Chuỗi B.

Điều quan trọng là, Permit cải thiện đáng kể hiệu suất và linh hoạt của việc phê duyệt ERC-20, đánh dấu một cột mốc quan trọng trong cơ chế phê duyệt không cần gas. Tuy nhiên, đó không phải là một giải pháp hoàn hảo: nó đòi hỏi sự hỗ trợ từ cấp độ token, và nó mang lại những rủi ro mới. Tiếp theo, chúng ta sẽ xem xét cách mà Permit2 của Uniswap xây dựng và mở rộng nền tảng đã đặt bởi Permit.

Permit2: Hợp đồng Quản lý Ủy quyền Toàn cầu

Khi cơ chế Cho phép trở nên phổ biến, một thách thức mới đã nảy sinh: làm thế nào để mở rộng sự tiện lợi của việc ủy quyền dựa trên chữ ký cho các token không hỗ trợ Cho phép? Để giải quyết vấn đề này và tối ưu hóa trải nghiệm ủy quyền trên các kịch bản khác nhau, đội ngũ Uniswap giới thiệu Permit2 vào năm 2022. Không giống như một tính năng cụ thể của token, Permit2 là một hợp đồng thông minh quản lý ủy quyền độc lập. Nó hoạt động như một trung gian cho việc ủy quyền token, cung cấp chức năng ủy quyền thống nhất và tối ưu hóa. Hãy phân tích nguyên tắc và tính năng của Permit2.

Cách Permit2 Hoạt Động

Permit2 hoạt động như một dịch vụ truyền tải ủy quyền. Khái niệm cốt lõi của nó rất đơn giản: người dùng cấp một sự chấp thuận một lần cho hợp đồng Permit2, sau đó quản lý các ủy quyền con sau này đến các ứng dụng khác nhau. Đây là cách hoạt động của nó:

  1. Ủy quyền Permit2 một lần: Người dùng phê duyệt Permit2 cho mỗi mã thông báo bằng phương pháp phê duyệt truyền thống (Permit2, max_amount). Một số lượng lớn hoặc không giới hạn được khuyến nghị vì đây là sự chấp thuận chính. Sau khi hoàn thành, hợp đồng Permit2 có khả năng gọi transferFrom thay mặt cho người dùng cho mã thông báo đó. Điều này đòi hỏi một giao dịch trên chuỗi nhưng chỉ cần được thực hiện một lần.
  2. Chữ ký ngoại chuỗi cho Phụ hợp lệ: Khi người dùng muốn tương tác với một DApp (ví dụ, sử dụng Bộ định tuyến Đa token của Uniswap cho các trao đổi đa token), họ ký một thông điệp phê duyệt ngoại chuỗi theo đặc tả của Permit2. Chữ ký này bao gồm các chi tiết như token được phép, số lượng, người chi tiêu mục tiêu (như một hợp đồng DApp cụ thể), và thời gian hết hạn.
  3. Yêu Cầu Chuyển DApp Sử Dụng Chữ Ký: Khi một ứng dụng phi tập trung nhận chữ ký của người dùng và cần sử dụng các token, thay vì gọi trực tiếp vào hợp đồng token, nó gọi các chức năng của Permit2 (như permitTransferFrom). Chức năng này xác minh dữ liệu chữ ký của người dùng và xác nhận rằng hoạt động nằm trong phạm vi cho phép (token, số lượng, hạn chót). Sau khi xác minh, Permit2 sử dụng quyền phê duyệt chính của mình để gọi transferFrom, chuyển các token từ người dùng sang người nhận được chỉ định. Điểm quan trọng: Hợp đồng Permit2 chính nó hoạt động như người chi tiêu, sử dụng quyền lực của mình để chuyển token, với một bước xác minh chữ ký bổ sung.
  4. Hoàn thành hoạt động: Khi Permit2 thực hiện thành công transferFrom, tiền sẽ di chuyển suôn sẻ từ người dùng đến DApp hoặc địa chỉ được chỉ định. Từ quan điểm của người dùng, họ chỉ cung cấp chữ ký trong giao dịch, trong khi hợp đồng xử lý tất cả các hành động tiếp theo.

Quy trình ủy quyền Permit2 rất đơn giản: người dùng chỉ cần cấp quyền tối đa cho Permit2 một lần cho mỗi mã thông báo. Sau đó, khi tương tác với các ứng dụng (như Bộ định tuyến Toàn cầu Uniswap hoặc các giao thức khác), họ chỉ cần bao gồm chữ ký Permit2 trong giao dịch của họ để hoàn tất việc ủy quyền và chuyển giao, mà không cần phê duyệt thêm trên chuỗi. Hợp đồng Permit2 xác minh chữ ký và thực hiện việc chuyển giao bằng quyền phê duyệt chính của nó. (Nguồn:Giới thiệu Permit2 & Universal Router)

Thông qua mô hình này, Permit2 mở rộng khái niệm ủy quyền dựa trên chữ ký của EIP-2612 cho tất cả các token ERC-20, bất kể chúng có tự triển khai phương thức permit() hay không. Miễn là người dùng ban đầu ủy quyền cho hợp đồng Permit2, họ có thể sử dụng chữ ký cho các hoạt động tiếp theo. Đáng chú ý, Uniswap đã thiết kế Permit2 như một hợp đồng không chủ sở hữu, không thể nâng cấp được triển khai với cùng một địa chỉ trên mạng chính Ethereum và nhiều mạng Lớp 2. Điều này có nghĩa là tất cả các ứng dụng thực sự sử dụng cùng một phiên bản Permit2, đạt được chức năng "phê duyệt một lần, sử dụng ở mọi nơi" thực sự.

Các tính năng chính của Permit2

Là một hệ thống ủy quyền thế hệ tiếp theo, Permit2 không chỉ cho phép các phê duyệt dựa trên chữ ký cho tất cả các token mà còn cung cấp các tính năng bổ sung để tăng cường bảo mật và tính khả dụng. Dưới đây là những tính năng chính của nó:

Hết hạn tự động
Tất cả các sự cho phép Permit2 đều có thể bao gồm một dấu thời gian để hết hạn. Người dùng có thể chỉ định khi sự cho phép con của họ nên hết hạn khi ký. Khi thời hạn đã qua, Permit2 sẽ từ chối chữ ký, ngay cả khi sự chấp thuận chính vẫn hoạt động. Điều này một cách hiệu quả giải quyết rủi ro của việc sự chấp thuận vô thời hạn vẫn còn tồn tại mà không sử dụng.

Chuyển Giao Chữ Ký Một Lần Sử Dụng
Permit2 cung cấp chế độ chuyển chữ ký trực tiếp, trong đó người dùng có thể ủy quyền việc chuyển một loại token cụ thể cho người nhận chỉ bằng một chữ ký, mà không cần thiết lập phép ủy quyền trước. Điều này hoàn hảo cho các kịch bản thanh toán một lần: người dùng có thể ký một tin nhắn ủy quyền chuyển 100 token đến địa chỉ của bạn bè, và người bạn hoặc trung gian có thể thực hiện việc chuyển bằng chữ ký này. Khi đã sử dụng, chữ ký trở thành không hợp lệ, không còn quyền hạn lưu lại.

Chấp nhận và Chuyển khoản hàng loạt
Permit2 ưu tiên hiệu suất bằng cách cho phép xử lý theo lô của nhiều phê duyệt hoặc chuyển khoản. Người dùng có thể ủy quyền một số lượng khác nhau của nhiều mã thông báo cho một giao thức duy nhất chỉ với một chữ ký, hoặc thực hiện chuyển khoản của nhiều mã thông báo trong một giao dịch duy nhất. Điều này giúp tiết kiệm Gas và giảm bước cho người dùng nâng cao.

Thu hồi lô hàng
Bên cạnh việc phê duyệt hàng loạt, người dùng có thể thu hồi quyền cho nhiều token/ứng dụng trong một giao dịch duy nhất. Điều này khiến việc dọn dẹp các quyền phê duyệt lịch sử trở nên thuận tiện hơn nhiều.

Chứng kiến dữ liệu bổ sung
Permit2 bao gồm các giao diện như cho phép chuyển giao chứng nhận từđược phép bao gồm dữ liệu xác minh bổ sung trong chữ ký. Điều này hỗ trợ những tình huống phức tạp hơn, như bao gồm thông tin giao dịch cụ thể trong chữ ký để ngăn chặn việc tái sử dụng chữ ký trong ngữ cảnh khác nhau.

Thông qua các tính năng này, Permit2 không chỉ tái tạo tất cả các lợi ích của Giấy phép mà còn tăng cường tính linh hoạt và kiểm soát an ninh. Đặc biệt, việc hết hạn tự động và chuyển chữ ký sử dụng một lần làm cho việc ủy quyền cần thiết tối thiểu trở thành tiêu chuẩn, giảm rủi ro lâu dài.

Để tóm tắt, Permit2 hoạt động như một phần mở rộng và cải tiến của cơ chế Permit truyền thống. Hãy xem xét các khác biệt chính giữa hai phương pháp này:

Sự Áp Dụng Và Triển Khai Hệ Sinh Thái Permit2

Kể từ khi Uniswap giới thiệu Permit2, nhiều dự án đã tích hợp cơ chế này, tăng tốc quá trình tiêu chuẩn hóa ngành công nghiệp. Theo dữ liệu mới nhất từ Dune Analytics, tính đến tháng 4 năm 2025, hơn 3,1 triệu địa chỉ trên Ethereum mainnet đã cấp quyền cho hợp đồng Permit2, cho thấy sự phổ biến của nó.


Tình hình Hệ sinh thái và Triển khai của Permit2. Nguồn:Dune Analytics

Ví dụ, Uniswap đã tích hợp Permit2 vào Bộ định tuyến Phổ quát của mình, cho phép trao đổi nhiều mã thông báo và NFT trong một giao dịch duy nhất. Thông qua Bộ định tuyến Phổ quát, người dùng có thể liên kết nhiều hoạt động trong một giao dịch, chẳng hạn như trao đổi ba mã thông báo để có hai mã thông báo mục tiêu và mua NFT, với tất cả các yêu cầu ủy quyền được xử lý bởi chữ ký Permit2. Điều này đáng kể tối ưu hóa quy trình và giảm chi phí Gas tổng cộng, thể hiện tác động trực tiếp của Permit2 vào việc cải thiện trải nghiệm người dùng.

Hơn nữa, với việc triển khai mã nguồn mở của Permit2 trên nhiều chuỗi khác nhau, một số lượng ngày càng tăng của ví và công cụ DApp đã bắt đầu hỗ trợ nó. Các công cụ bảo mật như Revoke.cash đã cập nhật dịch vụ của họ để cho phép người dùng xem và thu hồi các bản ghi ủy quyền Permit2. Matcha cũng đã triển khai mô-đun SignatureTransfer của Permit2, cho phép cơ chế "ủy quyền một lần".

Mặc dù đã có tiến triển, việc áp dụng rộng rãi của Permit2 đối mặt với thách thức. Một mặt, các nhà phát triển cần thêm thời gian cho việc tích hợp: so với việc sử dụng phê duyệt của ERC-20 trực tiếp, triển khai Permit2 đòi hỏi xử lý logic chữ ký, tăng chi phí phát triển. Điều này có thể ngăn cản các nhóm nhỏ hơn. Mặt khác, việc giáo dục người dùng rất quan trọng: nhiều DApps sử dụng Permit2 cần giảng dạy người dùng về ý nghĩa của chữ ký. Hiện tại, các lợi ích thống nhất của Permit2 dường như vượt qua những điểm ma sát này, nhưng thâm nhập thị trường đầy đủ vẫn sẽ mất thời gian.

So sánh Permit2 với các giải pháp mới: Session Keys và ERC-4337

Trong 8 năm qua, cơ chế ủy quyền ERC-20 đã phát triển từ nhiều giao dịch thành chữ ký không tốn gas và hiện đến tài khoản thông minh. Mỗi bước tiến đã tìm cách tối ưu hóa cân bằng giữa trải nghiệm người dùng (giảm yêu cầu giao dịch và chữ ký) và chi phí gas. Dưới đây là một so sánh về các công nghệ này:


Ngoài Permit2, hai giải pháp ủy quyền mới nổi bật đáng chú ý là Session Keys vàERC-4337 Tài khoản Trừu tượng hóa, mỗi cái cung cấp các phương pháp tiếp cận riêng biệt đối với vấn đề.

Session Keys đặc biệt độc đáo, vì chúng không phải là mô hình ủy quyền nghiêm ngặt mà thay vào đó là cơ chế khóa tạm thời ở cấp độ ví hoặc tài khoản. Thay vì sửa đổi hợp đồng token, chúng cho phép các ví tạo ra các khóa riêng tư tạm thời có hạn, hạn chế số lượng cho các hoạt động cụ thể. Điều này làm cho chúng lý tưởng cho việc mua các mặt hàng trong trò chơi và thanh toán siêu nhỏ một lần. Trọng tâm của chúng là giảm thiểu rủi ro ủy quyền đơn lẻ, được thiết kế đặc biệt cho các tương tác tạm thời của người dùng, khác với phương pháp sửa đổi hợp đồng của Permit/Permit2.

ERC-4337 thực hiện một cách tiếp cận khác bằng cách nhúng logic ủy quyền trực tiếp vào tài khoản thông minh, cho phép người dùng tùy chỉnh điều kiện ủy quyền và có thể bỏ qua các bước phê duyệt truyền thống. Thông qua cơ chế UserOperation và Paymaster linh hoạt, nó đạt được bảo mật và trải nghiệm người dùng tốt hơn.

Nhìn vào xu hướng tương lai, những giải pháp khác nhau này có khả năng cùng tồn tại. Trong tương lai ngắn hạn, Permit2 sẽ tiếp tục là tiêu chuẩn cho các ứng dụng phi tập trung mới nổi, cải thiện trải nghiệm người dùng thông qua việc ủy quyền một lần trong khi thúc đẩy giáo dục về bảo mật và hỗ trợ công cụ để giảm thiểu rủi ro lừa đảo. Trong tương lai trung hạn, khi ERC-4337 và sự trừu tượng tài khoản trở nên phổ biến hơn trên các Layer 2 và mainnets, người dùng sẽ có thể thoát ra khỏi các hạn chế phê duyệt ERC-20 truyền thống, quản lý ủy quyền một cách chính xác và thông minh hơn, tiềm năng giảm thiểu nhu cầu sử dụng Permit2.

Tầm nhìn dài hạn là tạo ra một trải nghiệm ủy quyền mượt mà và trực quan như Web2, nơi người dùng chỉ cần nhấp vào một nút và tất cả các phê duyệt cần thiết diễn ra tự động ở nền, với các lời nhắc rõ ràng chỉ xuất hiện trong các tình huống rủi ro cao. Để đạt được tầm nhìn này sẽ đòi hỏi sự hợp tác liên tục và sáng tạo trên các giao thức cơ bản, ví và ứng dụng phi tập trung. Permit2 đại diện cho một bước quan trọng trong hành trình chuyển đổi này, nhưng vẫn còn một quãng đường dài phía trước trước khi đạt được trạng thái lý tưởng. Trên con đường này, cả cộng đồng và các nhà phát triển nên duy trì một cách tiếp cận thực dụng, hiểu rõ đầy đủ về các điểm mạnh và hạn chế của mỗi giải pháp và cùng nhau làm việc để xây dựng một môi trường ủy quyền an toàn và thân thiện với người dùng hơn.


Nhìn chung, Permit2 cung cấp một giải pháp thiết thực có thể được thực hiện ngay lập tức, trong khi các công nghệ như Khóa phiên và ERC-4337 hướng tới những cải tiến cơ bản và lâu dài hơn trong cách xử lý ủy quyền.

Rủi ro an ninh của việc ủy quyền dựa trên chữ ký

Như với bất kỳ công nghệ mới nào, Permit và Permit2 không chỉ giới thiệu hiệu suất mới mà còn mang đến những rủi ro mới, đặc biệt là về các cuộc tấn công ủy quyền dựa trên chữ ký.

Trong các hệ thống dựa trên chữ ký như Permit2 và EIP-2612 Permit, thiết kế hợp đồng cốt lõi bao gồm nhiều lớp bảo vệ để ngăn chặn việc sử dụng sai mục đích và các cuộc tấn công phát lại:

1. Bảo vệ Phát lại Dựa trên Nonce

Permit2 duy trì một bộ đếm nonce riêng biệt cho mỗi bộ ba (chủ sở hữu, mã thông báo, người chi) . Mỗi khi người dùng ký một sự cho phép mới, nonce tương ứng được tăng lên. Nếu một kẻ tấn công cố gắng tái sử dụng một chữ ký cũ, nó sẽ thất bại vì hợp đồng kiểm tra xem nonce đã được sử dụng hay chưa.

2. Thực thi thời hạn

Mỗi chữ ký phải bao gồm trường thời hạn. Khi hợp đồng xác thực chữ ký, nó đảm bảo thời gian khối hiện tại nhỏ hơn hoặc bằng thời hạn. Nếu chữ ký đã hết hạn — ngay cả khi nó vẫn hợp lệ — nó sẽ bị từ chối. Điều này ngăn chặn việc sử dụng sau này các quyền ủy quyền kéo dài.

3. Kiểm soát Phép Ứng Biến Tốt

Chữ ký Permit2 có thể chỉ định một phần phép tối đa. Trước khi bất kỳ chuyển token nào xảy ra, hợp đồng kiểm tra xem số lượng yêu cầu có nằm trong giới hạn này không. Hợp đồng không tự động chi tiêu toàn bộ số lượng được phê duyệt, cho phép người dùng sử dụng phần phép của họ và giảm thiểu rủi ro của một cuộc tấn công tiêu tốn toàn bộ.

4. Chế Độ Sử Dụng Một Lần và Theo Lô

Ngoài việc phê duyệt dựa trên trợ cấp liên tục, Permit2 cũng hỗ trợ chữ ký sử dụng một lần thông qua SignatureTransfer. Những chữ ký này chỉ có giá trị cho một giao dịch và trở nên không hợp lệ ngay sau khi thực hiện. Điều này lý tưởng cho các khoản thanh toán một lần và ngăn chữ ký được sử dụng lại hoặc khai thác sau này.

Những lớp bảo vệ này giúp cho các hệ thống ủy quyền kiểu Giấy phép cải thiện trải nghiệm người dùng và tiết kiệm gas đồng thời giảm thiểu các rủi ro cổ điển như "các cuộc tấn công phát lại", "quá ủy quyền", và "độ tin cậy chữ ký vô thời hạn".

Tuy nhiên, ngay cả khi có sự bảo vệ an toàn ở mức hợp đồng, kỹ thuật xã hội (đặc biệt là lừa đảo) vẫn là mối đe dọa khó nhất để đối phó. Ở phần tiếp theo, chúng tôi sẽ xem xét các chiến thuật lừa đảo phổ biến và cách mà kẻ tấn công lừa người dùng ký phê duyệt độc hại mà không hề hay biết sử dụng Permit2. Chúng tôi cũng sẽ cung cấp mẹo để giữ an toàn.

Làm thế nào để xảy ra các cuộc tấn công lừa đảo chữ ký?

Lừa đảo chữ ký xảy ra khi kẻ tấn công lừa nạn nhân ký các tin nhắn cụ thể để chiếm quyền kiểm soát tài sản của họ. Trong khi các cuộc tấn công truyền thống có thể liên quan đến việc thực thi các hợp đồng hay giao dịch độc hại, trong thời đại Permit, một quyền ủy quyền chữ ký độc hại duy nhất là đủ để rút tiền. Dưới đây là cách các cuộc tấn công này thường diễn ra:

  1. Nạn nhân nhấp vào phiên bản giả mạo của trang web DEX nổi tiếng (trang web lừa đảo). Khi người dùng cố gắng tương tác, trang web yêu cầu chữ ký ví, tuyên bố rằng đó là để “xác nhận đăng nhập” hoặc mục đích khác có vẻ hợp lệ. Tuy nhiên, yêu cầu này thực sự là chữ ký ủy quyền Permit2, cấp cho hợp đồng của kẻ tấn công quyền rút USDC của nạn nhân một cách không giới hạn với một thời hạn hiệu lực kéo dài.
  2. Nạn nhân, thiếu cảnh giác, ký yêu cầu trực tiếp. Tại thời điểm này, không có chi phí gas nào và không có hoạt động trên chuỗi xảy ra, không để lại dấu vết nghi ngờ nào.
  3. Khi kẻ tấn công có được chữ ký, họ ngay lập tức gọi hàm permit() của hợp đồng Permit2 để gửi nó. Sau khi hợp đồng Permit2 xác minh chữ ký, nó ghi nhận sự cho phép cho hợp đồng của kẻ tấn công dưới địa chỉ của nạn nhân (tương đương với việc nạn nhân thực hiện một approve, nhưng được hoàn thành bởi kẻ tấn công). Thao tác này có thể vẫn không được nạn nhân nhận thấy vì ví của họ không hiển thị bất kỳ chi phí nào - chỉ có bản đồ phân phối token của họ được cập nhật trên blockchain.
  4. Sau đó, kẻ tấn công ngay lập tức khởi xướng một giao dịch transferFrom(victim, attacker_address, amount) từ địa chỉ của họ, thành công chuyển USDC của nạn nhân bằng quyền ủy thác Permit2 gần đây. Nạn nhân chỉ nhận ra vụ trộm khi đã quá muộn.

Trong các cuộc tấn công này, người dùng không bao giờ thực hiện bất kỳ giao dịch "chuyển nhượng" hoặc "ủy quyền" rõ ràng nào, nhưng tài sản của họ biến mất một cách bí ẩn. Chìa khóa nằm ở việc chữ ký trở thành ủy quyền. Những kẻ tấn công cẩn thận ngụy trang các yêu cầu chữ ký để xuất hiện như các hoạt động bình thường, hạ thấp cảnh giác của người dùng. Tuy nhiên, một khi đã ký, nó giống như bàn giao chìa khóa cho tài sản của bạn.

Thậm chí tồi tệ hơn, một số kẻ tấn công sử dụng các phương pháp kỹ thuật để tăng tính ẩn danh. Ví dụ, họ sử dụng cơ chế CREATE2 của Ethereum để tạo ra các địa chỉ hợp đồng độc hại duy nhất cho mỗi nạn nhân. Điều này khiến các danh sách đen truyền thống trở nên không hiệu quả vì mỗi cuộc tấn công sử dụng một địa chỉ khác nhau.

Hầu hết các vụ lừa đảo tiền điện tử gần đây đều liên quan đến việc xác minh chữ ký. Ví dụ, Scam Sniffer’sthống kêTừ đầu năm 2024, số liệu cho thấy hơn 55 triệu đô la tài sản bị đánh cắp thông qua lừa đảo chữ ký chỉ trong một tháng. Kể từ khi kích hoạt của Permit2, kẻ tấn công đã trở nên hung hãn hơn trong việc thuyết phục người dùng ký quyền cho các phép lệnh/Permit2, dẫn đến nhiều nạn nhân trong thời gian ngắn. Rõ ràng, khi quyền ký quyền được lạm dụng, nó có thể gây thiệt hại nặng nề và khó phát hiện.

Tại sao rủi ro lừa đảo dựa trên chữ ký cao hơn so với các phương pháp truyền thống?

Quyền cho phép độc hại theo cách truyền thống đòi hỏi người dùng thực hiện giao dịch trên chuỗi, nơi ví thông thường hiển thị cảnh báo rõ ràng như 'Bạn đang cho phép XXX sử dụng token của bạn' và yêu cầu phí gas. Người dùng có kinh nghiệm thường cẩn trọng hơn với những điều này. Tuy nhiên, yêu cầu chữ ký trên giao diện ví thường chỉ được mô tả đơn giản là 'yêu cầu chữ ký dữ liệu' chứ không phải là hành động tài chính, khiến người dùng giảm sự cảnh giác. Hơn nữa, vì chữ ký không tốn phí gas, kẻ tấn công có thể tiến hành các cuộc tấn công lừa đảo quy mô lớn mà không cần lo lắng về chi phí - họ có lợi nhuận ngay cả khi chỉ có một vài cuộc tấn công thành công.

Ngoài ra, các ví cụ khác nhau hiển thị các tin những EIP-712 theo cách khác nhau. Một số ví tiện điện tử hiện đại (như phiên bản mới nhấtMetaMask ) phân tích và hiển thị các trường rõ ràng, hiển thị thông báo như “ủy quyền hợp đồng để chi tiêu X số lượng token của bạn.” Tuy nhiên, nhiều ví tiền chỉ hiển thị dữ liệu thập lục phân hoặc mô tả đơn giản, làm cho việc xác minh tính xác thực trở nên khó khăn đối với người dùng bình thường. Kẻ tấn công lợi dụng điều này bằng cách nhúng mô tả đánh lừa trong các thông báo (như giả vờ là chữ ký NFT mint) để lừa người dùng ký.

Vì các chữ ký ủy quyền không ảnh hưởng ngay lập tức đến tài sản, nạn nhân có thể không phát hiện nguy cơ ngay lập tức. Kẻ tấn công có thể chọn thời điểm chiến lược để tấn công. Thay vì thực hiện ngay lập tức, họ có thể chờ đợi cho đến khi ví của nạn nhân chứa nhiều tài sản hơn hoặc đến một thời điểm cụ thể, điều này làm phức tạp hơn việc theo dõi. Với các chữ ký có thời hạn hiệu lực kéo dài, kẻ tấn công cũng có thể lợi dụng các biến động giá để tối đa hóa lợi nhuận của họ, hiệu quả mang lại cho họ một lựa chọn giao dịch miễn phí. Nguy cơ này giải thích tại sao các chữ ký cho phép thường áp đặt các hạn chót ngắn.

Khả năng của Permit2 để ủy quyền nhiều mã thông báo chỉ với một chữ ký duy nhất làm cho người dùng khó hiểu rõ ràng về những hệ quả. Ví dụ, một trang web lừa đảo có thể yêu cầu một chữ ký Permit2 trong khi đặt nổi bật quyền cho chỉ một hoặc hai mã thông báo, nhưng ẩn mình nhúng quyền rộng lớn cho các mã thông báo bổ sung trong cùng một chữ ký. Người dùng có thể dễ dàng bỏ qua những quyền ẩn này nếu ví của họ không hiển thị tất cả chi tiết một cách rõ ràng. Hơn nữa, kẻ tấn công thường sử dụng các tên hợp đồng lừa dối như “WalletGuard” trong chữ ký của họ, che giấu các hợp đồng độc hại được thiết kế để đánh cắp quyền mã thông báo.

Làm thế nào người dùng có thể bảo vệ bản thân khỏi các cuộc tấn công chữ ký?

Hãy nhớ rằng việc ký kết tương đương với việc đồng ý - đừng bao giờ để việc không có phí xăng khiến bạn bất cẩn. Khi ví của bạn yêu cầu chữ ký, hãy đọc kỹ chi tiết tin nhắn. Đảm bảo trang web hoặc DApp yêu cầu chữ ký là hợp pháp và nội dung tin nhắn phù hợp với hành động dự định của bạn. Ví dụ: nếu bạn chỉ đăng nhập vào một trang web, chữ ký phải chứa văn bản đăng nhập có thể đọc được (như hầu hết các DApp sử dụng), không phải là một chuỗi địa chỉ và số mã thông báo.

Đảm bảo phần mềm ví của bạn hỗ trợ hiển thị dữ liệu EIP-712. Các ví lớn như MetaMask,TrustWalletLedger Liveđang cải thiện trải nghiệm hiển thị nội dung chữ ký của họ. Ví dụ, MetaMask hiện có thể phân tích các thông báo quyền thông thường thành ngôn ngữ thông thường. Nếu ví của bạn chỉ hiển thị dữ liệu hexa dài khi ký, hãy xem xét chuyển đổi hoặc cập nhật. Người dùng ví cứng cũng nên cập nhật firmware của họ để hỗ trợ các định dạng mới, hoặc họ có thể không nhìn thấy thông tin chính xác trên màn hình.

Dù sử dụng chữ ký Permit hay Permit2, bạn thường có thể điều chỉnh các tham số ủy quyền. Đừng ký cho số lượng không giới hạn (giá trị = 2^256-1) trừ khi hoàn toàn cần thiết - thay vào đó, chỉ ủy quyền số lượng bạn cần cộng với một bộ đệm nhỏ. Ngoài ra, đừng đặt hạn chót quá xa trong tương lai. Điều này sẽ giúp giới hạn các thiệt hại tiềm năng, và chữ ký sẽ cuối cùng hết hạn.

Phát triển thói quen thường xuyên kiểm tra trạng thái ủy quyền địa chỉ của bạn bằng các công cụ như Revoke.cash, Phê duyệt mã thông báo Etherscan hoặc các tính năng tích hợp trong ví của bạn. Điều này bao gồm cả phê duyệt truyền thống và phụ cấp Permit2. Nếu bạn phát hiện bất kỳ ủy quyền đáng ngờ hoặc không cần thiết nào, hãy thu hồi chúng ngay lập tức. Đối với Permit2, hãy lưu ý hai cấp độ thu hồi: thứ nhất, ủy quyền chính (bạn chấp thuận chính hợp đồng Permit2, mà bạn có thể muốn đặt thành 0 khi không sử dụng); thứ hai, ủy quyền phụ (các khoản phụ cấp của Permit2 cho các DApp khác nhau, thường tự động hết hạn nhưng có thể bị chấm dứt sớm nếu chúng có thời hạn hiệu lực dài). Nếu bạn nghi ngờ mình đã ký một Giấy phép đáng ngờ, hành động an toàn nhất là ngay lập tức điều chỉnh nonce: ký giấy phép mới cho cùng một người chi tiêu (ngay cả với 0 khoản trợ cấp) để vô hiệu hóa chữ ký cũ thuộc sở hữu của kẻ tấn công.

Luôn cẩn thận khi truy cập các trang web lạ hoặc tải ứng dụng. Không bấm vào các liên kết không rõ, đặc biệt là “ưu đãi quảng cáo” hoặc “sự kiện đúc” được chia sẻ qua quảng cáo trên mạng xã hội hoặc tin nhắn riêng. Rất nhiều nỗ lực lừa đảo diễn ra thông qua các tài khoản chính thức giả mạo đăng tải liên kết hoạt động gian lận, dẫn đến yêu cầu chữ ký. Hãy tạo thói quen nhập trực tiếp URL DApp chính thức hoặc sử dụng các đánh dấu trang để tránh rơi vào các trang web giả mạo.

Tóm lại, đạt được sự cân bằng giữa sự tiện lợi và bảo mật là rất quan trọng. Mặc dù các công nghệ Giấy phép rất tiện lợi, nhưng người dùng phải cảnh giác về phòng ngừa rủi ro. Khi hệ sinh thái trưởng thành, các sản phẩm ví và plugin trình duyệt đang phát triển khả năng bảo vệ chống lại lừa đảo chữ ký, chẳng hạn như cảnh báo chữ ký liên quan đến số lượng lớn. Chúng tôi mong muốn mitiGate.io các cuộc tấn công như vậy thông qua cả cải tiến kỹ thuật và giáo dục trong tương lai.

Kết luận

Từ những hạn chế của các mô hình ủy quyền ERC-20 truyền thống đến sự ra đời của Permit, và sau đó là sự sáng tạo đột phá Permit2 của Uniswap, chúng ta đã chứng kiến sự nỗ lực của hệ sinh thái Ethereum để cải thiện trải nghiệm người dùng và bảo mật. Permit2 giảm đáng kể quy trình ủy quyền mã thông qua chữ ký ngoại tuyến, giảm thiểu các rủi ro của việc phê duyệt lặp lại và quyền hạn không giới hạn, đồng thời giới thiệu các tính năng hữu ích như cơ chế hết hạn và các hoạt động theo lô. Tuy nhiên, những cơ chế mới này đi kèm với trách nhiệm mới—người dùng cần nâng cao nhận thức về an ninh, trong khi ví tiền và ứng dụng phi tập trung phải cùng nhau bảo vệ người dùng khỏi các cuộc tấn công chữ ký. Nhìn vào tương lai, với sự phát triển công nghệ tiếp theo, như trừu tượng hóa tài khoản, quản lý ủy quyền mã thông tin được dự kiến sẽ trở nên mượt mà và an toàn hơn.

Penulis: John
Penerjemah: Sonia
Pengulas: Pow、KOWEI、Elisa
Peninjau Terjemahan: Ashley、Joyce
* Informasi ini tidak bermaksud untuk menjadi dan bukan merupakan nasihat keuangan atau rekomendasi lain apa pun yang ditawarkan atau didukung oleh Gate.io.
* Artikel ini tidak boleh di reproduksi, di kirim, atau disalin tanpa referensi Gate.io. Pelanggaran adalah pelanggaran Undang-Undang Hak Cipta dan dapat dikenakan tindakan hukum.
Mulai Sekarang
Daftar dan dapatkan Voucher
$100
!