ICOs are said to be the new way to raise money. We’ve seen companies raising $100 million, $156 million, $185 million and even $232 million by selling tokens that will be used in the protocol that these companies have promised to build using this money.
Against the money raised, the tokens they gave were created and sold on the Ethereum blockchain -- meaning that all the trade that took place happened on the Ethereum blockchain and the tokens created are tracked on the Ethereum blockchain. But that is changing.
Ethereum’s mission of making blockchain more than a calculator has allowed them to invent the concept of smart contracts. You can think of smart contracts as a set of rules governing something, which cannot be modified ever in the future. They allow a developer to write anything in the form of a smart contract that gets executed by the network. Consider the example:
If A and B place a bet about the next day's weather, the bet can be carried out in a trustless manner using a smart contract. Both of them can submit their betting amounts to the smart contract. At a predefined time on the next day, the contract will make an API call to the Open Weather API to see if the weather is sunny or rainy. Depending on the weather, the total amount will be sent to either of the two.
Because this contract is no more than a software program and gets executed on a stranger’s computer, it had to be made sure that the programmer cannot exploit the stranger’s computer or the whole network. To fix the problem, Ethereum came up with its native programming language -- Solidity. Although the language is Turing-complete, which means any program can be written in it, there’s still a steep learning curve -- and the developer community is in its infancy.
These two limitations have made Ethereum be perceived as merely an ICO platform, rather than a world computer.
Besides these Ethereum-specific disadvantages, it also faces the problems of the blockchain in general -- slow speed and no native identity on the blockchain. But blockchains are evolving -- we are living in the first few years when the internet was invented. It’s slow, expensive, clunky; but hey, it’s the future!
Is the future anywhere near?
As a huge advocate of blockchain in general, I am quite excited by the research and development happening in the space. With recent developments, we are seeing new blockchains coming up in the industry that offer so much more: They make developers move to using these newer blockchains for building their decentralized apps and ICOs.
I am particularly excited by development in the blockchains that allow general computations to happen in a decentralized manner. The newer generation of such blockchains offers much more than the ability to write smart contracts.
Support for programming language
Tezos blockchain decided to go with a functional programming language for the smart contracts. Most developers are alien to functional programming and might find the learning curve steeper than Ethereum’s Solidity.
Another blockchain, NEO, promises to offer support for .Net and Java to begin with, and eventually will allow programs written in Python and Go on its platform. With these four languages supported by NEO, it will already serve about 90 percent of the developer community from the get-go.
Qtum is another blockchain that allows developers to write Ethereum-like smart contracts, but using Bitcoin’s UTXO format. In bitcoin, there’s no concept of an account and balance. Instead of tracking every account’s balance, the unspent transactions are tracked (the transactions that were sent to your wallet and are not spent yet). The sum of those transactions make up your balance. It is very efficient and lightweight to maintain these records as compared to accounts on an Ethereum-based model. Qtum thus allows for very lightweight smart contracts.
It’s interesting to see how different blockchains are adopting various programming paradigms for their blockchains. Some are targeted toward consumers and some toward large enterprises.
Native blockchain identity
On the Ethereum blockchain, your identity is the public key whose private key you own. Every smart contract you deploy gets its own public address (identity).
Unlike the pseudonymous model of Ethereum, blockchains like NEO offer users a native identity that can be used across the apps on the blockchain. Imagine if the internet had allowed every user to have a native identity, then you’d have never been required to create a separate one for every service you use on the internet.
Some say blockchain is the new internet. There are several mental models in which to fit blockchain, and I, too, believe considering it as the new internet is not a bad analogy. A native identity on the blockchain will have a native identity that can be used to access anything that gets built on the blockchain.
There are several teams working to solve the identity problem on blockchains. For instance, on Ethereum, Civic allows a user to record his/her identity that he/she can later use for other apps on the blockchain.
I find blockchain-level native identity a worthy proposition because if there’s no native identity, the teams that are solving the identity problem will make the ecosystem fragmented.
The current generation of blockchains gets criticized for how much energy it consumes to power the network. The costs are high because of the consensus method Bitcoin or Ethereum blockchain uses.
In any blockchain, periodically all the nodes in the network will have to agree to the updated state of the system. Because the nodes are geographically distributed and are not always keeping track of every other node in the network, they would be required to sync themselves and agree upon the new state of the network.
Currently, the most popular consensus method is proof of work, where every node tries to claim the updated state of the network by solving a cryptographic puzzle. Whoever solves it first gets to tell the network what the updated state is. Everyone agrees to it and proceeds ahead.
The disadvantages of this method are that it is slow and expensive. There are several solutions to this problem, with their own pros and cons. While Ethereum is on its way to move consensus to proof of work, Qtum and Tezos launched with a version of a proof of stake consensus protocol from the start. Interesting is that Tezos goes a step ahead and offers a decentralized way of governance to adopt any major upgrades to the protocol. Every major upgrade is proposed and voted upon, making the hard forks theoretically rare.
On the other hand, NEO uses a delegated Byzantine Fault Tolerance (dBFT) consensus mechanism that makes it possible to sync up the network a lot quicker without spending a lot of energy. It supports up to 10,000 transactions per second as compared to Ethereum’s 15 transactions per second.
Blockchain is the future -- but how does the future look?
Google wasn’t the first search engine, and Facebook wasn’t the first social network -- they were the best ones. We might see a similar trend when it comes to the blockchain world. Bitcoin and Ethereum have shown us something that we considered impossible before. But they are far from being perfect.
While blockchain is the future, I do not believe the future is what we are living today. We are living among the experiments. What we see around us might be in ruins tomorrow. What we get as our future might not have been invented yet.
With hopes still high and a sharp eye on the industry, I am waiting for the ultimate blockchain. Will it be Ethereum? Or NEO? Or Qtum? Or Tezos? Or something else? I don’t know. For now, I am excited to witness one of the largest shifts a human life can live through. Even if the future does not appear to be near, the future is not far either.