Bringing Decentralized Governance & Incentivized Protocols to Blockstack


#1

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.


Blockstack does not need a new token
New Features Enabled by a Layer-2 Token
#2

Congratulations, you have just ruined the whole idea of your project. Welcome to the family of scamcoins, ICOs, vc backed decisions etc.

So long and thanks for all the fish.


#3

@ryan
Thanks for being honest and succinct.
I would like to address a couple points you made and issue a reply.

This is true, however I would like to say I wouldn’t call it governance, simply because governance in my mind implies forced adoption and punishment for non obedience. Which simply put is unfair to indicate when one voluntarily operates on the network and has the option to create their own network if they have the means and evolve it as them and their constituents would see fit.


I would presume this is after you guys believe the codebase to be of a sufficient standard in accordance to your clearly stated design/engineering intentions.


This makes perfect sense. The unique atomic units give a value to measure against.


I have had this same concern, and a token would sheer off these problems


Once again this makes perfect sense, in my opinion this is very astute to recognize that incentivizing the protocol creates additional strength in the network by inspiring participation.


OMG YES! :grin: Looking forward to this!


I fully support the direction you guys are taking with Blockstack.

I also would like to thank you guys for building the prerequisites I needed technologically speaking, in order to get Souq off the ground, with out you guys Souq would still just be a idea in my head.

Keep up the good work!
Looking forward to part 2!


#4

If you have another model to implement to form consensus of true stakeholders, thats ungameable with out tokens, that can actually scale, keep full replication, and keep incentive, I would kindly request you explain it.


#5

@cryptocracy ‘true consensus of stakeholders’. fucking lol. And these guys are claiming they have built a platform for ‘decentralized internet’. ‘Consensus of stakeholders’…

  1. The only way to archive a consensus in a decentralized system humanity knows is a token (or fee in terms of sidechains) incentivized proof of work. Consensus among stakeholders is BULLSHIT.
  2. The only purpose to deattach themselves from the Namecoin was to earn some easy money from stupid investors who has no clue what ‘decentralized’ means.
  3. Go read those four bullish so called white papers and tell me what exactly blockstacks brings that Namecoin can’t?
  • Arguments about ‘most secure blockchain’ are bullshit: Namecoin was formed as a separate blockchain for the exact reason not to bloat Bitcoin.
  • Arguments such as ‘we think it’s important not to store info in blockchain’ are bullshit: you have to store the most important info in blockchain and there is nothing wrong in storing shitty JSON inside blockchain as Namecoin does.
  • Do you know what Atlas is? It’s a shiny new tech to replace DHT, cause you know, who will invest money into something that has di ach ti into it? Isn’t that the same thing used in infamous ‘illegal’ torrents? Atlas sounds much better. And also, let’s say that DHT is ‘too vulnerable’. Vulnerability is something we should fight.
  • Do you know what a ‘virtualchain’ is? It’s something that sounds very good, cause people with money these days love to invest into things that have ‘chain’ in them. Who cares that virtualchain is just a filtered blockchain lol. FILTERED BLOCKCHAIN.

So good luck guys with all the ‘trusted consensus hashes’ and ‘consensus of stakeholders’ . I won’t invest my time into that kind of systems. Namecoin is not a VC backed project but it is one where real innovations will take place.


#6

The reasons for leaving Namecoin are very well written available (mostly in this paper). A single mining pool owned ~60% of the network power, which surely is something you don’t want to have in your name system.
Blockstack then went forward and introduced virtualchains to be independent from any blockchain in the future. So if Bitcoin will be insecure one day, they can simply change the underlying blockchain (or even more advanced techniques like using multiple blockchains for different usecases).
I believe that this is fixed by now in Namecoin, but Blockstack’s layered architecture is way more flexible for future problems like this one.

Furthermore, blockchains are no general-purpose database as many people use it today. They are many credible experts who preach that you shouldn’t throw anything you have into a blockchain. They are simply not designed to do this primarily (very low throughput, costs, etc). Instead you should use it to bootstrap collective trust into your network and then do the rest of your services on top of it. This is exactly what Blockstack does: You anchor your name on a blockchain and pin hashes. Atlas then uses these to resolve them to zone files which point to all your data.
Atlas is necessary because a normal DHT doesn’t fit the specific requirements for storing Blockstack’s routing information. There was a very informative blog post from @jude on this topic some time ago.

The Blockstack core developers put really much thought into their architecture, they do things for a reason (and it’s all documented). And (in my opinion) they never did a terrible architecture decision in favour of own earnings (or even at all a bad architecture decision ;)).


#7

My thoughts exactly.

@ryan Excited to learn more about the new features this will enable in part 2, but also how you plan to structure governance and distribution of the token. Need to learn lessons from other recent offerings to ensure distribution is wide and remains so.


#8

@ion … so here is my reply to your replies.

I think you are misconstruing the term of a stakeholder here man.


Or perhaps it was the discovery of a critical security problem where a single miner consistently had more than 51% of the total compute power on the Namecoin network. … remind me what decentralized means again? …


Care to expound on this claim of being “bullish” in their papers? Have you actually read them? because they go into great detail on why Namecoin isn’t a viable solution for a decentralized namespace system. Most significant ones in my in my opinion are the mining consistently being subject to a 51% attack. Furthermore since namecoin had no pricing function for name registrations it left itself open to be abused by name squatters who in my opinion added 0 value to the network and only seemingly were trying to establish a means to get rich by marking up the registration cost on names they thought others might find valuable …for example facebook.bit … or google.bit … ect.


I’m failing to understand your point here. Perhaps you should clarify.


I think you have once again misconstrued something here, what you want to store is limited by size and the intention from what I can deduce, is a desire just to keep it free of data that doesn’t HAVE to live onchain. Have you tried to store json in the zone file for critical application data? cuz it works fine for me, it just has to fit.


DHT-based peer networks are susceptible to Sybil-attacks. The unstructured approach is easier to implement, has no overhead for maintaining routing structure and is resilient against targeted node attacks because every node has a full copy of data. (eg full replication).



… still waiting for your model


#9

System governance, community incentivization, freeloaders / bad actor filtering – these are all the RIGHT reasons to introduce a token. And if issued via their virtualchain, that means the token will live on top of Bitcoin!

Can’t come soon enough to end this ETH-head (get it… like meth head :laughing: ) madness. To be fair – ion is not alone with concern about issuing a new token. Many others are now extremely skeptical of ANY token given all the scams, thefts, and tulip mania of the current climate. But this is even more reason to support your methodical approach.

I’m eager to see more details of the Blockstack implementation – onward to part 2!


#10

This blog brings up a lot of good points, identifying potential issues and its solutions, addressing similar questions I had about consensus and scalability.

I agree with @vsund:

I truly believe Blockstack has the potential to change the world.
The birth of the internet not only impacted the tech bubble - it disrupted everything from societies, economies & businesses down to the way people communicate - it changed the world.

Blockstack is building a new decentralized internet. It offers a way to build decentralized systems that don’t require users to trust each other. This is going to revolutionize the entire world. As @cryptocracy said,[quote=“cryptocracy, post:3, topic:1315”]
I fully support the direction you guys are taking with Blockstack.
[/quote]

I can’t wait to see and how Blockstack will have impacted the world in a few decades.

P.S. The Blockstack token and mining system solution is ingenious! Love it. Excited to read part 2!


#11

@ion Clearly, you can see problems no one else sees, so would you please enlighten us? I’m sure most people would much rather hear you offering solutions rather than a string of negative opinions about how horrible you think this project is. There are people on this forum that are very invested in this project and would love to hear how Blockstack can be improved. We’re all ears :ear:


#12

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.

So, what happens when a mining pool controls 60%? are you thinking of implementing PoS?
Any idea on which hash you’re going to choose? There are strong cases to make for using equihash or something that other miners can jump to quite easily with the same hardware. Unless there are better hashes that outweigh those possible benefits


#13

Hi Ryan, thanks for taking time to share more details about the proposed Blockstack token. I have some questions and comments about this post, replies in-line below:

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.

You could do this today by having users put a string in their zone file that says what version of Blockstack they support. The more expensive the user’s ID, the more heavily the vote is weighted.

The way to attain a state of decentralized governance is to properly define the stakeholders… And the right way to properly secure a decentralized consensus system is to establish a sufficiently large cost of attack.

I have shown above how this can be done by inserting one’s preference into the zone file of their blockchain ID. One could imagine other ways to do this as well, such as by signing a message with the public key associated with a blockchain ID and submitting the message to an external voting system which can then weight the votes according to the cost of the blockchain ID. You guys have built a sybil-proof ID system - get creative with it!

The way for decentralized systems to compete with centralized ones is to have sufficient incentives to contribute to the network.

Your assertion that “the way for decentralized systems to compete with centralized ones is to have sufficient incentives to contribute to the network” is a non-sequiter wrt the necessity of a token. Linux and BitTorrent are hugely successful compared to centralized/ proprietary alternatives and they did not need a token to attain this success.

The only reason bitcoin needed a new token is because Proof of Work, an inherent and integral part of the system, requires an expenditure of resources for its maintenance. Blockstack has no such inherent requirement that cannot be satisfied with bitcoin itself, and so does not have a need for a new token.

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… Unfortunately without a mining system, there’s no way to tell which fork has the majority support.

Your co-mingling of the “incentive” and “governance” properties of the token makes the value of each less clear to me. What are people be incentivized to do, exactly? Why can’t these incentives be paid for with bitcoin?

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.

It is not clear how exactly this “mining” system works. Are people burning bitcoins? Are machines performing proof of work? What exactly is happening here to produce and distribute tokens?

I read the Part 2 post as well to make sure my questions and comments here weren’t already addressed. I will comment on Part 2 separately on the other thread.

In short, after reading this post I do not believe a new Blockstack token solves any problems that cannot either be solved with the existing Blockstack system or by bitcoin (or whatever underlying native token) itself.


New Features Enabled by a Layer-2 Token
Blockstack does not need a new token
#14

Just recently began following Blockstack development and discussions of proposed additions. The Core’s proposals are sound, but I am agreement with the first comment by Cryptocracy. I dislike the use of “governance” and propose “stewardship” or “decentralized stewardship” as more accurate.