Bitcoin can be defined in various ways; it’s a protocol, a digital currency, and a platform. It is a combination of peer-to-peer network, protocols, and software that facilitate the creation and usage of the digital currency named Bitcoin. Note that Bitcoin with a capital B is used to refer to the Bitcoin protocol, whereas Bitcoin with a lowercase b is used to refer to Bitcoin, the currency. Nodes in this peer-to-peer network talk to each other using the Bitcoin protocol.
Since its introduction in 2008, Bitcoin has gained much popularity and is currently the most successful digital currency in the world with billions of dollars invested in it.
Bitcoin is built on decades of cryptographic research such as the research in Merkle trees, hash functions, public key cryptography, and digital signatures. Moreover, ideas such as BitGold, b-money, hashcash, and cryptographic time stamping provided the foundations for Bitcoin invention. All these technologies are cleverly combined in Bitcoin to create the world’s first decentralized currency. The key issue that has been addressed in Bitcoin is an elegant solution to the Byzantine Generals problem along with a practical solution of the double-spend problem. Decentralization of currency was made possible for the first time with the invention of Bitcoin. Moreover, the double spending problem was solved in an elegant and ingenious way in Bitcoin. Double spending problem arises when, for example, a user sends coins to two different users at the same time and they are verified independently as valid transactions.
The regulation of Bitcoin is a controversial subject and as much as it is a libertarian’s dream, law enforcement agencies and governments are proposing various regulations to control it, such as BitLicense issued by New York’s state department of financial services. This is a license issued to businesses that perform activities related to virtual currencies.
The growth of Bitcoin is also due to so-called Network Effect. Also called demand-side economies of scale, it is a concept that basically means more users who use the network, the more valuable it becomes. Over time, an exponential increase has been seen in the Bitcoin network growth. Even though the price of bitcoin is quite volatile, it has increased significantly over the last few years.
Transactions are at the core of the Bitcoin ecosystem. Transactions can be as simple as just sending some Bitcoins to a Bitcoin address, or it can be quite complex depending on the requirements. Each transaction is composed of at least one input and output. Inputs can be thought of as coins being spent that have been created in a previous transaction and outputs as coins being created. If a transaction is minting new coins, then there is no input and therefore no signature is needed. If a transaction is to sends coins to some other user (a Bitcoin address), then it needs to be signed by the sender with their private key and a reference is also required to the previous transaction in order to show the origin of the coins. Coins are, in fact, unspent transaction outputs represented in Satoshis. Transactions are not encrypted and are publicly visible in the blockchain. Blocks are made up of transactions and these can be viewed using any online blockchain explorer.
A coinbase transaction or generation transaction is always created by a miner and is the first transaction in a block. It is used to create new coins. It includes a special field, also called coinbase, which acts as an input to the coinbase transaction. This transaction also allows up to 100 bytes of arbitrary data that can be used to store arbitrary data. In the genesis block, this included the most famous comment taken from The Times newspaper:
“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”
This message is proof that the genesis block was not mined earlier than January 3, 2009.
Transaction fees are charged by the miners. The fee charged is dependent upon the size of the transaction. Transaction fees are calculated by subtracting the sum of the inputs and the sum of the outputs. The fees are used as an incentive for miners to encourage them to include a user transaction in the block the miners are creating. All transactions end up in the memory pool, from where miners pick up transactions based on their priority to include them in the proposed block. However, from a transaction fee point of view, a transaction with a higher fee will be picked up sooner by the miners. There are different rules based on which fee is calculated for various types of actions, such as sending transactions, inclusion in blocks, and relaying by nodes. Fees are not fixed by the Bitcoin protocol and are not mandatory; even a transaction with no fee will be processed in due course but may take a very long time.
As defined in the Bitcoin core developer guide, contracts are basically transactions that use the Bitcoin system to enforce a financial agreement. This is a simple definition but has far reaching consequences as it allows users to design complex contracts that can be used in many real-world scenarios. Contracts allow the development of a completely decentralized, independent, and reduced risk platform. Various contracts, such as escrow, arbitration, and micropayment channels, can be built using the Bitcoin scripting language. The current implementation of a script is very limited, but various types of contracts are still possible to develop. For example, the release of funds only if multiple parties sign the transaction or perhaps the release of funds only after a certain time has elapsed. Both of these scenarios can be realized using multiSig and transaction lock time options.