People use social apps all the time, but even though there is a lot of talk about „next-generation“ blockchains, none of those social apps are decentralized.
Let’s look at two blockchains as examples: Ethereum and Steem.
Ethereum has more developers than any other general-purpose blockchain, but none of them have been able to make a social app that people use.
When Steem was popular, it was one of the most popular blockchains in the world. This made it one of the most popular social DApps in the world, with a market value of about $2 billion.
Steem was able to grow very quickly and get a lot of people to use it, but it didn’t get the same level of support from developers as Ethereum did, and so it didn’t live up to its potential.
A lesson about making both DApps and blockchains can be learned from this.
Ethereum: A general purpose blockchain
If you wanted to make a new DApp without having to change the code of an existing blockchain like Bitcoin, you could only use Ethereum, which is a new blockchain.
If someone wanted to build a blockchain for an application, like a social network, they didn’t have to start from scratch. They could just write the code they needed, then put that code into a „smart contract,“ which is a type of „blockchain.““
This would let the developer take advantage of all the hard work that has already been done by the Ethereum blockchain developers and work on their own application.
Making it possible for developers to upload code to the blockchain opened up a world of possibilities, including the possibility of uploading code that eats up all the network resources and makes it useless.
Some kind of limit had to be put on this „limitlessness.“
Vitalik Buterin came up with „gas,“ which is a way to charge a fee to run code on a blockchain that isn’t controlled by anyone (Ethereum).
Blockchain fees
For a decade, the fee-based design of Ethereum was a great idea. Most general-purpose blockchains for the next decade used some kind of gas, and almost all of them used some kind of gas.
The best thing about Ethereum is that it gave programmers access to a „Turing complete“ programming language that can be used to write anything.
The great thing about gas is that it put a limit on what developers could do with that language.
Because there is a big difference between unlimited and limited, there haven’t been many popular social DApps on Ethereum yet.
Fee-less blockchains
The people who made Steem took a very different approach than the people who made Ethereum.
They built a very simple blockchain called Graphene that they could easily turn into a specific social blockchain (an „application-specific blockchain“), which is what they did.
In addition to social features, the Steem developers tried out a way to control network use that was very different from gas.
It was free.
When Steem first came out, many people thought it was a scam because it didn’t charge for „bandwidth.“
They thought that because Bitcoin and Ethereum charged fees, a blockchain without fees was going to fail.
Because of social features and letting people trade for free, Steem quickly became one of the most valuable blockchains in the world, as well as the most popular one in the world…
But, in the end, it didn’t really compete with Ethereum.
Smart contracts rule
To many people’s surprise, the reason why Steem was never able to compete with Ethereum was not because of its fee-free model, which the core developers kept improving over the years and which is still in use to this day.
A simple reason why Steem didn’t beat Ethereum: Graphene didn’t have smart contracts.
Graphene made it easier to start blockchains with certain features, but it was not easy to change or add new features. Ethereum, on the other hand, allows any developer to upload any code they want, whenever they want.
From this point of view, the answer is clear.
If we could combine the fee-free system developed for Steem with the flexibility of a blockchain with smart contracts like Ethereum, we could give developers the best of both worlds. They could make free apps that they can add new features to whenever they want.
Right?