2

There are two possible models, the UTXO model and the account model. Each has advantages and disadvantages. Bitcoin chose the UTXO model. XRP and Ethereum for example use an account model.

What are the advantages and disadvantages of each model?

Ini
  • 311
  • 2
  • 10
  • It is not. My question is generic as you can see he asks something specific. – Ini Apr 30 '18 at 19:09
  • Maybe the question isn't, but I think my answer there covers your question as well. – Pieter Wuille Apr 30 '18 at 19:10
  • Nop. If this would be the case @David Schwartz would not have suggested to open a new question about this topic in this thread: https://bitcoin.stackexchange.com/questions/20611/why-do-outputs-need-to-be-spent-entirely/20623?noredirect=1#comment86236_20623 – Ini Apr 30 '18 at 19:11
  • Maybe he wasn't aware of the question there, or feels information is missing. That's fine. I'm simply stating that my answer to this question would be identical to my answer there. – Pieter Wuille Apr 30 '18 at 19:12
  • The question at your link is totally specific, my qustion is generic. I suppose the answer it totally different or lets say the answer here should be much more comprehensive (spv, light-clients trust, privacy, smart contracts etc etc). – Ini Apr 30 '18 at 19:13
  • 1
    That question only addresses scaling and doesn't address any of the other benefits of the account model, such as the ability to manage properties of accounts. – David Schwartz Apr 30 '18 at 20:21
  • 1
    No, it explains how it adds complications (which are solvable, as you point out) while worsening privacy. As a result, I believe there are no advantages to the account model - encouraging linkage of transactions is giving up on creating a fungible currency. – Pieter Wuille Apr 30 '18 at 20:57
  • @PieterWuille Being able to rotate your keys without having to move your money or tell everyone who might need to send you money about your new receiving address isn't an advantage? Being able to use a single receiving address for multiple currencies isn't an advantage? – David Schwartz Apr 30 '18 at 21:54
  • @DavidSchwartz They certainly make things easier to reason about, as they make the on-chain data more accurately match the reality of funds movement. However, I believe that is the wrong place to solve this. Describing more than what is needed for validating the correctness of your ledger is gratuitously giving up privacy, which hurts the fungibility of the currency. All the things you bring up can be solved at higher levels, with better privacy and scalability trade-offs. Anyway, I mostly agree with your answer below. – Pieter Wuille Apr 30 '18 at 23:11

1 Answers1

7

The primary advantages of the UTXO model are simplicity of implementation and improved privacy.

With the UTXO model, transactions just consume some UTXOs and create some UTXOs. This tight constraint on what transactions can do makes transactions simpler and easier to execute in parallel.

The UTXO model also improves privacy by making it more difficult to associate transactions issued by the same party.

The primary advantages of the account model are improvements in transaction flexibility, account management, and multi-currency capabilities. A transaction in an account model can do much more than just consume and create UTXOs, it can modify persistent data associated with an account. This permits functions like order books and cross-currency payments.

Perhaps most importantly, it allows an account to be managed. For example, the XRP Ledger permits accounts to change their cryptographic credentials. You can have a publicly known receiving address and change the key needed to spend funds sent to that address without having to communicate a new address or move funds.

On a multi-currency system, accounts can specify assets that they're willing to accept as payment. So, for example, if I owe you US dollars, I can check your account settings to see what assets you accept for dollar payments. The enables the XRP Ledger's foreign asset system, enabling the largest decentralized exchange in the world.

Lastly, an account model makes it easier to bring new servers up. The number of accounts will generally be much less than the number of UTXOs in a comparably sized system. This means less data needed to bring on new nodes.

David Schwartz
  • 51,554
  • 6
  • 106
  • 178