Belajar Web3 - Transaksi, Gas & Networks
Episode 4 of 23

Belajar Web3 - Transaksi, Gas & Networks

Membedah anatomi transaksi Ethereum dari from/to/value/nonce hingga gas, proses signing ECDSA dan perjalanan transaksi di mempool, model fee EIP-1559, perbedaan mainnet dan testnet, serta cara memanfaatkan faucet

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 3 kita memahami wallet sebagai identitas, pada episode ini kita membedah transaksi — satu-satunya cara mengubah state di blockchain. Setiap kali user menekan tombol di DApp kalian, yang terjadi di belakang layar adalah pembuatan, penandatanganan, dan penyiaran transaksi.

Mengapa episode ini penting? Karena 90% "bug" yang terlihat seperti aplikasi rusak sebenarnya adalah masalah transaksi: nonce duplikat, gas terlalu rendah, fee spike, atau salah network. Developer Web3 yang memahami transaksi bisa membedakan "kontrak saya bermasalah" dari "transaksinya belum dikonfirmasi".

Anatomi Transaksi

Transaksi EVM modern (type 2, EIP-1559) memiliki field sebagai berikut:

Contoh transaksi EIP-1559
{
  "from": "0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed",
  "to": "0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db",
  "value": "1000000000000000000",
  "nonce": 7,
  "gas": 21000,
  "maxFeePerGas": "50000000000",
  "maxPriorityFeePerGas": "1500000000",
  "chainId": 1,
  "data": "0x"
}
FieldFungsi
fromPengirim — dijamin oleh signature
toPenerima (EOA atau kontrak)
valueJumlah token native (wei) yang dikirim
noncePenghitung transaksi per akun — mencegah double-spend dan menjamin urutan
gasGas limit: maksimum kerja yang diizinkan
maxFeePerGasHarga maksimum per gas yang rela dibayar
chainIdMencegah replay lintas chain
dataPayload call ke kontrak (jika to adalah kontrak)

Perhatikan value: 1000000000000000000 — itu 1 ETH dalam satuan terkecil wei (1 ETH = 10^18 wei). Konversi satuan adalah sumber bug klasik; viem menyediakan parseEther dan formatEther untuk menanganinya.

Signing: ECDSA

Transaksi harus ditandatangani sebelum disiarkan — hanya pemilik private key yang bisa menandatanganinya. Ethereum memakai ECDSA (Elliptic Curve Digital Signature Algorithm) pada kurva secp256k1.

Yang perlu kalian pahami bukan matematikanya, melainkan konsekuensi praktisnya:

  • Signature tidak pernah mengungkap private key — key menandatangani hash, bukan dikirim bersama transaksi.
  • Signature hanya berlaku untuk data persis yang ditandatangani — mengubah satu byte akan menggagalkan verifikasi.
  • Dari signature, siapa pun bisa memulihkan address pengirim — sehingga node tidak perlu tahu key kalian untuk memvalidasi.

Mempool: Antrean Transaksi

Setelah disiarkan, transaksi masuk ke mempool — kolam transaksi yang belum terkonfirmasi. Penambang/pembangun blok memilih transaksi dengan prioritas fee tertinggi:

100%

Konsekuensi praktis: transaksi dengan fee terlalu rendah bisa mengantre sangat lama, atau terjatuh dari mempool. Kalian melihat status ini di Etherscan lewat status "Pending". Hashing transaksi yang sama dengan fee lebih tinggi (mengganti transaksi pending) adalah trik umum untuk mempercepat.

Gas dan EIP-1559

Gas adalah unit kerja komputasi: setiap opcode punya harga gas, dan user membayar total gas * harga. Sejak EIP-1559 (London, 2021), fee terdiri dari dua komponen:

KomponenSifatFungsi
Base feeDitentukan protokol, naik/turun per blokMenyesuaikan permintaan jaringan
Priority fee (tip)Ditentukan userInsentif agar builder memilih transaksi kalian

maxFeePerGas adalah batas maksimum total; maxPriorityFeePerGas adalah tip maksimum. Estimasi yang disarankan wallet biasanya sudah memperhitungkan keduanya.

Tip

Pola umum di DApp: biarkan wallet (MetaMask) menangani estimasi gas default, tetapi untuk transaksi besar atau saat network sedang ramai, tampilkan estimasi gas kepada user sebelum konfirmasi. Kita implementasikan ini di episode 11.

Networks: Mainnet vs Testnet

AspekMainnetTestnet
SifatUang asli, permanenToken gratis, bisa dibuang
ContohEthereum, Base, Arbitrum, SolanaSepolia, Holesky, Base Sepolia
TujuanProduksiDevelopment & testing
RisikoKehilangan aset nyataTidak ada (hanya token fiktif)
FaucetTidak adaAda — token testnet gratis

Untuk series ini kita memakai Sepolia (testnet EVM resmi Ethereum) dan Base Sepolia. Holesky adalah testnet staking/konsensus; pilih sesuai kebutuhan.

Faucet: Mendapat Token Testnet

Untuk membayar gas di testnet, kalian butuh token testnet dari faucet:

Cek saldo Sepolia dengan cast
cast balance 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed --rpc-url $RPC_URL

Faucet populer: faucets.chain.link, Alchemy Faucet, dan faucet resmi Sepolia. Beberapa faucet meminta ETH mainnet di address kalian (sebagai syarat anti-abuse). Setelah saldo testnet tersedia, kalian bisa menjalankan semua praktik series tanpa risiko finansial.

Penutup

Inti yang harus dibawa pulang:

  • Transaksi = from/to/value/nonce/gas + signature + chainId; data untuk call kontrak.
  • Nonce mencegah double-spend; chainId mencegah replay lintas chain.
  • ECDSA menandatangani hash tanpa membocorkan private key; mempool mengantre transaksi berdasarkan fee.
  • EIP-1559 memisahkan base fee dan priority fee; maxFeePerGas adalah batas maksimum.
  • Selalu develop di testnet (Sepolia/Holesky) — token gratis dari faucet, risiko nol.

Di episode 5 selanjutnya, kita membahas DApp architecture overview — lapisan frontend, contract, dan infra dalam satu aplikasi nyata, plus alur kerja connect wallet → read → write → event listener yang menjadi siklus hidup setiap DApp. Sampai jumpa di episode 5!

Belajar Web3 - Transaksi, Gas & Networks | Belajar Web3