Accountmodel
Het accountmodel is een manier om het grootboek van een blockchain in te richten rond accounts met saldo's — zoals bankrekeningen — waarbij transacties de afzender rechtstreeks afschrijven en de ontvanger bijschrijven. Ethereum is het canonieke voorbeeld: de keten houdt een globale status bij die elk adres koppelt aan zijn saldo, een transactieteller (nonce) en, voor contractaccounts, code en opslag. Als je 1 ETH verstuurt, trekt het protocol dat af van het saldo van je account en telt het op bij dat van de ontvanger.
Dit staat tegenover het UTXO-model van Bitcoin, waarin waarde bestaat als afzonderlijke niet-uitgegeven outputs die in hun geheel moeten worden verbruikt, waarbij wisselgeld terugkomt. Het belangrijkste voordeel van het accountmodel is programmeerbaarheid: smart contracts zijn simpelweg accounts met code, die saldo's en persistente opslag bevatten waarmee veel gebruikers interacteren — een ontwerp dat DeFi-protocollen, tokencontracten en DAO's natuurlijk uitdrukbaar maakt, en daarom gebruiken vrijwel alle smart-contractplatforms (Ethereum, Solana, BNB Chain, Tron) accounts. De nadelen zijn subtieler: transacties van één account moeten in nonce-volgorde worden uitgevoerd, gedeelde status zorgt voor concurrentie om dezelfde data, wat parallelle uitvoering bemoeilijkt, en het hergebruiken van één adres voor alles maakt activiteit makkelijker te traceren dan de gewoonte van UTXO-ketens om telkens een nieuw adres te gebruiken.
Ethereum kent twee soorten accounts: externally owned accounts, bestuurd door een private key, en contractaccounts, die uitsluitend door hun code worden bestuurd — een contract heeft geen sleutel en handelt alleen wanneer een transactie het aanroept. Een veelvoorkomende misvatting is dat het ene model gewoon beter is; het zijn technische afwegingen, waarbij UTXO eenvoudige parallelle betalingen bevoordeelt en het accountmodel rijke toepassingen met gedeelde status, en sommige nieuwere ketens elementen van beide combineren.