The Hitchhiker’s Guide to DApps #1: Ethereum Introduction
Not that long ago building blockchain applications has required a complex background in coding, cryptography, mathematics as well as significant resources. But everything has changed, Ethereum made it possible. In our new series, we want to help you find out everything about Ethereum to make your journey through the world of DApps as comfortable as possible.
The simplest explanation of what Ethereum is an open software platform based on blockchain technology that enables developers to build and deploy decentralized applications. The Idea of Ethereum was floored by the end of 2013. People started realizing that blockchain could be used for various other applications other than just money: asset issuance, crowdfunding, domain registration, title registration, gambling, prediction marketing, internet of things (IoT), voting and hundreds of similar applications.
Ethereum system provides the open-source blockchain platform with an in-built programming language which allows developers to write their code, test and run to check if it works properly. It has two types of account objects with unique address. The account for general people also called as ‘User Account’ is the one which is controlled by human with private keys. The other account is called as ‘Contract’, which basically is a set of instructions added to Ethereum to perform certain task. Both accounts use Ether (ETH) the official currency of Ethereum to execute any task on the blockchain.
The Ethereum Virtual Machine makes the process of creating blockchain applications much easier and efficient than ever before. Instead of having to build an entirely original blockchain for each new application, Ethereum enables the development of potentially thousands of different applications all on one platform. Ethereum enables developers to build and deploy decentralized applications. A DApp serves some particular purpose to its users, but all of the, have noticeable common features:
- Open Source. Ideally, it should be governed by autonomy and all changes must be decided by the consensus, or a majority, of its users. Its code base should be available for scrutiny.
- Decentralized. All records of the application’s operation must be stored on a public and decentralized blockchain to avoid pitfalls of centralization.
- Incentivized. Validators of the blockchain should be incentivized by rewarding them accordingly with cryptographic tokens.
- Protocol. The application community must agree on a cryptographic algorithm to show proof of value. For example, Bitcoin uses Proof of Work (PoW) and Ethereum is currently using PoW with plans for a hybrid PoW/Proof of Stake (PoS) in the future.
Ethereum whitepaper splits DApps into three types: apps that manage money, apps where money is involved (but also requires another piece), and apps in the “other” category, which includes voting and governance systems. Right now, it has changed a bit. DApp listings split DApps by their functions: Exchanges/Games/Gambling/Governance etc.
The intention of Ethereum is to create an alternative protocol for building decentralized applications with emphasis on development time, security, and scaling. You may think of Ethereum as, for the lack of a better analogy, the Mother of DApps. Armed with its very own language, Solidity, Ethereum enables developers to form smart contacts using the Turing-complete Ethereum Virtual Machine. With these tools available, developers made DApps that have real-life use cases, ranging from asset management to resource planning.
Theoretically, any services that are centralized can be decentralized using Ethereum. From obvious services like loans provided by banks to intermediary services rarely thought about by most people like title registries, voting systems, regulatory compliance and much more.
Ethereum can also be used to build Decentralized Autonomous Organizations (DAO). A DAO is fully autonomous, decentralized organization with no single leader. DAO’s are run by programming code, on a collection of smart contracts written on the Ethereum blockchain. The code is designed to replace the rules and structure of a traditional organization, eliminating the need for people and centralized control. A DAO is owned by everyone who purchases tokens, but instead of each token equating to equity shares & ownership, tokens act as contributions that give people voting rights.
Despite bringing a number of benefits, decentralized applications aren’t faultless. Because smart contract code is written by humans, smart contracts are only as good as the people who write them. Code bugs or oversights can lead to unintended adverse actions being taken. If a mistake in the code gets exploited, there is no efficient way in which an attack or exploitation can be stopped other than obtaining a network consensus and rewriting the underlying code. This goes against the essence of the blockchain which is meant to be immutable. Also, any action taken by a central party raises serious questions about the decentralized nature of an application.
There are already thousands of DApps developed and there will be even more. In our next articles, we will tell you which Dapps can be used already and how Ethereum can change our lives. Stay tuned!