Phí gas trên Ethereum, giải thích cho người dùng tự lưu ký

·8 phút đọc·Bởi SSP Editorial Team
Bia coin-guides cua SSP ve phi gas tren Ethereum, voi phu de base fee, priority fee va EIP-1559 tren nen xanh navy dam va ho phach

Phí gas trên Ethereum, giải thích cho người dùng tự lưu ký

Mọi hành động trên Ethereum đều tốn gas, và với người tự giữ khóa của mình, khoản phí này quyết định một giao dịch được xác nhận hay bị kẹt. Có được phí gas Ethereum được giải thích một cách dễ hiểu là một trong những điều hữu ích nhất mà người dùng tự lưu ký có thể làm: một khi cơ chế đã ăn khớp, những con số ví hiển thị thôi còn là bí ẩn và trở thành một quyết định bạn đưa ra một cách có chủ đích.

Hướng dẫn này nói về việc bạn trả cho cái gì, công thức phí, cách EIP-1559 chia một khoản phí thành base fee bị đốt và một khoản tip cho validator, vì sao ngay cả một giao dịch thất bại cũng tốn tiền, và SSP cùng các chuỗi L2 rẻ hơn ăn khớp vào đó ra sao. Mới dùng ETH trong SSP? Hãy bắt đầu với Ethereum trong SSP, rồi quay lại đây.

gas thực ra là gì

gas là đơn vị mà Ethereum dùng để đo công sức tính toán. Mỗi thao tác có một chi phí gas cố định, và mạng cộng tất cả lại: một giao dịch chuyển ETH đơn giản thì rẻ vì làm rất ít, trong khi một swap hay một tương tác DeFi chạm vào nhiều mã hợp đồng hơn và đốt nhiều gas hơn. gas tồn tại vì không gian khối là tài nguyên chung và có hạn, nên mạng định giá nhu cầu cho không gian đó và trả cho các validator thực hiện công việc. Tài liệu về gas của Ethereum Foundation là nguồn tham chiếu chuẩn.

Công thức phí: gas used nhân gas price

Tổng phí của bất kỳ giao dịch nào là một phép nhân đơn giản:

phí = gas used × gas price

gas used là lượng công việc giao dịch đã thực hiện; gas price là số bạn trả cho mỗi đơn vị, tính bằng gwei — một phần nhỏ của ETH, trong đó một ETH bằng một tỷ gwei và một gwei bằng một tỷ wei, đơn vị nhỏ nhất. Vậy một giao dịch chuyển dùng 21.000 gas với giá 20 gwei tốn 0,00042 ETH; ở mức 80 gwei thì tốn gấp bốn lần, dù công việc y hệt. Giá mỗi đơn vị dịch chuyển theo nhu cầu, còn khối lượng công việc thì cố định.

EIP-1559: base fee cộng priority fee

Năm 2021, bản nâng cấp EIP-1559 đã thay đổi cách xác định gas price: thay vì một phiên đấu giá mù duy nhất nơi ai cũng đoán mò, phí giờ đây gồm hai phần.

base fee được giao thức ấn định bằng thuật toán, theo từng khối, dựa trên việc khối trước đầy đến đâu: nó tăng khi các khối đầy hơn một nửa và giảm khi chúng vơi hơn, để giá phản ứng mượt mà với nhu cầu. Quan trọng nhất, base fee bị đốt — bị loại bỏ vĩnh viễn khỏi lưu thông — nên không đến tay validator nào.

priority fee, hay khoản tip, là phần bạn cộng thêm bên trên để khích lệ validator đưa bạn vào sớm hơn. Vì base fee bị đốt, tip mới là thứ validator thật sự kiếm được, nên một khoản tip cao hơn sẽ thắng phần không gian khối bị tranh giành khi mạng bận. base fee là như nhau cho mọi người trong một khối; tip mới là đòn bẩy bạn điều khiển. Để xem đặc tả đầy đủ, hãy đọc chính EIP-1559.

maxFeePerGas và maxPriorityFeePerGas: các mức trần bạn đặt

Vì base fee có thể dịch chuyển giữa các khối trong khi giao dịch của bạn chờ, EIP-1559 cho bạn đặt hai mức trần thay vì một giá cố định duy nhất.

  • maxPriorityFeePerGas là mức cao nhất bạn sẽ trả làm tip cho validator.
  • maxFeePerGas là mức tuyệt đối cao nhất bạn sẽ trả cho mỗi đơn vị gas tính tổng — base fee cộng tip gộp lại.

Bạn bị tính base fee thực của khối cộng tip của bạn, không bao giờ vượt quá maxFeePerGas; nếu base fee hóa ra thấp, phần dư được hoàn lại, nên một đợt tăng vọt trong lúc bạn chờ không thể thu của bạn quá mức. Hầu hết ví, kể cả SSP, tự điền các giá trị này từ điều kiện hiện tại, nên thường bạn chọn một tốc độ thay vì gõ con số.

gas limit so với gas used, và vì sao giao dịch thất bại vẫn tốn gas

Còn một con số nữa khiến người ta bối rối: gas limit, lượng gas tối đa bạn cho phép một giao dịch tiêu thụ. Đó là một mức trần an toàn cho công việc, không phải giá — bạn chỉ bị tính lượng gas thực sự dùng. Một giao dịch chuyển đơn giản luôn dùng 21.000 gas; với một tương tác hợp đồng, ví ước lượng một mức trần có dư.

Phần đau đớn là khi thất bại. Nếu một giao dịch hết gas hoặc revert giữa chừng, công việc đã làm vẫn phải được trả tiền. Một giao dịch thất bại hoặc bị revert vẫn tốn gas. Đặt gas limit quá thấp là nguyên nhân thường gặp khiến thất bại vì thiếu gas, và đó là lý do để ví ước lượng mức trần thì tốt hơn tự chỉnh tay.

Vì sao phí gas tăng vọt

Giá gas tăng vì một lý do: nhu cầu về không gian khối vượt cung. Kích thước khối về cơ bản có giới hạn, nên khi nhiều người giao dịch cùng lúc — một token nổi tiếng ra mắt, một đợt mint NFT được săn đón, một cú dịch chuyển thị trường mạnh — thuật toán base fee đẩy giá lên hết khối này đến khối khác cho tới khi nhu cầu nguội đi, trong khi các khoản tip leo thang vì người dùng tranh nhau được đưa vào.

Vì vậy phí trên mainnet Ethereum rất biến động: cùng một giao dịch chuyển có thể tốn vài xu vào giờ vắng và vài đô la giữa cơn sốt; công việc không đổi, chỉ có giá đổi, và đó là lý do thời điểm quan trọng.

Cách ví ước lượng phí: chậm, bình thường, nhanh

Bạn hiếm khi đặt gwei thô bằng tay. Ví đọc điều kiện hiện tại và đưa ra các mức cài sẵn — thường là chậm, bình thường và nhanh — ứng với các mức tip và thời gian xác nhận khác nhau.

  • Tùy chọn chậm hơn dùng tip thấp hơn: rẻ hơn, nhưng có thể lâu hơn, và trong một đợt tăng vọt nó có thể nằm chờ.
  • Tùy chọn bình thường nhắm tới xác nhận trong vài khối kế tiếp với giá hợp lý.
  • Tùy chọn nhanh hơn trả tip cao hơn để vào sớm hơn, đáng giá khi bạn chạy đua với thời gian hay với giá biến động.

Đây là ước lượng, không phải bảo đảm. Nếu một giao dịch định giá thấp bị kẹt, hãy gửi lại với cùng nonce và phí cao hơn — thao tác "tăng tốc" hoặc "thay thế" được nói tới trong gửi và nhận Ethereum với SSP. Trong SSP, một lần thay thế là một giao dịch mới, nên vẫn cần đồng ký 2-of-2.

gas trong SSP: thanh toán qua một UserOperation

SSP giữ ETH của bạn trong một multisig 2-of-2, và trên các chuỗi EVM đó là một tài khoản hợp đồng thông minh ERC-4337 — điều này thay đổi hình thức của một giao dịch, chứ không thay đổi kinh tế học của gas. Thay vì phát đi một giao dịch thông thường, tài khoản biểu đạt ý định của nó dưới dạng một UserOperation mà một bundler gửi lên chuỗi. gas được trả như một phần của UserOperation đó, và bên dưới vẫn áp dụng cùng base fee và priority fee của EIP-1559: bạn vẫn trả gas used × gas price bằng ETH, được hai thiết bị đồng ký thành một thao tác gộp Schnorr duy nhất.

account abstraction còn làm cho việc tài trợ gas trở nên khả thi: ERC-4337 cho phép một paymaster trả gas thay cho người dùng, nên về nguyên tắc một khoản phí có thể do bên thứ ba gánh hoặc được trả bằng một token thay vì ETH. Đó là một khả năng của chuẩn, không phải lời hứa về một hành vi cụ thể — phần chuyên sâu thuộc về bài giải thích account abstraction (ERC-4337). Còn bây giờ, hãy giữ một ít ETH trong tài khoản để trang trải gas.

Rẻ hơn ngay từ thiết kế: gas trên các chuỗi L2

Nếu phí mainnet có vẻ đắt, bạn không phải giao dịch ở đó cho mọi việc. Cùng một bộ khóa SSP vươn tới một loạt chuỗi EVM, và các mạng L2 cùng sidechain như Polygon và Base rẻ hơn rất nhiều — thường chỉ là vài phần của một xu — vì chúng làm phần việc nặng bên ngoài mainnet, nơi không gian khối ít khan hiếm hơn nhiều.

Mô hình vẫn vậy — bạn trả gas bằng token bản địa của chuỗi, và thường áp dụng cách định giá kiểu EIP-1559 — nhưng các con số nhỏ tí xíu khi so sánh. Về thời điểm và cách dùng chúng, hãy xem dùng SSP trên Polygon, Base và các chuỗi EVM khác.

Phí Bitcoin so với Ethereum, vắn tắt

Nếu bạn đến với SSP từ Bitcoin, mô hình phí của Ethereum sẽ thấy quen mà khác: cả hai đều định giá không gian khối khan hiếm và cho bạn trả nhiều hơn để xác nhận sớm hơn, nhưng khác nhau ở chỗ bạn trả cho cái gì. Phí Bitcoin dựa trên kích thước giao dịch tính bằng byte — chỗ nó chiếm trong một khối — theo tỷ lệ satoshi trên mỗi byte, không có tính toán tùy ý, nên không có gas limit hay thất bại vì thiếu gas. Phí Ethereum định giá công sức tính toán, thay đổi theo việc giao dịch của bạn làm gì, và chồng thêm cấu trúc base fee cộng tip của EIP-1559 lên trên. Về phía Bitcoin, hãy xem chiến lược phí Bitcoin trong SSP.

Mẹo thực dụng cho người dùng tự lưu ký

  • Chọn thời điểm cho giao dịch. Nếu một giao dịch chuyển không gấp, một quãng vắng hơn có thể cắt giảm chi phí đáng kể.
  • Kiểm tra phần ước lượng trước khi đồng ký. SSP hiển thị phí trong lúc bạn xem lại: hãy liếc qua nó trên cả hai thiết bị trước khi phê duyệt.
  • Giữ một khoản ETH dự phòng cho gas. Số dư chỉ gồm token thì không trả nổi gas của chính nó, nên luôn giữ một ít ETH — và đúng token bản địa trên mỗi chuỗi L2.
  • Dùng một L2 khi phù hợp. Với các giao dịch chuyển thường xuyên hoặc nhỏ, một chuỗi EVM rẻ hơn tiết kiệm nhiều hơn nhiều so với canh thời điểm kỹ lưỡng trên mainnet.
  • Đừng hoảng khi một giao dịch bị kẹt. Một giao dịch nằm ì thường có thể được tăng tốc bằng cách gửi lại với cùng nonce.

Đi tiếp về đâu

gas thôi đáng sợ một khi bạn thấy các bộ phận của nó: bạn trả gas used × gas price, giá là một base fee bị đốt cộng một khoản tip bạn điều khiển, và ngay cả một giao dịch thất bại cũng tốn phần công việc nó đã làm. Từ đây, hãy đưa vào thực hành với gửi và nhận Ethereum với SSP, hoặc khám phá mặt rẻ hơn với dùng SSP trên Polygon, Base và các chuỗi EVM khác. Dù bạn ở chuỗi nào, nguyên tắc của SSP vẫn giữ nguyên: hai khóa, một chữ ký, và những khoản phí bạn kiểm soát được.

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

Bài viết liên quan