Decentralized applications (DApps) are really starting to gain a foothold on the Internet. Built-in trust, payment processing, pre-defined contract terms, and no central point of failure make the blockchain an attractive proposition for many app developers.
Thanks to agency.howtotoken.com for support in creating this topic (First platform with proven ICO contractors)
The most popular way to release DApps is on established blockchain platforms like Ethereum. Distributed social networks, games, and messaging apps are all jumping on board. The problem is that every blockchain has technical tradeoffs, bottlenecks, and constraints. What happens to a DApp that cannot perform due to the limitations of the blockchain they are using? The Bitcoin and Ethereum blockchains are already struggling to meet the traffic, transaction, and cost needs of several of these applications.
Building a custom blockchain, or forking a current one, can be a solution to this problem. But you have to be sure to get it right. Here are the reasons an application might need its own blockchain, the advantages of having one, and examples of DApps that are already making the switch.
Using a Blockchain Platform
And there are good reasons for this. By using the Ethereum blockchain, you get:
- A complete platform to build almost any type of application
- An established native cryptocurrency (Ether)
- A global network to directly plug into
- A good level of decentralization
- Regular updates and upgrades to the core code
- Documentation and access to developers with experience
Other blockchains such as Stellar, NEO, Stratis, and EOS offer something similar, but with technological and protocol differences.
Blockchain systems work are built as protocols That means that performance is largely determined by technical decisions and tradeoffs. For example, blockchain applications usually have dismal performance compared to centralized ones. There is currently no blockchain that could run an application the size of Facebook. This is because speed is traded for decentralization. Facebook is a completely centralized system where they have complete control over everything. This means they can get there fast, but users have no control over what happens as we are all starting to realize.
Decentralized systems allow a network of users to make an agreement about how things should work, and a mechanism for coming to a consensus on which actions are valid. This mechanism is computationally expensive and slows the system down significantly. But for some applications, removing the middleman is worth it.
The exact way of structuring these mechanisms is what determines the performance of a decentralized platform. Usually, developers have to make tradeoffs between:
The reasons that blockchain platforms have taken off is because of their decentralized nature. We already have global payment networks like visa that are fast and secure. But they are perfectly centralized, meaning that there is a single point of control, censorship, and failure.
In reality, no system is perfectly decentralized, but blockchain systems are a heck of a lot better than the old solutions. Ethereum focuses on decentralization as one of its key features, although there is always debate as to how decentralized it actually is. Some level of decentralization is critical to any blockchain system, but achieving that comes at the of cost.
Scalability is how easily a network can accommodate a growing number of users without degrading performance. The main measures of performance are:
- Confirmation time
- Transaction volume
- Transaction cost
Confirmation time is the time it takes for your transactions to go through the network. Sending Bitcoin to a friend will take an average of 10 minutes. On the Ethereum network, executing a smart contract transaction will take 10–20 seconds.
Transaction volume is the number of transactions that can happen on a network per second. Bitcoin and Ethereum get between 7 and 20 transactions per second respectively. This is dismal compared to the 65,000 per second that Visa can handle .
Transaction cost is how much it costs a users to make changes on the blockchain. This can vary wildly, and as networks become more congested the cost per transaction can skyrocket. We saw this happen in December 2017, where the Bitcoin transaction cost soared to over $20 and when the popularity of Cryptokitties caused Ethereum fees to jump.
The security of a network is how robust its cryptographic algorithms are against failure. In general, the more secure a protocol is the longer it takes to execute a transaction.
This idea of having to sacrifice performance in one area to improve another is why there will never be a blockchain “silver bullet” platform that can do everything perfectly. Want a platform that’s fast, cheap, and secure? Then it’s not going to be very decentralized. Need a platform that’s completely decentralized with ultra-tight security? It’s going to get slower and more expensive as you add more users.
In reality, a blockchain network will have to choose a compromise between these factors. For example:
- Bitcoin achieves security by compromising slow block times
- Ethereum achieves decentralization at the cost of scalability
- Ripple, EOS, and NEO achieve scalability by sacrificing some decentralization
Of course, these are all up for debate. It’s easy, after all, to argue that the Bitcoin and Ethereum concentrated mining pools are a form of centralization. Technological breakthroughs can lead to improvements in multiple categories (e.g. Proof-of-Stake algorithm), but in general every protocol has compromises.
Choosing a blockchain platform for your distributed application means settling on the set of decentralization, scalability, and security compromises that the platform takes.
What if Your Requirements Don’t Match?
Ethereum is a great platform for some DApps. But for others, it fails before it even gets started. If your application needs to execute more than 20 blockchain transactions per second, even the entire bandwidth of the Ethereum network won’t be enough. Then there is the transaction cost. If you’re starting a social network, it will be difficult to acquire new users if they have to pay $1 just to update their status.
There are blockchain alternatives such as Stellar, IOTA, Ripple, EOS, NEM, NEO, and more. But all of them have their trade offs. Some are centralized, some have feature limitations, and others have yet to prove their worth. There could be any number of reasons why no established blockchain meets your DApps needs.
If this is the case, there may only be one solution.
Building Your Own Blockchain
Creating a custom blockchain gives ultimate flexibility. You get:
- Choice of consensus algorithm
- Your own balance of security, scalability, and decentralization to meet your needs
- Choice of programming language
- Control of codebase
- Ability to update how and whenever you want
- Ultimate flexibility
Of course, this can be a little overwhelming. But the good news for blockchain builders is that you may not even have to start from scratch.
Forking an Established Blockchain
Blockchain protocol code is usually open source, meaning that you can copy and use it however you like. This is how alt-chains like Bitcoin Cash and Ethereum Classic came about. A group of developers decided to alter the codebase of the blockchain to start using and mining their own version of the project.
Of course, creating your own blockchain has tradeoffs too (so many tradeoffs!). Coding is hard, and building a network of users is even harder. Your blockchain protocol might have the most decentralized and secure algorithms coded in, but if you have no miners on your network, it’s not decentralized or secure. You’ll also have to update and maintain the code yourself.
Example Projects Building Their Own Blockchains
There are a few examples of DApp projects already experimenting with the idea of building their own blockchain.
Howdoo is a decentralized social influencer platform looking to give control of social media back to the people. The platform is intended to build an entire social ecosystem which makes it the unique one. Howdoo has some unique features:
- Cryptocurrency payments
- Users have control of their personal data
- Users can regulate the number of ads they see and actually earn money from receiving advertisements
- More ad revenue going to content creators
- Community based content moderation
But running a social network is very demanding on IT infrastructure. Potentially millions of users want to make dozens of requests a day, and for free. This just isn’t possible on Ethereum. Can you imagine having to pay to update your Facebook status or upload a video? Howdoo’s platform will cover streaming, messaging, storage, etc. — also there is the plan to build their own wallet which can manage multiple crypto coins.
Howdoo will initially run on the Ethereum blockchain, but the team is intended to build its own custom blockchain to address these needs.
- It’s own decentralized streaming
- Distributed data storage platform using IPFS
- It’s own blockchain with it’s own Howdoo token
The aim is to establish an ecosystem where partners can launch their own DApps and issue their own tokens, thus taking advantage of its social layer. It will solve Ethereum’s problem by supporting a massive scale and having low latency with zero fees. The project has already signed its first DApp with Drophead Games.
Kin is the cryptocurrency of Kik, the privacy-focused social messaging app popular with young adults and teens. Kik has been experimenting with digital currencies since 2014 with their “Kik Points” experiment. It went so well that now they are building their own decentralized cryptocurrency for use both within and outside their mobile app.
The project started (as most do) as an ERC-20 Ethereum token ICO in September 2017. It fell short of their target, but it was still a big success and raised over $50 million.
The Kik Points experiment had a transaction volume of approximately 300,000 transactions per day; far above what Ethereum can handle right now. To tackle this, much of the leg work for Kin originally happened off the blockchain.
Now Kik is looking for a more elegant solution for their currency. First, the Stellar blockchain is being integrated alongside Ethereum so both can work in tandem and help scale up Kin. However, transactions on the Stellar blockchain still have a small cost that must be paid in Stellar Lumens. To bring that cost down to zero, Kik is forking the Stellar blockchain to run their own, almost identical version of the code.
Kik CEO Ted Livingston says the change will give them more ability to combat spam as well as the option to offer free transactions.
Decentralized applications are exploding in popularity. Established blockchains like Ethereum offer a complete battle-tested platform to build decentralized apps. But while they provide a lot of functionality out-of-the-box and save a lot of time and energy in coding and testing, popular blockchain applications have their own set of tradeoffs and don’t necessarily meet everyone’s needs.
Several DApps have requirements that simply aren’t met by any of the current platform. The most obvious examples are social applications like Kin and Howdoo. In these cases, building a custom blockchain or forking a current one could be the way to go.
About the author:
Kirill Shilov — Founder of Geekforge.io and Howtotoken.com. Interviewing the top 10,000 worldwide experts who reveal the biggest issues on the way to technological singularity. Join my #10kqachallenge: GeekForge Formula.