All peer-to-peer blockchains operate under some form of consensus. People often talk about the rules of the blockchain as defining the terms of that consensus, which is true in some sense, but very wrong in another.
At it’s deepest level, peer-to-peer network consensus is established by the people who run the software on their computers. As a computer owner, you have the right to run the software you want on that system and this includes running software that let’s you participate in a peer-to-peer network. If you don’t like the rules for how that software works, you can always change the rules and run new software.
Now a peer-to-peer network isn’t very useful if there is only one person using the network, so you generally must then seek out other people who want to run compatible software.
Cryptocurrency forks
In terms of a cryptocurrency peer-to-peer network, a change in the rules of the network is generally referred to as a fork. It’s called a fork because some people may choose to continue to run the old software and others will use the new software. So what was one community running the same software becomes two communities operating under different rule sets.
Note that in this case, a person can even operate both forms of the software if they choose. In the case of cryptocurrency, this means that such a person is assigning value to both types of coins, the old ones and the new ones. Exchanges often do this, for example.
Rule changes: are there any limits?
Note that there are no limits on how the rules can be changed when forking. You can create a fork where all the money is given to your associates, for example, and you and your associates can run that software. This can and does happen. But such cryptocurrencies don’t generally gain much popularity, because they are exclusive in nature, unless they make some promise about future distribution to most people (this is basically how many ICOs have occurred, for example).
So in the end, while there are no technical or legal limits on what changes can be made in a fork, the real limiting factor is people’s acceptance of those changes. A coin on a cryptocurrency network with only one participant isn’t worth much.
This, in fact, is the real “consensus” of a cryptocurrency network: it’s the people who are willing to operate under the rules of a cryptocurrency network and assign value to those coins. At the moment you, as an individual, decide those coins no longer have value, you have the right to leave that network, join another one, or even start your own fork.
But wait, what about “Code is Law”
The rules of a cryptocurrency network can always change, and they generally do over time. In my opinion, “code-is-law” is a nonsense term unless there’s an actual legal agreement backing it. This would be the case, for example, if a formal contract was established between all the participants in the cryptocurrency to abide by the rules of the code.
I think this would be a terrible idea, however, unless there were also defined some clear rules for establishing a method for updating the agreement over time and also a way to handle code bugs, because inevitably complex software never does exactly what was intended all the time.
Beyond blockchain consensus
Note, as a practical matter, most blockchains do not have any associated legal agreement of the type mentioned above, nor am I advocating for one.
I believe, in fact, that the greatest philosophical idea that has emerged from cryptocurrency is this idea of voluntary cooperation via support for a common set of rules which one can join or leave as it suits the individual. Indeed, I think that this idea has applications beyond today’s cryptocurrencies, and will lead to many new ways that humans can organize to voluntarily work together in the future.