Hanya untuk tujuan edukasi; bukan merupakan nasihat investasi atau rekomendasi investasi. Investasi dapat mengakibatkan kerugian.
Jawaban langsung
Model berbasis akun merepresentasikan state eksekusi sebagai data yang diberi kunci berdasarkan alamat. Pada execution layer Ethereum, leaf akun berisi [nonce, balance, storageRoot, codeHash]. balance native dinyatakan dalam wei; data kontrak berada di balik storageRoot akun tersebut; dan stateRoot blok mengikat world state hasil eksekusi. Dompet, penyedia RPC, atau explorer membaca dan menafsirkan state ini, tetapi tidak menyimpan saldo kanonis atas nama pengguna.
Saldo ERC-20, allowance, utang pinjaman, dan agunan biasanya merupakan nilai di dalam penyimpanan kontrak, bukan field tambahan pada akun protokol pemegangnya. Demikian pula, “transaksi internal” pada explorer umumnya adalah message call EVM yang direkonstruksi melalui trace, bukan transaksi Ethereum bertanda tangan terpisah dengan hash transaksi dan nonce pengirim sendiri.
Pembedaan tradisional antara externally owned account (EOA) dan akun kontrak masih berguna, tetapi “EOA selalu memiliki code kosong” tidak lagi mutlak pada chain yang mengaktifkan EIP-7702. EOA dapat memuat indikator delegasi 0xef0100 || address dan mengeksekusi code delegate sembari mempertahankan kewenangan transaksi EOA. Karena itu, klasifikasi harus memakai aturan chain dan code akun aktual, bukan label UI lama.
Audit transisi state dalam tujuh langkah
- Tetapkan titik observasi: jaringan,
chainId, aturan fork, nomor dan hash blok, timestamp, serta tag blok sepertipending,latest,safe, ataufinalized. State dekat head dapat berubah setelah reorganisasi; jangan gabungkan fakta dari blok berbeda tanpa label. - Baca field akun protokol:
nonce,balancenative,storageRoot, dancodeHash. Jika code merupakan indikator delegasi EIP-7702, selesaikan alamat delegate menurut aturan fork tersebut. Untuk proxy dan akun terdelegasi, identifikasi secara terpisah code implementasi, kendali upgrade, dan tata letak penyimpanan. - Temukan saldo aplikasi. ETH mengubah saldo native; saldo ERC-20 biasanya mengubah mapping di penyimpanan kontrak token; allowance, utang, agunan, dan reward dapat berada di kontrak dan slots lain. Decimals token dan logs membantu interpretasi, bukan field tambahan pada leaf akun.
- Dekode dan periksa transaksi top-level: jenis, domain chain, tanda tangan, nonce pengirim, penerima atau pembuatan, value, input, batas gas, batas biaya, serta access list opsional atau otorisasi EIP-7702. Pengirim harus mampu menutup value dan komitmen biaya maksimum. Transaksi yang ditolak tidak dimasukkan dan tidak memakai gas on-chain.
- Eksekusi transaksi sesuai urutan blok dari state sebelumnya. EVM memproses message call bertingkat dan frame pembuatan kontrak, masing-masing dengan caller, callee, value, calldata, gas, dan status pengembalian. Pembacaan serta penulisan bersama membuat hasil bergantung pada urutan. Access list EIP-2930 memanaskan akun dan slots yang disebut serta mengubah akuntansi gas; daftar itu tidak melarang akses yang tidak dideklarasikan dan tidak membuktikan paralelisme aman.
- Terapkan batas commit dan rollback. Frame sukses mengikat state dan logs kecuali parent kemudian revert.
REVERTmembatalkan penulisan, transfer value, dan logs frame gagal sambil mengembalikan gas yang belum dipakai; kontrak luar dapat menangkap kegagalan child call dan tetap sukses. Kegagalan top-level yang telah dimasukkan memiliki receiptstatus = 0, tetapi nonce transaksi pengirim bertambah dan gas yang terpakai tetap dibayar. Pemrosesan otorisasi EIP-7702 memiliki aturan persistensi sendiri meski eksekusi berikutnya revert. - Rekonsiliasi post-state. Cocokkan perubahan saldo native dan token, perubahan penyimpanan, status receipt, gas terpakai, harga gas efektif, logs, dan trace penyedia dengan root yang diikat blok. Perlakukan traces sebagai rekonstruksi penyedia, bukan transaksi konsensus terpisah. Tunggu finalitas yang diperlukan, lalu tangani replacement, reorg, revisi indexer, bridge, rollups, dan pembalikan akuntansi secara eksplisit.
Empat contoh terhitung
- Transfer ETH EIP-1559. A mulai dengan
5 ETHdan nonce12; B mulai dengan1 ETH. A mengirim1 ETHmemakai21,000 gas, dengan base fee20 gwei, priority cap3 gwei, dan max fee40 gwei. Harga gas efektif ialahmin(40, 20 + 3) = 23 gwei; total biaya21,000 × 23 gwei = 0.000483 ETH, terdiri dari burn base fee0.000420 ETHdan priority fee0.000063 ETH. Kebutuhan maksimum saat penandatanganan ialah1 ETH + 21,000 × 40 gwei = 1.000840 ETH. Saldo akhir A3.999517 ETH, B2 ETH, dan nonce A13. - Transaksi masuk blok tetapi revert. A mulai dengan
2 ETHdan nonce7. A memanggil kontrak dengan0.50 ETH; eksekusi top-level revert setelah80,000 gaspada harga efektif25 gwei, sehingga biayanya80,000 × 25 gwei = 0.002000 ETH. Penulisan penyimpanan kontrak, logs, dan transfer0.50 ETHdibatalkan, sedangkan A berakhir dengan1.998000 ETH, nonce8, dan receiptstatus = 0. Kegagalan child call yang ditangkap A dapat sebaliknya berdampingan dengan receipt luarstatus = 1. - Saldo token adalah penyimpanan kontrak. Kontrak token mencatat Alice
1,000 unitsdan Bob200 units. Transfer sukses250 unitsmenghasilkan Alice750 unitsdan Bob450 units, mempertahankan1,200 units. Jika transaksi top-level Alice memakai60,000 gas × 20 gwei = 0.001200 ETH, saldo ETH native miliknya turun terpisah sebesar biaya tersebut.storageRootakun token danstateRootglobal berubah; pokok token tidak pernah menjadi saldo native akun Alice. - Batas persistensi EIP-7702. Sponsor mengirim transaksi set-code berisi otorisasi dari akun A pada nonce
5untuk mendelegasikan ke implementasi D. Protokol menulis indikator23-byte, yaitu0xef0100 || 20-byte address, dan menaikkan nonce otoritas A menjadi6. Jika eksekusi berikutnya di transaksi luar itu revert, indikator delegasi dan nonce otorisasi yang sudah diproses tetap bertahan. Batas rollback ini berbeda dari penyimpanan EVM biasa yang ditulis oleh call gagal.
Risiko dan pengendalian
- Membaca chain, fork, hash blok, atau tag blok yang salah menghasilkan snapshot state yang tidak konsisten.
- RPC yang usang atau tidak tepercaya dapat menghilangkan, tertinggal, atau salah melaporkan state head.
- Perlombaan, gap, dan replacement pending nonce dapat menggagalkan asumsi antrean.
- “Cancel” pada dompet biasanya transaksi replacement, bukan penghapusan tingkat protokol.
- Saldo yang tidak cukup untuk value ditambah biaya maksimum mencegah transaksi masuk blok.
- Pergerakan base fee atau kesalahan fee cap dapat menunda inclusion atau mengubah biaya.
- Code EIP-7702 dapat membuat EOA salah diklasifikasikan oleh heuristik akun lama.
- Delegate berbahaya, cacat inisialisasi, atau replay otorisasi dapat membahayakan akun EIP-7702.
- Upgrade proxy dan delegate calls dapat mengubah interpretasi code dan penyimpanan seiring waktu.
- Kesalahan kunci, domain tanda tangan, atau chain ID dapat mengizinkan pencurian atau replay.
- Reentrancy dan urutan shared state dapat mengubah saldo dalam satu eksekusi.
- Child call dapat gagal dan ditangkap sementara transaksi luar tetap melaporkan sukses.
- Revert top-level atau out-of-gas tetap memakai gas dan menaikkan nonce pengirim.
- Decimals token, fee-on-transfer, rebasing, dan hooks dapat membatalkan aritmetika saldo sederhana.
- Allowance, utang, agunan, dan reward dapat terlewat jika hanya saldo dompet yang direkonsiliasi.
- Logs dapat tidak ada, dibatalkan, menyesatkan, atau tidak cukup membuktikan state akhir.
- “Transaksi internal” explorer dan traces penyedia dapat berbeda karena merupakan tampilan rekonstruksi.
- Access list dapat tidak lengkap, terduplikasi, atau tidak ekonomis dan tidak mengunci read/write set.
- Urutan shared state, priority fees, dan MEV dapat mengubah hasil eksekusi.
- Reorg, pruning, proofs yang tidak tersedia, transisi sistem L2, dan finalitas bridge dapat membalik atau mengaburkan akuntansi.
Kesalahpahaman umum
- “Dompet menyimpan saldo on-chain.” Dompet menyimpan kredensial dan menyajikan state yang diperoleh dari jaringan.
- “Setiap alamat selamanya merupakan EOA tanpa code atau kontrak biasa.” Delegasi EIP-7702 mengubah heuristik code tersebut.
- “Setiap transfer yang ditampilkan adalah transaksi Ethereum terpisah.” Event token dan trace message call internal bukan transaksi top-level bertanda tangan.
- “Transaksi gagal tidak mengubah apa pun dan tidak memerlukan biaya.” Kegagalan yang masuk blok dapat memakai gas dan menaikkan nonce pengirim.
- “Model akun atau access list menjamin eksekusi paralel yang lebih cepat daripada UTXO.” Kinerja dan konflik bergantung pada keseluruhan protokol dan beban kerja.