Web3 & DApp Development Fundamentals · Lektion

Accounts und State

EOAs und Contracts

Lektion 4 von 413 Schritte

Accounts und State ist eine kostenlose Web3 & DApp Development Fundamentals-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Web3 & DApp Development Fundamentals-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Web3 & DApp Development Fundamentals-Kurs umfasst insgesamt 4 Lektionen.

Was ist der globale Zustand?

Der globale Zustand von Ethereum ist eine vollständige Momentaufnahme aller Accounts und ihrer Daten zu einem bestimmten Zeitpunkt.

Jede Transaktion wandelt diesen Zustand von einer gültigen Version in die nächste um. Accounts sind die Bausteine dieses Zustands.

Zwei Account-Typen

Ethereum hat genau zwei Account-Typen:

  • Externally Owned Accounts (EOAs) – werden durch private Schlüssel kontrolliert (Benutzer)
  • Contract Accounts – werden durch ihren Code kontrolliert

Beide verwenden dasselbe 20-Byte-Adressformat.

Externally Owned Accounts

Ein EOA wird durch einen privaten Schlüssel kontrolliert. Es kann Transaktionen initiieren, also ETH senden oder Contracts aufrufen.

EOAs haben keinen eigenen Code – es handelt sich einfach um schlüsselgesteuerte Accounts, die von Menschen oder Bots verwendet werden.

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

Contract Accounts

Ein Contract Account enthält Code (Bytecode) und Storage. Er besitzt keinen privaten Schlüssel und kann nicht selbstständig eine Transaktion starten.

Er wird nur aktiv, wenn er von einem EOA oder einem anderen Contract aufgerufen wird, und führt dann seinen Code aus.

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

Die vier Account-Felder

Jeder Account speichert vier Felder:

  • nonce – Anzahl der Transaktionen (EOA) oder erstellten Contracts (Contract)
  • balance – gehaltenes ETH-Guthaben, angegeben in Wei
  • storageRoot – Hash des Account-Storage
  • codeHash – Hash des Account-Codes

Unterschiede zwischen EOA und Contract

Der entscheidende Unterschied:

  • Nur EOAs können Transaktionen initiieren
  • Nur Contracts haben Code und umfangreichen Storage
  • Der codeHash eines EOA ist leer, der eines Contracts nicht

Wie sich der Zustand ändert

Der Zustand ändert sich ausschließlich durch Transaktionen. Eine Transaktion kann ETH übertragen, einen Contract bereitstellen oder einen Contract aufrufen, der seinen Storage aktualisiert.

Nach jedem Block geht der globale Zustand in eine neue, gemeinsam vereinbarte Version über.

Der State Trie

Alle Accounts werden in einem großen Merkle-Patricia-Trie gespeichert. Sein Root-Hash – der State Root – wird im Header jedes Blocks aufgezeichnet.

Dieser einzelne Hash bindet den gesamten globalen Zustand fest ein, genauso wie ein Merkle-Root alle Transaktionen bindet.

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

Erstellung von Accounts

Ein EOA existiert praktisch in dem Moment, in dem ein Schlüsselpaar erzeugt wird – bis es eine Transaktion ausführt, ist kein On-Chain-Schritt erforderlich.

Ein Contract Account wird erstellt, wenn eine Deployment-Transaktion den Constructor-Code ausführt und den resultierenden Bytecode speichert.

Interaktion mit Smart Contracts

Um mit einem Contract zu interagieren, sendet ein EOA eine Transaktion, die die Contract-Adresse und die Funktionsdaten angibt.

Die EVM sucht den Code des Contracts anhand seines codeHash und führt ihn aus, wobei möglicherweise der Storage aktualisiert wird.

Alles zusammenführen

Der Zustand von Ethereum besteht aus einer Sammlung von Accounts. EOAs werden durch Schlüssel kontrolliert und initiieren Transaktionen; Contracts enthalten Code und Storage und reagieren auf Aufrufe.

Der State Root jedes Blocks bindet all dies fest ein.

Schnelltest

Testen Sie Ihr Wissen über Accounts.

Zusammenfassung: Accounts und Zustand

Sie haben gelernt:

  • Ethereum verfügt über EOAs (schlüsselgesteuert) und Vertragskonten (codegesteuert)
  • Nur EOAs können Transaktionen initiieren
  • Jedes Konto verfügt über eine Nonce, ein Guthaben, eine storageRoot und einen codeHash
  • Die State-Root stellt eine Verknüpfung zu allen Konten her

Sie haben den Web3-Grundlagenpfad abgeschlossen.

Kostenlos starten

Lerne Web3 & DApp Development Fundamentals mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
29
Lektionen
105

Häufig gestellte Fragen

Ist die Lektion „Accounts und State“ kostenlos?

Ja — der vollständige Text von „Accounts und State“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Web3 & DApp Development Fundamentals-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Web3 & DApp Development Fundamentals-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Accounts und State“?

EOAs und Contracts Du übst Web3 & DApp Development Fundamentals mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Web3 & DApp Development Fundamentals zu starten?

Keine Vorkenntnisse erforderlich. Web3 & DApp Development Fundamentals auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Accounts und State“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Web3 & DApp Development Fundamentals-Lektion Code schreiben und ausführen?

Ja. Jede Web3 & DApp Development Fundamentals-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Die Ethereum Virtual Machine
  2. Storage, Memory, Stack
  3. Opcodes
  4. Accounts und State
← Zurück zu Web3 & DApp Development Fundamentals