Union transaction must contains the block number that must be used to determine all address transactions.
- if later I receive money, this new transaction will have a larger block number, and must not be used in the union transaction.
- if I spend money later (related to union transaction), there will be a "double spend" transaction. This situation is common for transactions. Only one transaction will be selected, so this is not a problem.
It's confusing. The current blockchain system works by only allowing each inputs to only be spent once. How is your implementation going to help?
I mean a special transaction, a separate type. As message transaction, for example.
There isn't a message transaction. Unless you are referring to OP_Return which contributes to Blockchain bloat.
All transactions contain address. So it's need only + one index for array search.
Conventional transactions contain a list of input transaction numbers. They also have to be searched. For each transaction there will be a separate search. There are always more transactions than addresses. Search by address should be faster.
Basically, for the "conventional" transaction, to validate a transaction, nodes basically have to see which UTXO is being spent and search it in their UTXO database which is relatively small. If we were to switch to a balance method, for each address, the node will have to search and validate each of the transactions and then calculate the total balance. Obviously, some attacker would spam invalid transactions for the node to waste resources to DDOS any nodes.