Why don't we just use balances? The nodes would verify that balance > 0 before validating the transaction.

  • I guess SPV is one reason to do so. I'm not 100% sure but I read that some projects use UTXO to be able to have light-clients on low-performance hardware. WHen this is true Ethereum might have a hard time to gain adoption on mobile devices.
    – Ini
    Apr 26, 2018 at 11:49

1 Answer 1


Outputs neatly solve a few problems you would encounter with a balance based system.

  • Transactions using outputs can not be replayed cross network, multiple times, or in different situations than when they were created. In an address based system you must keep a nonce or a record of all past transactions to ensure multiple executions of one transaction does not occur. You don't have the option of re-signing a transaction with a higher miners fee, because the transactions are not atomic and can both exist in the chain at once.

    • Transactions using outputs can be deployed even years after they have been signed, which is incompatible with an incremented nonce.

    • An output based system can forget about an output once it is spent, a nonce based system must keep track of all nonces forever.

  • Verifying that an output exists in a block is trivial by displaying the merkle path to it, and showing the block header is part of the main chain. In an address based system this is substantially harder to prove, if not impossible given the same constraints.

  • 3
    Another one: a balance-based system would give an efficiency benefit to account reuse. In general, you don't want a system that encourages bad privacy. Aug 21, 2015 at 14:35
  • Right, but all of those problems are easily solved in a balance-based system and using outputs creates a bunch of problems (also easily solved) that balance-based systems don't have. So while this is all true, it's not a reason to prefer an output-based system over a balance-based system. Feb 28, 2019 at 16:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.