Lompat ke konten

Gas dan Biaya Transaksi

Panduan yang mempertimbangkan fork tentang unit gas, biaya intrinsik dan eksekusi, batas biaya EIP-1559, pembakaran base fee, priority fee, revert, kehabisan gas, refund, blob gas, dan komponen biaya L2.

Diperbarui

Hanya untuk tujuan edukasi; bukan merupakan nasihat investasi atau rekomendasi investasi. Investasi dapat mengakibatkan kerugian.

Jawaban langsung

Gas adalah unit akuntansi protokol untuk kerja eksekusi dan akses state; biaya gas adalah beban moneter yang dihitung dari unit gas yang dikenakan biaya dan harga per unit. Pada Ethereum EIP-1559, effectiveGasPrice = min(maxFeePerGas, baseFeePerGas + maxPriorityFeePerGas), biaya eksekusi adalah gasUsed * effectiveGasPrice, bagian base fee dibakar, dan bagian priority fee dibayar melalui jalur penerima biaya blok. Gas limit dan batas biaya memberikan otorisasi maksimum, bukan jumlah yang otomatis dibelanjakan.

Gas aktual bergantung pada calldata, jalur opcode, ekspansi memori, akses state cold dan warm, perubahan storage, panggilan bertingkat, precompile, keberhasilan atau kegagalan, refund, dan fork aktif. Harga lebih tinggi dapat meningkatkan daya saing untuk penyertaan, tetapi tidak dapat memperbaiki revert, gas limit yang kurang, kontrak berbahaya, kuotasi usang, atau calldata yang salah. Transaksi blob dan banyak L2 menambahkan komponen biaya data atau protokol terpisah yang tidak boleh dianggap sebagai gas EVM.

Biaya jaringan
0,000462 native
Setara dengan Fiat
US$1,39
Biaya dasar
22 gwei

Outputnya adalah perkiraan pendidikan. Mereka mengecualikan aturan tempat, pajak, latensi, perilaku oracle, dan parameter khusus protokol lainnya kecuali ditunjukkan.

Cara kerjanya

  1. Tetapkan chain, fork, blok atau state tag, jenis transaksi, pengirim, nonce, tujuan, value, calldata, access list, kolom blob, aset gas, dan mata uang biaya. Catat apakah kuotasi berkaitan dengan transaksi L1, eksekusi L2, publikasi data, penarikan, atau rute gabungan.
  2. Rekonstruksi gas intrinsik sebelum eksekusi: transaction envelope, biaya byte calldata, pembuatan kontrak dan access list, serta overhead khusus jenis transaksi. Jika gas limit di bawah gas intrinsik atau pengirim tidak memenuhi validasi biaya maksimum protokol, transaksi ditolak sebelum eksekusi yang disertakan, bukan disertakan lalu di-revert.
  3. Telusuri eksekusi menurut fork target. Ukur biaya dinamis opcode, ekspansi memori, akun atau slot storage cold dan warm, SSTORE, penerusan gas ke panggilan, transfer value, biaya precompile, log, dan refund. Fungsi ABI yang sama dapat mengikuti cabang berbeda dan memakai gas berbeda di state yang berbeda.
  4. Pisahkan hasilnya. Eksekusi berhasil mencatat efeknya. REVERT membatalkan lingkup yang gagal dan dapat mengembalikan gas frame yang belum terpakai; penghentian luar biasa karena kehabisan gas umumnya menghabiskan gas yang diberikan kepada frame tersebut. Kegagalan top-level yang disertakan tetap memakai nonce transaksi dan gas yang dikenakan biaya meski state kontrak, transfer value, dan log dibatalkan.
  5. Hargai gas eksekusi. Untuk transaksi tipe 2, hitung effective gas price dari base fee, priority cap, dan total cap, lalu pisahkan gas yang dikenakan biaya menjadi base fee yang dibakar dan priority fee. Bedakan gas yang tidak terpakai serta ruang max fee yang tidak dibelanjakan dari refund gas protokol akibat pembersihan state yang memenuhi syarat dan dibatasi refund cap aktif.
  6. Hargai pasar biaya lain secara terpisah. Transaksi blob membayar gas eksekusi ditambah blobGasUsed * blobGasPrice dengan batas maxFeePerBlobGas; blob base fee memiliki jalur penyesuaian sendiri. Biaya pengguna L2 dapat mencakup eksekusi L2, data L1 terkompresi atau biaya blob, biaya operator atau protokol, dan margin, dengan rumus serta parameter skalar yang khusus untuk deployment dan upgrade itu.
  7. Rekonsiliasi estimasi, penyertaan, dan receipt. Sebelum menandatangani, periksa saldo terhadap value plus biaya maksimum yang diotorisasi, simulasikan pada state yang ditetapkan, dan pasang batas biaya yang terkendali. Setelah penyertaan, catat gas limit, gas used pada receipt, effective price, base fee, priority fee, efek refund, blob gas, kolom biaya L2, status, dan perubahan saldo; perlakukan galat estimasi, replacement, dan finalitas secara terpisah.

Contoh terhitung

  • Keberhasilan tipe 2 dan batas biaya. Gas limit 120,000, gas used 70,000, base fee 25 gwei, max priority fee 3 gwei, dan max fee 40 gwei. Effective price adalah min(40, 25 + 3) = 28 gwei; biaya aktual 70,000 * 28 gwei = 0.001960 ETH, terdiri dari 0.001750 ETH yang dibakar dan 0.000210 ETH sebagai priority fee. Otorisasi biaya eksekusi maksimum 120,000 * 40 gwei = 0.004800 ETH; 50,000 gas yang tidak terpakai dan ruang cap yang tidak dibelanjakan bukan refund pembersihan protokol.
  • REVERT dibanding kehabisan gas. Dua panggilan yang disertakan masing-masing memiliki gas limit 100,000 dan effective price 30 gwei. Panggilan A menjalankan REVERT setelah gas used di receipt mencapai 60,000, sehingga biayanya 60,000 * 30 gwei = 0.001800 ETH. Panggilan B menghabiskan seluruh gas limit transaksi, sehingga biayanya 100,000 * 30 gwei = 0.003000 ETH. Kedua kegagalan top-level membatalkan efek kontrak dan memakai nonce pengirim, tetapi REVERT dapat menyisakan gas yang belum dipakai sedangkan kehabisan gas tidak.
  • Refund cap. Dalam contoh pembelajaran yang dibatasi fork EIP-3529, eksekusi memakai 100,000 gas sebelum refund dan menghasilkan refund counter 30,000 gas. Refund maksimum yang diterapkan adalah 100,000 / 5 = 20,000 gas, sehingga gas yang dikenakan biaya menjadi 100,000 - 20,000 = 80,000 gas. Pada 20 gwei, biayanya 0.001600 ETH, bukan 0.002000 ETH, yaitu penghematan 0.000400 ETH; aturan refund dan operasi yang memenuhi syarat dapat berubah menurut fork.
  • Pasar blob fee terpisah. Transaksi blob hipotetis memakai 100,000 gas eksekusi pada 20 gwei dan dua blob. Dengan 131,072 blob gas/blob, blob gas used adalah 262,144; pada blob gas price 5 gwei, blob fee adalah 262,144 * 5 gwei = 0.00131072 ETH. Biaya eksekusi 0.002000 ETH, sehingga biaya protokol gabungan 0.00331072 ETH. Nilai 5 gwei adalah asumsi contoh, dan blob fee bukan priority tip validator ataupun biaya end-to-end penuh pengguna L2.

Risiko

  • Menggunakan chain, fork, aset gas, jenis transaksi, atau mata uang biaya yang salah.
  • Mencampur unit gas, wei, gwei, ETH, dan konversi fiat.
  • Menganggap gas limit sebagai biaya yang diperkirakan atau aktual.
  • Gagal dalam pemeriksaan pravalidasi gas intrinsik atau biaya maksimum.
  • Mengandalkan estimasi usang setelah state, base fee, atau calldata berubah.
  • Menetapkan gas limit di bawah kebutuhan cabang aktual.
  • Menganggap harga gas lebih tinggi dapat mencegah REVERT kontrak.
  • Mencampur REVERT, kehabisan gas, opcode tidak valid, dan penolakan pravalidasi.
  • Melewatkan kegagalan child call yang ditangani ketika status top-level 1.
  • Salah menghargai akses state cold dan warm atau access list yang tidak lengkap.
  • Mengabaikan ekspansi memori, penerusan gas, precompile, atau biaya log.
  • Menerapkan aturan refund storage yang usang atau melampaui refund cap.
  • Menganggap gas tidak terpakai atau ruang fee cap sebagai refund gas protokol.
  • Menetapkan max fee di bawah base fee blok penyertaan.
  • Membayar priority fee berlebihan tanpa memahami kebijakan builder atau sequencer.
  • Tidak memiliki aset gas native meskipun memegang aset lain.
  • Mengabaikan blob gas, blob fee cap, atau biaya data availability.
  • Menganggap rumus eksekusi, data, skalar, dan operator satu L2 berlaku universal.
  • Mengabaikan persaingan replacement, nonce, transaksi drop, dan reservasi saldo.
  • Menganggap transaksi berbayar atau berhasil sebagai bukti keamanan atau finalitas.

Kesalahpahaman umum

  • Gas adalah persentase dari value yang ditransfer.
  • Menaikkan gas limit selalu menaikkan jumlah yang dibebankan.
  • Max fee atau priority fee tinggi menjamin eksekusi berhasil.
  • Semua otorisasi tak terpakai dan refund pembersihan state adalah mekanisme yang sama.
  • Biaya L2 hanya berupa gas EVM lokal dan blob gas adalah gas eksekusi biasa.

Topik terkait

Sumber

Navigasi

Cari di wiki...