Nov 15th BCH Fork: Nakamoto Consensus will FINALLY be tested!

Nakamoto Consensus is upon us! All hail!

With the first real hash vote ever to occur in Bitcoin Cash set to occur in less than 10 days, it’s time to take a step back and really take in the enormity and the significance of this event.

We are literally seeing the FIRST practical application of a mass decentralized consensus system (aka ‘vote’) that needs no administrator, no organization, no coordination, no public debate, no polling stations, nor any face to face meetings! It is Nakamoto Consensus, as Satoshi created it. It itself is a pure system. Like the evolution of life, it needs no coordinator. Nobody tells a honey bee how to build the cells in the hive. Nobody tells each ant what to do or manages its daily work schedule. Nature just figures this out by way of naturally finding the most efficient solutions. But humans are a strange creature. We like to think. We rationalize. We are a social animal, and as such, we are predisposed to rely on social consensus systems. We create rules for ourselves, and we like to negotiate these rules amongst ourselves so that everyone concerned feels like their individual needs were considered, for a common sense of enfranchisement.

But Nakamoto Consensus doesn’t work like that. It, like mother nature, has a very simple rule: those who behave in a coordinated way that benefits the network will profit more than those that defy consensus. It’s as simple as that. The only remaining thing we need to add to that formula to make it all work is the simple assumption that people tend to want to be profitable, rather than not. With that one simple assumption, the automatic consensus system is complete, and we can rest assured that consensus will be obtained, passively, automatically, without supervision or orchestration.

Well, at least in theory. That is the idea of how it will work, but because Nakamoto Consensus is a ‘natural’ system, it is very hard to analytically work out exactly how long the consensus process will take in practice. There are just too many variables that factor into this equation to model, and much like trying to predict the market, which is the sum aggregation of millions of independent decisions being made by individuals, it is not trivial. That is what makes what will happen on Nov 15th very interesting to those of us who have been in Bitcoin for years, but have never been able to witness how well it holds up in defending against competing protocol changes via a hash vote.

As is the case for most natural phenomena which have yet to be well understood, there is no lack of theories concocted by pundits on all sides on whose votes actually count in such a hash vote. Their arguments generally fall into one of the following categories:

Individual Nodes decide

This is the belief that a majority of the nodes in the network (ones run by individuals like you or I) collectively decide what the network will accept as protocol changes. This is of course, a fallacy, because it is only in the extreme case where all nodes of the whole network were controlled by a collective power would all the nodes be able to rob the dissenting miners of the value of the rewards that they mine. This is of course an impossible situation on premise alone as the assumption is that the nodes are individually controlled. If we had a system that could coordinate the collective behavior of all the individual nodes in the network, then we would have no need for a decentralized consensus system in the first place. This misguided belief was the origin of the “UASF” movement, which was a grass-roots lobbist group which tried to convince the market that the node population (the common man) had enough power to influence network changes. They were never given a chance to be proven wrong, unfortunately, as after the NY Agreement, the supporters of big blocks conceded to split off into BCH instead of forcing the fork.

The ineffectiveness of individual nodes and their irrelevance to the network was later demonstrated when researchers confirmed that the Bitcoin network was a small world network, (one in which the number of average hops between any given 2 nodes was less than 3) and that most important connections exist between mining pool nodes. If individual nodes wish to partition themselves from the network it would not affect anyone else but themselves.

Economically Significant Nodes decide

This is the idea that nodes of exchange businesses, wallets or otherwise ‘economically significant’ players in the community have a vote in the decision. This believe isn’t too far-fetched. In reality, exchanges have some influence as the decision of whether or not to trade a split coin is in the hands of each individual exchange, and the decision to support a given upgrade fork of a blockchain is made by every wallet service provider.

The belief though that their opinions influence a hash vote, however, is less grounded in reality. In truth, although they are well within their rights to provide whatever service they wish to the public, using this support (or threat of withdrawing said support) as leverage during a hash vote is nothing but posturing. Exchanges and wallet service providers are businesses. (With exchanges having to further operate under strict regulatory regimes). If the market demands a service, someone will provide it. But as they are not miners themselves, they will have no way to provide the security support needed for a minority fork chain. Without this it would be very risky for them to provide services to their customers, but it is entirely up to them.

Developers decide

This is the biggest misconception in the industry. It is the myth that the developers that maintain the blockchain client code are the ones that control or influence the decisions to be made on the network. This is the model that most of the legacy bitcoin (BTC) developers operate under, (even though they will deny it themselves). Developers see themselves as the defacto ‘stewards’ of the system, and thus, their opinions should matter the most in guiding what the market and community should expect in terms of features or changes to the network. They use security and network integrity concerns as a basis for this claim, in which they convince the community to ‘leave it to them’ as they know what’s best for everyone. It is very much the nanny-state mentality, or a technocracy. The idea is that this does not devolve into an abusive dictatorship so long as no contentious changes can ever be approved by all developers. Unfortunately, it also ensures that needed changes or upgrades can never make it in either, as there will always be at least one developer to veto (perhaps maliciously) any change request.

Notable personalities decide

This is a slight variation on the case above, where the notable ‘luminaries’ or visionaries, are seen to hold more influence over the system direction than others. This is the model seen in Ethereum presently where Vitalik Buterin (one of the original founders of the project) is seen to have undue influence over what changes are allowed into the project. The power of such leaders was demonstrated when the DAO roll back hard fork was initiated and which produced Ethereum Classic (ETC). The dangers of this system of course is that it can easily devolve into a dictatorship, albeit a benevolent one.

Mining Pools decide

Most people make the mistake of thinking that the mining pools count in the hashpower vote, and this is an understandable mistake. That is because when people ‘see’ the miners of a blockchain, what they are actually seeing are the mining pools. The mining pools are actually just service providers. They run networks and server nodes and they maintain the ‘miner network’ that most people think of when they imagine the backbone of the blockchain. Indeed, it is between these pools that the small world network that has been much talked about actually exist. When blocks are found, they are found by the mining pools, and they are communicated the quickest among the pools. However, these companies, are not the ones that have a vote when it comes to a hashpower vote. If the power to vote belongs to ‘citizens’ of a country, then the mining pools are the companies in a country. They only provide the infrastructure of the network so that the true citizens of the Bitcoin ecosystem can participate in the network. It is true that without them, there would be no way for the network to operate, but if they were to act in a way that defraud the network’s constituents, or if they are not faithful to the wishes of the hashpower constituents, then hashpower will leave them and they would be out of business.

Hashpower decide

Hashpower is the true decider in a hashpower vote. That is to say, those that own the hashpower production assets are the only ones that have a vote in a hashpower election. They decide which mining pool to build blocks for, therefore they effectively decide which chain in a fork to build upon. They have the most skin in the game (collectively) because they are the ones that have committed 100% risk capital to the success of the blockchain and the appreciation of the coin. Data centres can be re-purposed, servers can be re-sold, coins can be dumped for others, but the only thing that becomes worthless scrap if the blockchain fails is the ASIC mining assets. They cannot be repurposed, and therefore they must be written off as losses. As it is, the industry writes down mining assets to zero after just 2 years of depreciation. If they don’t make back their value in 2 years or less, then the business may as well have thrown their money into a bonfire. That is the fundamental reason why hashpower are the only ones that you can be assured of to care the most about the long-term value proposition of the blockchain that they are mining, and the reason why they are the ones that can be trusted to make the best decisions for it. Their vote is weighted in proportion to the amount of hashpower that they own. The larger the portion, the bigger vote they have and the more influential they are. (and subsequently, the more invested they are in ensuring the maximal value be realized on the blockchain).

At present, the only (known) mining pools that own their own hashpower at present are:

Coingeek

BMG

BTC.top

The other mining pools that are listed at sites such as coin.dance are actually mostly hosting businesses and the hashpower that they host are actually their clients. Whenever you have clients, you are answerable to them.

I hope this illustrates why the fork on Nov 15th will be very interesting to watch. We already have plenty of ‘noise’ posturing by companies announcing their support for one fork or the other. At the end of the day, unless the company owns hashpower they actually don’t matter at all and they are only declaring their disregard for their clients if they promote one chain vs the other for ideological or political reasons. The only constituents that have the right to be political are hashpower owners. They paid for the right to vote. They paid for their opinions to be counted. (in proportion to their investment).

So on ‘election day’ on Nov 15th, we will see the actual constituents of Bitcoinland speak, and speak with their investments. Make no mistake, if you don’t own hashpower, you don’t get a vote in this election. Some folks may tell you that you do. Some folks may say that the market decides, by way of resulting price of the coins (subject to manipulation) and they will offer you the option of participating by way of buying one fork coin while shorting the other. Do not be fooled, these are only derivatives, and carry with them all the risks that derivatives do. If an exchange offers you claims on the forked chain coins BEFORE the hash vote has determined the majority winning chain, then they are offering you a HIGHLY leveraged bet, as ANY balances in a minority chain may be unpayble if the majority chain eliminates the minority chain (when most hashpower stops mining the minority chain). All minority chain balances disappear as fast as they were created.

The right thing for exchanges to do is to withhold trading in BCH until the majority chain is determined, and then switch to that chain. As an exchange that values the integrity of their customers deposits, they should not be favoring one chain over another, and certainly not encouraging rampant speculation on assets that may not even exist by supporting one chain as a matter of principle. The only right chain, is the longest PoW chain.

In summary, unless you own hashing power, you don’t have a vote. You may think you do, you may want it to seem like you do in order to influence others, but at the end of the day, the only party that answers to nobody is those that own hashpower. Everything that everyone may say or do or proselytize about, is nothing but political posturing, amounting to nothing more than campaign commercials. In the end, only the hashpower is counted, and the hashpower should be highly incentivized to come to consensus on a majority chain, and let the remaining one expire. Than is Nakamoto Consensus.

We don’t need anything else.

Move over Ethereum: New functionality for Bitcoin Cash makes it a Smart Contract Contender

Smart contracts.  It was dubbed Blockchain 2.0.  (Blockchain 1.0 was cash) It held all the promise of a new world, a new digital frontier.  It was to herald in an age with broker-less deals, robot escrows, AI oracles, and driverless automobiles being their own corporations as self-reliant actors in the new digital economy.  An economy which did not discriminate between true born humans and machine code born automata.

That was the dream.  That was the promise.  That was what everyone spoke about for the last 4 years.  Except that that never happened.   Oh, there were many attempts.  Some achieved some modicum of success, some less so, even others ended in full blown multi-million dollar fraud or theft.  (Yes, I’m talking about most of the projects in Ethereum space, especially, but not exclusive to, the DAO.)

Let’s talk about Ethereum for a bit, as it is the blockchain with the most activity in the Blockchain 2.0 space.  Arguably it drew away most of the Bitcoin developers after its launch in 2015 as the blockchain built for smart contracts and other programmable money uses.  But at least half of its success is due to the fact that Bitcoin around that same time suffered some pretty big crippling self-imposed limitations that would all but exclude it from being a contender for the mantle of programmable money.  In fact, Vitalik Buterin, the founder and spiritual leader of the Ethereum movement, was originally a bitcoiner, and he was only created Ethereum because the Bitcoin core developers at the time deliberately went out of their way to disable many of the functionalities which would allow for a programming language for smart contracts to be done on Bitcoin itself.  So Vitalik did exactly what any good decentralist did when he was faced with oppression by the established regime.  He left and did his own thing.  He went and started designing Ethereum.  This was 2013.

However, because he had to build it from scratch, or perhaps because Vitalik didn’t have the same insights as the Satoshi did, he approached the design of Ethereum in a pretty naïve fashion.  He wanted a turning complete language so that it would be easy for developers to write smart contracts.  But a turning complete language would mean that infinite loops would be possible, which would be a bad thing in a globally decentralized blockchain.  So he resolved that using an economic protocol cost that would be applied to each computational step, so that you would need to pay per operation, and programs gone amok would run out of ‘gas’ and thus stop execution.  But this introduced a whole new category of complications: how much would each operation cost relative to others? Relative to the total computational capacity of the whole network? How would this scale as time went on?  He then went on to  ‘solve’ this new problem in a way which added even more complexity, and thus, yes, opened up a new class of problems.  He decided that the protocol should just change the rates every so often, by edict given by the outside world.  Miners should be able to decide what the gas prices should be and magically come to consensus on it heeding the advice of the senior ETH core developers –it was the ‘central bank’ approach.  Economically speaking, Ethereum was already becoming much more complex than Bitcoin, and writing and testing smart contracts could sometimes get costly, as your bugs will burn away your ETH as you make mistakes.

Scaling issues

To further the issues, Ethereum has some serious scaling hurdles.  You may have heard of how one wildly successful application on ETH called “Crypto Kitties” nearly melted down the entire network several times in the past due to txn flooding.  How?  It’s a very addictive digital card collecting and trading application, where ‘digital breeders’ can make their own unique kitten mutations and sell them for ETH.  Once many people start using the application at the same time, the network floods with transactions and the whole blockchain slows to a crawl.  But why?  Because the designers of Ethereum took another naïve approach to the problem of STATE and STORAGE.  Basically if you are going to have to run programs on the blockchain, then the code for the programs and it’s interim state, (the memory of the program has as it moves from instruction to instruction) is all stored on the blockchain nodes itself.  Which is to say, EVERY ETHEREUM SERVER is storing EVERY PROGRAM’S STATE.  That’s a lot of wasted storage.  Especially for people who really don’t care for digital kitten mutation as a past time.  And what is worse, every Ethereum server is also doing all the calculations for the Crypto Kitten decentralized application, even if you are not using it.  Basically, when Vitalik says Ethereum is a “World Computer”, he means it is a very, very inefficient computer, because every computer in the world, is executing the same code, and storing the same data, as everyone else, at the same time.  Yeap. Talk about the naïve approach.  It is pretty much the MAXIMALLY naïve design to decentralized multiparty computation.  _Have everyone do every computation_!  No wonder they have such a doozy of a time trying to scale Ethereum past the point where one popular application can wreak havoc on the network.

Well now, why do I bring up all these criticisms on ETH?  I’m not trying to throw cold water on their party.  In fact, I have great respect for Vitalik and many smart contract developers that I have met and know as they are truly breaking new ground in the space, and it is on the shoulders of their hard work that we will carve out the path to the digital frontier of the future.  However, I do want to bring up Ethereum’s fundamental design flaws because they will soon have a worthy competitor.  No, it’s not another complication smart contract blockchain, hatched out of the desire to make the founders rich. (there are _many_ in this category).  It is in fact, the sleeping giant, the original, BITCOIN.  But how you ask? How is it possible that now it can perform as a solid foundation to smart contracts but it couldn’t before?  Did Vitalik miss something? No, he didn’t.  Because the Bitcoin that he left is still stuck exactly as he left it back in 2014.  We are, of course talking about Bitcoin Cash, the offspring of legacy Bitcoin that decided that hard forks were an upgrade mechanism and that it would be OK to grow the network and add new or re-enable old features on it.

It is exactly the latter that will usher in the new age of smart contract development.  On May 16th 2018, BCH will be hard forking as part of their scheduled 6m update schedule, and one of the most exciting things that will be changed in the upgrade is the re-enabling of some of the old OP_CODES which were disabled by core developers out of fear that they may be insecure or open up attack vectors on the network back when the codebase was immature, and the network very small.  For the computer scientists reading this, the interesting instructions are OP_CAT and OP_XOR.  (concatenate, and logical XOR).  I won’t go into why these are very important, but if you are interested then you can read about how Bitcoin is effectively a Turing machine. This means that arbitrary calculations can be done on Bitcoin, using a method that separates the DATA and CODE from the proof of execution.  For the technically inclined, the analogy would be the Bitcoin blockchain transactions effectively becomes a micro instruction table, a set of CPU registers, and a program stack pointer.  All the data, the code, and storage is elsewhere.  This makes the Bitcoin model much simpler than the Ethereum model (store and compute everything on the blockchain nodes).  It’s such an elegant solution, that one wonders if it was always meant to be this way, designed by the original Satoshi, but somewhere along the way it just got derailed.  And why not? Everything else about the Bitcoin design is fairly simple and straight forward.  Coming up with it required several leaps of intuition, but when you read it the solution is surprisingly obvious. (One could reflect on the similarity of this “difficult to come up with, but simple to verify” method as the signature paradigm of the whole Proof-of-Work and hashing model itself. Indeed it seems Bitcoin is itself self-referential, or at least self-consistent)  Recall the original whitepaper was only 9 pages long.

So where does this leave Ethereum post May 2018?  It is anyone’s guess.  Ethereum still has several years of head start on Bitcoin Cash.  It has several custom languages that developers can use for writing smart contracts.  Bitcoin still only has its original SCRIPT, a language that is akin to programming on an HP calculator. (it is similar to FORTH).  But now that the missing OP_CODES will be brought back, that means that more high level languages can be built that can compile to low level Bitcoin SCRIPT.  I foresee a rich ecosystem of smart contracts and languages for developers to be built on top of Bitcoin in the years to come.  And of course, when I say ‘Bitcoin’ I mean Bitcoin Cash, the only Bitcoin that can be upgraded on-chain.

 

/EOL

In my next article I will talk about Ripple and its potential future, given its current strategy as a interbank currency payment system.