Phí gas là gì?
Phí gas là khoản tiền trả cho tài nguyên mạng lưới mà một thao tác tiêu thụ trên blockchain sử dụng cơ chế hạch toán gas. Gas là đơn vị hạch toán; phí là chi phí bằng tiền. Trên Ethereum, gas đo công việc do Máy ảo Ethereum (EVM) thực hiện và phí thực thi được trả bằng ETH. Các mạng lưới khác có thể dùng đơn vị, thị trường phí hoặc tài sản thanh toán khác, vì vậy “phí gas” không phải công thức chung cho mọi blockchain.
Hạch toán gas phục vụ hai mục đích liên quan. Cơ chế này gán chi phí cho hoạt động tính toán và dữ liệu, đồng thời giới hạn khối lượng công việc mà một giao dịch có thể yêu cầu các node thực hiện. Điều đó giúp phân bổ không gian khối hữu hạn và ngăn quá trình thực thi chạy vô hạn. Tài liệu về gas chính thức của Ethereum mô tả gas là thước đo nỗ lực tính toán, không phải token hay một số dư riêng.
Những gì tiêu thụ gas trên Ethereum?
Một giao dịch Ethereum có chi phí gas nội tại trước khi mã hợp đồng chạy. Chi phí này phản ánh bản thân giao dịch, bao gồm dữ liệu của giao dịch; việc tạo hợp đồng tốn nhiều hơn một lệnh gọi cơ bản. Trong quá trình thực thi, các chỉ thị EVM tiếp tục tiêu thụ gas theo biểu phí gas của giao thức. Do đó, thao tác ghi vào vùng lưu trữ, gọi hợp đồng và các hoạt động khác phụ thuộc trạng thái có thể dùng lượng gas khác nhau.
Đây là lý do số ETH hoặc token được chuyển không tự quyết định mức phí. Một tương tác giá trị nhỏ với hợp đồng có thể dùng nhiều gas hơn một giao dịch chuyển ETH cơ bản có giá trị lớn hơn. Đường thực thi chính xác của mã hợp đồng cũng có thể thay đổi lượng gas cuối cùng, nên ước tính không phải lời hứa về kết quả cuối cùng.
Giới hạn gas, gas đã dùng và giới hạn gas của khối
Ba thuật ngữ gần giống nhau mô tả những giới hạn khác nhau:
- Giới hạn gas của giao dịch là lượng gas tối đa người gửi cho phép giao dịch tiêu thụ. Đây là ranh giới an toàn và thực thi, không phải lượng tự động bị tính phí.
- Gas đã dùng là lượng gas có thể tính phí được ghi nhận sau thực thi và sau khi áp dụng cơ chế hoàn gas. Đây là số lượng được nhân với giá gas hiệu dụng để tính phí thực thi.
- Giới hạn gas của khối giới hạn tổng lượng gas mà các giao dịch trong một khối có thể dùng. Đây là giới hạn cấp mạng lưới, không phải cài đặt phí của riêng một giao dịch.
Nếu giới hạn gas của giao dịch cao hơn lượng gas thực sự cần thiết, phần không dùng không bị tính phí như thể đã được tiêu thụ. Tuy nhiên, nếu giới hạn quá thấp so với đường thực thi, giao dịch có thể hết gas và thất bại. Các trường giao dịch và trường phí Ethereum được tóm tắt trong tài liệu về giao dịch chính thức.
Đối với một giao dịch thực thi Ethereum thông thường, quan hệ cốt lõi là:
Phí thực thi = gas có thể tính phí đã dùng × giá gas hiệu dụng
Phương trình này mô tả thành phần gas thực thi. Nó không nhất thiết bao quát mọi khoản phí gắn với giao dịch layer 2, khoản rút tiền từ nền tảng hoặc loại giao dịch có thị trường phí riêng.
EIP-1559 xác định giá gas hiệu dụng như thế nào?
Với giao dịch EIP-1559, người gửi đặt hai mức trần trên mỗi đơn vị gas:
- Phí ưu tiên tối đa trên mỗi gas (
maxPriorityFeePerGas) giới hạn tiền tip đề nghị cho bên đề xuất khối. - Phí tối đa trên mỗi gas (
maxFeePerGas) giới hạn tổng phí cơ sở và phí ưu tiên mà người gửi sẵn sàng trả cho mỗi gas.
Mỗi khối thực thi Ethereum có phí cơ sở do giao thức đặt ra. Phí này thay đổi theo lượng gas mà các khối trước đã dùng so với mục tiêu của giao thức, và phần phí cơ sở do giao dịch trả sẽ bị đốt. Phần phí ưu tiên được ghi có cho bên đề xuất khối. Các cơ chế này được quy định trong EIP-1559.
Phí ưu tiên hiệu dụng bị giới hạn bởi cả hai mức trần do người dùng đặt:
Phí ưu tiên hiệu dụng = min(phí ưu tiên tối đa, phí tối đa − phí cơ sở của khối)
Giá gas hiệu dụng = phí cơ sở của khối + phí ưu tiên hiệu dụng
Vì vậy, phí tối đa là mức trần, không phải báo giá số tiền sẽ bị tính. Nếu phí tối đa không đủ trang trải phí cơ sở của khối, giao dịch không đủ điều kiện để được đưa vào khối đó. Mức trần lớn hơn có thể giúp giao dịch vẫn hợp lệ nếu phí cơ sở tăng, nhưng không khiến toàn bộ mức trần tự động phải trả. Nó cũng không thể bảo đảm thời điểm validator đưa giao dịch vào khối.
Định dạng giao dịch cũ dùng một trường gasPrice thay vì hai mức trần EIP-1559. Ở cả hai định dạng, điều quan trọng đối với người đọc là phân biệt giá tối đa được cho phép với giá hiệu dụng thực tế của giao dịch đã được đưa vào khối.
Cách đọc phép tính phí
Giả sử một giao dịch EIP-1559 có các giá trị giả định sau:
- Giới hạn gas của giao dịch: 80.000 gas
- Gas có thể tính phí đã dùng: 50.000 gas
- Phí cơ sở của khối: 20 gwei cho mỗi gas
- Phí ưu tiên tối đa: 3 gwei cho mỗi gas
- Phí tối đa: 22 gwei cho mỗi gas
Phí tối đa chỉ chừa 2 gwei trên phí cơ sở, vì vậy phí ưu tiên hiệu dụng là min(3, 22 − 20) = 2 gwei. Giá gas hiệu dụng là 22 gwei và phí thực thi là:
50.000 × 22 gwei = 1.100.000 gwei = 0,0011 ETH
Phép tính dùng 50.000 gas, không dùng giới hạn 80.000 gas của giao dịch. Ví dụ cũng cho thấy phí ưu tiên tối đa hiển thị không phải lúc nào cũng là phí ưu tiên cuối cùng được trả. Các giá trị này chỉ nhằm giải thích phép tính, không phải ước tính phí trực tiếp hay mức giá điển hình cho một hoạt động cụ thể.
Gas chưa dùng, khoản hoàn gas và giao dịch thất bại
Từ hoàn được dùng cho hai cơ chế khác nhau:
- Gas giao dịch chưa dùng: giới hạn gas là mức tối đa. Gas không được thực thi tiêu thụ cuối cùng không bị tính theo giá hiệu dụng. Tương tự, chênh lệch giữa mức phí trần và giá gas hiệu dụng không trở thành phí bổ sung chỉ vì người gửi đã cho phép mức trần đó.
- Khoản hoàn trong quá trình thực thi EVM: một số thay đổi trạng thái có thể cộng đơn vị vào bộ đếm hoàn nội bộ. Điều này làm giảm gas có thể tính phí sau thực thi; nó không gửi một khoản thanh toán riêng trong lúc hợp đồng chạy hoặc cấp thêm gas để hợp đồng tiếp tục.
Cơ chế thứ hai bị giới hạn có chủ đích. EIP-3529 đã loại bỏ khoản hoàn cho SELFDESTRUCT, giảm khoản hoàn liên quan đến việc xóa vùng lưu trữ và giới hạn khoản hoàn được áp dụng ở một phần năm lượng gas đã chi. Cách hạch toán cấp giao thức này chủ yếu liên quan đến nhà phát triển; với người đọc phổ thông, điểm chính là gas chưa dùng và khoản hoàn EVM không phải hai khoản tiền mặt được hợp đồng gửi trả.
“Thất bại” có thể mô tả một số kết quả khác nhau về mặt kỹ thuật:
- Đã được đưa vào khối và hoàn tác: các node đã thực hiện công việc. Thay đổi trạng thái bị hoàn tác, nhưng gas tiêu thụ trước khi hoàn tác vẫn có thể bị tính phí. Theo EIP-140,
REVERTkhông tự động tiêu thụ toàn bộ gas còn lại. - Hết gas: ngữ cảnh thực thi bị lỗi có thể tiêu thụ toàn bộ gas được cấp. Một giao dịch cấp cao nhất hết gas có thể dùng hết giới hạn gas của giao dịch.
- Bị từ chối trước khi đưa vào khối: không có thực thi onchain, nên không có phí thực thi Ethereum cho một giao dịch đã được đưa vào khối. Chỉ riêng thông báo lỗi từ ứng dụng không chứng minh đã trả phí mạng lưới.
Đối với giao dịch thất bại đã được đưa vào khối, biên nhận và dữ liệu khối — chứ không chỉ thông báo giao diện — cho biết trạng thái và lượng gas đã dùng. Phí và thay đổi nonce của người gửi là một phần của quá trình xử lý giao dịch đã được đưa vào, dù thay đổi trạng thái hợp đồng bị hoàn tác không được duy trì.
Khi nào công thức Ethereum không còn áp dụng?
Gas là một mẫu thiết kế rộng, nhưng các thuật ngữ trên mô tả lớp thực thi Ethereum. Blockchain khác có thể dùng phí cố định, tín dụng tài nguyên, nhiều tài sản trả phí hoặc quy tắc đấu giá khác. Ngay trong hệ sinh thái Ethereum, phí layer 2 có thể kết hợp thực thi cục bộ với chi phí đăng dữ liệu lên Ethereum. EIP-4844 còn định nghĩa blob gas độc lập với gas thực thi thông thường và có cơ chế hạch toán phí riêng.
Phí rút tiền của một nền tảng tập trung là khái niệm riêng: khoản này có thể phản ánh chính sách phí và cách gộp giao dịch của nền tảng thay vì bằng phí mạng lưới của một giao dịch onchain. Không nên dùng các khoản này thay thế cho nhau nếu chưa kiểm tra nhãn thực tế trên giao diện.
Câu hỏi thường gặp
Gas có phải một coin riêng không?
Không. Trên Ethereum, gas là đơn vị hạch toán tài nguyên còn phí thực thi được định giá bằng ETH. Mạng lưới khác có thể dùng tài sản gốc hoặc cơ chế thanh toán khác.
Đặt giới hạn gas cao hơn có làm giao dịch đắt hơn không?
Không phải tự động. Phí dựa trên lượng gas có thể tính phí đã dùng, không mặc nhiên dựa trên toàn bộ giới hạn. Tuy nhiên, giới hạn cao hơn cho phép thực hiện nhiều công việc hơn và làm tăng mức gas tối đa mà giao dịch có thể phải chịu.
Phí tối đa cao hơn có bảo đảm xác nhận nhanh hơn không?
Không. Phí tối đa là mức trần và phải đủ để trang trải phí cơ sở. Việc được đưa vào khối còn phụ thuộc vào phí ưu tiên hiệu dụng, không gian khối sẵn có, lựa chọn của validator và điều kiện mạng lưới thay đổi.
Khái niệm liên quan
Để tìm hiểu sâu hơn về cách tính phí Ethereum, hãy đọc Giải thích phí gas Ethereum.
Tìm hiểu địa chỉ blockchain và ví tiền mã hóa, hoặc quay lại Thuật ngữ tiền mã hóa.
Nguồn
- Ethereum.org: Gas and fees — đơn vị gas, thành phần phí, phí cơ sở và giao dịch thất bại.
- Ethereum.org: Transactions — gas giao dịch và các trường phí EIP-1559.
- EIP-1559: Fee market change for ETH 1.0 chain — quy tắc về phí cơ sở, mức phí trần và giá hiệu dụng.
- EIP-140: REVERT instruction — hoàn tác trạng thái và hành vi của gas còn lại đối với
REVERT. - EIP-3529: Reduction in refunds — giới hạn hiện hành đối với hạch toán hoàn gas thực thi.
- EIP-4844: Shard Blob Transactions — cơ chế hạch toán blob gas và thị trường phí riêng.
© 2025 OKX. Bài viết này có thể được sao chép hoặc phân phối toàn bộ, hoặc trích dẫn các đoạn không quá 100 từ, miễn là không sử dụng cho mục đích thương mại. Mọi bản sao hoặc phân phối toàn bộ bài viết phải ghi rõ: “Bài viết này thuộc bản quyền © 2025 OKX và được sử dụng có sự cho phép.” Nếu trích dẫn, vui lòng ghi tên bài viết và nguồn tham khảo, ví dụ: “Tên bài viết, [tên tác giả nếu có], © 2025 OKX.” Một số nội dung có thể được tạo ra hoặc hỗ trợ bởi công cụ trí tuệ nhân tạo (AI). Nghiêm cấm các tác phẩm phái sinh hoặc hình thức sử dụng khác đối với bài viết này.



