I'm going to take the opposite position and say that I think this is pretty unnecessary, though a great touchstone for debate. You say in some comments (to paraphrase) that it is meant to facilitate a common understanding between people. I do not believe it would do that.
For one thing, we would have to rely on honest and competent smart contract writers to write contracts, and equally importantly honest and competent non-writing parties to a contract (counter parties in the terminology). What I mean is that it is up to smart contract writers and users to know how to go by the terms of a constitution, and how to implement this in code.
Far better would be something that is more in line with the code = law
approach, which is to say, anything possible is legal. The kinds of things this constitution purports to provide would be translatable to code, though not easily - it's a hard problem. At a minimum we'd be looking at a common set of patterns or even libraries for constitutionally legal code. This would make several of the more ambiguous parts of the constitution irrelevant, parts which have holes and I believe are ripe for abuse in any case.
For example, how is one to show that assets have been appropriated unfairly? Who is the Arbitrator and how are they selected? And the emergency blockchain fork powers are also open for abuse. To invoke Goodwin's law, think of Nazi Germany, or more recently the state of emergency in France that is still ongoing since November 2015.
I would propose polymorphism with a mandatory root level parent object, like the Object object in Java, which every object must inherit and which restricts possible uses to the kinds of use cases which are permitted.
You could couple this with a number of other measures, such as
- minimum counter signing per contract, both in absolute number of members and stake (to enforce some kind of peer review),
- use formal proofs to insure code runs as intended with high probability
- even go as far as restricting the smart contract language to be non Turing complete, particularly in the sense of looping
Another problem with the constitution as it is written is that it is much closer to a top level legal contract. Severability for example would never be found on a constitution but always on a contract. So clearly this is a hybrid. That is a big problem because it crosses the domain of practical responsibility to moral responsibility. I actually think that this is something which would be popular here, but I suggest that it is a step in the direction of cult building.
@krnel if you haven't seen this I think you would like it a lot.
I just watched this video where you mention a blockchain constitution within the context of EOS
@dantheman I am hoping that you can respond to my original comment in light of this. I have the most upvoted critique of it here, which I am completely open on being corrected on, and I think it would help us understand the idea of it especially considering EOS, which is very exciting btw.
Thanks 🙂
Edit: So EOS is really a blockchain OS as you describe it in the video. This makes the Java style root object idea and most of the rest invalid; you're working on a different paradigm here.
You compare the constitution to a terms of service, which is much more what it looks like anyway, and basically my last point. So my follow up and replacement question is really this:
By what means do you imagine a blockchain constitution being enforced? i.e. how will this work practically?
I am not competent to comment on most of what you say, being neither a lawyer, nor a coder, but would point out that there is a minimum of two signatories required to form agreement, and any framework that establishes a higher number arbitrarily prevents the rights of people to agree.
Thanks!
Interesting claim. Can you expand on this?
I think, it refers to it being harder for any number above 2 to agree. So maybe to expand on his statement, any number above 2 raises the chance for disagreement and therefore may restrict users rights unintentionally, since the asset or issue in question may or may not be in arbitration until resolved? Or I can be completely wrong.
after the revolution