Does a blockchain need a constitution?
We can call it constitution or primary consensus. Whatever you prefer. So what is a constitution in the blockchain context?
For me, it's an unambiguous definition what the goal of a given blockchain is and how this goal is going to be achieved. Also, a constitution needs to define the main roles of different types of participants and the areas of their actions - who does what. Any actions outside those areas by any of the actors will be considered inconsistent with the constitution and thus "illegal" from the blockchain's perspective.
One important aspect: a constitution is not meant to be unchangeable. It should contain conditions that need to be met to "legally" amend its own content. Obviously those conditions should be relatively tough so that changes do not happen easily just to address a particular problem.
Don't we already have a constitution?
Every blockchain already has some kind of constitution or at least a public declaration made by the founders about the goals they want to achieve. Without such a primary consensus the founders would not be able to raise any funds - investors need to know what they are buying into before they commit their funds. So the real question is this: to what extent is this primary consensus binding? Is it OK for a current consensus to drift away from the primary consensus?
With vs. without
Let's compare the two possible settings: with and without a constitution. I'll try to do my best to present both options in an objective way.
Without a constitution
Without a constitution, the block producers (miners or stake-holders or witnesses depending on the underlying consensus mechanism) are free to act in whatever way that they want (or think is beneficial for the blockchain). They have the full power, and whatever they do with this power is legal by definition ("legal" from the blockchain perspective). As a result, we have a classic Richard Nixon situation: Well, when the president does it, that means it is not illegal.
I can think of three issues with this solution:
- It's quite easy to implement it in proof-of-stake systems (including Steem's DPOS). Consensus can be measured directly or indirectly but it's always clear what the majority of shareholders prefer. But what about proof-of-work systems? The consensus reached by the miners can be different than consensus of the shareholders. And even if miners wanted to stay neutral and reflect the will of the shareholders - how can they find out what the majority of shareholders want? Unless a proof-of-work blockchain comes up with some sort of voting mechanism, all that miners can do to get some feedback is read forum posts and opinionated blogs.
- One of the fundamental aspects of modern democratic system is the protection offered to minorities. Even corporate law offers some mechanisms to protect the interest of minority shareholders. How is this notion realized on a blockchain where everything is legal if only the majority wants it?
- A constitution tries to solve potential problems before they happen and when it's not known who will be involved. Without a constitution we are left to look for a solution after the event and it's easy for conflicts of interest to arise.
With a constitution
With a constitution, the block producers still have the power to do whatever they want (or think is beneficial for the blockchain) but they do not have the legal right (of course only from the blockchain's "law" perspective) to step outside the boundaries defined in the constitution.
In the most basic configuration those boundaries for block producers will be set like this:
- produce blocks and include all transactions in them (no blacklisting)
- do soft and hard-forks only for protocol upgrades (or bug fixes) but never for reverting the outcome of existing transactions.
Of course there might be blockchains which choose to extend this basic list - the crucial thing is to have this list.
I can think of three issues with this solution:
- There is no mechanism which can effectively enforce a blockchain constitution. All that shareholders can do when a constitution is violated is dump the token and thus lower its value, which will inevitably hurt the violators, but will not prevent their actions.
- Despite the best efforts, a constitution can turn out to be ambiguous in same cases. When this happens there is nobody who can deliver a binding interpretation (unless the constitution itself appoints an entity which delivers an interpretation when it's needed).
- Having a constitution limits the flexibility of decision making. We can amend a constitution to handle future events better but before those changes take affect, we can find ourselves being limited by rules invented at a time when certain types of events were inconceivable.
Very different creatures
Two identical blockchains, one with a constitution and the other without, are completely different creatures. A constitution-less blockchain is self-contained: whatever it says is legal is legal. It has no point of reference. It is allowed to behave however it wants, no rules apply because the blockchain sets the rules by its own actions.
Whereas a constitution-ful blockchain is not a stand-alone entity, it's in a constant relationship with its constitution, which is the only source capable to distinguish between what is legal and what is not. Thus legality is defined outside the blockchain and the blockchain can choose to conform with it or not, but defining and redefining legality lies outside of its scope. A constitution is like a mirror - it has no power, it just displays the image.
The Ethereum case
This is what Ethereum's website says:
Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.
Whereas this is an opinion which seems to prevail on Ethereum's discussion threads (this is an actual quote from Reddit):
I actually think the hard fork is not only important for the DAO token holders, but actually to show the world what consensus means on a blockchain. Not tyranny of the machines, but the voice of the people.
Does it mean Ethereum has some sort of constitution or not? The website statement suggests it does but it also seems that majority of the shareholders think that their will is the ultimate source of legality and they are quite proud of this.
Why aren't Ethereum's founders more specific about it? Why don't they step up and offer an interpretation of what they meant by "applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference"?
Did they mean this?
No third-party (miners included) will interfere with the outcome of any smart contract running on the Ethereum platform.
Or this?
Smart contracts running on the Ethereum platform are subject to a judgment by the miners who have the right to interfere if they consider that the outcome of a contract is in conflict with its creators' intentions.
I bet that if a few weeks ago Vitalik had been asked which of the above is more in agreement with his initial intentions, he would have chosen the first one (going along with the second option would have caused quite a panic, I guess). But after the DAO disaster things have changed: the Ethereum founders have chosen the strategy of deliberate avoidance of clear declarations, which implies they think that at this stage (when funds have been raised but the platform is still in beta) Ethereum is better off without a constitution. I guess the main motive here is the desire to leave some room for flexibility in the future ("every case is specific"), as they expect more such incidents to occur.
What about Steem?
I think the fundamental axioms have been clearly stated by the founders. This is what Steem's co-founder Ned Scott declares in interviews:
... content that goes on the blockchain stays on the blockchain
With the added security and immutability of blockchain ...
Does it mean that when the time comes those words will be binding? Or will we turn to the network consensus to decide? And if we choose the latter, how would you feel if it was announced that, from now on, witnesses have the right to censor posts by not including them in the blockchain and then we proceeded with the first incident of this kind?
I personally would feel very badly about it, even if it happens only once, because this is not something I signed up for. I don't want to be part of it, even if it means higher market valuation of my investment. But it seems some of us are OK with that. For example, this is what @sean-king says:
I trust the economic incentives built into the system. Witnesses will act to maximize token value because it's in their best interest to do so. If that means they "censor" on occasion, then so be it, though I think that will VERY rarely be the case.
Do you share this opinion? If this attitude prevails, I think for people like me it will be beneficial to know about it in advance.
Conclusion
I strongly believe that it's much better not to follow Ethereum's path of making strong (or vague, depending how you see them) declarations during the fund raising period and then backing off from them when real-life events occur. Despite some of the downsides of the constitutional approach, I think Steem's future will be far more secure if we come up with some sort of constitution or at least an emergency strategy before controversial events start happening. Ideally, before July 4th.
What's so strange to me is that your arguments collapse under their own weight. In one case (TheDAO) you argue that "code is law" and that, whatever the code allows is permissible/legal/acceptable. And then in another case (blockchains themselves) you argue that "code is NOT law" and that, instead, we need a completely separate human-made "primary consensus" or "constitution" defining what is, and is not, permissible/legal/acceptable to do on a blockchain.
So, which is it? Is code law or not? If it is, then whatever is technically possible on a blockchain is permissible/legal/acceptable.
I resolve the inconsistency in the only logically consistent way possible--code is in fact law as regards the blockchain itself. However, code is not, and cannot be, law as regards smart contracts since all smart contracts are subject to the greater rules of the blockchain. The "code is law" blockchain always trumps the smart contracts that run upon it, and whatever is permissible/acceptable/legal to do on a blockchain is permissible/acceptable/legal to do in or to a smart contract.
Also, even if we assume your reasoning is valid, paradoxically it undermines your case, not mine.
This is how I understand your standing:
If the above understanding is correct, we have this paradox:
It seems to me that you treat the intentions of smart contract creators as important and binding (despite the authors denying them) and at the same time you treat the intentions of blockchain creators as non-binding and unimportant (despite the authors publicly announcing them).
I do the exact opposite.
I don't see any inconsistency at all, quite the opposite. A constitution can say that for a smart contract "code is law" and nobody, even the blockchain itself, can "legally" interfere with it. I can easily imagine an Ethereum constitution having the following clause: There can be no hard-fork aimed at reverting an existing transaction. What exactly is inconsistent here?
Your conclusion is false IMO. We can make smart contracts subjects of the greater rules of the blockchain, as you suggest, or we can choose the opposite. The technical aspect that a blockchain is a medium, where a smart contract exists and executes its code, has nothing to do with it.
Again, your conclusion is false. The blockchain CAN trump a smart contract but this does not mean it has the RIGHT to do so. And this is where a constitution plays its role: it defines the legal aspect, not the technical ability aspect. I've been trying to explain it to you many times, but I guess I failed. Which is kind of strange, as you are a lawyer and I am not.