Preface – Following article that introduces the topic CryptoCurrency is intended for general audience. CryptoCurrencies are built over Blockchain Peer-to-Peer technology and sometimes, are depicted as threat to governments and banks. Many governments and a few banks have demonstrated adoption to this new paradigm of ‘Trust-less-ness’. Many experts believe Blockchain will dramatically change the FinTech industry and bring transparency between providers and consumers. It’s an exciting time in CryptoCurrency domain but, let’s first get the fundamentals right.
Bank – A place we trust our money with and believe (currency) is safe. It is also a place which facilitates exchange of currency between two parties. The two parties can be inter-country or intra-country. The transaction process is smooth for inter-country but not as smooth for intra-country. One of the reasons of this friction is that every country has their own currency and the exchange needs to happen at an exchange rate. Every country has its own government backed currency which is nothing but a promise to its people that the country’s treasury department will honor exchange of goods and services against the issued currency.
When the exchange of value or a transaction is between countries, an exchange rate must be figured out in order for the transaction to take place. Exchange rates (value) vary drastically for each pair of countries. Without going into much detail it can be said that the value of any national currency depends on its goods and services exports. The more quality and quantity exported, the more valuable the currency becomes, because other countries need to first buy the currency itself to buy these exported goods and services. It’s part of demand and supply game. Higher the demand, lower the supply, higher the price. Lower the demand, higher the supply, lower the price. Forex markets keep these prices roughly stable by constantly trading currencies against one another. Hence an exchange rate helps in trading goods and services across borders.
Banks need to stay abreast of foreign exchange rates. Essentially, the forex market exists because of no global standard currency. There are some fungible items like Gold that can be used globally but they are not easily divisible, quickly transferred to far distances and there is a no known limit of its supply. This makes Gold a weak candidate to be used as currency and while in history it was used to back national currency, it’s not used any more. The reason – unknown supply. If some country gets lucky and finds a large ore of Gold, it can destabilize global economics and in turn governments.
So far we know that each nation has its own government backed currency which is handled in a trusted manner by banks. Without banks, no two parties can exchange value for goods and services in a provable manner that the exchange happened. Cash is a mechanism where exchange of value can take place but because of its anonymous nature, it is discouraged and the exchange is not backed by government. Bank accounts and bank transfer became the standard option for people to transfer value in a provable manner. Because of it, banks became the backbone of countries’ economies but at the same time they are also acting as a censor, snooping transactions, profiling customers and using this data to maneuver choices. They can freeze accounts, stop transfers or worse, make anyone a beggar. Apart from these evil possibilities, banks are not hack-proof. Theft of money from bank becomes a burden for honest members of the bank or community. Demonetization did more harm than good to honest members of the bank.
Technologically, we can consider bank as an online database which can be tampered, with or without permission. It is a trust-required setup without an ability of verifying its overall integrity by any account holder.
Blockchain – We can consider blockchain as an online replicated database which can not be tampered, it is also verifiable by any account holder. Blockchains allow a trust-less exchange of value that cannot be censored, linked to individuals and is same within or across border. There are permission-ed or permission-less blockchains which allow any or selected members to append new records. Each set of records is clubbed into a block and a signature is created of that block. The next block refers to the previous block and its signature. With each such block, a block chain is created and distributed across the nodes. A node in block chain is an online computer that maintains a full copy of blockchain. Every node can verify integrity of the blockchain on its own. When a transaction is announced by account holders – using their wallet, it is broadcasted to all available nodes. These nodes maintain such broadcasted transactions in a mempool which they try to include in the next block. Nodes that successfully include the transaction into a block and append the block to blockchain, get rewards. They also publish their block to all other nodes so that other nodes do not try to include same transactions in their next block.
Mining – The process of including transactions from mempool to a block and appending the block to the blockchain is called mining. A node that does the work of mining is called miner. Mining is compute-intensive process where a signature needs to be calculated as per the rules of blockchain. Each blockchain has its own rules, and consensus between miners ensure that the rules are honored. Those miners that do not honor the rules are rejected from pool and neither their blocks are accepted nor they are incentivized for mining. Open blockchains are permissionless, censor free and global. Users use them for these properties and pay a per transaction fee for letting the nodes accept and insert the transaction in blockchain. Miners can also be incentivized by awarding some additional currency for doing their work. A work is finding next block in blockchain.
Bitcoin – A cryptocurrency which works on a trust-less setup where anyone from anywhere can transfer value to anyone anywhere. Miners mine the blocks from transactions in mempool and are rewarded in bitcoins. Miners can spend, send, exchange these bitcoins for a national currency and vice-versa. General users obtain bitcoins by buying Over The Counter (OTC) or by buying them from exchanges. Many retail shops, online carts or entertainment places accept bitcoin as form of payment. Miners generally sell bitcoins on exchanges for real-time rate. Once a user has acquired a few bitcoins, s/he can send them to anyone anywhere to achieve uncensored transfer of value. Each transaction is appended on blockchain for immutability. Because users see value in bitcoin & due to its limited supply, the price relatively keeps rising; a lot of miners compete to include transactions from mempool to a block to earn two way. Fees and block rewards. This generally results in blocks getting created faster. Bitcoin has limited supply defined in its code. To avoid getting bitcoins quickly mined, and also allow a breathing period for blocks’ propagation to other nodes, bitcoin developer(s) introduced a difficulty engine. Because of this engine, bitcoin block generation speed is roughly limited to 1 block per 10 mins. This difficulty is recorded in the block itself and denoted number of zeros in signature hash prefix. The signature hash is calculated using SHA256. This difficulty engine also makes it difficult to perform a network attack. A network attack on bitcoin is where miner(s) maliciously force an invalid transaction to be appended in blockchain. The difficulty engine fails if miner(s) acquire more than 51% of network hash rate. Given today’s numbers, even if all public cloud providers merged and tried to perform an attack, it would not be possible.
Users use wallets to initiate transactions and accept bitcoins. A user can own multiple accounts on bitcoin blockchain. An account is a combination of public-private key pair. Public key is the address where bitcoin is sent and is publicly disclosed address. Private key is used by wallets to sign the transaction and is always kept private. Anyone who possess the private key has access to the amount of bitcoins on the corresponding public key. Bitcoin successfully demonstrates use of blockchain as a mean of censorship-free global value transfer using PKI.
CryptoCurrencies – Looking at the problems in banking system and success of Bitcoin Blockchain, a lot of open source projects spun from it in an effort to address its limitations. Some increased the number of coins thereby increasing the total supply. Some changed the signature algorithm from SHA256 to another. Some felt that the 10 min block time was too high to make instant payments e.g. Paying for a Coffee, and hence reduced the block time or created master-nodes that can instantaneously verify transactions. Each cryptocurrency came with tradeoffs in terms of security, speed, size of blockchain, censorship, etc. Some created privacy focused blockchains which mangle the mempool and hide the identity of value exchangers. These privacy focused chain allowed to view amount of coins stored on each address but hid or mangled the transactions that occurred.
Unlike fiat which are divisible unto 2 decimal points, cryptocurrencies are divisible unto 8 decimal points. e.g. 1 USD = 100 Cents and 1 BTC = 100,000,000 Satoshi. Thus, even though a single bitcoin costs 10000 USD, 100 Satoshis are just 1 cent. This makes bitcoin and similar cryptocurrencies extremely flexible to pay from small tips to buying large mansions. Cryptocurrency Payment Processors run nodes which always have latest blockchain copy. Small payments are usually instantly confirmed by these processors while large payments need certain amount of global confirmations to be absolutely sure that the transaction is immutable.
Cryptocurrencies can be stored and carried in numerous ways. Most common is a hot mobile wallet application. People generally hold only enough in mobile wallet for daily needs. Other ways include but are not limited to a Paper Wallet, Hardware Wallet, Brain Wallet, Desktop Wallet, etc. These categories indicate the location and protection level of private key.
Smart Contracts – In cryptocurrencies, the transaction once submitted to mempool had a relative guarantee to occur in few blocks time and time was the only constraint for transaction to happen. Once a miner mines that transaction into a block, other miners give consensus by confirming the block and appending it to their local blockchain. Smart contracts on the other hand are bound to not only time but also the conditions mentioned in contract. These conditions can be any such that the contract stays binding. Smart contracts enabled a lot of decentralized apps to be created on these platforms. Usually the platform itself also acts as a native currency and each contract execution is paid in that currency. Smart contracts can represent any real world contract on blockchain database in an immutable fashion. The history of the contract execution cannot be altered and it can always be proven that the contract happened. Real world representation can be shares of a company, land records, employment records, bank bonds. etc. The contracts are easily tradable against other contracts via cryptocurrency and rely on same PKI.
ESDS – The inherent nature of public blockchains is that they need miners and are open to accept any miner that adheres to the consensus among existing miners. Many organizations prefer private blockchain which can further be permission-ed to certain members. Mining is an online operation and thus, needs constant internet connectivity. It’s also a compute intensive process where block hash must be calculated to receive new crypto currency and transaction fees. The intensity of computation depends on total number of miners constituent in the pool and total pool hash power. Hash power is a numeric representation of how many hashes a system can perform. Depending on hash algorithm, one can choose CPU or GPU or FPGA or ASICs to mine or perform hash (signature) calculations. ESDS can provide or host such systems that participate in mining of public or private blockchains. It is also possible to host private blockchains that are permission-ed in such a way that only designated account holders can announce changes to it.
Conclusion – CryptoCurrencies are a way to solve some of the digital money problems by addressing them in a decentralized, censor-free manner. It may be seen against banks’ approach of having control and censorship but their usability is undeniable. They exists because people see value in them, same as they see value in government-backed piece of paper called Notes. Government is by the people and for the people, while CryptoCurrencies are Money by the people and for the people.
Thank you Satoshi. Time will tell whether CryptoCurrencies make a mark.