Hi, guys
I finally decided to to go with UTXO's model because:
It becomes really messy when it comes to using money from multiple Unspent transactions into a new transaction. Then you need to keep the list of "parent transactions" into the new one. There are more user cases when Inputs/Outputs model solves it better.
How is this now different from your first approach?
You now just named it UTXO instead of 'previous transactions'.
And one more question - when I use a standalone wallet software - does it downloads the transactions locally or it downloads only UTXO's?
And if only UTXO's then how the parent transaction's signature is verified locally? Because without having the whole TX locally we cannot hash it an verify a signature
With 'standalone wallet software' you mean a full node client?
If so: A full node downloads the whole blockchain (every block) and verifies them, 'building a list' of UTXO's.
And a block does, of course, have the whole transaction included. It wouldn't be verifiable if this wasn't the case.
A lightweight client on the other hand does not store anything (besides wallet information of course).
Such a client (e.g. electrum) does query an online server to get the current status of UTXO's associated to your addresses.