Steem Basics: Why Steem is an Application-Specific Blockchain
In our post Don’t Wait for SMTs to Build Your Steem DApp we referenced the idea that Steem is similar in design to an ASIC miner. In today’s post we want to explore what that means a bit further, and why it was a critical design decision that lies at the foundation of the protocol. It’s this application-specificity that enables Steem to scale faster, and provide more utility to developers than general-purpose protocols.
What is an ASIC Miner?
For those who aren’t aware, an ASIC Miner is a piece of computer hardware that is designed entirely around serving a single function: mining Proof-of-Work cryptocurrencies. Understanding the history of ASIC miners sheds some light on the benefits of Application-Specificity.
As most readers are probably aware, the original cryptocurrencies (and many new ones) were secured by an algorithm called “Proof-of-Work”. This algorithm effectively mandated that in order to win a cryptocurrency token you had to allow a peer-to-peer protocol to make your computer perform work that gets progressively more difficult over time. In short, the more computing power you have, the more tokens you earn.
CPUs v. GPUs
At first people earned (or “mined”) these tokens using the Central Processing Unit (CPU) of their computer. The CPU is like the “brain” of your computer. CPUs are designed to be flexible‒to process information in all kinds of ways‒so it was easy to use them to run this brand new software. This is the benefit of general-purpose platforms; they can be adapted to solve a greater number of problems. But the downside is that they can never be especially good at any one thing.
GPUs (Graphics Processing Units), on the other hand, are processing units that are not very flexible at all. They’re designed to only process one type of information: graphical information. Instead of having a few big cores that can do all kinds of computations, GPUs can have over a thousand small cores that do one thing really well. It wasn’t long before people figured out how to adapt those cores to solve Proof-of-Work hashes. Once they did, those GPUs could outperform CPUs by orders of magnitude, making CPU mining obsolete.
This is what a general-purpose platform looks like:
[Source: ASIC Resistance is Nothing but a Blockchain Buzzword by StopAndDecrypt]
This is what an application-specific platform looks like:
[Source: ASIC Resistance is Nothing but a Blockchain Buzzword by StopAndDecrypt]
GPU v. ASIC
In the move from CPUs to GPUs we see an example of how more specialized hardware can dramatically outperform general-purpose hardware. However, innovation in the space did not stop there. Instead it continued to its natural conclusion; the ASIC miner. We say “natural conclusion” because effectively what ASIC means is: hardware designed from the ground up to solve a specific problem. The only thing that can beat an ASIC miner is a better ASIC.
The Power of Specialized Equipment
While GPUs gave miners access to many more cores that could be leveraged to mine, those cores were not designed from the beginning to mine. That’s what changed with the release of ASICs which went on to make GPU mining as ineffective as CPU mining. Once specialized equipment exists, it becomes nearly impossible for a more general solution to beat it for many reasons, but essentially this is because whatever innovations are integrated into that general solution to improve performance can just be integrated into the application-specific solution, making it even better.
Technically, there are many ASICs in the world. For example, the chips that are inside digital voice recorders. As long as a machine is only performing one type of computation, and the value of performing that computation is sufficiently high, hardware that is designed and built from the ground up to solve that problem is going to outperform hardware that is not.
ASIC Inevitability
ASICs are so powerful that they have led to a problem in the blockchain space which is that Proof-of-Work blockchains have become highly centralized in the hands of those who have the most ASIC miners. Not only that, but in all likelihood, this is a problem that has no solution (aside from abandoning Proof-of-Work as we chose to do with Steem). While there are those who claim to have “ASIC resistant algorithms,” the truth is that something can only be ASIC resistant to the extent that it is not valuable. If having a computer solve a specific type of problem is sufficiently valuable it becomes inevitable that someone will develop a device designed specifically to solve that problem and that this device will outperform anything else that is more “general-purpose” (i.e. not designed to solve the problem).
Of course, whether this is a good thing or bad depends entirely on your position. For Proof-of-Work blockchains it is a battle they have committed to fighting for all eternity. But for the manufacturers of ASIC miners, who were small upstarts lacking the economies of scale afforded to massive GPU manufacturers like Nvidia, application-specificity was like wind in their sails, propelling them past their larger and better funded competition. This is the very same dynamic we sought to leverage when designing Steem, and now seek to maximize as development continues.
Runners and Garbage Trucks
As you can see, application-specificity is incredibly powerful. The best runners will always be better at running than the best triathletes. Race cars will always go around a racetrack better than sedans. This is because, in effect, application-specificity is just another way of saying "focused". A product (and the team behind it) that is focused on solving a particular problem is always going to outperform a product that is focused on solving a larger suite of problems.
Solving the Right Problem
The real challenge is in determining what particular problem should be solved. Just solving a random problem isn’t going to serve as a strong foundation on which to build an entire ecosystem. Instead, the goal should be to solve the specific problems‒and create the specific solutions‒that are going to deliver the most value to those who utilize them. While it is all well and good to theorize what these may be, we took two courses of action which ensured that the solutions we generated were tightly aligned with the needs of real application developers.
First, we insisted on building something that could power real applications in the here-and-now. Second, we built one of those applications ourselves (steemit.com). Our theory was that this technology could power next-generation social applications, but it was these decisions that enabled us to validate that theory, and then ensure that development proceeded in the right direction by exposing us firsthand to all of the problems developers would face when building on Steem.
Steem’s Specific Applications
The result of this approach was to build Steem so that it could store content in a decentralized content management system and then autonomously distribute tokens to the creators of that content based on crowdsourced stake-weighted voting. While the code that enables this functionality (the “tactics”) is complex, the approach (the “strategy”) is that simple. On the other hand, a protocol aimed at enabling this capability and any other capability a developer can imagine is necessarily going to be more complex at every level leading to inefficiency and difficulty scaling.
As Steem has demonstrated, when you pick the right features and focus on doing those really well the result can be explosive growth. Developers are incredibly resourceful, so if you give them a great solution to a specific problem, they will figure out ways to add the functionalities they require to that solution.
Steem offers developers a decentralized content management system and a decentralized token reward system that are fast, free and capable of operating at far greater scale than any other solution in the space. Because it solved those problems far better than any other blockchain protocol, it has provided a ton of value to developers looking to build applications that were especially well suited for those solutions. But what these developers also found was that you could still get much of the functionality (if not all) of Smart Contracts on Steem through Custom JSON operations.
Second Layer Solutions
It should have come as no surprise that developers were able to find ways to “hack” Steem to solve additional problems beyond those targeted by the application-specific features that it was built to address. That is what happens when you focus on solving only the most important problems that developers and entrepreneurs are facing. When you offer a solution to those problems‒and only those problems‒it becomes easier to scale, and scale with the most successful enterprises that are leveraging your software. If you can deliver that, then those enterprises and developers will figure out how to add any other functionalities they need using second layer solutions. The key is facilitating those second layer solutions in a scalable manner, which where Steem's treatment of Custom JSON operations comes into play.
This is exactly what you want: the most valuable database structures in the base layer where everyone can make use of them, thereby maximizing the network effect and interoperability, while less universal structures are built on secondary layers. This makes the ecosystem even more healthy by ensuring that only critical information is included in the base layer, thereby preserving its ability to scale.
Unfortunately for general-purpose platforms, they do not get to take advantage of this dynamic. Instead, application-specific solutions implemented at the base level are more likely to create problems than benefits. Vitalik Buterin (the creator of Ethereum) explained in a recent article how Ethereum’s decision to include operations that were specific to facilitating elliptic curve operations were already outdated and Ethereum would need to fork in order to catch up. This is due to the fact that Ethereum was not conceptualized and executed with the intent of solving clearly stated, and limited, problems. Because of that, no matter how valuable a specific solution might be, integrating it at the base level will always conflict with the fundamental value proposition of that protocol: to provide non-specific (i.e. general) solutions.
More Opportunities for Developers
The opposite is the case with Steem. Because the protocol was constructed from the ground up to solve specific and widely understood problems, it is far easier for the community to come to a consensus over what “belongs” in the base layer, and what does not. The second layer databases that inevitably emerge from such a process aren’t just “where they belong,” they even present financial opportunities for developers and entrepreneurs who can identify and implement them thereby creating additional value for Steem’s built-in developer-base. UserAuthority is an example of one such database.
These databases can even be a supplementary revenue-source for developers who build them for use in their application, only to discover that their need is not unique. At the same time, these supplemental databases provide valuable insights with respect to what should be added to the base layer by serving as a more safe and dynamic environment for experimentation. As you can see, application-specific solutions are so powerful because, when they are properly executed, a solution that is discovered at any layer of the stack feeds back into every other layer leading to exponential returns.
Beating “Smart Contracts”
When the concept of Smart Contracts was first proposed, the primary claim was that they would enable developers to build decentralized applications. It’s been 3 years since Ethereum was launched and yet Steem‒a protocol that does not have “Smart Contracts”‒now has far more decentralized applications that ordinary people use every day. In fact, Steem is the only protocol that has any applications with real usage and we believe that this is due to its application-specific design. While all of this began with a theory, over the course of developing Steem (and developing on Steem), the power and potential of an application-specific blockchain became even more apparent and enabled us to see how this potential could be multiplied by 10x through the addition of Smart Media Tokens.
What makes an application-specific protocol like Steem ideally suited for SMTs will be the focus of a future article in this series. If you’d like to learn more about the Steem blockchain and how its application-specific solutions can be leveraged to improve any web interface, go to https://developers.steem.io.
Steemit Team
This is the first time to read your blog about public education @steemitblog. Thank you for this.
If you would like to support the educational community by delegating to @steemiteducation, please click on any of the following links. This will ensure that more teachers are supported on a daily basis.
100SP 200SP 300SP 400SP 500SP 750SP 1000SP 2000SP 3000SP 4000SP 5000SP 10,000SP 25,000SP
I am, once again, surprised and delighted to find that I was able to make it through the entirety of this article without feeling at all confused or ‘out of my depth’.
I don’t know who you are writing this, but I want to recognize and commend you for your marked ability to explain reasonably complex concepts in terms that are easily understood. It truly is an exceptional skill.
As a content creator, I’ve generally avoided trying to make sense of how and why the blockchain works. I’ve been content to add to and interact with it, without really comprehending what it is nor how it was/is built — much like walking across a bridge without a thought for its engineering.
Thanks to Steemit Inc’s recent trend of sharing posts such as this, I’m beginning to see and appreciate the artistry in its design.
Thank you for that.
I agree,! @zipporah
Posted using Partiko iOS
Hey @zipporah, I'm Steemit's Content Director, so I'll take the credit ;) Thanks for the support!
Because you are the Content Director i have a question, and it may be off topic and it might get me attacked again by the others, but we are new to steem and we wish to understand more , and my question is. we are news channel we have 12 youtube channels and we have several hundreds of permission to air with full rights to and hundreds of thousands pictures that we give all free access to use, across the internet and we have been on you tube since it started .and we have NEVER had any problems uploading or posting on other sites and we are also on Mix, and Real.Video, and BitChute and Pinterest, and Tumblr, and Twitter, and Linkedin, and Digg, and Blogger, and Google+, and several dozens of other sites around the world in many languages and we do not commit any Fraud, or Spam, or Scam nor any Plagiarism since we have the rights to the things we post . and here on steem is the last on the list that we post too.
ALSO We do put links advertising steem for all to see and to join.
We also know and understand that several of the aka whales have many accounts, and yes even many with so called ai bot that they have floating around on steem to either to up vote or down vote and we have seen several reports here on steem and other places that some of those whales are not liking the fact that as more people join causes their share of the payout pie is shrinking , so they came up with a plain to change that, with flaging and down votes and blacklist we do not know if that is true or not, but by all the chatter on steem it seems it true, i hope it is not, and speaking of the blacklist floating around on steem it seems that yes even we have also been put on one, and why well it was a misguided , and done out of misunderstanding and we have no ill will on the one who did it, people will be people and no one is perfect , and ever one makes mistakes, Our news channels promotes steem around the world and we know we are a big reason as to why many are joining, and we will continue to promote steem around the world, can you please help us with the blacklist and the ai bot that is posting on our posts. it is hurting upvotes thank you .
Well done @andrarchy!
Posted using Partiko iOS
I wondered if it was you! Of course...I wasn't about to assume.
So, then...THANK YOU! I didn't know I'd appreciate such things as much as I do. But it's damn nice not to feel totally crypto/blockchain illiterate. ;)
I really appreciate that, more to come!
Steem need to go up at least $6
Steem has enabled us to play with a money printing machine in creative ways. Look at @Actifit which is already used more than average ETH apps and they are only in their Beta phase but pay people to move. The SMT protocol also enables us already to incentivize support with bounty systems, giving a first glance at how it could look like one day when fully implemented.
Great that you mention UA score as I am building the 1UP community curation system powered by the 1UP SMT. We enable a gamified 1-account-1-vote system by integrating the UA API to build our userbase based on a minimum threshold. The SMT will give us access to our own reward pool that we control basically entirely with the platform account and the token holders who trail their favorite communites and earn higher curation rewards through a smart frontrun system.
I am looking forward to meet the Steemit team at SteemFest3 in November and present the ready application.
Having just started using Actifit, I’d say it is very stable for ‘beta’ Phase. A little bit rough and ugly, but it works!
Posted using Partiko iOS
Yo no tenía idea, ahora supongo saber un poco que función cumplen
Gracias @steemitblog por tu información, adelante equipo.
I had no idea, now I guess I know a little function
Thanks @steemitblog for your information, go team.
Thank you for this interesting and informative post. This is the second post I read. Newbie here and I am still learning..
I guess that explains why Steem is currently valued at 300x less than Ethereum and represents 0.9% of its market cap.
Informative and intiative blog for all steemian,thanks for share valuable post @steemitblog
Posted using Partiko Android
It's amazing to see such clear communication from steem inc .a few posts and videos really influenced me in believing about the hype rabbit hole which some antagonist are portraying about the blockchain.with such blogs and frequent communication I am happy and confident in steem blockchain.