Table of Contents:
- 1. The beginning of Ethereum
- 2. Smart Contracts – a world computer that doesn’t require trust
- 3. Verify Smart Contracts
- 4. Challenges ahead of Ethereum
Getting to know Ethereum
We already learned a lot about the first and the most popular cryptocurrency in the world – Bitcoin. Now the time has come to talk more about the second most important cryptocurrency, namely Ethereum. As you know, Bitcoin was the first. It was the pioneer of new technology and new approach to money and its transfer. Thanks to Satoshi Nakamoto, we learned about technology that today is known as blockchain. Although it happened a decade ago there are still alternative cryptocurrencies that base on this system.
Although Bitcoin revolutionized the world and changed the way we look at money, its value and its means of transfer, it also disappointed us quite a few times. Consecutive crowds of fans wanted to use Bitcoin to newer and much more demanding things. However, after several months of trying, it turned out that because of its limitations, it cannot be done. One of the most frequent reasons why people have been failing was simply because of Bitcoin’s script language was too restricted. Since it has a very narrow number of instructions we can use to program certain situations, we are unable to create new things.
That is why a lot of new projects emerged. They are based on Bitcoin, but thanks to more flexible code, they allowed us to do something else. If someone wanted to add new functionality, then he or she simply created new blockchain with this functionality.
A lot of people knew that it is simply a road to nowhere. This approach can be compared to creating one separate computer to each application. If you wanted to play sapper, you had to create a special computer for it. If you wanted to write a text document, then it required a separate computer. We all know that such approach would never make computers as popular as they are nowadays. They became popular because there was one operating system, where we could launch many applications in order to satisfy our needs.
The beginning of Ethereum
What if we could do a blockchain that would be a type of operating system, where people could create various advanced applications? This is when Vitalik Buterin comes in and presents Ethereum to the world. The vision of the first decentralized world computer, where we can launch any application we want.
Programmers can write on Ethereum different applications, and all users can launch them. These applications are also known as Smart Contracts (more about that later on). Since this world computer is based on blockchain, these applications are quite peculiar. As you know, blockchain has got several interesting characteristics, such as:
- Decentralization – there is no single organization responsible for managing the net. It is done by people around the world spontaneously according to the rules described in Blockchain’s protocol;
- Public – everyone can co-create the network and be its user;
- Censor-immune – no one can block the access to the network or deny making the transaction;
- Permanence – transaction that was once conducted cannot be modified or removed. It will remain in the blockchain forever. As a result, it can be the universal source of truth.
If we put applications to blockchain with such qualities, then these applications will also have these qualities. The most important are as follows:
- Application that is once added into the blockchain will always work in the same way. It works today the same way it worked yesterday and, because of that, it will also work the same way tomorrow. No one can change it, including authors.
- Everyone can write and publish applications in the blockchain. We do not need anyone’s consent.
- Everyone can use them.
If we combine all these features, then we can notice that out of the sudden, computer programs can do a lot of things for us. Things to which we needed a trusted third party before. A great example is betting. We can for example bet with another person directly. However, we have to trust this person that in case he or she loses bet, we will receive our prize. It may work in the group of trusted people. However, if we take a look at that from bigger perspective, when betting with strangers, then this will never work. In that situation we need a trusted third party that will collect bets from us, verify the result of a bet, and then pay a winner his or her prize. Of course while doing that, such third party will certainly take a provision.
If; however, we write a program that will take bets, verify their results and deposit wins, then we can cut off our bookie. The same thing can happen in case of many other trusted third parties. First of all, we will receive much cheaper services (no need to pay for provisions). Secondly, we are not limited to the option our middleman offers. In our example, we can place bets on everything – not only on things that our bookmaker offers.
Smart Contracts – a world computer that doesn’t require trust
The biggest difference between applications placed on Ethereum and the ones we find on our mobile phones, tablets, or computers, is simply that the one on Ethereum will never change. Traditional applications have got a built-in update mechanism. Sometimes these updates occur without our consent, in the background. We will still have the same name of an application and the same icon. However, the application itself is changing. Usually these are small changes, but we do not have any guarantee that suddenly our application won’t do something different. Obviously, such applications as Instagram make use of these updates and it is a good thing, because we receive new filters and new functions.
If; however, we take a look at applications where we do not need changes, then we’ve got a problem. Smart contracts are an alternative to very costly and not always transparent companies. We receive a program that always does the same. But now some of you may ask one, but quite fundamental question: How do we know that Smart Contract is doing exactly what it was designed to do and there aren’t things hidden from us?
Verify Smart Contracts
Luckily for us, Ethereum is a blockchain, where everything is saved. It includes our Smart Contract. Sadly, this is where our luck ends. You see, although Smart Contracts are saved on the blockchain, they are written in the form that is impossible for humans to decode. They are written in the form of executable code, known as bytecode. It happens because in this way the code takes less place than the code for a human. That is why putting it on the blockchain is cheaper and Ethereum can host more applications like this.
Even if we can’t get source code from a bytecode, we can still verify whether bytecode was created as a result of compiling the source code. To do that, we simply need a source code written by a programmer. You see, the same source code that was compiled with the same version of compiler will always give us the same bytecode. This is why if the author of smart contract gives us source code and tells us about compiler version that he or she was using, then we can compile this code ourselves and verify it.
Challenges ahead of Ethereum
Although the appearance of Ethereum was a milestone in the development of cryptocurrency in blockchain technology, there are still problems that Ethereum needs to deal with.
The most important one is of course blockchain capacity and the speed with which all the transactions take place and the time of accessing smart contracts. There are the main areas that can enhance scalability, and these are sharding, side chains, and payment channels. Besides that, the clarity of Ethereum and the way users can use the network is a bit troubling. That is why most people, especially everyday Joes who know nothing about this world, will feel like this technology is beyond them and they simply won’t use it.