The Bitcoin Cash (BCH) project has encountered some significant challenges over the past week, including disagreements between Jihan Wu, Craig Wright, and major BCH mining pools. Now, both sides are claiming that the disagreements could lead to a chain split during the November upgrade.
Bitcoin Cash, the world’s fourth largest cryptocurrency by market cap, hard forked from the main bitcoin (BTC) blockchain on August 1, 2017. Now, the one-year old project is considering its own split as disagreements emerge about a planned November upgrade.
The controversy came to a head on Monday as BitcoinABC, the most-used client of Bitcoin Cash, announced that the November 15 upgrade of the client would include the following:
“A new opcode called OP_CHECKDATASIG that improves the BCH scripting language to permit the validation of messages from outside the blockchain. This will enable uses such as the use of oracles and cross-chain atomic contracts.
The introduction of canonical transaction ordering. This is a technical building block that lays the foundation for massive scaling improvements in the future.
Several minor technical fixes and improvements.”
That may seem like a nondescript upgrade note. However, there’s a problem: some miners don’t want a certain part of that upgrade. This has split the BCH community – and BCH miners – into two competing sides. On one side, we have Craig Wright and nChain and various supporters. On the other, we have Jihan Wu and Bitmain and various supporters.
Calvin Ayre of Coingeek announced last week that his mining pool would not support any update that implements canonical transaction ordering. Coingeek currently controls about 35% of the hashrate of the BCH network. They’re the largest miner on the network.
Bitmain, meanwhile, is led by Jihan Wu and operates two BCH mining pools: BTC.com and Antpool, which collectively account for around 18% of the hashrate on the BCH network. With ViaBTC support, Bitmain would reach 31% support. With BTC.top, they could control as much as 34% of 35% of the hashrate.
Coingeek’s blog post claims they “will not support the following changes or commit our hash power to running software that implements them”. Those unsupported changes include OP_DATASIGVERIFY and canonical transaction ordering. Coingeek claims more detailed examination is needed before canonical transaction ordering is implemented.
Here’s what it all comes down to: we have Calvin Ayre and Craig Wright are on one side and Jihan Wu on the other side. Both have enormous stakes in Bitcoin Cash and want to see the project succeed. Both also have roughly equal support from the mining community.
Of course, the two sides above account for about 70% of the BCH mining power in total. The remaining 30% will decide which side reigns supreme during the November hard fork – assuming a compromise cannot be reached.
Sitting in the middle is Roger Ver, who is somewhat affiliated with Ayre and Wright. Ver controls the Bitcoin.com BCH mining pool and it’s unclear what he will do. Rawpool, which accounts for approximately 11% of BCH’s hashrate, is another big unknown. The China-based mining pool is run by a man named David Li, but we know little about the pool’s intentions.
Based on current hashrate, the split might come down to a 60% to 40% vote by hashrate.
Jihan Wu Calls Craig Wright “Fake Satoshi” in Private Chat
This dispute continues to get nastier. Earlier today, it was revealed that Jihan Wu called Craig Wright “fake Satoshi” in a private BCH group on WeChat.
“CSW has published his reason of against Op_code in his recent article, which is the usable potential numbers of Op_code on BCH is limited. This is ridiculous, this person must be a fake Satoshi, there is no doubt,”
writes Jihan Wu (translated from Chinese).
The message was spotted and translated by @cryptovenus on Twitter, who isn’t actually a member of the private group. “It was from a close person and I found the information is useful and necessary to be shared to the public,” explains cryptovenus in a later tweet.
Why Is There Controversy Over Op_codes?
The controversy largely centers on Op_codes, which are smart contract-style Scrypt-powered tools that extend the utility of the bitcoin network.
One of the controversial Op_codes is the OP_CHECKDATASIGVERIFY. Bitcoin ABC’s development team wants to implement this Op_code, while others do not. Here’s how the Github proposal explains OP_CHECKDATASIGVERIFY:
“OP_DATASIGVERIFY allows a script to validate the signature on arbitrary data using the same ECDSA algorithm (and code) used to validate the signature on Bitcoin transactions.
This opcode therefore enables the use of an external ‘oracle’, which is a very important too to enable external information to be imported into a transaction.”
Craig Wright is against implementing Op_codes into the bitcoin network because he believes it affects the integrity of the BCH project. BCH is a payment protocol, and Op_codes prioritize non-cash transactions over simple BCH transfers.
Why Is There Controversy Over Canonical Ordering?
The other half of the controversy regards canonical ordering or lexical ordering.
Calvin Ayre and others don’t support canonical transaction ordering. Canonical transaction ordering was originally proposed by Gavin Andresen to reduce the amount of data sent between nodes by making it unnecessary to send the transaction ordering data.
There’s some controversy over whether or not canonical ordering will affect security of the Bitcoin Cash blockchain. If BCH security is reduced, then canonical transaction ordering may not be worth the upgrade.
A Compromise Seems Likely
Ultimately, bitcoin was designed specifically for situations like this. The democratic governance system is based on hashrate. Miners vote on proposals with their hashrate. The proposal with better mining support wins.
That’s why it seems likely that we’ll reach a compromise prior to the November hard fork. Peter Rizun of Bitcoin Unlimited has proposed a compromise designed to keep everyone happy. That compromise involves:
- Add nChain’s op codes (if they’re ready)
- Add OP_CHECKDATASIGVERIFY
- Hold off on lexical / canonical transaction ordering
- Hold off on OP_GROUP
- Implement BIP101 with no cap (this is a permanent solution instead of forking to upgrade blocksize to 128MB)
Bitcoin Improvement Proposal 101 (BIP101) proposes doubling the blocksize limit every two years up to 8GB in 20 years. Some say that’s not quick enough.
Amidst all of this controversy, Craig Wright announced the launch of a new node client called Bitcoin Satoshi Vision (BitcoinSV). The client will launch this September with Daniel Connolly as the lead developer. That version of the software would likely support Craig Wright’s proposals and avoid Jihan Wu’s proposals during the November upgrade.
Bitmain’s Bitcoin ABC software, meanwhile, has already implemented the changes.
Ultimately, these are controversial times in the Bitcoin Cash community. There are huge question marks over whether we’ll see a chain split or a compromise. Fortunately, we have until November to reach an agreement.