Bitcoin is the most popular and established application of blockchain technology. It’s a classic example of cryptocurrency that is used for purchasing goods and services, and aside from a few differences works just like the United States Dollar (USD), Euro (EUR), etc. While this simple definition might suffice for many, it still doesn’t sufficiently address “what is bitcoin”. To know what is bitcoin, one needs to delve further into the matter to gain a proper understanding.
Understanding How Bitcoin Works
A Bitcoin, by itself, stands as a single unit of the Bitcoin (BTC) digital currency (derived from Satoshi’s original code). Just like any normal fiat currency, it is worthless in and of itself. The value it has is only derived from everyone’s agreement that it has value in terms of being used as a medium of exchange for goods and services. Accordingly, its value increases overtime as more and more use it due to a perception of increasing value.
Centralization isn’t a factor for the ledger file because it is not stored or controlled with a single entity (e.g. bank). It’s distributed over the storing data and executing computations. All these computers represents a “node” from the blockchain network and it has a duplicate from the ledger file.
If George really wants to send Bitcoins to Mary, he creates a signal directed towards the network that states the quantity of Bitcoins in the account is going to lower by 5 BTC, and the quantity of Mary’s account is going to go up by the same quantity. Each node within the network will get the content and use the requested transaction for their copy from the ledger, thus updating the account balances.
The truth that the ledger is maintained by several connected computers instead of a centralized entity just like a bank has lots of implications:
- During our bank system we simply become acquainted with our own transactions and account balances; around the blockchain everybody can easily see everyone’s else transactions.
- There’s general reliability on banks for solving issues; however, the Bitcoin network is spread over the network and if something goes awry there’s no help-desk to or anybody to file a lawsuit.
Blockchain product is designed in ways where no trust is required, security and reliability are acquired via special mathematical cryptographic functions and smart codes.
Blockchain can be explained as a method that enables several connected computers to keep just one updated and secure ledger.
To become capable of performing transactions on the blockchain, you’ll need a wallet, a program that enables you to save and trade your Bitcoins. Since you alone will be able to spend your Bitcoins, each wallet remains safe and secure through a special unique pair of cryptographic keys: a personal along with a public key.
If the message is encrypted having a specific public key, only someone who owns the paired private key can decrypt and browse the content. Alternatively, should you encrypt something with your private key, the paired public key alone may be used to decrypt it.
When George really wants to send Bitcoins, he must send a message encrypted using the private key of his wallet, so that he and just he is able to spend the Bitcoins he owns as George alone is the only one that can access his own private key to unlock his wallet. Each node within the network can reference if the transaction request is originating from George by decrypting the transaction request message using the public key of his wallet.
When encrypting a transaction request together with your wallet’s private key you’re establishing a digital signature which is used by blockchain computers to verify the origin and also the authenticity of the transaction. A digital signature includes your transaction request as well as your private key so that it can’t be employed for other transactions. Should you change just one character within the transaction the entire digital signature will change; therefore, no potential hacker can alter your transaction demands or the quantity of Bitcoins you’re transfering.
To transmit bitcoin you have to prove that you simply own the non-public key of the specific wallet as you should utilize it to secure the transaction request message. Because you broadcast the content only once after it has been encrypted, you never need to reveal your private key.
Each node within the blockchain is keeping a duplicate of the ledger. So, how exactly does a node know what’s your bank account balance? The blockchain system doesn’t keep an eye on account
balances whatsoever, it just records every single transaction that’s requested. The ledger actually doesn’t keep an eye on balance, it just monitors every transaction that’s broadcasted inside the Bitcoin network. To understand your bank account balance, you have to evaluate and verify all of the transactions that ever took place over the network linked to your bank account.
This “balance” verification is conducted because of links to previous transactions. To be able to send 10 Bitcoins to George, Mary has to develop a transaction request that includes links to previous incoming transactions whose total balance equals or exceeds 10 Bitcoins. These links are known as inputs, nodes within the network will verify that the quantity of those transactions equal or exceed 10 Bitcoins and that these inputs weren’t yet spent. Actually, every time you reference inputs inside a transaction, they are not valid in any future transaction. All of this is conducted instantly in Mary’s wallet and double checked through the Bitcoin network nodes, she only transmits a ten BTC transaction to George’s wallet using his public key.
Therefore, how does the system verify input transactions and regard them as valid? It checks all of the previous transactions that are based on the wallet you used to send Bitcoins. All of the references that every one has as inputs are verified. To simplify and accelerate the verification process a unique record of unspent transactions is stored through the network nodes. Because of this security check, it’s not easy to double-spend received Bitcoins.
Owning Bitcoins means there are transactions designed in the ledger that could indicate your bank account address and haven’t been utilized as inputs yet.
Bitcoin network is definitely on a free platform, what this means is anybody having a laptop and web connection can operate transactions. However, in a situation where there’s an error within the code which is used to broadcast the transaction request message the connected Bitcoins is going to be lost permanently. Since Bitcoin works on a distributed network (i.e. no central transaction authority), there’s no customer service nor anybody that may help restore lost coins, fix erroneous transaction, or recover a forgotten wallet password. Because of this, if you are looking to do transactions using the Bitcoin network, it’s suggested to make use of open source and official form of Bitcoin wallet software (for example Bitcoin Core) and also to store your wallet’s password or private type in a really safe repository.
Anyone can have access to the Bitcoin network with an anonymous connection (i.e. a TOR network or perhaps a VPN network), and submit or receive transactions revealing simply his public key. If however someone uses the exact same public key again and again, it’s easy to connect all of the transactions towards the same owner. The Bitcoin network enables you to definitely generate numerous wallets – as many as you desire, each with its very own public and private keys. This enables you to receive payments on several wallets that can’t be linked together. There’s not a way to know that someone owns different wallet private keys unless that someone sends all of the received Bitcoins to one wallet.
A large number of possible Bitcoin addresses (2¹6° or 1461501637330902918203684832716283019655932542976), helps safeguard the network from possible attacks while allowing anybody to possess a wallet.
The Bitcoin network orders transaction by putting them into groups known as blocks; within each block is a set quantity of transactions along with a link to the previous block. This is how one block is placed following the other over time. Blocks are thus organized right into a time-sequenced chain, and that provides the name towards the whole system: blockchain.
Transactions within the same block are supposed to have happened simultaneously and transactions not inside a block are conceived of as unconfirmed. Each node can gather transactions and place them in a block. Then, each will transmit it to the network as a suggestion for what block should be the next. Since nodes can each create suggestions for a new block, how does the system determine which block should be the next?
In order to become an addition to the blockchain, each block must have the solution to a complex mathematical problem which was created using an irreversible cryptographic hash
function. Guessing at random numbers is the only method for solving the mathematical problem which combined with prior block content creates a defined result (most often a number that is negative a certain value). Under normal circumstances, it would take a normal computer about a year to select the right numbers and solve the mathematical problem. However, due to the myriad amount of computers connected to the network that are guessing numbers, a solution to a block is made about every 10 minutes. The node that is able to provide the solution to the mathematical problem acquires the right to determine the next block on the chain and transmit it to the whole network.
And what if two nodes solve the problem simultaneously at the same time? In this case, each node builds on the block that it received first. However, the blockchain system only allows each node to build upon the longest block chain available. Therefore, if the last block is called into question and after the last block is solved, each node will adopt the longest chain as the only option.
Since solving blocks at the same time is very unlikely, it’s near astronomically impossible where multiple blocks are solved simultaneously over and over again building different “tails”. As a result, the whole blockchain quickly settles on one single string of blocks upon which every node agrees.
The conflict about which block takes over the end of the chain “tail” makes the possibility for fraud a concern again. If a transaction happens to be in a block that belongs to a shorter tail, once the next block is solved such transaction will go back to the unconfirmed transactions as all the others included in block B.
So how does the system prevent fraud?
Each block contains a reference to the previous block, and that reference is part of the mathematical problem that needs to be solved in order to spread the following block to the network. So it’s extremely hard to pre-compute a series of blocks due to the high number of random guesses needed to solve a block and place it on the blockchain.
Mary is competing against the rest of the network to reach a solution to the math problem which then allows her to place the next block on the chain. Despite solving it before anyone else, it’s highly improbable she could solve two, three, or more blocks in a sequence, as she is competing against the whole network every time. So, is it possible for Mary to own a super computer that could do all the calculations needed to generate all the random guesses required to compete with the entire network? Of course, but even if that were the case, it’s very unlikely Mary could solve several blocks in a row at the exact time needed to perform a double-spending attack due to the high volume of of other operators in the network.
She would have to control 50% of the computing power of the whole network to have a 50% chance to solve a block before some other node does; and even if that were so, she would only have a 25% chance to solve two blocks sequentially. As more blocks that are needed to be solved in a row, the lower the chance that Mary can succeed.
Transactions in the Bitcoin blockchain system are protected by a mathematical race: any attacker is competing against the whole network. Therefore, transactions get more and more secure with time. Those included in blocks that have been confirmed in the past are more secure than those included in the last block. Since a block is added to the chain every 10 minutes on average, waiting for about 1 hour from when the transaction is included in a block for the first time gives a quite high probability that the transaction has been processed and is non reversible.
In order to be able to send Bitcoins you need to reference a transaction that sends Bitcoin to your wallet, and this applies to all the transactions that ever took place in the network. So, where does Bitcoins come from originally?
As a way to balance the deflationary nature of Bitcoin due to software errors and wallets password loss, a reward is given to those that solve the mathematical problem of each block. The activity of running the Bitcoin blockchain software in order to obtain these Bitcoin rewards is called “mining” – very much like mining gold.
This reward is the main incentive that pushes private people to operate the nodes, thus providing the necessary computing power needed to process Bitcoin transactions and to stabilize the blockchain network.
Since it takes a long time for a typical computer to solve a block (about 1 year on average), nodes get together in groups that divide the number of guesses each one has to try in order to solve the next block. In this way it’s faster for the group to guess the right number and get the reward that is than shared among the group members. Such groups are called mining pools.
Some of these mining pools are pretty large and represent more than 20% of the total network computing power. This has clear implications for the network security as seen above in the Mary double spend attack example. Even if one of these pools could potentially gain 50% of the network computing power, the further back along the chain a block gets, the more secure are the transactions included in it.
However, some of these mining pools that gained substantial computing power share decided to limit the number of their members in order to safeguard the overall network
Since the overall network computing power is likely to increase over time due to technological innovation and the increasing number of nodes, the blockchain system
recalibrates the mathematical problem difficulty to solve the next block in order to target 10 minutes on average for the whole network. This ensures the network stability and overall security.
Moreover, every 4 years the block reward is cut in half, so mining bitcoin (=running the network) gets less interesting over time. To prevent nodes from stopping running the network small reward fees can be attached to each transaction, these rewards are collected by the node that successfully include such transactions in a block and solves its mathematical problem. Due to this mechanism, transactions associated with a higher reward are usually processed faster than those associated with a low reward. This means that when sending a transaction you can decide if you would like to process it faster (=more expensive) or cheaper (=takes more time). Transactions fees in the bitcoin network are currently very small if compared with what banks charges and are not associated with the transactions amount.
Overall, Bitcoin is the oldest cryptocurency use case of underlying technology blockchain. It is perceived that bitcoin will gain significant monetary value in future due to more adoption and evolution of blockchain. Readers are warned not to invest in something that they don’t understand and if they do, then at their own discretion and risk.
Disclosure: Author is cryptocurrency holder including Bitcoin (BTC)