In the Bitcoin system, transactions involve transferring coins from one party to another.
However, it would be very inefficient and unwieldy to create a separate transaction for every single cent or fraction of a coin being transferred.
To solve this problem, transactions are designed to contain multiple inputs and outputs, which allow for the splitting and combining of values.
In a typical transaction, there will either be a single input from a larger previous transaction or multiple inputs that combine smaller amounts.
There will also be at most two outputs: one for the payment being made, and one for any change that needs to be returned to the sender.
This allows for more efficient transfers of value.
It’s important to note that a situation where a transaction depends on several other transactions, which in turn depend on even more transactions, is not a problem in the Bitcoin system.
There is never a need to extract a complete standalone copy of a transaction’s entire history in order to verify it, which helps to keep the system more efficient and less cumbersome.