Magazine
Prithwis Mukerjee
Oct 06, 2017, 05:00 PM | Updated 05:00 PM IST
Save & read from anywhere!
Bookmark stories for easy access on any device or the Swarajya app.
Bitcoin is the rage. With an unbelievable appreciation in prices, many people want to invest in this red-hot cryptocurrency, but whether the current valuation is a bubble that will burst is an open question.
What is indisputable, however, is the immense versatility of the blockchain technology that is used in bitcoin — and all cryptocurrencies. The goods and services tax (GST) too is the rage, or rather the cause of rage because of the inefficiency of the software implementation. This article explains how a decentralised blockchain application could solve GST problems.
But, first, what is a bitcoin?
A bitcoin is a unit of value, like an equity share of a company, that can be owned and transferred. It resides in an account in a ledger, like a dematerialised share in a demat account with the National Securities Depository (NSD). The account number, the public key of the account, is known to all and so anyone can send or deposit demat shares into this account. However, to sell or transfer shares out of this account, the anonymous account holder must use a password, a private key that only he knows, to create and publish an outbound transaction pointing to another account identified by its public key.
In cryptocurrency jargon, an account is called a wallet, and the ledger is called the blockchain. A wallet is defined by a public key-private key pair consisting of two very large numbers that have special cryptographic properties. But what is really novel is that the blockchain ledger, the record of all transactions, is not maintained by or at any one institution, like the NSD for equity shares, but jointly by all participants in the network. Everyone has a copy of the blockchain ledger that has a record of all coin transfers and so everyone can both verify and confirm each transaction before they accept it in their own copy. An invalid transaction can pass into the blockchain ledger if and only if it is accepted by more than 50 per cent of the network and this has never happened since 2009.
Verification means that a payment transaction is valid — the total value of all inbound or credit transactions to a wallet minus value of all outbound or debit transactions is more than or equal to the current outbound debit transaction. Confirmation means that there is no double spend and the same set of unspent, inbound credit transactions (“UTXO” or unspent transaction outputs) are not being used to create more than one outbound payment transaction.
Since everyone has access to all transactions, anyone can perform the verification and confirmation. But because this needs a lot of computational power, this task is voluntarily done by a group of miners. As a reward for doing this public service, miners who run a full node blockchain software on a powerful computer, are rewarded with newly created coins that are added to their wallet when they have verified and confirmed a new block of transactions — which is then added to the blockchain.
However, the reward is not given to any miner who performs the verification and confirmation, but to the miner, who, in addition to the verification and confirmation, also solves a difficult mathematical puzzle first.
The payment or output transaction that deposits a newly-created coin into a successful miner’s wallet is called a coin-base transaction. It is different from all other transactions because it is not backed by any previous input transaction.
Hence the analogy of mining, as if a coin was dug out of the ground and not received from anyone else, whereas all other coins would have to be received from someone before they can be sent to someone else. However, a better analogy would be to view bitcoin as sweat equity that is given in lieu of salary to the accountants in a bank for checking and approving all transactions.
The brilliance of “Satoshi Nakamoto”, who designed bitcoin, was in equating the sweat equity of the bank to the assets that are managed by the bank and initiating a self-sustaining network that is working flawlessly since 2009. The magic mathematics of cryptography ensures that this decentralised autonomous organisation (DAO) runs without any formal management and yet has achieved a market capitalisation of over $70 billion.
But why should these “sweat equity” shares of a non-existent bank, the actual bitcoins, be each worth thousands of dollars today? Many people, who are not miners, buy these coins from miners for investment or payment purposes and this demand is pushing up the market price. Bitcoins can be purchased at many cryptocurrency exchanges with a fiat currency like the US dollar or rupee.
After KYC compliance, these exchanges will convert fiat currency into cryptocurrency and vice versa at market-driven prices. Bitcoin is both a currency that is extremely useful as a payment mechanism because transfers are simple, fast and anonymous, and is also a commodity that has appreciated in value and hence worth investing in.
How can GST use this technology?
Bitcoin is the most popular and valuable coin, but there are many others. The software to create similar coins is freely available, and anyone can do so. But these alternate coins do not have any value in the bitcoin network because transactions with these coins lack the cryptographic signatures of past owners that are necessary for verification and confirmation. However, these coins can have value in other networks where they are recognised and traded.
Let us consider a scenario where we have four companies identified as A, B, C and D. C buys Rs 1,000 worth of goods from A and Rs 2,000 worth of goods from B. Assuming GST at 18 per cent, C pays Rs 1,180 to A and Rs 2,360 to B. D buys Rs 5,000 worth of goods from C and pays Rs 5,900 to C. Under GST rules, A, B, C are required to deposit Rs 180, Rs 360 and Rs 900 respectively to the GST Authority (GSTA). However, C can claim Rs 540 as GST input tax credit, and deposit only Rs 360 provided GSTA has evidence that A and B have made the corresponding deposits on behalf of C.
The idea is simple, but the process is very complex and laborious. There are millions and millions of GST transactions and all this data accumulates in the central GSTA database. GSTA needs to run matching exercises within this huge and ever-expanding pool of data and identify the two deposits from A and B that benefit C. This is a big bottleneck, a possible single point of failure and so cause of delay before C gets credit for Rs 540.
Instead, let the GSTA define a new cryptocurrency called GSTCoin (GSTC), and through an Initial Coin Offering (ICO), release, say, 100 crore GSTC into its own GSTC wallet. To deposit GST, one has to purchase GSTCs of equivalent value. GSTCs can be purchased at one of many GST Exchanges (GSTX) operated by, say, banks. Every GST-registered company will need a GSTC wallet whose public key is, for example, the GST registration number. This GSTC wallet will be hosted by the same GSTX where the GST-registered company becomes a member, and this will hold balances in two currencies namely, rupee and GSTC.
As in any currency exchange, the fiat currency rupee may be deposited from and withdrawn into a traditional bank account using NEFT or credit card. GSTA too will have a wallet in each GSTX.
A GSTX would differ from a normal cryptocurrency exchange in two ways.
First, members can only trade with GSTA, not with other members. When a member deposits GST, he actually buys GSTCs from GSTA, using either his rupee balance or his GSTC balance.
Second, the key difference is that the purchased GSTCs are not delivered to the purchaser’s wallet but to a public key associated with the wallet of the beneficiary that may be on a different GSTX. This is quite easily done in any cryptocurrency network. If the identity of the beneficiary for whom GST being paid is not known, or if the beneficiary does not have GST registration, then the GSTCs are delivered to a special terminus wallet of the GSTA.
All transactions are recorded in the GSTC blockchain ledger, a copy of which is maintained by all those who run a full node on the GSTC network. Any organisation with interest in the GST network, including large GST payers, may run these full nodes.
In our case, A and B will first deposit rupees into their respective GSTX wallets and then buy 180 GSTCs and 360 GSTCs respectively from GSTA, using their rupee balances. These will be delivered to the wallet of C which will now show a credit balance of 540 GSTCs. Since GSTCs could not have been transferred from the GSTA wallet to C’s wallet without a corresponding GST payment in either rupee or GSTC, there is no further need for any matching. The GSTCs in a beneficiary’s wallet must have been received against some GST deposit somewhere. Hence credit is automatic and instantaneous.
For the GST deposit that C needs to make on his sales to D, he will purchase a total of 900 GSTCs through two transactions: a 540 GSTC transaction from his GSTC balance and a Rs 360 transaction from his rupee balance. This fulfils his obligation to deposit Rs 900 as GST while spending only Rs 360. In case D is registered for GST, the 900 GSTCs that have been purchased by C will go to D’s wallet. If D is not registered, 900 GSTCs will be delivered to GSTA’s own terminus wallet where it will be accounted for as net GST received.
As in any cryptocurrency network, all transactions will be verified and confirmed by miners who operate full nodes and who, on finding a block of valid transactions, will be rewarded with a certain number of GSTCs through a coin-base transaction. Like any other GSTC, these too can be used for GST deposits.
How is this blockchain-based architecture any different from the current architecture of the GST software application that runs on a centralised database? Can we not modify this software to make automatic NEFT or UPI payments to beneficiaries when GST is received?
Functionally, the two architectures are no different. But by physically distributing the processing requirements across multiple GSTXs, we eliminate bottlenecks caused by the limitations in the computing power of a single central machine. Such a distributed system is inherently scalable and will not get choked by high transaction volumes. Delays associated with uploading data and transferring credit will be significantly reduced. Moreover, as a distributed system, it will be almost immune to any form of hacking or disruption at any single point of failure. Finally, there is total transparency, because the blockchain database is immutable and visible to the network of full node operators.
One challenge is privacy.
Since all transactions are visible to everyone, all GST deposits, and hence, corresponding purchase prices are in the public domain. Fortunately, all cryptocurrency wallets allow the creation and management of any number of public keys, and it would not be difficult for the depositor’s wallet to pick up a new public key from the beneficiary’s wallet before initiating a GSTC purchase transaction, and use that to deliver the GSTCs. This will make all blockchain transactions anonymous while leaving a clear audit trail within the wallet of the depositor that can be used in case of any subsequent disputes.
In fact, the wallet itself could automatically generate the GST return on a daily basis.
Another challenge is that GST consists of central, state and interstate GST and dues in one category cannot be offset with credits in the other. This problem can also be easily addressed by creating three different GSTCs, say of three “colours”. The wallets will become a little more complex, but the same underlying principles can be used to meet the requirements of three different, but similar, taxes.
With the Reserve Bank of India apparently exploring the possibility of its own cryptocurrency, the GSTC could be a good way to test blockchain technology as well as improving the efficiency of the current GST system.
This article has been written with help from Bhartendu Tilak, a Chartered Accountant and a colleague of the author. Any inaccuracy or inconsistency is, of course, the responsibility of the author.
Prithwis Mukerjee is an engineer by education, a teacher by profession, a programmer by passion and an imagineer by intention. He has recently published an Indic themed science fiction novel, Chronotantra.