All the names that make no sense

The digital signatures principle can be used for developing an electronic cash based transaction model only after solving for the “Double spending” problem associated with the use of digital coins as a payment method. This can be achieved by the help of a central trusted third party. However, the real benefit of the Blockchain technology lies in making it possible without the need of any central trusted third party. Bitcoin as an application of Blockchain proposes an open distributed ledger system synchronized by the help of miner-nodes. Bitcoins, as one of the biggest application of Blockchain technology is gaining wide popularity in recent times mainly due to the high volatility of its value on the exchange as an asset.

Methodology of operation of Digital Signatures

The digital counterpart of handwritten signatures is used to solve the problem of impersonation and tampering. It is hence used to confirm the origin, the status and the acknowledgment of consent from the author/owner of any digital asset like documents, messages, bills, wills, certificates etc. This methodology can also be adopted for transacting, with digital cash as the digital asset. But the only challenge that needs to be addressed is the “double spending problem” of the digital asset (cash). “Double spending” implies that the same digital cash can be used by the owner in more than one transaction at the same time. Basically letting the owner of the digital cash buy many things from different people simultaneously, using the copies of the same cash-money. There arises a need for a central authority (like a bank) or a minting authority (like a central bank), to ensure that the transaction by an owner of a digital cash/coin happens only with one party at a time.

Here is how the digital signature principle works:
Any digital asset of any arbitrary size such as a document, file, message, certificate, will etc. can be mapped to a unique and one-way identification index number of fixed size, by applying a hashing function on the digital asset. The index number is unique to the digital asset in the sense that if the original digital asset is somehow slightly tempered, then if the same hashing function is applied, it would generate entirely different index number. The index number is one-way identification for the digital asset in the sense that it is NOT possible to generate the data(digital asset) back from the index number itself.

A node on any network could be a person or an institution or any device/machine. Now, any node on a network is given two sets of unique keys : the Public Key and the Private Key. The concept is similar to giving a username (corresponding to a public key) and a password (corresponding to a private key) to any user on a network. For example, in the case of internet banking, each individual is given an account number (public key) with the bank and a password (private key) which is known only to the individual.

The working of the digital signatures can be explained by the use-case of a college degree certificate (digital asset) from an education university. Suppose an individual has graduated from the university and is applying for a job at a potential employer’s firm. He presents the firm a digital copy of the degree certificate. Now, how does the firm ensure that the digital degree is not tempered with and also that the creator/owner of the certificate is none other than the university itself? The solution is provided by the use of digital signature.

At the sender’s end (University), a one-way hash of the digital asset (degree certificate) is created using a known hashing function, and then encrypted using the sender’s (University’s) private key. This encrypted hash along with the hashing algorithm constitute the signature for the document. The entire capsule arrives at the receiver’s (Employer’s) end. At the receiver’s (Employer’s) end, the digital asset (degree certificate) is again hashed using the same known hashing algorithm. The encrypted Hash which was a part of the signature is decrypted using the sender’s (University’s) public key. These two hashes are then checked for match. An affirmative match ensures origin (University) and non-tampered status of the digital asset (degree certificate). However, if the match is negative then either the origin is impersonated or the data has been tempered with or both.

Interestingly, the above concept can be used to make payments via electronic cash (digital asset), only after solving a problem associated with it when using it for transactions between individuals. In this case, the digital asset can be electronic coins, which when signed upon (digitally), confirms its ownership and worth. It can then be send to the other party for making payments in return for any goods or services. However, the problem of “Double spending” limits the usage of this simple method as it is, for making payments.

Electronic Cash System

A pure node-to-node electronic cash system would enable online transactions without the need of any central affirming/trust authority. However, if we want to apply the digital signature methodology for node-to-node electronic-cash transactions, there arises a need for a central record keeping authority like a bank to avoid the “double spending” problem. A digital coin here is a “chain of digital signatures”. It is basically the hashed record of all the previous ownership (transactions) of the digital coin. When user1 wants to make a payment to user2 , it only needs to know the Public key of user2. A new hash of the digital coin (hashed record of all the previous ownership(transactions) of the digital coin) owned by user1 along with the public key of user2 and the private key of user1 is created and send to user2. The inclusion of user1’s private key ensures that the transaction is being done with the consent of the payer (user1). The ownership of the digital coin by user1 before making the payment was ensured by presence of public key of user1 at the last in hashing of previous record of transactions from the digital coin. This cycle of payment process is repeated whenever a user wants to pay to another.

Again, as stated earlier, there lurks the problem of double spending where the user1 can make payments to more than one users simultaneously using a copy of the same digital coin. To prevent a user from doing more than one transaction from the same “electronic cash”, there can be possibly two methods. One is to introduce a “trusted central authority” like a central bank that checks every transaction for double spending. After each transaction, the coin must be returned to the mint (central bank) to issue a new coin, and only coins issued directly from the mint are trusted not to be double-spent. The major disadvantage of this method is that it places too much of authoritative power in the hands of the minting company, like a central bank. Moreover, the central authority being central, may charge higher than reasonable service fees and may also incur delay in confirming the transactions specially if users are sitting in different continents.

The Solutions from Block-chain Technology

The other method is based on maintaining a cryptographic proof of each transaction. The “double spending” problem can be addressed by maintaining a node-to-node distributed timestamp server which can generate cryptographic proof of the transactions in chronological order. The only requirement is that the timestamped proofs generated should be immutable so as to prevent the malicious nodes from adding or changing the records with fraud transactions. To prevent the “double spending” problem, we need to find a way that lets the receiver of the digital coin know that the sender has not send the same copy of the digital coin to someone else for another transaction. Now, “The only way to know about the absence of a transaction is to be aware of all of them”. To accomplish this without the help of any central record keeping and minting authority, the transactions’ proofs must be maintained in a public ledger and a system needs to be adopted for the nodes (participants) to agree on a single history of the order in which they were received. “The receiver needs proof that at the time of each transaction, the majority of nodes agreed it was the first received”.

In order to make the use of transactions via electronic cash feasible, the block-chain proposes two simple principles of its operation methodology. First is the use of a distributed open Ledger. A ledger is simply a chronological record of transactions between different parties in the network/business.

Lets consider the example of four users on the network. Let at the genesis of time, user-A possess $10 of electronic cash. User-A gives $5 to User-B. This transaction gets recorded on the open Ledger along with a timestamp. Now, when user-B gives $3 to user-D, this also gets recorded on the open ledger with the appropriate time stamp. The speciality of this ledger is that the transactions (or block of transactions) are recorded by linking the current block of transactions to the previous record of transactions with an immutable chain. This explains the name “Blockchain” for the technology. The chain between the blocks is created by creating a hash from the current block of new transactions and the hash of previous timestamped block of transactions.

Similarly, when user-D gives $1 to user-C, it gets chained to the open ledger. Now, if user-A wants to give $15 to user-C, this cannot be a valid transaction. The openness of the ledger ensures that this AC invalid transaction is not recorded on the ledger, since it is out in the open that user-A does not have the money to make the payment of $15. This open ledger can be maintained on a server by a trusted central partner (just like what commercial banks do). But we have already seen the disadvantages of entertaining a central authority. The other option is to have a distributed system of keeping the records(ledger) where each node/user connected to the network has access to the open ledger locally as shown in the figure below.

The above described distributed open ledger system has helped us tackle the problem of “Double Spending”, where the open ledger can tell us whether the payer actually has the electronic cash in his pocket and that he has NOT already used it to purchase something else. Moreover, we are also able to do this without any need of a central trusted authority. In doing so we have solved the Double Spending problem without the help of central trusted party. However, we have created another big problem for us by making the ledger open and distributed. Since, the network is distributed, who is going to take the responsibility of validating a transaction? How are the records in the ledgers held by the different nodes in the network going to be synchronized so the each has the correct and most recent information available locally? How are we going to ensure the security of such a distributed network .i.e. how to prevent any malicious node from deleting any transaction or adding a fraud transaction to the synchronized record keeping system.

This is where the second principle of operation methodology of the Block-chain comes to rescue. The second principle is to synchronize the ledger with the help of miners and also ensure the security of the network operations. Miners are simply the nodes (users) connected to the network with higher computational power at their disposal. Any node on the network can become a successful miner, provided it has a sufficient amount of computational power. To synchronize the ledgers, the new requested transactions are broadcast to all the nodes. The miner nodes then collect these broadcasted new transactions into a block. The miners then check the validity of these new transactions in the block by the help of the, then, up-to-date, timestamped, open and distributed ledger. The transactions in a block are assumed to have occurred at the same time.

However, there still lies a problem that a node with malicious intent can collect fraud transactions into a block and broadcast it to the network as a possible suggestion for next block in the blockchain. Now, there should be a mechanism for the network to decide which block is to be added next. Simply relying on the order in which the blocks (transactions) occur is not sufficient since these blocks can arrive in different orders at different nodes in the network. Blockchain based bitcoin addresses this issue by introducing a mathematical puzzle. A new block will be accepted by the network only when it also contains the answer to the mathematical puzzle. This methodology is widely known as “Proof of Work”, where the miner node needs to show that it has put sufficient computational effort to solve the puzzle. The type of mathematical puzzle that needs to be solved is about finding a “nonce: number generated only once”. The miners have to compete among themselves to be the first to find that number.

Hence, it turns out that these miner nodes in the network have two responsibilities at the outset:
• Check the validity of new blocks of transactions.
• Find the key (solve a puzzle) in order to be able to add the new block to the blockchain.

In doing so the miner node is rewarded with financial incentive for the computational resources spent. The incentives are in the form of bitcoins itself. This is analogous to spending of resources to mine gold from the field. And, hence the name, “Miners”.

Now, when a miner is successfully the first one to find the answer to the puzzle, it broadcasts the new block to the network. The network accepts this block only if all the transactions in it are valid. The other nodes in the network express their acceptance by working to add another new block using the hash of the accepted block as the previous hash. Consider the scenario in the figure 9. The node-A and node-D are miner nodes. The record of previous transactions is up-to-date ( AB,$10 and BD,$5). Now if node-B wants to pay $5 to node-C, it broadcasts its intended transaction to the network. The miner nodes check the validity of the transaction and compete to find the key to be able to add the block (transaction) to the blockchain. Let’s suppose miner-D wins the competition and adds the new block to its blockchain and simultaneously broadcasts the new block along with solution to the puzzle (the key). Miner-C then finds it useless to work on the same puzzle and choses to work on the next puzzle for the addition of the next node. By doing so, the miner-C expresses its acceptance of the block. At any point of time, the longest chain in the network is the one which is trusted by all.

Bitcoins as an application of Block-chains are a robust alternate for conventional currencies. It need not entirely replace the current central bank based currency system, but can co-exist, especially due to growing connectivity between humans and machines. Issues with scaling the use of this cryptocurrency are mainly due to the insecurity caused by adopting a new way of living.

One thought on “Bitcoins as an implementation of Blockchain”

Leave a Reply

Your email address will not be published. Required fields are marked *