Blockstack was created as a new decentralized internet, a platform to enable decentralized applications where users own their identity and data. It was designed to operate as a global, decentralized network and that vision is as strong and as alive as ever.
In this post, I’m going to talk about:
1) the state of Blockstack decentralization
2) the path to a more decentralized Blockstack with the introduction of a Blockstack mining system and Blockstack token
3) how the Blockstack mining system and Blockstack token will only new introduce functionality and will not remove any features (including the ability to make Bitcoin payments)
This post is part 1 of a 2 part post and at the end, I’ll have a call for feedback in the comments below.
The State of Blockstack Decentralization
One thing that’s becoming clear in the blockchain industry is that with any decentralized system there needs to be (1) a way to clearly define the stakeholders in the community and (2) a way to clearly define a decentralized governance structure that is based on those stakeholders.
We believe that with any decentralized system, there’s always some form of governance. And if there's no clearly defined governance structure, then the effective governance is simply whatever default behaviors and structures are already in place.
With Blockstack we are working on making the system as decentralized as possible, but to some extent if you're going to upgrade your software, there isn't much choice you have in terms of upgrading. Right now, you can either decide to take the software update from the core developers or you can decide to not take it and just stay with the legacy system. You are making that decision with little information because you don't know whether a majority of people are going to move to the new system or whether a majority of people are going to stay on the old software.
Right now, Blockstack has a peer-to-peer network of nodes on what we refer to as the Atlas network. Unfortunately, anyone can simply spin up on thousands of Blockstack nodes on Amazon Web Services at a low cost in an instant. We’ve seen this done with Bitcoin nodes. So the number of nodes actually means nothing in terms of the stakeholders in the system. It doesn't count at all towards what one should perceive as the definition of the majority.
This means there isn’t a clear indication of the stakeholders in the system and no good way to measure or define the majority in a fashion that is immune to abuse (see sybil attacks). And that means that the safest path for any user of the network, any node operator, is to simply trust in the upgrades of the most reputable group of core developers.
For Blockstack, this state of affairs is fine for now, but it's not something that we want to persist in the long term. What we’re planning for in the long term is a system where the entire community is fully decentralized and where there is no single group of core developers that actually controls the system.
Defining the Stakeholders of Blockstack
Many peer-to-peer currencies existed before Bitcoin. But none of them were able to operate as successfully as Bitcoin has been operating for the past 8 years. That's because they were unable to allow a random group of strangers to coordinate over a list of everyone’s balances without allowing one stranger to gain control. Bitcoin’s incorporation of proof-of-work changed all of this.
It essentially functions as a voting system where it is extremely, incredibly difficult for anyone to amass a majority of the votes. One computation, one vote.
With Blockstack, nodes are each independently reading from the underlying blockchain. They are each independently building up their own views of the blockchain naming system (BNS) and the entire universe on Blockstack.
And right now, there is no way for us to measure who is running what Blockstack node, so this is not actually a reliable way for us to uniquely identify stakeholders. Further, social consensus on forums tends to be unreliable and can be easily gamed. What we need is a mechanism that is much more robust than this and one that can reliably signal when and where the majority is on any given issue. And then as a more advanced setup, we need something that can help us drive protocol changes.
A Blockstack token let’s us do all of this. With the Blockstack token, we’re able to build out the system in a way that different stakeholders in the system can have ownership in the decentralized network. We’re able to upgrade the system in a way that allows stakeholders to have a say in the direction of the future of the system. And we’re able to get to the point where the system can function effectively beyond the lifetime of a single company.
The original founding organization, with the original group of core developers, must not be the main people to drive the system if we intend for Blockstack to have a more decentralized future. Instead, the original group should be tasked with putting a system in place that has the capability to evolve based on the will of the actual stakeholders in the community. Not based on what a few core developers say or what a few vocal individuals say on forums or what a few thousand nodes claim they will support.
The key to achieving this is to make ownership clearly defined and not easily gamed.
Blockstack as an Incentivized Protocol
Open source software and decentralized networks today are unable to compete with their centralized counterparts because of one large reason - they are under-resourced. Why would a typical person use a much worse version of Facebook that happens to be decentralized? The choice is clear for most people when there’s a huge gap in experience and reliability.
The solution for enabling decentralized networks to outcompete centralized applications is to close the gap in user experience. And the way to close this gap is to properly resource the decentralized system. And the way to properly resource the decentralized system is to create a protocol that provides economic incentives to those that maintain the system and contribute resources to it.
With Blockstack, the community collectively operates a decentralized system that includes a peer-to-peer network for the storage of routing information. There are numerous nodes on Blockstack today but many are not able to be measured or reached and there need to be many more nodes for Blockstack to be strong and fully decentralized.
That’s because just like Bitcoin, Blockstack upgrades itself via a series of soft forks and hard forks. Unfortunately without a mining system, there’s no way to tell which fork has the majority support. There’s no reason for people to spend a large amount of money each and every day to indicate which fork they plan to be on.
With a mining system, however, there’s a mining reward that is given in each and every block to people who are putting large amounts of money on the line and sacrificing it to convert it into Blockstack tokens. That means that in order to take over the system, one would need to sacrifice a majority of the Bitcoin being sacrificed over a given time period. This gets harder and harder as the price of the token goes up.
Thus, with a system for mining, Blockstack starts to operate more like a traditional blockchain and for the first time becomes a truly incentivized protocol.
New Features Added and None Removed
One thing that’s critical to note is that the introduction of a Blockstack token is designed to expand functionality and to provide a better experience. It will not under any circumstances involve the removal of any existing functionality.
If you currently buy names in Bitcoin, you will continue to be able to do so. If you’re a namespace operator with names that can be purchased in Bitcoin, that is not going to change. All existing namespaces will have their prices denominated in Bitcoin.
And with all future namespaces, namespace creators will be able to choose how they want their names to be denominated and how they want to allow their names to be purchased. They’ll be able to choose to use either the native currency of the underlying chain or the Blockstack token, or even another currency or token of their choice.
A Call for Comments
We deeply believe in the power of mining and tokens for cultivating decentralized systems and making them much more powerful and much more decentralized.
The way to attain a state of decentralized governance is to properly define the stakeholders. The way for decentralized systems to compete with centralized ones is to have sufficient incentives to contribute to the network. And the right way to properly secure a decentralized consensus system is to establish a sufficiently large cost of attack.
With the introduction of the Blockstack mining system and token, Blockstack will be well on it’s way to becoming a much stronger and more decentralized system.
With all of this in mind, we’re calling on you to give your feedback in the comments below. We want to hear from you about this new change and how we can make it better. This is a open-source community and we’ve been in discussion with several active members for feedback. But now, we are now asking for feedback from the broader community as well.
In part 2 of this post, we will go into the new features that will be unlocked with this proposed update.