The Path of a Transaction from A to Z Part 1
Many of the elements of the Bitcoin network have existed before Satoshi Nakamoto has launched the network in 2009. Examples of such elements include decentralized distribution of data, use of cryptography hashes, and breaking down large sets of information into smaller sets.
It is the ways in which the Bitcoin network combines these elements and uses previously existing pieces to create a new way of storing and exchanging data that are making it unique.
The problem of double-spending
One of the main innovations of the Bitcoin network has been the solution to the problem of double-spending.
If you have ever copied a file on a computer or a mobile device, you are familiar with this problem, it is just that most likely you did not pay attention to it because it has not played a role in what you were doing. You created a file. You needed to send the file to someone without an incentive to create multiple copies of the file and send them to multiple parties, which is an incentive that exists with digital money for obvious reasons.
If you are getting paid per each file that you send, then you are interested to send as many files as possible, which is exactly the issue of double-spending.
Bitcoin is digital money, meaning that it doesn’t exist without digital devices. It also means that the money is, in essence, a collection of computer files. Computer files can only exist on devices with storage drives, be it desktop computers, or USB keys, and the same is true about Bitcoin data. Bitcoin wallets are collections of files and Bitcoin blockchain is also a collection of files.
Copying a file on any digital device is extremely easy. On most devices, you can make a copy of a file by simply pressing a few buttons. When you do so, there is nothing preventing you from sending the copies to multiple parties.
This is exactly the issue that the Bitcoin blockchain has solved by using cryptography, cryptography hashes, decentralized distribution of data, the parameter of difficulty of the network, and other tools, methods and approaches.
Initiating a transaction on the Bitcoin network
When a user on the Bitcoin blockchain initiates a transaction, the network broadcasts the transaction for everyone on the network to see. Such transactions on the Bitcoin network are known as unconfirmed transactions and you can see such transactions in real time as the Bitcoin network broadcasts them to the network by visiting https://www.blockchain.com/btc/unconfirmed-transactions
If a user were to try and send the same funds several times on the Bitcoin network, it would not work because everybody on the network would be able to see two requests for transactions yet the outgoing funds would have been the same.
Once the network broadcasts a transaction, the miners pick up the transaction and compile multiple transactions into blocks of the Bitcoin blockchain.
Cryptography on the Bitcoin blockchain
Miners on the Bitcoin network use cryptography to seal the blocks in a way that makes it impossible to change the data in the blocks of the Bitcoin blockchain.
A cryptography hash is a string of data generated by a cryptography algorithm. Cryptography hashes have a number of very useful properties.
First, a cryptography hash is shorter than the original set of data. For example, a cryptography hash in some cryptography algorithm for a set of (1, 2, 3, 4, 5, 6, 7) could be X3, two symbols instead of seven.
Cryptography hashes on blockchain networks work in the exact same way. For example, the Bitcoin network uses a cryptography algorithm called SHA-256, created by the National Security Agency of the United States. Each block on the network has a hash.
For instance, the block #535040 contains information about 874 transactions, yet all this information is summarized in the hash, which for this very block is 0000000000000000000cddadcd14179f412e80d91b06397523f223dc107f145f.
The second property of cryptography hashes is that a set of data can only have one hash under one cryptography algorithm. This makes it extremely easy to verify the data using hashes. For example, let’s say that you need to send someone a very large set of information, such as information about financial transactions, and then you need to make sure that the information is correct. Before the invention of cryptography, you would have to check the data symbol by symbol, string by string. With cryptography, verification of the data is much simpler. All you have to do to make sure that the other party has received the right data is ask the party to send you back the hash for the data. If the hashes match, then you know that the party has the same data. If they don’t match, then you know that something went wrong and depending on the data you may either re-send it or verify it to find the errors.