Exploring Ethereum: dApps, apps and ICOs

The rise in blockchain technology and digital currencies has had our attention for some time, and we’ve had more than a few interesting conversations with startups looking to make the most of blockchain technologies in their businesses.

We’re currently working on a really exciting blockchain-based project (more on that soon!), so we’ve decided it’s time to share some of what we’ve learned along the way.

But before we get too deep, let’s take a look at what Ethereum is…

What is Ethereum?

Ethereum’s roots lie in blockchain fundamentals and it’s official definition on the Ethereum website is…

“A decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.”

Perhaps more simple to grasp is this definition of Ethereum from Blockgeeks founder Ameer Rosic…

“Ethereum is an open software platform based on blockchain technology that enables developers to build and deploy decentralized applications.”

Ethereum was founded in 2013 and is most commonly associated with co-founder Russian-Canadian programmer, Vitalik Buterin (although there are a number of co-founders who can be found at AngelList).

After the founding of Bitcoin, an open source cryptocurrency and digital payment system, Vitalik wanted to take the idea of blockchain further than simply ‘digital cash’. He initially described Ethereum in this white paper.

This move away from Bitcoin is summed up by one of the co-founders of Ethereum, Dr Gavin Wood, on Blockgeeks

“Bitcoin is first and foremost a currency; this is one particular application of a blockchain. However, it is far from the only application. To take a past example of a similar situation, e-mail is one particular use of the internet, and for sure helped popularise it, but there are many others.”

It’s worth noting that many misunderstand Ethereum as just a digital currency. Ethereum does have its own currency or ‘fuel’ called Ether (ETH), that powers the Ethereum network. However unlike some other blockchain currencies, Ethereum has an upper layer that acts as a platform for developers to build decentralised applications or dApps on.

BlockchainHub sums up the difference between dApps and apps succinctly…

“Decentralized applications (dApps) are applications that run on a peer-to-peer network of computers rather than a single computer. dApps, have existed since the advent of peer-to-peer networks”

It’s easy to think of dApps as being a new thing, eponymous only to Ethereum, but this is a mistake. As Vitalik Buterin states, there are many applications built with or without blockchain that can be understood as decentralised applications…

BitTorrent qualifies as a decentralized application, as do Popcorn Time, Tor and Maidsafe (note that Maidsafe is also itself a platform for other decentralized applications).”

For more on Ethereum, check out this explainer video featuring Vitalik Buterin and this beginners guide by Blockgeeks.

Exploring Ethereum

There are two key concepts we wanted to share based on our R&D around Ethereum: initial coin offerings (ICOs) and dApps.

Initial Coin Offerings (ICO)

According to Blockgeeks, An ICO is when…

“Someone [company] offers investors some units of a new cryptocurrency or crypto-token in exchange against cryptocurrencies such as Bitcoin or Ethereum.”

ICOs provide a new way for companies, projects and people to raise money. It’s easy to think of them as traditional shares, but this is wrong, tokens bought through an ICO are not the same as shares.

These ‘crypto-tokens’ are purchased on the premise that the value of the tokens rises with the success of the company and in turn leads to an increase in demand.

ICOs can be pretty risky. They are currently not well regulated, but the United States Securities and Exchange Commission (SEC) have now moved to regulate these in line with more common stocks such as those on exchanges like the FTSE 100. You can see the SEC current position here.

ICO funds are usually received in coins such as Bitcoin or Ether. The company behind the ICO will create a public address for receiving the funds for investors to send money to. This is usually done on the company’s web page and once an investor sends money they receive their tokens in return. The funds are then used to pay staff, pay for development or can be exchanged into fiat currency, such as the US dollar or British pound to help fund the project.

A final, important concept to understand when talking about ICOs is smart contracts, which Blockgeeks defines as…

“Contracts that help you exchange money, property, shares, or anything of value in a transparent, conflict-free way while avoiding the services of a middleman.”

Essentially the main goal of a smart contract is to enable two or more parties to trade or do business with each other without the need for a middleman.

Here’s a gentle introduction to ICOs which includes all you need to know.

Creating a simple decentralised application (dApp)

Our developers recently created a simple proof of concept dApp and found it fairly “straightforward”. The nuts and bolts of the dApp enabled us to use example tokens as payment for a widget from a fictitious online store.

We created a test app that was able to charge for API calls in Ether. The app was designed to allow micropayments to be batched (or stored up) and then later processed as one transaction, so the fees (the cost in Ether you would pay for each micropayment) are only charged once instead of for each call.

dApps are not all dissimilar to traditional web applications. The fundamental difference is instead of an API connecting to a database, you have a smart contract connecting to a blockchain.

Teething problems & limitations

There were a number of obstacles and limitations we found along the way. One of the main problems we encountered was that you must have Ether ‘Gas’, the underlying currency to build applications which could be costly for early stage startups.

Here’s some of the other issues and limitations we found:

  • You can create applications that run quickly, but any changes or updates that you want to send to the blockchain will take an indeterminate amount of time with a minimum of around 20 seconds.
  • Ethereum does not support encryption of data (however if you wanted to encrypt data before it goes onto the network you can).
  • Smart contracts can’t communicate outside of the network directly, so no direct calls to URLs or APIs (unlike traditional apps that can do all of these things).

Designing applications around these limitations also make the dApp more complex to code.

We’re continuing to experiment with blockchain technologies and working closely with one of our clients to roll out an Initial Coin Offering soon, so watch this space for the latest updates.

You can find out more about Ethereum on their website and to keep up with the latest tech updates you can follow their Github page.

If you’d like to work on a blockchain or crypto project together or want to discuss an idea contact us at simpleweb.co.uk.

If you're an early stage business or startup, why not talk to us?