Tài trợ gas và paymaster, giải thích

·8 phút đọc·Bởi SSP Editorial Team
Sơ đồ một paymaster ERC-4337 chi trả gas cho một UserOperation thay mặt người dùng tự lưu ký

Tài trợ gas và paymaster, giải thích

Mọi giao dịch trên Ethereum đều tốn gas, và trên một tài khoản truyền thống, người gửi giao dịch chính là người trả phí cho nó, bằng đồng coin gốc của chain. Chính quy tắc duy nhất đó là lý do khiến một người dùng mới nắm giữ stablecoin nhưng không có ETH có thể rơi vào tình cảnh không thể di chuyển chính tiền của mình. Account abstraction phá vỡ mối ràng buộc đó, và bộ phận máy móc thực hiện việc phá vỡ ấy là paymaster. Bài viết này giải thích paymaster trong ERC-4337 là gì, nó nằm ở đâu trong luồng, và — quan trọng nhất — tài trợ gas thực sự có ý nghĩa gì đối với một người tự giữ khóa của mình.

Đây là bài thứ tư trong loạt bài về account abstraction của chúng tôi. Nếu các thuật ngữ bên dưới còn xa lạ, hãy bắt đầu với Account abstraction từ những nguyên lý đầu tiên; còn về mô hình phí nền tảng mà tài trợ gas đặt lên trên, hãy đọc Phí gas trên Ethereum giải thích cho người dùng tự lưu ký.

paymaster thực ra là gì

Paymaster là một smart contract. Nhiệm vụ duy nhất của nó là đồng ý chi trả gas cho operation của người khác. Theo ERC-4337, khi một smart account diễn đạt điều nó muốn làm dưới dạng một UserOperation, operation đó có thể chỉ định một paymaster. Nếu paymaster đồng ý, thì chính nó — chứ không phải tài khoản — thanh toán chi phí gas với mạng lưới.

Có hai biến thể của việc này, và chúng giải quyết hai vấn đề khác nhau của người dùng:

  • Tài trợ gas hoàn toàn. Paymaster trả phí thay cho người dùng, và người dùng không trả gì cho gas. Đó là điều người ta muốn nói khi nói "không gas".
  • Chấp nhận thanh toán bằng một token ERC-20. Paymaster trả gas cho mạng lưới bằng đồng coin gốc, rồi thay vào đó tính phí người dùng bằng một token ERC-20 — chẳng hạn một stablecoin. Người dùng không bao giờ phải nắm giữ ETH; họ thanh toán bằng token mà họ vốn đã có.

Trong cả hai trường hợp, mạng lưới vẫn được trả bằng đồng coin gốc. Gas không trở nên miễn phí; câu hỏi duy nhất là ai tài trợ nó và người dùng cảm nhận chi phí ấy bằng đơn vị nào.

paymaster nằm ở đâu trong luồng

Để hiểu vì sao có thể tin tưởng một paymaster sẽ trả tiền, sẽ hữu ích nếu nhớ lại một operation ERC-4337 di chuyển ra sao. Một smart account không gửi một giao dịch thông thường. Nó phát ra một UserOperation vào một mempool riêng. Một bundler thu thập chúng, đóng gói lại với nhau và gửi lên on-chain thông qua hợp đồng EntryPoint đã được kiểm toán, vốn gọi vào từng tài khoản để chạy logic xác thực của tài khoản đó trước khi thực thi.

Paymaster vào cuộc trong bước xác thực. Khi EntryPoint xử lý một UserOperation có chỉ định một paymaster, nó gọi chính hàm xác thực của paymaster. Paymaster soi xét operation và quyết định, ngay tại đó, liệu nó có sẵn lòng chi trả gas hay không. Nếu đồng ý, nó thực chất bảo đảm việc thanh toán cho EntryPoint, và operation tiếp diễn. Nếu từ chối, operation không được tài trợ — hoặc nó quay về việc tài khoản tự trả, hoặc nó không được thông qua theo các điều khoản đó.

Mô hình tư duy quan trọng là thế này: tài trợ là một quyết định được đưa ra tại thời điểm xác thực, bởi một hợp đồng, về một operation cụ thể. Nó không phải một lời hứa bao trùm. Một paymaster nhìn vào operation này và nói có hoặc không.

tài trợ gas có ích cho điều gì

Tách rời người trả phí khỏi người gửi mở ra một nhúm mô thức cụ thể:

  • Onboarding được tài trợ. Một người dùng mới có thể hoàn tất hành động đầu tiên của mình — một swap, một mint, một lần nhận — mà không cần trước hết phải mua token gas gốc trên một sàn giao dịch. Loại bỏ bước "bạn phải mua ETH trước khi làm bất cứ điều gì" là một trong những sự giảm ma sát lớn nhất mà account abstraction mang lại.
  • Phí được dApp tài trợ. Một ứng dụng có thể chọn trả gas cho người dùng của mình như một quyết định sản phẩm, giống như một ứng dụng web hấp thụ chi phí máy chủ. Người dùng nhấp chuột; paymaster của ứng dụng chi trả cho operation.
  • Trả phí bằng một stablecoin. Thay vì giữ một số dư ETH riêng chỉ để dành cho gas, người dùng có thể trả phí bằng chính token mà họ đang giao dịch. Paymaster nhận token và ứng trước đồng coin gốc cho mạng lưới.

Mỗi trường hợp trong số này là một hiện thân của cùng một nguyên thủy — một hợp đồng sẵn lòng trả gas theo các điều kiện do chính nó đặt ra — được áp dụng vào một vấn đề khác nhau.

"Được tài trợ" không phải là "miễn phí"

Cũng đáng nói thẳng về mặt kinh tế, bởi từ "không gas" mời gọi một sự hiểu lầm. Mạng lưới luôn thu gas bằng đồng coin gốc. Khi một giao dịch "được tài trợ", chi phí đó không biến mất; ai đó đã đồng ý hấp thụ nó. Một paymaster phải được cấp vốn, và bất kỳ ai cấp vốn cho nó — một ứng dụng, một giao thức, một dịch vụ — đang trả tiền thật cho đặc quyền loại bỏ ma sát.

Điều đó có hai hệ quả mà một người dùng tự lưu ký nên ghi nhớ:

  • Một paymaster có thể từ chối. Vì tài trợ là một quyết định theo từng operation, không có gì bảo đảm rằng một operation bất kỳ nào đó sẽ được chi trả. Các chương trình tài trợ có thể có quy tắc đủ điều kiện, mức trần chi tiêu, hoặc đơn giản là cạn vốn. "Không gas" là một đặc tính của một luồng cụ thể, chứ không phải một thuộc tính của chain.
  • Bạn nên biết paymaster nào đang tham gia. Một paymaster là một hợp đồng tham gia vào giao dịch của bạn. Cũng như với bất kỳ hợp đồng nào bạn tương tác, việc hiểu paymaster đó là của ai và nó làm gì là điều đáng làm — tài trợ một khoản phí thì vô hại, nhưng niềm tin vẫn quan trọng. Khi bạn trả phí bằng một token, bạn cũng đang chấp nhận bất kỳ tỷ giá nào mà paymaster áp dụng giữa token đó và đồng coin gốc.

Không điều nào trong số này là lý do để né tránh paymaster. Đó là lý do để hiểu chúng: một giao dịch được tài trợ là một dịch vụ ai đó đang cung cấp, chứ không phải một bữa trưa miễn phí mà giao thức phát ra.

Điều này có ý nghĩa gì với tự lưu ký

Đây là phần quan trọng nhất đối với một người nắm giữ khóa của chính mình, và rất dễ hiểu ngược. Tài trợ gas thay đổi ai trả phí. Nó không thay đổi ai kiểm soát tiền.

Khi một paymaster chi trả gas cho bạn, bạn vẫn ký operation bằng chính khóa của mình. Paymaster không thể di chuyển tài sản của bạn, chuyển hướng giao dịch của bạn, hay ủy quyền bất cứ điều gì thay mặt bạn — nó chỉ có thể đồng ý trả phí cho operation mà bạn đã ủy quyền. Việc lưu ký vẫn nguyên vẹn. Bạn vẫn là bên duy nhất có thể phê duyệt một lần chuyển tiền của bạn; paymaster chỉ đơn thuần tình nguyện trả phí cầu đường cho một chuyến đi mà bạn đã quyết định thực hiện.

Riêng với SSP, điều này ăn khớp tự nhiên với mô hình bảo mật. SSP là một ví tự lưu ký được xây dựng quanh multisig 2-of-2: một khóa nằm trong tiện ích trình duyệt SSP Wallet, khóa thứ hai nằm trong ứng dụng di động SSP Key, cả hai đều cần thiết để phê duyệt mọi giao dịch. Trên các chain EVM, SSP là một smart account ERC-4337 xác minh một chữ ký Schnorr tổng hợp 2-of-2, đã được Halborn kiểm toán năm 2025. Bởi vì nó là một tài khoản ERC-4337, cơ chế gas của chuẩn này — bao gồm khả năng một UserOperation được một paymaster trả phí — áp dụng cho nó theo cùng cách áp dụng cho bất kỳ tài khoản ERC-4337 nào. Thiết kế đầy đủ được trình bày trong kiến trúc account abstraction của SSP.

Để nói chính xác điều này hứa hẹn gì và không hứa hẹn gì: ERC-4337 cho phép tài trợ gas và các luồng thanh toán bằng token, và các tài khoản của SSP tồn tại bên trong chuẩn đó. Việc một giao dịch cụ thể bạn thực hiện có được tài trợ, hay có thể trả bằng một token, hay không phụ thuộc vào ứng dụng hoặc luồng ví bạn đang dùng và việc có một paymaster tham gia cho operation đó hay không. Trái lại, sự bảo đảm lưu ký hai khóa luôn có hiệu lực, bất kể ai trả gas.

Điểm mấu chốt

Một paymaster là một hợp đồng có thể trả gas của một UserOperation thay mặt người dùng, hoặc cho phép gas đó được trả bằng một token ERC-20 thay vì đồng coin gốc. Nó đồng ý điều này trong lúc xác thực, theo từng operation, và nó có thể từ chối. Nó cho phép onboarding không gas, phí được dApp tài trợ, và gas bằng stablecoin — những tiện lợi thực sự hạ thấp rào cản giao dịch. Nhưng "được tài trợ" nghĩa là "được ai đó cấp vốn", chứ không phải "miễn phí", và paymaster không bao giờ giành được bất kỳ quyền kiểm soát nào đối với tài sản của bạn. Đối với một người dùng tự lưu ký, đây là phần tóm tắt gọn gàng: paymaster có thể thay đổi ai trả tiền cho chuyến đi, nhưng bạn vẫn nắm giữ chìa khóa xe.

Phần còn lại của loạt bài này

  1. Account abstraction từ những nguyên lý đầu tiên — vì sao EOA mang tính giới hạn và account abstraction nghĩa là gì.
  2. EOA so với smart account: những khác biệt quan trọng — một sự so sánh trực tiếp giữa hai mô hình tài khoản.
  3. Kiến trúc account abstraction của SSP — cách SSP đấu nối ERC-4337 vào một ví 2-of-2.
  4. Tài trợ gas và paymaster, giải thích — bài này: cách paymaster tách rời ai trả phí khỏi ai gửi.
  5. Account abstraction trên các chain không phải Ethereum — cách cùng một ý tưởng đi xa hơn Ethereum.

Về bản thân chuẩn này, tài liệu tham khảo có thẩm quyền là EIP-4337, và lộ trình account abstraction của Ethereum theo dõi nỗ lực rộng lớn hơn đang hướng tới đâu. Nếu bạn muốn xem chuẩn một cách độc lập trước, hãy đọc Account abstraction (ERC-4337) là gì?.

Chia sẻ bài viết này

Bài viết liên quan