We’ve heard of digital cash. But what more can blockchains do?
Photo by Launchpresso on Unsplash
The first and most obvious blockchain application was Bitcoin — digital cash. But actually, this is a blockchain’s most primitive form. As Ethereum showed the world, there’s a lot more blockchains can do. In this article, we’ll explore how platforms like Ethereum came to be, and what they can be used for.
Let’s look at some different blockchain projects before Ethereum came along. There were 3 big ones : namecoin, colored coins and metacoins.
- Namecoin is a decentralized name registration database, created in 2010. It was the first fork of Bitcoin. In decentralized protocols (BitMessage, Bitcoin, Tor), there were often difficulties in identifying some accounts so that other people could interact with them. If you’ve ever used Tor, think of those random .onion domain names that don’t make sense at all. The only way someone could be identified was by a hash-function, which is an address/key. Namecoin wanted to solve this problem by providing a service that would let you attach some data, in this case — a name, to a specific address. Ownership of a name is associated with ownership of a coin which, like a bitcoin, is censorship-resistant, since these states are stored in a blockchain.
- Colored coins want to serve as a protocol that would allow people to create their own cryptocurrencies on the Bitcoin blockchain. A bitcoin (1 of the 21 million), is often seen as just a neutral medium of exchange. However, it is possible to assign some sort of “color” to a set of bitcoins so that they can be distinguished from the rest (“color” here being just a property that makes one set of coins different). Those bitcoins can then sort of live a life on their own, since they represent something entirely different. They are just as secure as normal bitcoins though, since technically, they still are bitcoins. And because they’re part of the Bitcoin infrastructure, they don’t need a third party, and can even be exchanged for one another in an atomic swap. These coins could then be used to represent some other form of ownership or value such as smart property, commodity certificates, and other financial instruments.
- Metacoins — the basic idea of a metacoin is to add extra functionality to the Bitcoin protocol by using Bitcoin transactions to store metacoin transactions (remember, transactions are not only transfers of value, but more like transfers of information. Some information can be value, but it doesn’t necessarily have to be). The promising thing about metacoins is that they can add all sorts of functionality to the Bitcoin network while maintaining the same security. Think of Counterparty, which is a metacoin. One of the things they are building is a decentralized exchange on the Bitcoin blockchain. This might sound like a terribly inefficient exchange, which it is, but with advances in SegWit and Lightning Network, it might become a viable DEX competitor in the future.
We can now conclude that there were basically two ways to build blockchain applications:
- Build an own independent blockchain like Namecoin, by, for example, forking the Bitcoin blockchain
- Build a protocol on top of Bitcoin
The first one is difficult and not really necessary. Most applications don’t need their own independent blockchain. Only infrastructure projects do. Besides that, a lot of applications would be too small to have their own blockchains. Blockchains need a node network to be safe, but if there are no nodes, there would be no security.
The second approach may be better, however, there are still some security flaws that are out of the scope of this paper. Reference the Ethereum whitepaper for more information.
Scripting
There is, however, a way to write weak versions of smart contracts. A transaction can be programmed by the simple Bitcoin scripting language. A good example of this is a multisig wallet, or a wallet that needs two or more private keys to be accessed. This scripting language is also used by metacoins.
The scripting language of Bitcoin has several limitations, the most important one being its lack of Turing-completeness. This means that there are some forms of computation that aren’t supported by the language, like loops. This creates some serious limitations for smart-contracts.
From their whitepaper:
The intent of Ethereum is to create an alternative protocol for building decentralized applications, providing a different set of tradeoffs that we believe will be very useful for a large class of decentralized applications, with particular emphasis on situations where rapid development time, security for small and rarely used applications, and the ability of different applications to very efficiently interact, are important.
Ethereum brought forward the ultimate foundational layer: a blockchain with a built-in Turing complete programming language (solidity), on which anyone can write smart contracts and build decentralized applications.
Based on this, I would give a blockchain platform the following definition:
A blockchain platform is a foundational blockchain layer on which all sorts of smart contracts and decentralized applications can be written that maintain their safety through the underlying blockchain’s infrastructure.
Smart Contracts
Now that we understand what a blockchain platform is, let’s look at some of the things that it can be used for. A common use case is smart contracts, first conceived by Nick Szabo in 1994. A smart contract isn’t some sort of magic contract, it just allows you to solve a lot of problems in a trustless fashion. They help us exchange money, ownership, or anything of value really, in a transparent and conflict-free way without using a middleman. The only thing one has to rely on is the execution of computer code.
Here’s a simple example:
Suppose you want to buy a digital good from someone, a website in this case. Usually, you go to a site like Flippa, where they let people showcase their website. If you want to buy a website, you send the money over to an escrow account managed by Flippa, and they take a pretty large cut of that money. Besides, it’s all managed by centralized servers, a hack and loss of funds is therefore not out of the question.
The alternative: you build or use a smart contract. Both the buyer and the seller agree on using the smart contract, and it will work as a decentralized escrow. The buyer sends money over to the smart contract, and the money will only be transferred to the seller if he sends his website over to the escrow. This is why smart contracts are often referred to as programmable money.
Decentralized Applications / dApps
A second big use case of course are decentralized applications. Imagine a company or service (it can be a lot of things) that isn’t controlled by any central entity. It is censorship resistant and there is zero downtime. dApps allow for services to be truly peer to peer, prioritizing the needs of everyone using it.
A decentralized application in general can be thought of as a normal application, with a big difference being that it’s completely autonomous and transparent. dApps work on self-executing smart contracts, so that the middleman is completely cut out. This exclusion of any intermediary eliminates fraud, maximizes system performance, and reduces a lot of the costs. Another plus is its security. Since it runs on a decentralized network, it can’t be tampered with without being noticed by other users (specifically validators), which eliminates a lot of threats.
The Ethereum whitepaper defines three types of dApps.
- The first being financial applications. These allow users to manage and enter into contracts with their money in a more empowering way. One example of this might (in the future) be an employment contract.
- The second category are semi-financial applications. Money is involved, but there’s also a big non-monetary side to the app. A good example of this is Richard Craib’s Numerai, which can be described as a decentralized hedge fund. Every week users get stock market data on which they have to train models to predict the future. Users then stake Numeraire, the cryptocurrency powering Numerai, on their models, and the users that staked on winning models get their investment back and more. Other stakes are destroyed. This makes their hedge fund terribly efficient, since users put their own money in the game. Another example is Golem Project, a decentralized computation platform. Decentralized storage systems like Filecoin and Siacoin are another.
- The third category are non-financial applications. In the Ethereum whitepaper online voting and decentralized governance are mentioned. Horizon State and their Decision Token focuses on decentralized voting, while Aragon is a project that focuses on decentralized governance. In their own words:
Aragon Network will be the first community governed decentralized organization whose goal is to act as a digital jurisdiction, an online decentralized court system that isn’t bound by traditional artificial barriers such as national jurisdictions or the borders of a single country.
A lot of dApps use cryptoeconomic incentives to power themselves, which is why you see a lot of tokens and ICOs. Let’s look at this with an example: Augur is a decentralized prediction market. The thesis is simple: the right outcome of an event has a higher chance of being predicted based on the wisdom of the crowd principle. Correct predictions are rewarded with Reputation tokens (REP), while false predictions are punished by taking away users’ REP tokens. The incentive for making a right prediction/not lying is pretty good.
As you can hopefully see, blockchains are still in their pubescent form, but their potential is enormous. Thanks for reading.