Why accounts and not UTXOs

Posted on August 6, 2018

Bitcoin, along with many of its derivatives, stores data about users’ balances in a structure based on unspent transaction outputs (UTXOs): the entire state of the system consists of a set of “unspent outputs” (think, “coins”), such that each coin has an owner and a value, and a transaction spends one or more coins and creates one or more new coins. A user’s “balance” in the system is thus the total value of the set of coins for which the user has a private key capable of producing a valid signature.

Blacknet jettisons this scheme in favor of a simpler approach: the state stores a set of accounts where each account has a balance (as well as specific internal data), and a transaction is valid if the sending account has enough balance to pay for it, in which case the sending account is debited and the receiving account is credited with the value.

The benefits of UTXOs are:

The benefits of accounts are:

One weakness of the account paradigm is that in order to prevent replay attacks, every transaction must have a “nonce”, such that the account keeps track of the nonces used and only accepts a transaction if its nonce is 1 after the last nonce used. This means that even no-longer-used accounts can never be pruned from the account state.


Ethereum Design Rationale: Accounts and not UTXOs