mit-dci / opencbdc-tx

A transaction processor for a hypothetical, general-purpose, central bank digital currency
Other
901 stars 199 forks source link

Implications of UTXOs #27

Open narula opened 4 years ago

narula commented 4 years ago

We've chosen a UTXO-based model, but we should track all the pluses/minuses we end up finding for each here.

theuni commented 4 years ago

Coin selection, aggregation (-UTXOs)

Thought about this for a while after our discussion yesterday. One of the worst-case problems to solve is: how do I spend a million pennies?

Thinking it through though, I think it's the question that's flawed. With cash, nobody "spends" a million pennies. It doesn't happen. You take a million pennies to the bank and turn them into large bills. Possibly for a fee, and it's definitely not instantaneous.

So the more reasonable question to ask is: in a CBDC design, how to do I take a million pennies to the "bank" to exchange for larger outputs?

This could be a different type of transaction/interaction, potentially one that bypasses the usual sentinels and instead goes through some re-minting process.

VISQonSpotify commented 2 years ago

We've chosen a UTXO-based model, but we should track all the pluses/minuses we end up finding for each here.

  • Coin selection, aggregation (-UTXOs)
  • Have to "discover" my money; hard to know what my UTXOs are (-UTXOs)
  • Having to make change (-UTXOs)

Hi, curious to know. Is this being built on its own ledger or is this working on blockchain technology?

HalosGhost commented 2 years ago

@VISQonSpotify I am not quite sure what your question is, but please read through the technical paper and architecture guide for more information; and leave issues to discussion of the specific topic.

temucin commented 2 years ago

Compact transaction data (inptus and outputs available together in single transaction) +UTXO Easy audit history +UTXO

Tranasction bloat -UTXO

Haven't dug in too deeply to the codebase, but is there an issue with "over sharing" transaction history? Other UTXO implementations have the issue of revealing historical data to non-relevant participants (e.g. Corda). There are ways to resolve this, but requires additional work and does introduce other constraints.