The process of creating or minting bitcoins is difficult to hack and this gives security to bitcoins. Another layer of security is the provision that every transaction has to be verified before being validated. This verification is effected through "mining". Mining is a process where some high-level computing like SHA256 decoding is done to verify transfers of bitcoins.
Bitcoins are stored in a "digital wallet", which exists either on a user's computer or on the cloud. The wallet is a type of virtual bank account that facilitates users to send or receive bitcoins, pay for goods and services or save their money.
Every bitcoin account consists of a public key which works like a bitcoin address and a private key. Anyone can send you bitcoins if he/she knows your public key. To spend bitcoins, you have to use your private key for authentication. Every bitcoin transaction appears on the bitcoin network. The miners confirm the transactions after verification to validate them.
An example of a bitcoin address is as follows −
There are 2160 or about 1048possible addresses.
The corresponding private key is as given below −
Private keys are of 256-bit length. There are about 1077 possible private keys.
In the previous section we have seen how a bitcoin transaction works. Now, we shall discuss how to send bitcoins.
To buy some merchandise or pay for some services, you will have to send bitcoins to the address of vendor. To receive bitcoins, you will have to share your address with the vendor.
Following is the process of sending bitcoins to someone −
Copy the vendor's address and open your bitcoin wallet.
Click on the "Send coins" tab and enter the address in the 'Pay to' field to which you want to send bitcoins.
If you have to send bitcoins to the same person or a group several times, you can create a label so as to find them in the address book.
Enter amount in the next field and click send to complete the operation.
In the mining process, all transactions are collected in a container called block. A new block is created in about every 10 minutes. In case of small payments or transactions with trusted peers, confirmations may not be necessary. However, for large transactions to be considered safe, the norm is 6 confirmations.
The level of anonymity can be customized depending on the requirement. Every transaction from one address to another address is public. The analysis of the transactions through their addresses or public keys whose records are public is called traffic analysis. The larger the transfer the easier the traffic analysis.
To increase anonymity, mixing services are used. It is also advisable to create a new public key or new address for every transaction to ramp up security and anonymity. From the point of view of a user, Bitcoin is nothing but a mobile app or software that makes available a personal Bitcoin wallet which allows a user to send and receive bitcoins. However, at the backend, the Bitcoin network shares a humongous public ledger called the "block chain". This ledger carries the record of every transaction ever processed that makes it possible for a user's system to verify the validity of each transaction.
In order to maintain compatibility with each other, all users of Bitcoins have to use the software following the same rules. Bitcoin can only work correctly as long as there is a complete consensus among all the users. Thus, it is imperative that all users and developers maintain and protect this consensus.
Bitcoins are not stored on your computer unless you host a node on the network. You carry a clone of the ledger which is secure as each block is hashed before being appended to the chain. This means, changing even one bit of any data on the previous blocks changes the hash of the ledger which marks it as counterfeit.
Hash function is an irreversible function that is used extensively in cryptography; the output of this function is shorter than the input. Validation of bitcoin transactions is just a process of quickly checking the keys like finding if the sender has the private key that can unlock any record in the ledger/blockchain.