November 02, 2017

Managing GST efficiently with Blockchain and GSTCoin (⇞)

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. 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 what is bitcoin?

image borrowed from financeminutes
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 NSDL. 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 NSDL 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% 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 less 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 transactions outputs) are not being used to create more than one outbound payment transactions. 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 -- that is then added to the blockchain. However the reward is not given to any miner who performs the verification and confirmation but to the one specific 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 coinbase 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 US$ 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 the miners for investment or payment purposes and this demand is pushing up the market price.  Bitcoin can be purchased at many cryptocurrency exchanges with fiat currency like US$ or INR ₹. 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 where we have 4 companies identified as A, B, C and D. C buys ₹1000 worth of goods from A and ₹ 2000 worth of goods from B. Assuming GST @ 18%, C pays ₹ 1180 to A and ₹ 2360 to B. D buys ₹ 5000 worth of goods from C and pays ₹  5900 to C. Under GST rules, A, B, C are required to deposit ₹ 180, ₹ 360 and ₹ 900 respectively to the GST Authority (GSTA). However C can claim ₹ 540 as GST Input Tax Credit and deposit only ₹ 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 a  matching exercise 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 ₹540.

Instead, let the GSTA define a new cryptocurrency called GSTCoin identified by the symbol ⇞ and through an Initial Coin Offering (ICO), release, say,  ⇞100 crore into its own GSTCoin wallet. To deposit GST, one has to purchase GSTCoins of equivalent value.  GSTCoins (⇞) can be purchased at one of many GST Exchanges (GSTX) operated by, say, banks. Every GST registered company will need a GSTCoin wallet whose public key is, for example, the GST registration number. This GSTCoin 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 GSTCoin (⇞). 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 GSTCoins(⇞) from GSTA, using either his Rupee (₹ ) balance or his GSTCoin (⇞) balance. The second key difference is that the purchased GSTCoins (⇞) 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 GSTCoins are delivered to a special terminus wallet of the GSTA.

All transactions are recorded in the GSTCoin blockchain ledger and a full copy of which is maintained by all those who runs a full node on the GSTCoin network. Any organisation with an 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 GSTCoins worth ⇞180 and ⇞360, 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. Since GSTCoins could not have been transferred from the GSTA wallet to C’s wallet without a corresponding GST payment in either Rupee or GSTCoin, there is no further need for any matching. The GSTCoins 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 GSTCoins through two transactions :  a ⇞540 transaction from his GSTCoin balance and a ₹360 transaction from his Rupee balance. This fulfills his obligation to deposit ₹ 900 as GST while actually spending only ₹360. In case D is registered for GST, the ⇞900 GSTCoins that have been purchased by C will go to D’s wallet. If D is not registered, ⇞900 GSTCoins will be delivered to GSTA’s own terminus wallet where it will be accounted for as nett 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 GSTCoins through a coinbase transaction. Like any other GSTCoin, 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 centralised 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. So 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 GSTCoin purchase transaction, and use that to deliver the GSTCoins. 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 GSTCoins, 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 RBI apparently exploring the possibility of its own cryptocurrency, the GSTCoin 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.

This article originally appeared in Swarajya, the magazine that reads India right

No comments: