0Pricing
Web3 & DApp Development Fundamentals · Pelajaran

Akun dan State

EOA dan kontrak

Akun dan State adalah pelajaran Web3 & DApp Development Fundamentals gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Web3 & DApp Development Fundamentals, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Web3 & DApp Development Fundamentals mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

What Is the World State?

Ethereum's world state is the complete snapshot of all accounts and their data at a given moment.

Every transaction transforms this state from one valid version to the next. Accounts are the building blocks of that state.

Two Types of Accounts

Ethereum has exactly two account types:

  • Externally Owned Accounts (EOAs) — controlled by private keys (users)
  • Contract Accounts — controlled by their code

Both share the same 20-byte address format.

Externally Owned Accounts

An EOA is controlled by a private key. It can initiate transactions: send ETH or call contracts.

EOAs have no code of their own — they are simply key-controlled accounts that humans (or bots) operate.

EOA {
  address: 0xAbc...123
  balance: 4.2 ETH
  nonce:   17
  code:    none
}

Contract Accounts

A contract account holds code (bytecode) and storage. It has no private key and cannot start a transaction on its own.

It only acts when called by an EOA or another contract, running its code in response.

Contract {
  address: 0xDef...456
  balance: 10 ETH
  code:    0x6080604052...
  storage: { slot0: ..., slot1: ... }
}

The Four Account Fields

Every account stores four fields:

  • nonce — transaction count (EOA) or contracts created (contract)
  • balance — ETH held, in wei
  • storageRoot — hash of the account's storage
  • codeHash — hash of the account's code

EOA vs Contract Differences

The key distinction:

  • Only EOAs can initiate transactions
  • Only contracts have code and significant storage
  • An EOA's codeHash is empty; a contract's is not

How State Changes

State changes only through transactions. A transaction can move ETH, deploy a contract, or call a contract that updates its storage.

After each block, the world state advances to a new, agreed-upon version.

The State Trie

All accounts are stored in a giant Merkle Patricia Trie. Its root hash — the state root — is recorded in each block header.

This single hash commits to the entire world state, just as a Merkle root commits to all transactions.

block header includes:
  stateRoot   -> all accounts
  txRoot      -> all transactions
  receiptRoot -> all receipts

Account Creation

An EOA effectively exists the moment a key pair is generated — no on-chain step is needed until it transacts.

A contract account is created when a deployment transaction runs constructor code and stores the resulting bytecode.

Smart Contract Interaction

To interact with a contract, an EOA sends a transaction specifying the contract address and the function data.

The EVM looks up the contract's code by its codeHash and executes it, possibly updating storage.

Putting It Together

Ethereum's state is a collection of accounts. EOAs are key-controlled and initiate transactions; contracts hold code and storage and react to calls.

The state root in each block commits to all of it.

Quick Check

Test your accounts knowledge.

Recap: Accounts and State

You learned that:

  • Ethereum has EOAs (key-controlled) and contract accounts (code-controlled)
  • Only EOAs can initiate transactions
  • Each account has a nonce, balance, storageRoot, and codeHash
  • The state root commits to all accounts

You have completed the Web3 fundamentals track.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Akun dan State” gratis?

Ya — teks lengkap “Akun dan State” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Web3 & DApp Development Fundamentals, upgrade ke CoddyKit PRO. Kursus Web3 & DApp Development Fundamentals mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Akun dan State”?

EOA dan kontrak Kamu berlatih Web3 & DApp Development Fundamentals dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Web3 & DApp Development Fundamentals?

Tidak diperlukan pengalaman sebelumnya. Web3 & DApp Development Fundamentals di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Akun dan State” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Web3 & DApp Development Fundamentals ini?

Ya. Setiap pelajaran Web3 & DApp Development Fundamentals menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Ethereum Virtual Machine
  2. Storage, Memory, Stack
  3. Opcode
  4. Akun dan State
← Kembali ke Web3 & DApp Development Fundamentals