Gas trong crypto là gì?
Gas là đơn vị blockchain dùng để đo lường tài nguyên tính toán và tài nguyên liên quan đến trạng thái cần thiết để xử lý giao dịch hoặc thực thi hợp đồng thông minh.Thuật ngữ này gắn liền nhất với Ethereum và các mạng khác sử dụng Ethereum Virtual Machine, thường được gọi là EVM.Gas không phải là một loại tiền mã hóa riêng để người dùng mua và nắm giữ.Thay vào đó, gas đo lường khối lượng công việc, còn tiền mã hóa gốc của mạng được dùng để thanh toán cho công việc đó.Trên Ethereum, phí gas được thanh toán bằng ETH.Một giao dịch chuyển tiền mã hóa đơn giản vẫn cần gas vì các node mạng phải xác minh người gửi, kiểm tra giao dịch, cập nhật số dư tài khoản và ghi lại kết quả.Giao dịch hợp đồng thông minh phức tạp cần nhiều gas hơn vì có thể thực hiện phép tính, đọc dữ liệu, thay đổi bộ nhớ, phát sự kiện và gọi các hợp đồng khác.Tài liệu chính thức về gas của Ethereum mô tả gas là đơn vị đo lường mức độ tính toán cần thiết để thực hiện các thao tác.
Gas tạo ra một hệ thống kế toán chung cho nhiều loại hoạt động blockchain khác nhau.Gas cũng giúp ngăn người dùng hoặc kẻ tấn công tiêu thụ tài nguyên mạng không giới hạn mà không phải trả chi phí kinh tế.Tại sao Ethereum sử dụng gas?
Ethereum là nền tảng điện toán dùng chung, được vận hành bởi các node độc lập trên khắp thế giới.Mỗi node xác minh một block có thể cần thực thi cùng một chỉ thị hợp đồng thông minh và xác nhận cùng một thay đổi trạng thái.Các thao tác này sử dụng tài nguyên xử lý, bộ nhớ, băng thông và lưu trữ.Gas gán chi phí cho từng thao tác để ứng dụng thanh toán tương ứng với lượng tài nguyên cần dùng.Nếu không có gas, người dùng độc hại có thể gửi các chương trình chứa vòng lặp cực dài hoặc số lượng lớn thao tác lưu trữ với chi phí thấp.Các chương trình đó có thể làm quá tải node và khiến người dùng hợp pháp khó truy cập mạng.Vì vậy, gas vừa là công cụ đo lường tài nguyên vừa là cơ chế chống spam.Gas cũng giới hạn khối lượng công việc có thể được đưa vào một giao dịch hoặc block.Nhờ đó, Ethereum có thể hỗ trợ các ứng dụng tiền mã hóa có thể lập trình mà không cho phép tính toán không giới hạn.Gas không giống ETH
Gas và ETH có liên quan nhưng không phải là một.Gas đo lường khối lượng công việc blockchain đã thực hiện.ETH là tiền mã hóa được dùng để thanh toán chi phí tài chính tương ứng với công việc đó trên Ethereum.Một giao dịch có thể tiêu thụ 50,000 đơn vị gas dù ETH đang giao dịch ở mức giá thị trường cao hay thấp.Lượng ETH phải trả phụ thuộc vào mức giá được ấn định cho mỗi đơn vị gas.Giá trị phí quy đổi sang tiền pháp định cũng phụ thuộc vào giá thị trường của ETH.Việc tách gas khỏi ETH cho phép Ethereum xác định chi phí tương đối ổn định cho các thao tác EVM ngay cả khi giá trị ETH thay đổi.Các mạng tương thích EVM khác có thể dùng cùng hệ thống đo gas nhưng yêu cầu thanh toán bằng một loại tiền mã hóa gốc khác.Gas và phí gas
Gas là đơn vị đo khối lượng công việc blockchain, còn phí gas là lượng tiền mã hóa phải trả cho công việc đó.Công thức phí Ethereum được đơn giản hóa như sau:
Gas và giá gas
Giá gas là lượng tiền mã hóa phải trả cho một đơn vị gas.Trên Ethereum, giá gas thường được hiển thị bằng gwei.Một gwei bằng một phần tỷ ETH.Giá gas 20 gwei có nghĩa là mỗi đơn vị gas được tính phí có giá 0.00000002 ETH.Giao dịch sử dụng 50,000 gas với giá 20 gwei có chi phí 1,000,000 gwei, tương đương 0.001 ETH.Cùng một giao dịch có thể có tổng chi phí khác nhau khi giá gas thay đổi.Giá gas cao hơn không khiến EVM thực thi ít chỉ thị hơn.Giá gas chỉ làm thay đổi khoản thanh toán cho các chỉ thị được thực thi.Gas và giới hạn gas
Giới hạn gas là lượng gas thực thi tối đa mà một giao dịch được phép tiêu thụ.Người gửi đặt giới hạn gas khi gửi giao dịch.Giới hạn này bảo vệ người gửi khỏi việc hợp đồng tiêu thụ lượng gas không giới hạn.Giới hạn cũng cho EVM biết khi nào phải dừng thực thi vì đã dùng hết gas khả dụng.Giao dịch có giới hạn gas 150,000 không nhất thiết tiêu thụ hoặc trả phí cho toàn bộ 150,000 đơn vị.Nếu giao dịch hoàn tất sau khi sử dụng 90,000 gas, phần chưa sử dụng sẽ không được tính vào khoản phí cuối cùng.Nếu giao dịch cần nhiều gas hơn mức giới hạn, giao dịch có thể thất bại do hết gas.Tăng giá gas không thể khắc phục giới hạn gas không đủ vì giá gas và khả năng thực thi đảm nhiệm những chức năng khác nhau.Gas đã sử dụng là gì?
Gas đã sử dụng là lượng gas mà giao dịch tiêu thụ trước khi hoàn tất hạch toán khoản hoàn gas áp dụng.Giá trị này phụ thuộc vào các chỉ thị EVM được thực thi, dữ liệu giao dịch, quyền truy cập tài khoản, hoạt động lưu trữ và các chi phí khác do giao thức quy định.Biên nhận giao dịch thường ghi lại lượng gas mà giao dịch đã xác nhận sử dụng.Ví và trình khám phá blockchain có thể hiển thị giá trị này sau khi giao dịch được xác nhận.Không nên nhầm gas đã sử dụng với giới hạn gas của giao dịch.Giới hạn là mức tối đa được cho phép, còn gas đã sử dụng phản ánh lượng thực tế tiêu thụ khi thực thi.Người dùng có thể nhân lượng gas cuối cùng bị tính phí với giá gas hiệu dụng để xác minh phí mạng.Gas nội tại là gì?
Gas nội tại là lượng gas tối thiểu được tính cho bản thân giao dịch trước khi bắt đầu thực thi hợp đồng thông minh.Một giao dịch Ethereum tiêu chuẩn có chi phí gas nội tại cơ bản là 21,000 gas.Có thể phát sinh thêm gas nội tại cho calldata của giao dịch, các mục trong access list, việc tạo hợp đồng và một số trường dành riêng cho giao dịch.Byte calldata có giá trị 0 và khác 0 có thể chịu chi phí giao thức khác nhau.Giao dịch phải cung cấp đủ gas để đáp ứng yêu cầu nội tại trước khi EVM có thể bắt đầu thực thi.Một giao dịch ETH cơ bản giữa các tài khoản thông thường thường sử dụng đúng 21,000 gas nếu không thực thi mã hợp đồng.Gửi ETH đến hợp đồng thông minh có thể tiêu thụ nhiều gas hơn vì hợp đồng nhận có thể thực thi logic bổ sung.Cách các thao tác EVM tiêu thụ gas
EVM thực thi mã bytecode của hợp đồng thông minh theo chuỗi chỉ thị gọi là opcode.Mỗi opcode có chi phí gas do giao thức quy định.Các thao tác stack đơn giản và chỉ thị số học thường có chi phí tương đối thấp.Ghi dữ liệu vào storage, tạo hợp đồng, thực hiện thao tác mật mã và một số thao tác truy cập tài khoản có chi phí cao hơn.Tài liệu EVM chính thức giải thích cách các node Ethereum thực thi mã hợp đồng một cách nhất quán và dùng gas để đo lường khối lượng công việc.
Chi phí opcode có thể được điều chỉnh thông qua các lần nâng cấp mạng Ethereum khi nhà phát triển nhận thấy mức gas bị tính không phản ánh đúng gánh nặng thực tế đối với node.Do đó, lượng gas hợp đồng thông minh tiêu thụ phụ thuộc vào bytecode đã biên dịch và đường thực thi cụ thể.Tại sao storage tiêu thụ nhiều gas?
Lưu trữ bền vững là một trong những tài nguyên tốn kém nhất mà hợp đồng thông minh Ethereum có thể sử dụng.Giá trị được ghi vào storage có thể tiếp tục là một phần trạng thái Ethereum sau khi giao dịch kết thúc.Node mạng có thể phải truy xuất, xác minh, cập nhật và duy trì thông tin đó trong thời gian dài.Tạo giá trị storage khác 0 mới thường tốn nhiều chi phí hơn đọc giá trị hiện có.Việc cập nhật hoặc xóa một slot tuân theo các quy tắc bổ sung dựa trên giá trị ban đầu, hiện tại và mới.Nhà phát triển thường giảm gas bằng cách hạn chế ghi storage không cần thiết và tránh lưu dữ liệu on-chain trùng lặp.Thông tin chỉ được giao diện off-chain sử dụng đôi khi có thể ghi vào nhật ký sự kiện thay vì trạng thái bền vững.Số dư, quyền, quyền sở hữu và các giá trị khác cần thiết cho lần thực thi hợp đồng sau thường phải được duy trì trong storage có thể truy cập của hợp đồng.Chi phí gas khi truy cập dữ liệu lạnh và ấm
Ethereum phân biệt giữa truy cập lạnh và truy cập ấm đối với tài khoản và storage slot.Truy cập lạnh là lần đầu tiên một địa chỉ hoặc storage slot cụ thể được truy cập trong giao dịch.Truy cập ấm là lần truy cập sau đó vào cùng mục trong giao dịch đó.Truy cập lạnh thường tốn nhiều chi phí hơn vì execution client có thể cần truy xuất thông tin chưa được truy cập trong giao dịch hiện tại.EIP-2929 áp dụng mức phí gas cao hơn cho một số thao tác truy cập trạng thái và giảm phí cho các lần truy cập ấm tiếp theo.
Thiết kế này phản ánh chính xác hơn chi phí truy xuất trạng thái và giúp hạn chế rủi ro tấn công từ chối dịch vụ.Đôi khi, nhà phát triển hợp đồng thông minh có thể giảm gas bằng cách tải một giá trị storage một lần rồi tái sử dụng an toàn bản sao cục bộ.Cần xử lý cẩn thận việc lưu vào bộ nhớ đệm khi các lệnh gọi bên ngoài có thể thay đổi trạng thái liên quan.Bộ nhớ và gas
Bộ nhớ EVM là nơi lưu dữ liệu tạm thời, chỉ dùng trong quá trình thực thi lệnh gọi hiện tại.Bộ nhớ không còn là một phần trạng thái blockchain sau khi giao dịch kết thúc.Sử dụng bộ nhớ thường rẻ hơn storage bền vững.Tuy nhiên, việc mở rộng vùng bộ nhớ đang hoạt động sẽ phát sinh thêm chi phí gas.Chi phí tăng theo vị trí bộ nhớ cao nhất được truy cập.Vì vậy, sao chép lượng lớn dữ liệu vào bộ nhớ có thể khiến giao dịch tốn kém hơn.Nhà phát triển có thể hạn chế việc mở rộng bộ nhớ và sao chép không cần thiết bằng cách chọn vị trí dữ liệu phù hợp và sử dụng các tối ưu hóa trình biên dịch hiện hành.Calldata và gas
Calldata là dữ liệu đầu vào chỉ đọc được đính kèm với giao dịch bên ngoài hoặc lệnh gọi hợp đồng.Calldata có thể chứa function selector, đối số, chữ ký, mảng và các giá trị khác được gửi lên.Mỗi byte calldata đều góp phần vào yêu cầu gas nội tại của giao dịch.Do đó, payload calldata lớn có thể tốn kém ngay cả khi hợp đồng thực hiện tương đối ít tính toán.Các tham số hàm bên ngoài chỉ đọc thường có thể giữ trong calldata thay vì sao chép vào bộ nhớ.Cách này có thể giảm gas đối với mảng, chuỗi, chuỗi byte và cấu trúc dữ liệu.EIP-7623 đặt ra mức sàn cao hơn cho các giao dịch chứa nhiều dữ liệu, khiến việc mã hóa giao dịch hiệu quả trở nên quan trọng hơn theo các quy tắc Ethereum hiện hành.
Transient storage và gas
Transient storage là storage EVM tạm thời, vẫn khả dụng qua các lệnh gọi trong cùng một giao dịch nhưng biến mất khi giao dịch kết thúc.Ethereum đưa transient storage vào thông qua EIP-1153.
Tính năng này cung cấp các opcode
Giới hạn gas của block là gì?
Giới hạn gas của block đặt mức tối đa cho tổng lượng gas thực thi mà các giao dịch trong một block Ethereum có thể tiêu thụ.Giới hạn này hạn chế khối lượng công việc node cần xử lý cho block đó.Người đề xuất block không thể đưa vào một nhóm giao dịch có tổng lượng gas tiêu thụ vượt quá giới hạn cho phép.Vì vậy, giới hạn gas thể hiện một dạng năng lực thực thi của Ethereum.Tài liệu chính thức về block của Ethereum giải thích rằng giới hạn gas của block có thể được điều chỉnh dần qua các block.
Giới hạn gas mặc định của block trong giai đoạn Fusaka của Ethereum là khoảng 60 triệu gas.Giới hạn cao hơn có thể cho phép nhiều hoạt động thực thi hơn, nhưng cũng làm tăng gánh nặng xử lý tiềm tàng cho các node.Do đó, cần kiểm thử các đợt tăng năng lực dựa trên hiệu suất mạng, hiệu quả của client, yêu cầu phần cứng và mục tiêu phi tập trung.Giới hạn gas cho mỗi giao dịch là gì?
Ethereum cũng giới hạn lượng gas mà một giao dịch đơn lẻ có thể yêu cầu.EIP-7825 đặt giới hạn cấp giao thức là 16,777,216 gas cho mỗi giao dịch.
Giao dịch đặt giới hạn gas cao hơn mức đó sẽ bị từ chối.Giới hạn này ngăn một giao dịch chiếm tỷ trọng quá lớn trong block.Giới hạn cũng giới hạn gánh nặng xử lý tối đa do một giao dịch tạo ra khi năng lực block tăng lên.Hầu hết giao dịch chuyển tiền mã hóa thông thường và tương tác hợp đồng thông minh đều cần ít hơn nhiều so với mức tối đa này.Các ứng dụng quy mô lớn có thể cần chia công việc phức tạp thành nhiều giao dịch.EIP-1559 ảnh hưởng đến gas như thế nào?
EIP-1559 thay đổi cách định giá gas trên Ethereum nhưng không loại bỏ hệ thống đo lường gas.Bản nâng cấp đưa vào phí cơ sở của giao thức, mức phí tối đa do người dùng đặt và phí ưu tiên tối đa.Phí cơ sở điều chỉnh theo nhu cầu gần đây đối với năng lực thực thi.Phí ưu tiên có thể thưởng cho người đề xuất block khi đưa giao dịch vào block.Phần phí cơ sở bị đốt thay vì trả cho người đề xuất.Đặc tả EIP-1559 quy định mô hình giao dịch phí động.
Gas vẫn đo lường khối lượng công việc đã thực hiện, còn EIP-1559 giúp xác định chi phí tài chính của mỗi đơn vị gas.Phí cơ sở và gas
Phí cơ sở là mức giá tối thiểu của giao thức cho mỗi đơn vị gas để được đưa vào một block Ethereum cụ thể.Phí tăng khi block sử dụng nhiều gas hơn mục tiêu và giảm khi mức sử dụng thấp hơn mục tiêu.Cơ chế điều chỉnh này liên kết giá gas với nhu cầu về năng lực block.Giao dịch không thể được đưa vào block nếu phí tối đa cho mỗi đơn vị gas thấp hơn phí cơ sở hiện tại.Phí cơ sở được nhân với lượng gas bị tính phí của giao dịch để xác định lượng ETH bị đốt.Lượng gas sử dụng cao cùng phí cơ sở cao có thể dẫn đến lượng ETH bị đốt đáng kể.Việc đốt phí không đảm bảo tổng nguồn cung ETH sẽ giảm vì Ethereum cũng phát hành ETH thông qua phần thưởng Proof of Stake.Phí ưu tiên và gas
Phí ưu tiên là khoản giá bổ sung cho mỗi đơn vị gas được đề nghị trả cho người đề xuất block.Khoản này thường được gọi là tiền tip.Phí ưu tiên có thể khiến giao dịch hấp dẫn hơn khi nhiều người dùng cạnh tranh để được đưa vào block.Người đề xuất nhận phần phí ưu tiên được áp dụng trong phí giao dịch.Phí ưu tiên cao hơn không làm giảm lượng gas tiêu thụ hoặc khiến chỉ thị EVM được thực thi nhanh hơn.Khoản phí này chủ yếu ảnh hưởng đến việc đưa giao dịch vào block và thứ tự giao dịch.Phí ưu tiên cao không cần thiết có thể khiến người dùng trả nhiều hơn mà không nhận được lợi ích đáng kể về tốc độ.Gas chưa sử dụng được xử lý thế nào?
Gas chưa sử dụng là phần chênh lệch giữa giới hạn gas của giao dịch và lượng gas tiêu thụ trong quá trình thực thi.Người gửi không bị tính phí vĩnh viễn cho gas chưa sử dụng.Thông thường, người dùng không nhận được một giao dịch hoàn tiền riêng biệt.Số dư tài khoản cuối cùng phản ánh chi phí thực tế của giao dịch thay vì chi phí tối đa có thể phát sinh.Ví có thể hiển thị mức phí mạng tối đa lớn trước khi xác nhận vì tính mức giới hạn gas nhân với phí tối đa mỗi đơn vị gas.Khoản phí sau khi xác nhận có thể thấp hơn nếu giao dịch dùng ít gas hơn hoặc trả mức giá hiệu dụng thấp hơn.Lỗi hết gas là gì?
Lỗi hết gas xảy ra khi quá trình thực thi cần nhiều gas hơn lượng còn lại trong giao dịch hoặc khung lệnh gọi hiện tại.Quá trình thực thi thất bại sẽ dừng khi hết lượng gas khả dụng.Thông thường, các thay đổi trạng thái do quá trình thực thi thất bại tạo ra sẽ bị hoàn nguyên.Lượng gas đã tiêu thụ trong quá trình thực thi hết gas không được hoàn lại như gas chưa sử dụng.Người dùng có thể gặp lỗi này khi giới hạn gas quá thấp hoặc hành vi của hợp đồng đòi hỏi nhiều thao tác hơn dự kiến.Giao dịch cũng có thể thất bại vì một lệnh gọi lồng nhau được cấp không đủ gas.Chỉ tăng giá gas không thể ngăn lỗi hết gas.Giao dịch cần giới hạn gas đủ cao và hành vi hợp đồng hợp lệ.Tại sao giao dịch thất bại vẫn tiêu thụ gas?
Giao dịch vẫn có thể tiêu thụ gas dù thao tác chuyển token hoặc tương tác hợp đồng dự kiến không thành công.Node vẫn phải thực hiện công việc xác thực giao dịch và thực thi chỉ thị trước khi xảy ra lỗi.Hợp đồng có thể hoàn nguyên sau khi kiểm tra số dư, đọc storage, gọi hợp đồng khác hoặc thực hiện phép tính.Các thay đổi trạng thái bị hoàn nguyên, nhưng chi phí tính toán vẫn bị tính phí.Giao dịch thất bại sớm có thể tiêu thụ ít gas hơn giao dịch thực hiện nhiều thao tác trước khi hoàn nguyên.Người dùng nên tìm hiểu nguyên nhân thất bại thay vì cho rằng phí cao hơn sẽ giải quyết mọi vấn đề.Phê duyệt còn thiếu, số dư không đủ, thời hạn hết hiệu lực, trượt giá quá cao và tham số không hợp lệ sẽ không được khắc phục bằng giá gas cao hơn.Hoàn gas
Hoàn gas là khoản tín dụng theo giao thức có thể giảm lượng gas cuối cùng bị tính phí sau một số thao tác đủ điều kiện.Trường hợp phổ biến hiện nay là xóa một số giá trị storage bền vững.Khoản tín dụng hoàn gas không cung cấp thêm gas trong lúc giao dịch đang được thực thi.Khoản này chỉ được áp dụng sau khi quá trình thực thi kết thúc.EIP-3529 giảm mức hoàn gas storage, loại bỏ khoản hoàn trước đây của
Blob gas là gì?
Blob gas là hệ thống đo lường tài nguyên riêng được dùng cho các giao dịch Ethereum chứa blob.Blob cung cấp khả năng cung ứng dữ liệu tạm thời, chủ yếu cho các hệ thống mở rộng blockchain.Blob được giới thiệu thông qua EIP-4844.
Blob gas tách biệt với gas thực thi EVM thông thường.Vì vậy, giao dịch chứa blob có thể phải trả cả phí gas thực thi và phí blob gas.Phí cơ sở blob phản ứng với nhu cầu về năng lực blob chứ không chỉ với hoạt động thực thi hợp đồng thông minh thông thường.Hầu hết giao dịch ETH và token thông thường không trực tiếp chứa blob.Người dùng mạng mở rộng có thể hưởng lợi gián tiếp khi năng lực blob làm giảm chi phí công bố dữ liệu giao dịch lên Ethereum.Gas thực thi và blob gas
Gas thực thi đo lường khối lượng công việc do EVM thực hiện.Blob gas đo lường năng lực dữ liệu được các giao dịch chứa blob sử dụng.Hai loại tài nguyên có thị trường phí riêng vì chúng tạo ra các nhu cầu khác nhau đối với mạng.Giai đoạn hoạt động hợp đồng thông minh cao có thể làm tăng phí thực thi mà không khiến phí blob thay đổi tương ứng.Nhu cầu dữ liệu lớn từ các mạng mở rộng có thể làm tăng phí blob một cách độc lập.Ví và ứng dụng nên xác định cả hai thành phần khi ước tính tổng chi phí của giao dịch chứa blob.Gas trên mạng Layer 2
Mạng Layer 2 của Ethereum có thể dùng thuật ngữ gas của EVM nhưng tính tổng phí khác với Ethereum mainnet.Giao dịch Layer 2 có thể gồm chi phí thực thi tại mạng đó và chi phí liên quan đến việc công bố dữ liệu hoặc bằng chứng lên Ethereum.Giá gas hiển thị có thể chỉ đại diện cho thành phần thực thi tại mạng đó.Mỗi mạng mở rộng có thể có lịch gas, token thanh toán phí, phương pháp nén và công thức tính chi phí dữ liệu riêng.Người dùng không nên cho rằng cùng một lượng gas có giá trị tài chính như nhau trên mọi mạng.Chuyển tiền mã hóa qua bridge cũng có thể cần các giao dịch và khoản phí riêng trên nhiều mạng.Tài liệu chính thức về mở rộng Ethereum giải thích mối quan hệ giữa Ethereum và các hệ thống mở rộng của mạng.
Gas trên các blockchain khác
Từ gas đôi khi được dùng không chính thức để chỉ phí giao dịch trên nhiều blockchain.Tuy nhiên, không phải blockchain nào cũng sử dụng mô hình gas của EVM.Một số mạng định giá kích thước giao dịch, chữ ký, storage, đơn vị tính toán, băng thông hoặc tài nguyên khác theo công thức riêng.Bitcoin thường sử dụng kích thước ảo của giao dịch và tỷ lệ phí thay vì gas EVM.Các blockchain có thể lập trình khác có thể đo lường tính toán bằng hệ thống chỉ thị hoặc đơn vị tính toán riêng.Người dùng nên xem quy tắc phí chính thức của đúng mạng đang sử dụng.Áp dụng giả định về gas Ethereum cho blockchain khác có thể dẫn đến ước tính chi phí không chính xác.Cách ví ước tính gas
Ví có thể mô phỏng giao dịch để ước tính lượng gas mà quá trình thực thi có thể cần.Node Ethereum cung cấp phương thức JSON-RPC
Tài liệu JSON-RPC chính thức của Ethereum mô tả các phương thức ví và ứng dụng sử dụng để tương tác với execution client.
Ví có thể cộng thêm một biên an toàn để giảm nguy cơ thay đổi nhỏ về trạng thái khiến giao dịch hết gas.Ước tính không được đảm bảo chính xác vì số dư, hạn mức, storage hợp đồng, giá và các điều kiện khác có thể thay đổi trước khi giao dịch được xác nhận.Nên mô phỏng lại giao dịch nếu đã qua nhiều thời gian hoặc tham số giao dịch đã thay đổi.Cách nhà phát triển đo lường gas
Nhà phát triển hợp đồng thông minh đo lường gas để tìm các đường thực thi tốn kém và tránh chi phí bất ngờ cho người dùng.Công cụ phát triển có thể báo cáo gas triển khai, gas của hàm, dấu vết giao dịch, thao tác storage và mức sử dụng ở cấp opcode.Ảnh chụp gas cho phép nhóm so sánh chi phí trước và sau khi thay đổi mã.Kiểm thử nên bao gồm hành vi thông thường, đầu vào lớn, thao tác lặp lại và các trường hợp thất bại.Một hàm có vòng lặp không giới hạn có thể trông ít tốn kém khi kiểm thử nhưng trở nên không thể thực thi khi tập dữ liệu tăng lên.Nhà phát triển nên dùng cùng phiên bản trình biên dịch, cấu hình optimizer và mục tiêu EVM dự kiến sử dụng trong môi trường thực tế.Tối ưu gas phải duy trì tính chính xác, bảo mật và khả năng đọc hiểu của hợp đồng.Tại sao chi phí gas có thể thay đổi sau khi nâng cấp?
Các bản nâng cấp mạng Ethereum có thể bổ sung opcode mới, thay đổi giá của thao tác, giới thiệu loại giao dịch hoặc điều chỉnh giới hạn tài nguyên.Giá của một thao tác có thể được điều chỉnh nếu chi phí gas hiện tại không phản ánh chính xác gánh nặng mà thao tác đó tạo ra cho node.Một chỉ thị mới cũng có thể thay thế chuỗi thao tác cũ dài hơn và tốn kém hơn.Các hợp đồng đã triển khai trên Ethereum tiếp tục được thực thi theo quy tắc gas có hiệu lực tại thời điểm thực thi.Điều này có nghĩa cùng một lệnh gọi hợp đồng có thể hoạt động khác về gas sau khi giao thức được nâng cấp.Nhà phát triển nên tham khảo tài liệu hiện hành và đo kiểm lại gas sau các thay đổi lớn của mạng.Hướng dẫn tiết kiệm gas cũ có thể không còn chính xác với trình biên dịch hoặc phiên bản EVM hiện đại.Gas và bảo mật hợp đồng thông minh
Giới hạn gas giúp kiểm soát mức tiêu thụ tài nguyên nhưng không chứng minh hợp đồng thông minh an toàn.Một giao dịch độc hại có thể chỉ cần rất ít gas nhưng cấp quyền token trên diện rộng hoặc chuyển tài sản có giá trị.Giao dịch tiêu thụ nhiều gas vẫn có thể hợp pháp nếu thực hiện các thao tác tài chính hoặc mật mã phức tạp.Người dùng nên xác minh địa chỉ hợp đồng, phương thức giao dịch, số lượng tài sản, người nhận và các quyền được yêu cầu.Nhà phát triển không bao giờ nên loại bỏ quyền kiểm soát truy cập, kiểm tra số dư, biện pháp bảo vệ reentrancy hoặc quy trình xác thực cần thiết chỉ để giảm lượng gas.Tiết kiệm gas không có ý nghĩa nếu lỗ hổng phát sinh khiến tiền mã hóa bị đánh cắp.Gas và thứ tự giao dịch
Cài đặt gas có thể ảnh hưởng đến tốc độ đưa giao dịch vào block và thứ tự giao dịch so với các giao dịch đang chờ khác.Phí ưu tiên cạnh tranh có thể khiến giao dịch hấp dẫn hơn đối với các hệ thống xây dựng block.Thứ tự giao dịch có thể quan trọng đối với giao dịch phi tập trung, thanh lý, đấu giá và các thao tác hợp đồng thông minh nhạy cảm về thời gian khác.Phí ưu tiên cao không đảm bảo kết quả cụ thể vì giao dịch khác vẫn có thể được xếp trước.Người dùng cũng nên cân nhắc giới hạn trượt giá, thời hạn và điều kiện thị trường thay vì chỉ dựa vào cài đặt phí.Cơ chế gas định giá hoạt động thực thi và mức độ ưu tiên nhưng không đảm bảo hoạt động tiền mã hóa có lợi nhuận.Những hiểu lầm thường gặp về gas
Một hiểu lầm là gas là token riêng cần có để sử dụng Ethereum.Gas là đơn vị đo lường, còn phí Ethereum được thanh toán bằng ETH.Một hiểu lầm khác là giới hạn gas luôn bị tính phí toàn bộ.Gas chưa sử dụng thường không được tính vào chi phí cuối cùng.Hiểu lầm thứ ba là giá gas cao hơn cung cấp thêm gas thực thi.Giới hạn gas kiểm soát lượng gas thực thi khả dụng, còn giá gas kiểm soát số tiền phải trả cho mỗi đơn vị.Hiểu lầm thứ tư là giao dịch thất bại phải được miễn phí.Node vẫn thực hiện công việc trước khi giao dịch thất bại nên lượng gas đã tiêu thụ vẫn bị tính phí.Hiểu lầm thứ năm là mọi blockchain đều áp dụng quy tắc gas của Ethereum.Các mạng khác nhau có thể đo lường và định giá tài nguyên bằng những hệ thống hoàn toàn khác nhau.Lừa đảo liên quan đến gas và an toàn ví
Kẻ lừa đảo có thể nói rằng người dùng cần mua một token gas đặc biệt để mở khóa ví Ethereum hoặc nhận khoản rút.Phí gas Ethereum tiêu chuẩn được thanh toán bằng ETH và không cần một loại tiền mã hóa gas riêng.Kẻ lừa đảo cũng có thể yêu cầu thanh toán thêm để giải phóng một giao dịch thực tế không tồn tại on-chain.Phí mạng thực tế sẽ xuất hiện trong giao dịch mà người dùng có thể kiểm tra trước khi ký.Không nhân viên hỗ trợ nào cần cụm từ khôi phục hoặc khóa riêng tư để tính gas.Các website hứa hoàn lại toàn bộ phí gas đã trả trong quá khứ có thể yêu cầu người dùng cấp quyền độc hại hoặc ký giao dịch ví.Khoản hoàn gas gốc của Ethereum được xử lý tự động và không cần truy cập website để yêu cầu.Người dùng nên truy cập ứng dụng thông qua tên miền đã xác minh và kiểm tra mọi giao dịch trước khi phê duyệt.Câu hỏi thường gặp
Gas là gì, giải thích đơn giản?
Gas là đơn vị đo lường công việc blockchain cần thực hiện để xử lý giao dịch EVM hoặc thực thi hợp đồng thông minh.Gas có phải là tiền mã hóa không?
Không. Gas là đơn vị đo tài nguyên, không phải một loại tiền mã hóa riêng.Tiền gì được dùng để thanh toán gas Ethereum?
Phí gas Ethereum được thanh toán bằng ETH.Gas và phí gas khác nhau thế nào?
Gas đo lường khối lượng công việc, còn phí gas là lượng tiền mã hóa được trả cho công việc đó.Gas và giá gas khác nhau thế nào?
Gas là số đơn vị tài nguyên tiêu thụ, còn giá gas là số tiền phải trả cho mỗi đơn vị.Giới hạn gas là gì?
Giới hạn gas là lượng gas thực thi tối đa mà một giao dịch được phép tiêu thụ.Người dùng có phải trả toàn bộ giới hạn gas không?
Không. Gas chưa sử dụng thường không được tính vào khoản phí cuối cùng, mang tính vĩnh viễn của giao dịch.Một giao dịch ETH cơ bản sử dụng bao nhiêu gas?
Giao dịch ETH tiêu chuẩn giữa các tài khoản do người dùng sở hữu thường sử dụng 21,000 gas.Tại sao chuyển token tốn nhiều gas hơn?
Giao dịch chuyển token thực thi mã hợp đồng thông minh, đọc số dư, cập nhật storage và thường phát một sự kiện.Tại sao thao tác ghi storage tốn kém?
Ghi storage tạo hoặc cập nhật trạng thái blockchain bền vững mà các node mạng phải tiếp tục duy trì.Truy cập gas lạnh là gì?
Truy cập lạnh là lần đầu tiên một tài khoản hoặc storage slot cụ thể được truy cập trong giao dịch và thường tốn nhiều gas hơn các lần truy cập ấm sau đó.Điều gì xảy ra khi giao dịch hết gas?
Quá trình thực thi thất bại sẽ dừng, các thay đổi trạng thái thường bị hoàn nguyên và lượng gas đã tiêu thụ vẫn bị tính phí.Giá gas cao hơn có ngăn được lỗi hết gas không?
Không. Giao dịch cần giới hạn gas đủ cao vì giá gas chỉ thay đổi mức phí cho mỗi đơn vị.Tại sao giao dịch thất bại vẫn dùng gas?
Node đã thực hiện công việc tính toán trước khi giao dịch thất bại.Giới hạn gas của block Ethereum là gì?
Giới hạn gas của block đặt mức trần cho tổng lượng gas thực thi dành cho các giao dịch trong một block.Giới hạn gas mặc định hiện tại của block Ethereum là bao nhiêu?
Giới hạn gas mặc định của block trong giai đoạn Fusaka của Ethereum là khoảng 60 triệu gas.Mức gas tối đa cho mỗi giao dịch Ethereum là bao nhiêu?
Theo EIP-7825, một giao dịch Ethereum bị giới hạn ở mức 16,777,216 gas.Hoàn gas là gì?
Hoàn gas là khoản tín dụng giới hạn theo giao thức, được áp dụng sau một số thao tác đủ điều kiện, chẳng hạn như xóa một số giá trị storage.Hoàn gas có thể ngăn giao dịch hết gas không?
Không. Khoản tín dụng hoàn gas được áp dụng sau khi thực thi và không thể cung cấp thêm gas trong lúc giao dịch đang chạy.SELFDESTRUCT có được hoàn gas không?
Không. Khoản hoàn gas trước đây của
Blob gas là gì?
Blob gas là đơn vị đo tài nguyên riêng của Ethereum, được dùng cho dữ liệu blob tạm thời, chủ yếu bởi các hệ thống mở rộng blockchain.Blob gas có giống gas thực thi không?
Không. Blob gas và gas thực thi EVM có hệ thống kế toán tài nguyên và thị trường phí riêng.Gas có giống nhau trên mọi blockchain không?
Không. Các blockchain khác nhau có thể dùng lịch gas, đơn vị tài nguyên, tiền tệ thanh toán phí và giới hạn giao dịch khác nhau.Ví ước tính gas như thế nào?
Ví có thể mô phỏng giao dịch đề xuất trên trạng thái blockchain hiện tại rồi cộng thêm một biên an toàn vào kết quả.Ước tính gas có thể sai không?
Có. Trạng thái hợp đồng, số dư, giá, điều kiện mạng và đường thực thi có thể thay đổi trước khi giao dịch được xác nhận.Trả nhiều phí gas hơn có đảm bảo giao dịch thành công không?
Không. Gas đủ không thể khắc phục logic hợp đồng không hợp lệ, thiếu quyền, số dư không đủ hoặc tham số sai.Có thể lấy lại toàn bộ gas đã trả trước đây không?
Không có cơ chế tiêu chuẩn nào của Ethereum cho phép người dùng thu hồi phí giao dịch thông thường đã được quyết toán.Công cụ tính gas có cần cụm từ khôi phục không?
Không. Công cụ ước tính hoặc tính gas hợp pháp không cần cụm từ khôi phục ví hay khóa riêng tư.Kết luận
Gas là hệ thống đo lường Ethereum sử dụng để định giá và giới hạn hoạt động tính toán, truy cập dữ liệu và thay đổi trạng thái trên blockchain.Gas cho phép so sánh các thao tác hợp đồng thông minh khác nhau thông qua một đơn vị tài nguyên chung.Gas không phải là tiền mã hóa; người dùng Ethereum thanh toán chi phí tài chính của gas bằng ETH.Phí giao dịch cuối cùng phụ thuộc vào lượng gas bị tính phí và giá hiệu dụng phải trả cho mỗi đơn vị gas.Giới hạn gas xác định lượng gas thực thi tối đa dành cho giao dịch, còn gas chưa sử dụng thường không bị tính phí vĩnh viễn.Ghi storage, tạo hợp đồng, payload calldata lớn và các tương tác bên ngoài phức tạp có thể làm tăng lượng gas tiêu thụ.Giới hạn gas của block Ethereum kiểm soát tổng năng lực thực thi, còn giới hạn cho mỗi giao dịch hạn chế khối lượng công việc do một giao dịch tạo ra.EIP-1559 xác định cách định giá gas thực thi thông qua phí cơ sở bị đốt và phí ưu tiên tùy chọn.Blob gas hoạt động riêng để định giá dữ liệu tạm thời chủ yếu được các hệ thống mở rộng sử dụng.Hiểu về gas giúp người dùng tiền mã hóa đánh giá chi phí giao dịch, nhận biết rủi ro giao dịch thất bại và tránh các tuyên bố gây hiểu lầm về ví hoặc hoàn phí.Đối với nhà phát triển, gas vừa là giới hạn vừa là tín hiệu thiết kế để xây dựng hợp đồng thông minh hiệu quả, an toàn và có khả năng mở rộng.Có thể bạn cũng thích
WhatsMiner M30S++
Tên miền Web3
Dự án Web3
HOT
Tiền mã hoá thịnh hành hiện nay đang thu hút sự chú ý đáng kể của thị trường
TOP KL
Tiền mã hoá có khối lượng giao dịch cao nhất
Mới được thêm vào
Tiền mã hoá được niêm yết gần đây có thể giao dịch

