How to create a founding document for a blockchain?
I wasn't exactly happy with the example constitution that @dantheman posted. In a way it's a good text but something was bothering me but I couldn't understand what it was. Now I think I finally got it.
I'm not sure if a constitution for a country is a good foundation for a constitution for a blockchain. They are very different institutions.
Good constitutions (for countries) will define what are the limits of the state and the government. Rights and freedoms of the citizens are written down. But a blockchain is not a country. It's not crowded with people who might have very different opinions about everything and who need to find a way to get along. They all live there, they don't have other options than try to get along as well as possible.
A while back I might have written the same kind of constitution. I can see and understand how Dan is coming from libertarian school of thought. But my thinking has been evolving from "how to prevent others doing bad things" to include more "how to use freedom to create something valuable and useful". Not only preventing negative things but to create more positive things at the same time.
Blockchain is an organization. Usually nobody is forced to take part in it. People are not born to blockchain users like they are born to citizens of a country. On the other hand, organizations are founded for a reason. So maybe the blockchain constitution should explain why the blockchain exists? What it's trying to achieve?
Instead of a constitution-like text, the founding document of a blockchain could include a long-term vision (or a mission statement) that explains why the blockchain was created. It should also define ways how the blockchain can and cannot advance towards the long-term goal – for example, it can never confiscate cryptoproperty of its users – basically, the ethical/moral boundaries for actions that apply in the cryptoworld. Talking about "life" in this context isn't necessarily the best thing because human life and digital organization have very little to do with each other.
When the long-term vision is clear, it becomes easier to understand what kind of steps should be taken to go forward. Just analyze the current situation, compare it to the goal where you want to be, and you can see what is missing. From that information you can form medium-term and short-term goals.
For EOS, for example, long-term goal might be: to become the most valuable blockchain platform/ecosystem in the world and then keep that position. From that we can derive medium-term goals: find and conquer niche markets to build a network effect. Short-term goals will be building infrastructure and features that particular niche markets need and want.
This perspective is important because it helps to prevent the organization becoming directionless. Instead of letting everybody just do anything they like (as long as it fits the boundaries of constitution), the founding document should give a clear goal for everybody to strive for. It empowers the organization and helps everybody to work together towards a common goal.
Many blockchains are very directionless today. There are lots of visions how a particular blockchain should be developed, but those are held by different people and they can't agree what vision is the one to follow. For example, Bitshares hasn't had a clear vision which made it difficult for it to decide what features to develop, prioritize, and implement.
Property rights and arbitration-based constitution
Based on my reading of Dan's posts about blockchain constitution, I think his perspective is a few steps too much ahead.
Property rights are not so straightforward as Dan seems to think. If a blockchain promises to make everything it can to protect users, what that actually means in practice? If private keys are stolen, are they returned to the original owner? If tokens are stolen, are they returned to the original owner? What if the original owner was very careless with the private keys? Should the blockchain return the money even if private keys were stored in place where anybody can see them? If yes, then it's kind of redundant to have a blockchain. The point is that "protecting private property" is not a clearly defined goal. There are situations when careless actions should be seen like throwing something into a trash can: an indication of giving up the property right.
And the focus on arbitration... It's not easy to understand why it must be emphasized so much. Is it because EOS is a smartcontract platform and it's expected that there will be more or less conflicts over contracts that need human decision makers to resolve them? What are some example cases that need an arbitration system to be in place?
For me it seems to quite weird to focus on that. What I'm more interested is a process how to make important decisions over the blockchain, such as hardforks, adjustment of blocktime, block reward, funding of development and related projects, transaction fees, etc. That's the essence of governance in my opinion. It's really hard to create a perfect blockchain. It will need changes. Governance is the process to make those changes. The decision making process needs a fine balance between quick decisions when they are needed and a great resistance against stupid decisions.
We must separate the governance of bare blockchain and the governance of services that are implemented on the blockchain. It sounds to me that conflict resolution over smartcontracts is rather a service than a core blockchain feature. At least I don't see how things like core token supply or transaction fees can be derived from a constitution that's based on arbitration for property rights.
It might be helpful to think about the blockchain that doesn't have any services built on top of it. Its mission is just to make blocks forever. Because technology advances, it will need to be upgraded sometimes, so it needs a way to decide how and when upgrade should happen. It's good to have also a well-defined process to change parameters like blocktime, transaction fees, and reward for block producers.
The goal is to make the blockchain very resilient so it can work forever, whatever might happen. Bugs are found and fixed, developers come and go, block producers are attacked or misbehave, economic incentives change, etc.
When we have designed very resilient blockchain governance system, we can start to build some features. If our customers can be sure that our blockchain will be running very reliably for a long time they can truly trust it.
That's the bare blockchain governance. After that is OK, we can think how to govern the services built on top of the blockchain. Preferably they can be separated from blockchain governance, but that's not necessarily always the case. Sometimes the service is so valuable that it makes sense to combine it directly with the bare blockchain governance process.
In the case of a smartcontract platform it might be good idea to include conflict resolution system in the blockchain governance. But I'm not sure if it's a good idea to do it in the beginning. My intuition says that it would be better to separate bare blockchain governance and arbitration and wait until we see what kind of problems actually need a resolution.
When a totally new kind of system is created, it's really hard to know in advance what kind of problems and conflicts will arise. Focusing on arbitration is like jumping too many steps ahead. We don't have the blockchain yet. First the blockchain should be launched. Then it should be used by people. Then we can see what kind of problems users have and only after that we can know what kind of dispute resolution system might be the best. An arbitration system is a feature/service that the blockchain offers to users. It shouldn't be a central focus of the blockchain, not at least until we have seen the blockchain in action.
It's good to remember that international arbitration systems haven't just born one day and people decided to use them. Instead they have evolved over hundreds of years to meet the needs of businesses and individuals. I suspect that evolution over time is also a way to go to create a blockchain arbitration system.
Urbit
If you haven't already checked out Urbit, you really should. It's one of the most interesting projects out there. It doesn't have a blockchain, but it has cryptoproperty. They describe it like a land ownership, unlike blockchains which enable currency ownership.
Urbit is designed to become a digital republic. But it's not yet – the developers emphasize that a young system can't be decentralized properly so it's useless to even try. Only mature systems can be decentralized – a view that I very much share with them.
There are a few posts worth reading:
- Why Urbit (probably) doesn't need a blockchain
- The DAO as a lesson in decentralized governance (Best commentary I've seen to the The DAO hack. Note: written before the rollback was decided to make.)
- Design of a digital republic: part 1, goals (I just actually found it when I was googling for sources for this post. Great stuff, going to read it for a couple of times more.)
For me it seems that Urbit has pretty good approach to organization development. You might want to read also their interim constitution and beliefs and principles.
A few objections to the example constitution
I'm not saying that what I write here is the right way to do this. This is just publishing my thinking process to get feedback and to understand this topic better. But there are some things that I disagree with in the example constitution.
First of all, the language. It's written in so weird style that only a few people can actually understand what it means. Remember the KISS principle and write it with very clear language. Blockchains are global organizations and many of the users don't have English as their native language.
Based on article 7 it seems that block producers will be also politicians who have power to decide whether or not updates will be accepted. I don't think this is a good idea because running a block producing server is a technical job and deciding about updates is politics (and everything that is connected to it, like economics). Those two jobs require totally different skillsets. That's why it makes sense to separate them. It would be better to have a committee (or something similar), like Bitshares has, to make political decisions.
And I have a little bit of skepticism if agreeing to the "terms of service" is really a valid contract? People will habitually just click "yes" to everything without reading the text. If it's well-known fact that people won't understand what they are doing by clicking "yes" (or in this case, making an agreement transaction on the blockchain), I'm not sure if we can say that a contract was made. A contract to be valid requires that participants have consciously agreed to it.
If we have a constitution-contract that is so difficult to understand that it requires users to seek help from lawyers, it's really hard to get any kind of network effect. It's just too frightening for normal people to use.
great work