paint-brush
The State of Dapp Development — Blockchain Summer 2018by@eliezer
1,754 reads
1,754 reads

The State of Dapp Development — Blockchain Summer 2018

by Elie SteinbockSeptember 28th, 2018
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

The decentralised applications (dapp) landscape has been growing steadily over the past year. The recent launch of EOS and continued work to scale Ethereum are reasons for developers to be excited in the year ahead.

People Mentioned

Mention Thumbnail
Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - The State of Dapp Development — Blockchain Summer 2018
Elie Steinbock HackerNoon profile picture

The decentralised applications (dapp) landscape has been growing steadily over the past year. The recent launch of EOS and continued work to scale Ethereum are reasons for developers to be excited in the year ahead.

This post will cover the current state of dapp development and some of the improvements we can expect to see over the next year. It will be largely focused on Ethereum and EOS based dapps since these two blockchains are the most popular platforms to build on today.

The most popular dapps fall into the following categories:

  • Games/Collectibles
  • Exchanges
  • Gambling
  • Other

Of note is that we recently ran a dappathon (decentralised apps hackathon) and none of the dapps created fell into the above categories. I may write a future article that covers the dapps developed in the hackathon.

Games/Collectibles

This past year’s crypto games include CryptoKitties, Etheremon and CryptoFighters. If you’re not aware of what a crypto-collectible is, it’s a digital collectible with ownership proven on the blockchain. The same way as you may own 5 Ethereum or 5 BAT tokens, you can own 5 CryptoKitties. These digital kitties or fighters are yours to trade freely on the blockchain. The big difference is that each BAT token is the same as any other, but each crypto kitty has a unique ID and provably unique genes. CryptoKitties was huge at the end of 2017 with some cats being sold for as much as $140,000.

This is what the first crypto-kitty, Genesis, looks like:

And this is what Genesis looks like on the blockchain:

Genesis on the blockchain

Genesis’ genes are: “626837621154801616088980922659877168609154386318304496692374110716999053” and we’re ultimately reliant on the creators of CryptoKitties to tell us what each cat looks like based on some internal algorithm.

One cool feature about CryptoKitties is breeding: if you own two cats, you can breed them together to create a new one. The new cat’s genes are a hybrid of its parents genes — it inherits features from both. You had the ability to breed new cats for close to nothing and then sell them for a profit. This was a big part of the hype when it came out.

In the first few months CryptoKitties generated tens of millions of dollars in revenue and has since raised $12 million in funding from the likes of Andreesen Horowitz and Union Square Ventures. Today, the game has around 450 daily active users and $150,000 of weekly volume.

CrytoKitties taught a lot of people the basics of blockchain and using tools such as MetaMask.

Other games take the concept in a slightly different direction. In CryptoFighters, users battle teams of warriors. The battle takes place on the blockchain and the winner receives a new digital fighter as a reward. Every time you battle, you also increase the stats of your fighters. Once you win you move up the leaderboard.

CryptoFighters arena

People collect and play CryptoKitties and CryptoFighters for different reasons. Some of the early players were just there to make money. Others like collecting items, the same way as one may collect Pokemon cards, baseball cards (there’s even an official crypto version of that), stamps, or rare artwork. Others are there for the fun of the game.

Other popular games of the past year are of the Ponzi/Pyramid scheme type. In these games the main reason to buy an item is the hope someone else buys it off you. Examples include CryptoCelebrities and Crypto All Stars (which was shut down after a day after doing $100k in sales). In these games, the last person holding the bag loses a lot of money.

Other popular games of this genre are FOMO3D and POWH3D by Team Just. A bit about the popular FOMO3D game that had a 10,500 ether winner a few months back (~$2.5 million):

Fomo3D is an ironic jab at the cryptocurrency ICO space, putting every player in the terrifying and tempting position to Exit Scam everything and run away with massive life-changing amounts of real Ethereum. You should take it. Made by Team JUST as a 100% trustless library of smart contracts. The game runs entirely on human greed, to the profit of everyone playing. (DappRadar)

FOMO3D has some luck elements to it and is considered a gambling dapp on some of the major dapp websites. We will cover other gambling dapps in a later section.

What’s next for crypto games?

The current generation of crypto games has showed us what is possible. Tens of thousands of people have played a crypto-game to date, but how does that number get pushed to millions?

One of the biggest problems dapps face right now is that they’re difficult to use. To start playing CryptoFighters for example, you’d have to buy some ether, install the MetaMask Chrome extension or download Trust Wallet, send the ether to your MetaMask or Trust Wallet, find a fighter you’d like to purchase, put through a blockchain transaction using a scary looking popup that asks for a gas price and limit (new users have no idea what these are), wait a few minutes or hours for the transaction to go through. Then each in-game action such as battling or selling a fighter requires you to use that same MetaMask pop up window and confirm your action.

When the Ethereum network was congested there were people paying $5 of ether to do a simple battle.

Slow transactions, expensive transactions, and tooling all still need improving to take blockchain gaming, and dapps in general, to the next level.

This is a problem for current dapps, but it’s also a potential place to innovate and improve things. People are working on scaling the Ethereum blockchain with ideas such as sharding and Proof of Stake, as well as working on layer 2 solutions such as Plasma and state channels.

One company working on scaling through Plasma sidechains is Loom. They are one of the first implementors of a working Plasma Cash solution and will soon be launching their first game, Zombie Battlegrounds:

Loom has done a lot in the Ethereum space and we’re excited to see what they continue to do on both the gaming side and infrastructure side. If you’re a developer you can get started with their SDK today. They offer support for Javascript, Unity, Golang, and Phaser.

The Loom team has already released DelegateCall, a question and answer site similar to StackOverflow, and ZombieBattlegrounds is expected to launch by the end of the year.

Zombie Battlegrounds (no annoying MetaMask windows popping up)

To quote a recent Loom article about Zombie Battlegrounds:

Our alpha users can download the game from the app store onto their mobile devices, and it looks and feels exactly like any other mobile game.

Yet there is no centralized server and the entire game runs on the blockchain.

But the thing is, the game being on the blockchain does bring benefits to the end user that most people aren’t aware of yet.

Benefits like:

  • True ownership of in-game items that players can buy and sell freely, enabling robust in-game economies.
  • Provable and auditable item scarcity and fairness in drop rates.
  • Infinite modability — games can be built that allow developers to build and upload their own alternate game modes for all players to use. Developers can actually modify and extend server-side logic, allowing for infinitely expandable game worlds driven entirely by community development.

It will be interesting to see what happens and how successful Zombie Battlegrounds is. If they hit their goal of being the first million person dapp, this could be a big step forward for the space. Considering there are only around 1 million active Bitcoin wallets and a similar number of Ethereum wallets, this is an ambitious goal. On the other hand, considering there are billions of gamers worldwide 1 million users may well be achievable if they get the marketing and game mechanics right. It will also be interesting to see how decentralised the final game is. The big question for me is how much trust users will actually have to put in the ZB team.

On the topic of scalability, Ethereum isn’t the only blockchain to build dapps on. Other platforms such as EOS exist too. EOS can handle far more transactions per second than Ethereum and dapp developers can handle transaction costs for their users by staking EOS tokens. All this can really help towards offering a better user experience.

Furthermore, EOS allows you to build in any language that has a web assembly compiler. C++ is the main language as EOS only has WASM compiler implemented for it.

This all sounds great, but there are some drawbacks that users must be aware of. EOS manages to offer faster and arguably cheaper transactions because it doesn’t use Proof of Stake and doesn’t allow any one to be a block producer (the equivalent of an Ethereum miner). Only 21 block producers (BPs) exist and this makes EOS far more centralised than Ethereum. These block producers are voted in by token holders with each token token owned allowing the owner to vote for 30 different block producers. Block.one is the company behind EOS and they own 10% of the EOS tokens. They currently have enough tokens to choose all 21 block producers themselves. Furthermore, BPs have the ability to censor transactions and this has already happened. The exact reasons for this censorship are currently unknown, but it is likely due to these accounts holding stolen tokens held by scammers.

I am not going to cover the Ethereum vs EOS vs AWS debate right now, but in a single paragraph EOS compromises on decentralisation to improve on UX. It is not a fully centralised service like running a Node.js app with a PostgreSQL database on AWS.

As with all things in life there are pros and cons to using each technology.

Practically speaking, if an EOS smart contract is used for illegal activity, an authority may come knocking and the BPs may be coerced into censoring all transactions involving this contract. If you’re looking to build government resistant dapps then EOS may not be the platform for you. If you’re just looking to build a decentralised and transparent Twitter, EOS may be a good choice.

One popular EOS dapp right now is CryptoKnights. It has 1,600 daily active users and has had $30,000 of transaction volume in the past 7 days. In terms of gameplay, it’s a step up from the Ethereum based games I’ve seen:


EOS Knights_EOS based mobile game_eosknights.io

State channel based gaming

Scaling is a huge part of making games and dapps in general more successful.

A few teams have been playing with state channels to scale their games. A great example is Etherships. This is a game of battleships that uses state channels for real time player to player communication. The only calls to MetaMask are at the start and end of a game. They also make use of Merkle Trees in their smart contract to save on storage costs (often the most expensive part of a smart contract transaction). You can read more about how they built the game here and the open source code here. State channels aren’t a new concept, but very few dapps currently make use of state channels to work.

Privacy (zkSNARKs)

On the topic of Battleships, one the entrants in the ETHBerlin Hackathon, The Game of Snarks, created their game using zkSNARKs.

zkSNARKS stands for “zero-knowledge succinct non-interactive argument of knowledge” (what a mouthful).

In short, zkSNARKs are used for privacy. Everything on the blockchain is public (although anonymous). If you send someone some ether that will forever be public for everyone to see. A number of blockchains such as Monero and ZCash hide the details of each transaction (sender, receiver and amount). ZCash does this using zkSNARKs. Other privacy blockchains do this in other ways.

With zkSNARKS you can “you can verify the correctness of computations without having to execute them and you will not even learn what was executed — just that it was done correctly”.

Around a year ago the Ethereum Byzantium update went live which it made it gas efficient to verify a zkSNARK proof on chain.

Another simple example of zkSNARKs in use is the Miximus smart contract. It allows you to send 1 ETH to someone on the blockchain without revealing to who it was sent. This happens by the sender depositing 1 ETH into a smart contract that can only be withdrawn by the receiver that has the zkSNARK proof to withdraw it. The cool thing is that the receiver doesn’t reveal who sent this 1 ETH to them, just that they were sent the ether and have the rights to withdraw it. This doesn’t work if you have only 1 ETH sent to the contract as it is then obvious who sent it. But if you have 100 different senders sending to 100 different addresses, the receiver will claim the ether without revealing which of the 100 senders sent it.

Vitalik Buterin has also recently proposed a way to scale Ethereum to 500 transactions per second using zkSNARKs. You can read more about the proposal here.

An important zkSNARKs project that deserves mention is Zokrates — a toolbox for zkSNARKS on Ethereum. The project is under active development.

As should be clear from the above, work on zkSNARKs is relevant to far more than just gaming dapps.

Decentralised Exchanges

Another popular use case for dapps is decentralised exchanges (also known as DEXs). Some popular exchanges include IDEX, ForkDelta (EtherDelta), Bancor, Kyber, AirSwap, and 0x based exchanges.

A decentralised exchange allows users to trade tokens while remaining in full control of their assets. If you have your money on Binance or Coinbase, you have to trust them with your assets. On a DEX you remain in full control. You never have to entrust your tokens to a third party. When performing a trade, the rules written into the smart contract dictate what happens allowing you to atomically trade BAT for REP for example.

Some of the innovations we expect to see in this space include:

  • Atomic cross blockchain trades — all the above mentioned DEXs only allow you to trade Ethereum tokens. That covers around 50% of the top 100 cryptocurrencies and 95% of the top tokens, but what if you want to trade Ethereum for Bitcoin or EOS in a trustless manner? There are some solutions, but none are too popular right now. New solutions pop up every few months, but none have quite made it yet. This problem is a few years old and we expect to see continued innovation in this area.
  • Derivatives — decentralised shorts, leveraged longs, margin trading and options are all become possible. Projects such as dYdX and Variabl are working on solutions, but there’s still plenty of room for innovation here. Imagine an IDEX where you can bet on the price of token falling and not having to trust anyone to be paid out. We see huge potential for a decentralised BitMEX with smart contracts and DEXs making this possible. (dYdX went just launched their token to short eth: sETH).
  • Hedge Funds — projects such as CoTrader and MelonPort are working on solutions to provide decentralised hedge funds allowing one to invest on others behalf. Crypto-hedge funds exist, but they rely on trusting a third party with your money. A decentralised hedge fund would allow anyone to invest on your behalf with performance proven on chain and allowing you to withdraw at will.

Gambling

Another popular category for dapps is gambling games. A simple example is a dice game like Satoshi Dice. Other games include Blackjack, Roulette or any casino game you want really.

There are two major benefits to running casino games on the blockchain. The first is that games are provably fair. If you’re supposed to have a 50% chance of winning you can read the smart contract code to check that this really is the case. If you play on a regular online casino you don’t know if you have a 50% or 48% chance of winning. If the site is regulated then there are people checking the games are fair, but you’ll always have to trust a third party.

The second major benefit is censorship resistance. Online gambling is either regulated or illegal in many countries. For example, in the UK you need a license from the UK Gambling Commission to run a gambling website. In the US it’s illegal for the most part. If you run an illegal online gambling operation in one of these countries you’ll be asked to take your website down and face prosecution, but if it’s running on a Sovereign-grade censorship resistant blockchain such as Ethereum no one will be able to take it down without taking down the Ethereum blockchain.

There are a few caveats to the above however:

  • Just because your server code is running on a blockchain, your client code isn’t. If you run your gambling dapp on a website this could get taken down.
  • Even though the blockchain code won’t get taken down this won’t stop you being prosecuted for it.
  • To make the game popular you will likely have to spend on advertising and most likely losing anonymity in the process.

Randomness isn’t a trivial problem on a deterministic blockchain. A few already existing games have been exploited due to bad or buggy code.

Beyond all the above mentioned problems there is also the moral question of gambling, but that is for the reader to decide.

Augur

Augur is arguably the largest blockchain-based gambling project. Its token (REP) has a $150 million market cap at the time of writing. Augur is a decentralised prediction market that allows you to bet on any event. You can bet on who will the next World Cup, the next American elections, the price of Bitcoin in a year from now, or even how much rain will fall in Japan this year. If the market doesn’t exist you can create it.

This project is a little different to the casino games listed above. Simulating the rolling of a die can be fully done on chain. Inputting the American election results into the blockchain requires a centralised oracle to enter the data.

Augur handles this problem by making users stake REP tokens. If they’re found to be lying they are fined and it’s the general community of REP tokens that decide on disputes.

Augur is a very interesting project that was released in the last few months. It has yet to gain traction and currently has a measly 30–35 DAU. This is largely due to terrible UX. It looks pretty, but is dreadful to use. The Augur dev team has put out many updates since launch, but the UX still needs some major work for it to stand a chance of succeeding.

Some interesting projects have sprung up around Augur. One very recent addition is Pdot Index that allows you to purchase celebrities whose prices go up and down based on how they perform in the real world. For example, Ariana Grande currently has a 17% probability of having more than 200 million Instagram followers on 12/31/2019? If this probability increases to 20% her Pdot Index price increases.

If you’d like to view the current markets available on Augur check out Prections.Global or download the Augur app.

Ninja Predictions

A prediction market project that does a far better UX job than Augur is Ninja Predicitions. The smart contract code can be found on Etherscan here:

https://etherscan.io/address/0x70ab487ec48b4b9571d346348da0f10737d48a54

I have yet to read over the code, but from what I understand it’s not the trustless solution that Augur promises. This is the code to their GitHub for easier reading of their contracts.

Poker

Another interesting type of game is poker. The challenge here is that you’re playing against other users in real time. Ethereum is too slow to handle this. EOS may stand a better chance. A workaround to handle a game like this on Ethereum would be to use state channels. State channels will be useful for all types of games. Not only gambling ones.

EOS

It will be interesting to see what happens to gambling dapps running on EOS. If they ever become popular enough a regulator will come knocking telling the 21 block producers to censor the transactions for the related smart contracts. The block producers may well feel compelled to comply in such a case. This is what people mean when they say that EOS isn’t sovereign-grade resistant like Bitcoin and Ethereum, but is platform-grade resistant. I’m not here to bash any particular blockchain, but this is something to be aware of.

Other

There are lots of other possible use cases for dapps. Above we mentioned some of the most popular dapps. Here are some more examples:

  • GitCoin — leverage the open source community to incentivize or monetize work.
  • ENS — Ethereum Name Service. Like DNS, but for Ethereum addresses.
  • Peepeth — Ethereum based Twitter.
  • Blockchain Voting projects.
  • Everipedia — Wikipedia on the EOS blockchain.
  • PIXEL FUN — collaborative artwork based on the EOS blockchain.

One question that always comes up when building a dapp is whether there is a real need to have the product run on a blockchain. I don’t know much about the Everipedia project, but many would ask what is wrong with the current Wikipedia that they felt the need to build an EOS based version?

In their own words, the short answer is:

Everipedia’s IQ Network is the world’s first Encyclopedia that allows anyone to become a stakeholder in the system and earn rank, rewards & tokens for curating content.

But ultimately how the Everipedia and its developers decide to spend their time is up to them. Whether or not I invest in their IQ token is another story. (Fun fact: Wikipedia Co-Founder is the CIO of the project and RapGenius Co-Founder Mahbod Moghadam is the CCO. Mahbod also made an appearance on Sacha Baron Cohen’s Who Is America? recently 😆).

Dapp Browsers

Most Ethereum dapps expect you to use MetaMask on desktop and Trust Wallet or Coinbase wallet on mobile. A new project called Scatter supports both EOS and Ethereum and has taken a slightly different approach. They have deprecated their Chrome extension wallet and now provide a native version instead. You can read more about Scatter’s new approach and why they changed things up here. Scatter is the go-to signature provider for EOS dapps and from its next release will work across all browsers.

Summary

The jury is still out on the benefits that dapps can provide. EOS is a major new player in the space, and despite its compromises on decentralisation, we are seeing a level of dapp that has not been possible till now. Improved Ethereum layer 2 scaling solutions such as Plasma and the eventual expected upgrades to the underlying infrastructure with sharding and Proof of Stake in the works, there is a lot still to happen in the dapp space.

There are still use cases for dapps we’ve yet to think of and we’re looking forward to seeing the space develop in the years ahead.

If you’d like to take a look at the most popular dapps right now, we recommend taking a look at DappRadar and State of the Dapps. One item to note is that it is possible to fake these numbers using wash trading for example. There may be 500 accounts playing a game each day that all belong to the same user (with the sole purpose being to make the game seem more popular than it is).

DappRadar includes both Ethereum and EOS dapps and is where many of the metrics in this article were taken from:


DappRadar - Ranked list of blockchain dapps_DappRadar provides information and insights about all the existing dapps! At the tap of your finger, find the most…_dappradar.com


State of the ÐApps - A List of 1,917 Projects Built on Ethereum_The curated list of decentralized applications_www.stateofthedapps.com

If you liked this post, be sure to smash that like button 🚀 🌕.

Disclaimer: I own some of the cryptocurrencies mentioned in this article and am a founder of CryptoFighters. There may be other technologies that deserved a mention that I didn’t mention either because I’m unaware of them, haven’t had the time to research them properly, or just didn’t have the time to write about them. If you think there’s an interesting project I’ve left out that deserves a mention, feel free to leave a comment. This article should not be taken as investment or legal advice.

About me: I work as a freelance developer with a focus on full-stack Javascript, Elixir and blockchain. Feel free to reach out in the comments or with a private note.