Introduction to Cardano (ADA) Part 6

Three generations of cryptocurrencies. Issues with second-generation cryptocurrencies.

The second-generation cryptocurrencies introduced a lot of improvements to the world of blockchain and decentralized decision-making. However, they have also inherited some of the main issues that prevent first-generation cryptocurrencies from becoming household money. The biggest of these issues is scalability.


Scalability of Bitcoin and Ethereum

As of January of 2018, both the Bitcoin network and the Ethereum network record all the transactions that happen on the networks into just one blockchain, meaning that the Bitcoin network has a blockchain and the Ethereum network has a blockchain. The problem with that is that all the members of a network get information about all the transactions that occur on the network. This is the main reason why neither Bitcoin nor Ethereum could serve as a mechanism for all the transactions in the world in the near future.

Both on Ethereum and on Bitcoin, each node on the network contains a full copy of the blockchain. If each node were to contain information about all the transactions that happen in the world, it would take a lot of time for the nodes to update their blockchains. This would result in a significant drag on the ability of a network to process transactions quickly, which, in turn, would result in people using a different way to transact with each other.


Traditional payment systems vs first- and second-generation cryptocurrencies

One of the benefits of using cash is that a transaction takes seconds. Even when using conventional electronic payments, people today are used to swiping a credit card or a debit card through a machine and getting an approval message for a transaction almost instantly. In the Western world, people are used to picking up coffee in Starbucks after ordering it through the Starbucks app a few minutes in advance and having a car showing up shortly after using an app such as Lyft or Uber.

In all of these instances, apps automatically withdraw money from an account of an app user in a way that the user doesn’t even notice it. Payments occur instantly in the background. Because of this convenience, nobody would make a switch to Bitcoin or Ether and wait for hours for transactions to go through, which has been the case in the past when the cryptocurrency networks were getting overloaded with transactions.  Even if it were possible for a blockchain network to process all transactions that are occurring globally in a timely manner, storing all the transactions on one blockchain would mean that the size of the blockchain would be huge. This, in turn, would mean that users would need to have a lot of hard drive space. Also, only users with extremely fast Internet connections would be able to download the full blockchain. As a result, only a short percentage of all Internet users will be able to become nodes on the network, essentially turning a peer-to-peer network into a highly centralized network.

The payment network of financial giant Visa has processed over 40,000 transactions per second during the holiday season of 2013, setting a record for the network. Bitcoin has processing capacity of between three and seven transactions per second. The Ethereum network can process twice as many transactions as Bitcoin, up to fifteen transactions per second, but even this number is not even one-tenth of a percent of the processing capacity of Visa network.


Solidity as a permissive language and The DAO hack

Another issue of second-generation networks is lack of qualified developers and flaws in the structure of programming languages. For example, to create smart contracts on the Ethereum network, developers need to use programming language called Solidity. Solidity was created by a team of core Ethereum contributors, including Gavin Wood and Yoichi Hirai. It is a language on top of Ethereum Virtual Machine (EVM). EVM is a protocol that is responsible for execution of code on the Ethereum network.

Solidity was designed in its current form to make it easy for developers to create smart contracts. Because of this, Solidity uses syntax that is very similar to the one of JavaScript. Java is one of the most popular programming languages, which is why it is easy for coders to pick up Solidity quickly and start developing apps using Solidity language with almost no learning curve or pains.

One of the biggest issues with Solidity is that it is a very permissive language. It does not offer a lot of features and capabilities when it comes to restrictions, which was one of the reasons why “The DAO” hack occurred in the first place (It is important to note that during the hack the Ethereum network functioned exactly how it was supposed to function. The hack occurred because the developers of “The DAO” did not protect the project from all potential vulnerabilities).

“The DAO” was a combination of stateless decentralized autonomous organization and a participant-backed venture fund. Its goal was to create a new way for both nonprofits and businesses to structure and run organizations. The crowd sale for “The DAO” token started in April of 2016 and quickly broke all the records, becoming the largest crowdfunding project at the time and having raised an equivalent of over USD$120 million. The software code that ran “The DAO” made the project a subject to a holding period of 28 days for security purposes.

About a month after the start of “The DAO” crowdsale, a paper was published that warned about the security vulnerabilities of the code. On June 17, 2016, a hacker or a group of hackers have exploited the vulnerabilities of “The DAO” and were able to gain control of about USD$50 million in Ether tokens. Then funneled the money into “a child of the DAO.”  However, because of the restrictions in the code and “child DAO” being essentially a copy of “The DAO,” the attackers were not able to withdraw the funds right away and had to wait 28 days just like the creators of the original project.


Issues with governance on the first- and second-generation blockchain networks

The hack of “the DAO” had led to a lot of discussions in the Ethereum community and a hard fork that has split the Ethereum network into two, which is yet another issue with first-generation and second-generation cryptocurrencies. The issue is not with software. It is about governance and reaching consensus.

One out of the two new Ethereum networks made changes to the code of “The DAO” in a way that prevented the hackers from withdrawing the funds. It was Vitalik Buterin, the founder of Ethereum, who introduced the changes, which is why the new network kept the old name, and stayed known as the Ethereum network.

The network that didn’t accept the changes became known as Ethereum Classic. Users, miners and developers that chose Ethereum Classic argued that decentralization of Ethereum is more important than prevention of a single hack and that one update could become a precedent for new updates and a central authority deciding what happens to the network.