The Fundamental Underpinning of Blockchain Consensus

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.

Sort:  

Do you personally feel more secure in Steem and the value of your stake with the latest code change?

As one of the largest stakeholders on Steem (with access to that stake :D) your actions carry weight with many others in the community, as does your voice.

I do. The huge Steemit stake was long ago promised to support onboarding and development of the Steem blockchain and I think only this promise allowed the blockchain to get established, given the huge percentage obtained by Steemit initially. Since that time, that promise has clearly been violated, and I think it's led to much of the struggle that Steem has faced in the cryptocurrency rankings.

Also, as a purely philosophical matter, making promises then not keeping them, just ticks me off.

Would have liked to have seen this implemented far earlier in the history of the chain, but I guess better late than never.

Personal philosophy matters for every individual action - some just deal in words with no follow through.

This!
If I remember correctly, there are even on-chain interactions during the earliest days of the Steem blockchain and the ninja-mine reassuring the community that supporting community development was the justification of the majority stake amassed by Steem Inc and Steem Inc representatives. (It may have been @dantheman) I'd have to dig to find the statements I'm referring to though, as I would prefer to point directly to the comments.

I also feel that on a fundamental level we, the community, have been deceived and the promises made to the community - yes, we can call it a social contract - have been flouted time and time again. Even if overdue, it's time for action.
Thank you for your post and statements above, they strike a chord with many in the community, I have no doubts about that.

Been reading a lot of the comments/concerns over this and I think this point is being missed by most -- Ned/Steemit's clear violation of the original promises made through this acquisition. I am very happy about this change and I think the people who are pissed about this would have a very different opinion if they experienced any sort of the potential downside we faced without it.

Posted via Steemleo

Excellent question, and as another significant stakeholder (not as large as BT though), I'll give you my answer. I haven't felt very secure about the value of my stake for some time, even less so after the sale of Steemit, but this code change gives me at least some reason for cautious optimism. We'll see how it plays out.

The Steemit ninja-mined stake has always been a special case since day one (and one particularly terribly handled up to this point). No other stakeholder need infer any concern about their stake in my opinion (except perhaps, the significant risk that already existed of it continuing to become worthless due to mismanagement and exploitation by Steemit, and stupidity and complacency by everyone else for letting it happen), but that is just one person's view.

Thanks. Obviously no need to answer below :)

Over the course of the three years I have been here, both you and BT have been voices of reason, which is why I am glad I caught you both on this topic, and your answers align.

This whole thing would make an incredible TV series.
The early days, the ninja mine, Ned and Dan falling out, the forks, the reduction in inflation, linear rewards, reduction in power downs. Fumbled hardforks, outages and replays, the layoffs, Ned handing the reins to Eli; the sale; communities, the softfork....

I try to keep my finger on the pulse; but I feel like I'm 3 layers from the epicentre.
When the dust settles I'd love to spend a long weekend binge-watching the back story.

It would make quite a story, especially if went all the way back to ProtoShares, then AngelShares, then BitShares, then Steem. If we ever manage to truly change the world with any of this work, I'll definitely think about writing my memoirs :-)

Call the movie: The Social Contract.

I admit, my first response on hearing this was a negative one toward the witnesses that must be supporting it but in the light of the comments on this thread particularly,I have changed my mind. Yes indeed, this is probably something that should have happened some time ago too address the issue of the ninja mined stake. The timing, well, it could be argued that it is both good and bad.

But, I am certainly glad I dropped by this post, it has assuaged my fears somewhat.

in the particular case of Szabos law and the 21 Million Bitcoin supply-limit, "code is law" is vital for price discovery and yes otherwise it is a weakness (evolution proves you right). Of course the term "law" is BS but it is a suggestion to the ones deciding. Once a particular system is established, you cant undo it by hopping to another software. You cant undo mindshare. Szaboslaw was allready broken when we shifted from p2pkh legacy addresses (starting with "1") to bech32 native Segwit ("bc1") ... after your logic it is fine, since there is no "code is law". But from a moral point of view most non-techi Bitcoin users are tricked off the Nakamoto chain. Nakamoto holds p2pkh coins, while most of the newer users hold netiveSegWit, while believing they hold the same BTC as Nakamoto 😂. The market does not discriminate between both flavors of BTC, but game-theoretically it is a huge difference if you hodl like Nakamoto or if you blindly follow the consensus ("because majority consensus is king"). Iterated over many trial and errors mistakes are fine and makes the system anti-fragile but can you really apply this to the already established systems?

but can you really apply this to the already established systems?

Sure, we can, and sure we will.

In my own opinion, both our current monetary and governance systems are severely flawed (note I'm referring to both cryptocurrency and fiat monetary systems, and pretty much every form of government which sovereign nations currently operate under).

I operate under these systems today, but I long for, and work for new, better systems to replace them. I don't know if we'll see significant change in my life time, but I've reached the point in my life where it's the primary goal for all my future work.

Code is Law

Well, code is law on a particular fork because, after all, the computer will always do exactly what the code says, no more and no less. But as you say you are free to leave it and join another one.

Yes, but from what I've read by most "Code is Law" advocates, it seems to be more of a philosophical belief that participants in a network should abide by the results of the code, and any retroactive change should not be allowed via a hardfork.

I guess the most notable case of this was the arguments for "Ethereum Classic", where a hacker exploited a weakness in the code to obtain funds from the DAO in an unexpected way. The majority community response was to hardfork and revert this exploit. But a vocal minority argued that this reversion was morally wrong because "Code is Law" and so we got two Ethereum forks.

I guess. But in the end, both communities picked the code and law they want.

Yes, they both had to abide by what I'm calling the true law of consensus, which will hold as long as we're allowed to choose what software we run on our computers.

But a philosophical difference did emerge between the two groups as to what types of changes are morally right. This just becomes another argument that can be used when users are choosing what rule changes they consider valid and willing to accept/operate under.

Sure there is a moral argument, but where does that ultimately end up? One group claims it is moral and the other group is not, and the other group claims the exact same thing.

Live and let live works for me. Neither is taking any sort of violent action against anyone.

Yes, I agree.

When I say that I consider "Code is Law" nonsense, it's mostly from my perspective that bugs in software are common, and rigidly obeying the results of a bug just seems like a terrible idea to me. Others are more than welcome to operate under such rules if they wish, however, and I consider this the greatest idea that has emerged from cryptocurrency networks: the ability to voluntarily associate and disassociate.

Of course, I don't mean that this idea of voluntary association hasn't existed before, but cryptocurrency has shined new light on methods for doing it and points to other possible uses for consensus-via-computer in the future.

Is the shutdown of your witness due to in disagreement to the softfork? Is this your "free to leave and join another" put into practice?

Again, similarly to what I said in the comment to BT above, your actions and voice carry weight here too.

No. I support the soft fork, I'm voting for witnesses running it, unvoting witnesses who aren't, and I think it, at least, should have been done long ago. In fact I worked to get the community behind taking firm action a year ago when Ned's 'mismanagement' of the stake was clear (an overly favorable characterization, in hindsight), only to find too many people peeling off and preferring to be opportunists (or, maybe, just naive in) trying to gain personal advantage from being first accept and support more of Ned's empty promises.

I was aware of the discussion of the fork, of course, and saw it contributing yet more workload that I'm not well positioned to take on, nor particularly interested in repeating the effort I undertook a year ago to try to accomplish some sort of healthy ecosystem realignment. I do wish the best to the witnesses taking it on now and hope they are successful.

It is going to set up some interesting discussions around the philosophy of the chain, but I think it is best to get the ducks in a row earlier, rather than later.

A little positive drama that questions fundamentals might be good for the community.

Thanks again for all you have done over the years.

@blocktrades, In my opinion beauty of Decentralisation is Freedom Of Decisions. And Steem Blockchain gone through from so many dynamic circumstances and survived and grown so effectively and in my opinion definitely this time also it will going to grow same way as always. I know it's very critical time for the Witnesses but we back them and believe that they will do what is good for Steem Blockchain. Stay blessed team.

Posted using Partiko Android

Good night.

Interesting article you just published. Honestly, it is of great help to many people, especially me, since I know little about Steemit and his fantastic strategies.

Thank you, brother.

Thanks for sharing this helpful information about consensus

good explanation about how blockchain works. Thank you for letting us know. By the way I noticed that it took too much time buying bch in your website and send it to coins. ph?

I'm not aware of any problems with us sending BCH. The only issue I know we've faced recently is that our EOS wallet has had timeouts occassionally when we're sending EOS, so that we must occasionally intervene manually and retry the sends.

I understand that our time zone is different. I bought BCH by steem before and I received it in my wallet for almost 2 hours but now from just last 2 days. I was worried that I did wrong because I received it more than 4 hours. But I'm not complaining about it, I'm just wondering why.
thanks for responding by the way

If there was a large delay with delivery of BCH, it probably means we had temporary trouble pricing one of the two coins involved. In that case, an admin would have had to retry the transaction later, which would explain the multi-hour delay.

ah so that's why, got it. Now I understand it, thanks..