Zelcore

Kiến trúc ERC-4337: EntryPoint, bundler và paymaster dễ hiểu

11 phút đọc
Kiến trúc ERC-4337: EntryPoint, bundler và paymaster dễ hiểu

Trừu tượng hóa tài khoản trên Ethereum có hai địa chỉ chuẩn tắc đáng ghi nhớ. EntryPoint v0.6 nằm tại 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789. EntryPoint v0.7, được triển khai vào đầu năm 2024, nằm tại 0x0000000071727De22E5E9d8BAf0edAc6f37da032. Mọi giao dịch ERC-4337 trên mainnet, Arbitrum, Optimism, Base, Polygon và hầu hết các chuỗi EVM khác đều đi qua một trong hai hợp đồng singleton này. Nếu hiểu chức năng của các hợp đồng đó và năm vai trò khác xoay quanh chúng, bạn sẽ hiểu ERC-4337.

Đây là phần 2 trong loạt bài về Smart Accounts của chúng tôi. Phần 1 giải thích vì sao EOA không phải lựa chọn mặc định tốt. Trong phần này, chúng ta sẽ tìm hiểu sâu hơn về sáu vai trò, cấu trúc UserOperation, những gì thực sự diễn ra khi bạn hoán đổi token từ một tài khoản thông minh, các thay đổi từ v0.6 sang v0.7, paymaster, alt-mempool công khai so với bundler riêng tư, và mức chi phí phát sinh bạn nên dự kiến.

Sáu vai trò trong một sơ đồ

ERC-4337 chia những gì EOA thực hiện trong một bước thành sáu tác nhân phối hợp với nhau. Không vai trò nào đòi hỏi phải có đợt hard fork Ethereum — toàn bộ hệ thống gồm các hợp đồng và hạ tầng ngoài chuỗi.

Hãy ghi nhớ các vai trò này. Phần còn lại của bài viết chỉ mô tả cách sáu vai trò trao đổi với nhau.

Cấu trúc UserOperation

UserOperation là một gói trường thân thiện với JSON-RPC, sau khi được ký sẽ thể hiện ý định mà chưa ghi lên L1. Bố cục v0.7 có 11 trường logic:

Ví quyết định cơ chế chữ ký. ECDSA trên secp256k1 là lựa chọn phổ biến, nhưng xác minh P-256/passkey, đa chữ ký, ngưỡng khôi phục xã hội và người ký bằng khóa phiên đều có thể hoạt động sau cùng một giao diện. Chính sự linh hoạt đó là mục tiêu cốt lõi.

Từ đầu đến cuối: điều gì xảy ra khi tài khoản thông minh hoán đổi USDC lấy ETH

Hãy theo dõi một giao dịch hoán đổi thực tế để thấy các vai trò hoạt động theo thứ tự.

  1. Người dùng chạm vào “Hoán đổi” trong giao diện ví. Ví tạo UserOperation: sender = 0xUserSafe, callData = swapUSDCforETH(amount) hướng đến Uniswap.
  2. Ước tính gas. Ví gọi eth_estimateUserOperationGas trên RPC của bundler. Bundler mô phỏng thao tác với EntryPoint rồi trả về ba giới hạn gas.
  3. Người dùng ký. Ví băm UserOp cùng địa chỉ EntryPoint và chain ID, yêu cầu người dùng xác nhận (bằng passkey, khóa phần cứng hoặc phương thức khác), rồi đính kèm chữ ký.
  4. Gửi đi. UserOp đã ký được gửi qua eth_sendUserOperation đến một hoặc nhiều bundler. Nó đi vào alt-mempool — một mạng P2P tách biệt với mempool giao dịch thông thường của Ethereum.
  5. Bundler mô phỏng. Bundler mô phỏng lại bằng eth_call với simulateValidation. Bundler kiểm tra các quy tắc truy cập bộ nhớ lưu trữ của ERC-7562: trong quá trình xác thực, UserOp chỉ được phép truy cập bộ nhớ lưu trữ của chính nó; nếu không, bundler có nguy cơ bị phá hoại.
  6. Đóng gói. Bundler gộp UserOp này cùng tối đa khoảng 10 UserOp khác vào một lệnh gọi handleOps([...userOps], beneficiary) đến EntryPoint.
  7. Thực thi trên chuỗi. EntryPoint duyệt qua từng thao tác: gọi validateUserOp trên người gửi, khấu trừ khoản trả trước, rồi thực thi callData. Giao dịch hoán đổi Uniswap được thực hiện từ tài khoản thông minh.
  8. Hoàn phí. EntryPoint hoàn lại phần gas chưa dùng cho người gửi (hoặc paymaster), đồng thời thanh toán cho địa chỉ nhận tiền của bundler.

Nếu bước 5 thất bại, bundler loại bỏ thao tác và người dùng thấy mã lỗi AAxx. Các lỗi thường gặp nhất là AA21 (không trả khoản trả trước), AA23 (lỗi chữ ký), AA25 (nonce không hợp lệ), AA33 (paymaster hoàn tác) và AA40 (vượt giới hạn gas xác minh). Hãy ghi nhớ bảng này — bạn sẽ gặp các lỗi đó.

EntryPoint v0.6 và v0.7

v0.6 ra mắt vào tháng 3 năm 2023 tại 0x5FF1…2789. Phiên bản này hoạt động được, nhưng có ba vấn đề dai dẳng: một khối paymasterAndData duy nhất gộp lẫn ba chiều gas, cách đóng gói initCode bất tiện và cách tính gas khiến người gửi bị tính phí cao hơn thực tế. v0.7 đã khắc phục cả ba.

Những thay đổi chính trong v0.7 bạn nên biết:

v0.6 vẫn đang hoạt động và vẫn được sử dụng — nhiều ví phải đến tận năm 2024 mới phát hành mô-đun tương thích v0.7. Trên hầu hết các chuỗi, cả hai EntryPoint cùng hoạt động song song trong nhiều năm.

Paymaster: ai trả phí gas

Paymaster là hợp đồng nắm giữ một khoản stake bằng ETH tại EntryPoint và đồng ý chi trả gas cho những UserOp đáp ứng chính sách của mình. Có ba loại phổ biến:

validatePaymasterUserOp của paymaster chạy trong giai đoạn xác thực của EntryPoint. Nếu lệnh này bị hoàn tác, bạn sẽ gặp AA33. Nếu paymaster cạn stake, EntryPoint sẽ tịch thu khoản stake đó và bundler chịu khoản lỗ — vì vậy bundler duy trì danh sách uy tín của paymaster. ERC-7562 chuẩn hóa các quy tắc uy tín này để mempool của bundler chống spam. Những cơ chế nền tảng tương tự cũng cho thấy vì sao các biện pháp an toàn khi phê duyệt DeFi và dùng đa chữ ký có thể áp dụng thuận lợi trong thế giới 4337: mối đe dọa vẫn vậy, chỉ lớp vỏ đã thay đổi.

Mempool thay thế công khai và bundler riêng tư

Có hai cách đưa UserOp lên blockchain.

Mempool thay thế công khai: Các bundler tuân thủ ERC-7562 truyền UserOp qua mạng libp2p. Bất kỳ ai chạy một nút Pimlico, Stackup, Alchemy, Etherspot hoặc Voltaire đều có thể nhận được UserOp của bạn. Cách này không cần cấp quyền và chống kiểm duyệt, nhưng bạn vẫn đối mặt với những lo ngại về MEV như khi gửi giao dịch Ethereum thông thường: các searcher có thể xem UserOp của bạn trước khi nó được đưa vào khối.

Bundler riêng tư: Bạn gửi trực tiếp eth_sendUserOperation đến RPC của một nhà cung cấp. Họ mô phỏng, gom nhóm và gửi giao dịch riêng tư (thường qua Flashbots). Cách này nhanh hơn và được bảo vệ khỏi MEV, nhưng bạn phải tin rằng bundler sẽ không kiểm duyệt hoặc front-run giao dịch của bạn. Năm 2026, hầu hết ví dành cho người dùng phổ thông mặc định dùng bundler riêng tư.

Sự đánh đổi này tương tự như giữa mempool công khai và Flashbots Protect đối với giao dịch thông thường. Nếu bạn chưa xem vòng đời giao dịch từ thời L1, bài tổng quan đó giải thích những gì thay đổi khi bundler tham gia.

Aggregator, mức độ phổ biến và chi phí

Aggregator là các hợp đồng xác thực nhiều giao dịch cùng lúc chỉ bằng một lần kiểm tra chữ ký. Trường hợp sử dụng điển hình là BLS: bạn thu thập 50 UserOp được ký bằng BLS, gộp các chữ ký thành một lần kiểm tra pairing và tiết kiệm khoảng 95% lượng gas dùng cho chữ ký. Việc áp dụng còn chậm vì khó xây dựng ví ký bằng BLS, còn khoản tiết kiệm gas chỉ đáng kể khi khối lượng giao dịch lớn. Tính đến giữa năm 2026, chưa đến 1% UserOp trên mainnet sử dụng aggregator.

Số liệu áp dụng (Q1 2026, theo bundlebear.com): tổng cộng khoảng 380 triệu UserOp trên tất cả các chuỗi; Base, Polygon và Arbitrum chiếm phần lớn. Mainnet chiếm khoảng 6–8% — thấp nhất về khối lượng nhưng cao nhất về giá trị chuyển giao. Coinbase Smart Wallet, Farcaster và Argent chiếm phần lớn hoạt động của người dùng phổ thông.

Chi phí phụ trội: Một UserOp v0.7 tốn nhiều hơn khoảng 30,000–40,000 gas so với giao dịch EOA tương đương — phần chênh lệch đến từ vòng lặp EntryPoint, quá trình xác thực và các công việc phụ trợ khi gom giao dịch. Trên mainnet ở mức 20 gwei, khoản này tương đương một phần nhỏ của một đô la cho mỗi UserOp. Lần đầu triển khai tài khoản thông qua factoryData tốn thêm khoảng 250,000 gas. Trên các L2, nơi calldata chiếm phần lớn chi phí, phần phụ trội chỉ ở mức một chữ số phần trăm. UserOp được tài trợ chuyển chi phí này sang dApp; vì vậy, bạn thấy giao dịch miễn phí trên các ứng dụng phổ thông nhưng không phải trên các ứng dụng DeFi chuyên sâu. Bài tổng quan về phí giao dịch giải thích thêm cách khoản phụ trội này được tính trong các thị trường phí khác nhau.

Tóm lại: ERC-4337 gồm sáu vai trò (sender, UserOp, bundler, EntryPoint, paymaster, aggregator), một struct, hai địa chỉ EntryPoint bạn nên ghi nhớ và khoản phụ trội khoảng 30–40k gas. Đổi lại, bạn có thể dùng các cơ chế chữ ký tùy ý, được tài trợ gas, gom giao dịch và sử dụng nonce song song. Phần 3 của loạt bài chuyển sang EIP-7702 — hướng phát triển song song trong Pectra, cho phép EOA hiện có của bạn sử dụng cùng cơ chế này mà không phải đổi địa chỉ.


Đọc thêm

Ví, phí gas và phê duyệt: ba điều mọi người dùng DeFi cần hiểu

Ví, phí gas và phê duyệt: ba điều mọi người dùng DeFi cần hiểu

Trước khi hoán đổi, cho vay hoặc tham gia farming, bạn cần hiểu ba yếu tố nền tảng mà mọi tương tác DeFi đều dựa vào: ví, phí gas và phê duyệt token.

9 phút đọc
Tài khoản, hợp đồng và EVM: Ethereum thực thi như thế nào

Tài khoản, hợp đồng và EVM: Ethereum thực thi như thế nào

Ethereum thay thế mô hình UTXO của Bitcoin bằng một bảng tài khoản lớn và máy ngăn xếp tính phí gas. Sau đây là cách trạng thái, mã lệnh và một giao dịch chuyển ERC-20 thực sự hoạt động.

14 phút đọc
Cơ chế phí gas của Ethereum: EIP-1559, phí ưu tiên và phí blob sau Dencun

Cơ chế phí gas của Ethereum: EIP-1559, phí ưu tiên và phí blob sau Dencun

Cách phí gas của Ethereum thực sự hoạt động trong năm 2026: cơ chế đấu giá phí cơ sở EIP-1559, tiền boa phí ưu tiên và thị trường blob độc lập ra đời từ Dencun, được mở rộng quy mô nhờ Pectra.

12 phút đọc

Đăng ký nhận bản tin

Nhận thư cập nhật thân thiện từ chúng tôi mỗi tháng một lần. Không spam, chỉ có tin mới nhất từ Zelcore.

Đăng ký nhận bản tin