By Lumai Mubanga. email@example.com
The absence of a central control master in cryptocurrencies creates the question of who validates transactions when making or receiving payments. This article explains how Bitcoin transactions and other cryptocurrencies are validated.
Let us begin with the traditional banking transaction scenario. The client’s fund is aggregated into one count. When a transaction is made through a check from a total balance of $500 for the purchase of a $250 laptop, for example, the balance will change to $250. Any further transactions from the same account will be validated from the same account. This keeps an account in check.
The role of the bank in the above example as a central authority is to ensure that:
i. You Sign the check to validate it. This confirms proof of ownership.
ii. You have sufficient funds in your account to successfully complete the transaction.
iii. You only spend that amount once. This means that you cannot spend the same $250 on another transaction.
Transactions regarding cryptocurrencies or bitcoin operate using the same principles. However, these principles are implemented differently. To implement this though, bitcoins uses what is known as unspent transaction output model, or UTXO model.
The bitcoin network is so complicated and computers understand transactions differently. This is because the absence of a central authority makes it difficult to track all the transactions on the account. Secondly, there is no central clock to track exactly when transactions are happening.
So, how are transaction tracked and how is the possibility of paying the same amount prevented? Let us imagine that three transactions of $250 have been initiated against a $500 account. Which of these three will go out first, second and last? Additionally, how do we prevent the third transaction to go through but fall off?
To ensure all the above, the system is designed in such a way that users do not spend from the account, a single repository as in an actual bank account. Instead, they spend directly on transactions made on them. This is how the unintuitive model of Unspent Transaction Output operates. Each transaction will be initiated against the Unspent balance bundled in a “recreated” account. In short, every time a transaction is made, money is put into a UTXO or a kind of a piggy bank. To spend the money, the piggy bank is broken, spend what needs to be spent and then put the remainder into a new piggy bank. The next transaction will be done on the unspent balance in the second piggy bank and so on. In this way, double spending of the same amount is avoided.
Thus, instead of working with the question, “Is this account trying to spend more or less money at this time across three different transactions?” the question will be, “Does this piggy account have enough funds?” This model though accomplishes two things.
- The complexity of checking for transaction validity goes down which is advantageous and
- The complexity of keeping track of one’s funds goes up. This is because each piggy bank can be tracked individually and securely. This is a disadvantage.
Thus, the amount of bitcoins you own is calculated by summing up the value of each of these piggy banks or UTXOs.