BCH: Looking back and Moving forward

18 1085
Avatar for AndrewStone
4 years ago

In the years following our fork from BTC, negative events have confronted us affecting the stewardship of a successful cryptocurrency.  Loosely, such a stewardship comprises making technical decisions, growing engineering relationships, building the user community, and protecting the essential qualities of BCH.  Most of these negative events have not alone been serious enough to risk or cause a fork, except for the Infrastructure Funding Plan (IFP) and the issues leading up to the BSV fork.

But on the technical front, we have failed to deliver many meaningful end-user innovations, instead mostly focusing on internal, janitorial work and introducing purposeless complexity and unnecessary change that consumes engineering time.  Three years after the fork, it is incredible we are wrangling over a fix to a fix of a hack.  Specifically, ASERT is fixing problems in the DAA algorithm that I identified in simulation and documented before the DAA was merged[1].  And the DAA itself was a fix to the EDA which was pushed into BCH as an unreviewed pre-fork change.  

Arbitrary deployment of substandard code and willful disregard of evidence-based analysis is not our only technical problem.  We cannot deliver end-user features: zero conf reliability has disappeared for years into an opaque piece of vaporware named “Avalanche” which has discouraged alternatives and at its best will make us a poor copy of the AVA cryptocurrency which, being entirely focused on delivering the best qualities of the Avalanche consensus mechanism, will likely outperform BCH in that regard.  And we waste engineering time: we struggle for months to convince ABC to deploy something as simple as increasing the unconfirmed transaction chain depth.  This reluctance is more for political issues than any engineering justification. 

Let’s take an honest look at Schnorr signatures which is arguably the most exciting feature associated with ABC (note it was Mark Lundeberg who polished and ported code originally written by Core, so ABC’s role was perhaps managing the process?).  What features does it provide the end users that they didn’t have already?  Signatures?  No.  Sure, Schnorr does them better but not in a way that’s immediately meaningful to end users.  Coin mixing?  No, we had that already.  But again Schnorr does it better.  Do you see our lack of end-user focus?

Our engineering ecosystem is shrinking and suffering a turnover rate unhealthy for a complex mission-critical product.  Entrepreneurship is low, with few to no companies using technologies such as CTOR, CDS, Schnorr, and the marginally higher unconfirmed transaction chain depth.  Few engineers bother to contribute based on prior experience with a severe not-invented-here syndrome and the theft of their ideas (examples include DSV/CDS, the BCH specification effort, and now ASERT/Grasberg, and efficient, merkle-path-to-coinbase-only block candidate node to miner communication).  I am unaware of a single technology merged into ABC from a non-Bitcoin Core client.  Regular merges from the Core project that will never scale has put a de-facto soft limit on BCH scalability since ABC cannot deviate significantly from Core and still merge cleanly.

Our user community is qualitatively smaller, shown by the probable departure of SatoshiDice and others, shown by the lack of meaningful token-based efforts, and little adoption of new technologies such as coin shuffle.  Notwithstanding a possible “hot spot” in Australia, BCH acceptance piggy-backs on BTC acceptance, essentially depending on BitPay’s continued support of altcoins.  Quantitatively, these problems are reflected in a coin price that is highly correlated with BTC, but has fallen significantly against BTC and is likely still trending down when one accounts for the general “rising tide” of all crypto right now and the higher beta (volatility) of a lower market cap coin.

We are also not protecting the essential qualities that distinguishes BCH in the cryptocurrency ecosystem.  We gave away the “onchain scalability” narrative to BSV during the BCH/BSV fork and lost 30-50% of our community (based on 2 independent metrics: what the prices settled at and how BU members split).  The IFP proposal and resurrected IFP2 proposal attempt to add a per-block tax that in the IFP a small set of individuals with the right political “pull” would receive. But now, in the IFP2, it is an undisguised looting of BCH as the money goes to a single address.  These IFPs introduce all the moral and practical problems that would come with governing the distribution of unearned money.  Although this proposal was defeated once, ABC has refused to give it up, which is continuing to erode the community's confidence in BCH’s moral grounding as a fair currency.  

Looking at the IFP more abstractly, it becomes clear that it would have introduced a central banking cartel to BCH.  Notably, Grasberg introduces the same central banking, but this time less overtly, by adding code whose sole purpose is to adjust the inflation schedule. It is true that prior code has changed the inflation schedule, but the primary purpose of that code (or at least the stated primary purpose) was to solve other problems.  This is a key philosophical difference from prior algorithms and ASERT, and it changes BCH’s social contract.

By now, it should be evident to most people that these problems stem from ABC and specifically poor leadership in ABC on all four of these key stewardship responsibilities.  

In order to effect change we must be willing to risk a fork, because we cannot control the actions of other parties.   So we must be so certain that our path is better that a split will be irrelevant long term.  I am certain that the path we have taken in the last few years has been disastrous, and I am certain that we can do a better job because among the bad decisions have been voices arguing against them.  Bitcoin Unlimited and I have been a leading voice in the argument against every bad decision and we have paid a political price for this.  But our arguments have been well researched and carefully reasoned, and grounded in good business, end-user responsiveness, good engineering, and good science.

There are loosely three fork outcomes that will be evidenced by price and hash power.  First, the existing BCH but with ASERT fixing the DAA (let's call it BCHfork) may dominate (1), or both forks may end up more or less the same (say within 50%) (2), or ABCfork (ASERT and IFP2) may dominate (3).  These possibilities are comprehensive, any decision to “not fork” by one party implies either 1 or 3.

While one solution would be to simply choose a more qualified individual to lead BCHfork, let me propose a different plan.  My plan will minimize surprises and allow those who do not share the plan to exit early.  My plan is simply to actually HAVE a plan.  We must create a clearly defined vision and execute on it.  This should streamline development and minimize politics because if people do not agree with the plan, they should not join the community.   

With fork outcome 1 (BCHfork has most of the value), we execute this plan at a fast-but-careful pace, cognizant of the trust given to us as stewards of significant value, but realizing that BCH is leaking value and we need strong moves to reverse the trend.  In the case of fork outcome 2 and 3 (even split or ABCfork has the most value) we recognize that success in competition to BCH and BTC (and BSV and ETH) is of paramount importance and deliver features at a rapid pace. 

Fundamentally, I am not interested in being a leader in the zombie-coin BCH has become, or in a BCHfork that continues in the non-productive manner of the last few years.  I am interested in disrupting the entire world’s financial infrastructure.  This vision responds to end user use cases or even a good story (because the only way to prove a use case is to create a competitive crypto).  This will require that leaders respond to community/user needs and deliver best-in-class functionality matching or anticipating market trends rather than trailing trends.  This requires leaders to say YES (pending a security review) before saying no, and for you the community members to say YES and most importantly refrain from saying no to ideas that you have little or no involvement in.  

We will require a massive effort to catch up, since the industry and world have moved forward while BCH wasted time with janitorial work.  We need to simulate permissionless innovation in an intrinsically permissioned blockchain until the blockchain is itself sophisticated enough to not require such.  This will require delegation of tasks, trusting each other’s general competence, and tolerance of imperfect details, rather than having every engineer in this community analyze and become an expert in every proposed technology.  This will require that we deliver what we technically see as best now (and iterating as problems become apparent), rather than waiting for an indefinite time for the best solution.

A BCHfork Vision and Roadmap, Loosely In Order of Importance

  1. (HF) Groups: Miner enforced, script-aware fungible and nonfungible tokens, with covenants (contracts that are applied by the token originator to any token transaction).  A quantity of BCH can also be placed within a group and therefore be controlled by a covenant.

  2. (HF) Smart contract features:  OP_PUSH_TX_STATE (transaction introspection), OP_BUFFER (allows large P2SH scripts), OP_PLACE, OP_EXEC (interfaces the covenant with the redeem script), and others as they become apparent.  Groups and these smart contract features combine to provide efficient DeFi capabilities, competing with Ethereum and drawing developers to BCHfork.

Groups, covenants and smart contracts together allow any rule expressible in BCH script to apply to an “opt-in” subset of BCH or to a token.  These technologies taken together allow any new BCH script expressible consensus rule to be imported into the blockchain.  This functionality will massively reduce the pressure to hard fork to add extra features.  It is even possible to constrain the use of new opcodes to specific groups, so that only BCH and tokens in such a group can use the new opcode.  If groups are used in this fashion, the risk of deploying new opcodes is reduced since only the value within these groups are exposed to the new opcodes.

  1. (no fork) Doublespend notifications and deep DS notifications 

  2. (no fork) Deep unconfirmed transaction chains

  3. (HF) Large Integer opcodes.  This is fundamental smart contract infrastructure, but specifically allows efficient implementation of contracts and many other signature or decryption algorithms.  Going bigger than 256 bits makes our cryptographic primitive faster and more efficient than ETH which must build big nums out of 256 bit numbers.

  4. (no fork) Counterparty and protocol discovery (CAPD).  Allows wallets to discover and interact with peers anonymously.

  5. (simple, bump-a-number fork, but a lot of underlying work for some full nodes) Transaction scalability to 512MB blocks per 10 minutes

  6. (HF) Rapid, efficient UTXO access and UTXO commitments (UTREEXO or Peter Rizun proposal).  This helps deliver scalability, and UTXO commitments are very useful in an SPV wallet context.

  7. (HF) Block time reliability and unconfirmed transaction reliability through Storm/Bobtail

Once these features are deployed, we will have a scalable, efficient, smart-contract capable, reliable, light-wallet friendly, DeFi capable blockchain.  At that point we need to slow the changes dramatically to focus on application level development.  But we will be able to still respond to the community because most desirable extensions will be expressible in BCHscript, and enforceable within group constrained BCH or tokens.

We must then focus on building the end-user applications that this infrastructure will enable.  I am not worried about a low value coin.  All “alt-coins” today are so low value today compared to the potential market as to be essentially equivalent.  And any and every cryptocurrency today is equivalently one “killer app” away from domination.  I am worried about the lack of technical progress that will block a killer app from ever being created, and a coin’s value trend showing falling interest by the people who will build those apps.  We need to deploy the infrastructure needed for diverse applications and then grow and deliver an ecosystem and community that finds that killer app.


27
$ 1006.44
$ 1000.00 from @MarcDeMesel
$ 2.38 from @TheRandomRewarder
$ 1.00 from @Howelzy
+ 12
Avatar for AndrewStone
4 years ago

Comments

Fundamentally, I am not interested in being a leader in the zombie-coin BCH has become, or in a BCHfork that continues in the non-productive manner of the last few years. I am interested in disrupting the entire world’s financial infrastructure.

Exactly.

$ 0.00
2 years ago

Once these features are deployed, we will have a scalable, efficient, smart-contract capable, reliable, light-wallet friendly, DeFi capable blockchain. At that point we need to slow the changes dramatically to focus on application level development. But we will be able to still respond to the community because most desirable extensions will be expressible in BCHscript, and enforceable within group constrained BCH or tokens.

Nice one 👍

$ 0.00
4 years ago

Hope BCH goes high.

$ 0.00
4 years ago

[1] where is the reference to this lol

$ 0.00
4 years ago

https://medium.com/@g.andrew.stone/tail-removal-block-validation-ae26fb436524 skip down to the "Manipulating difficulty for profit" section if you want to go directly to where I describe the algorithms.

$ 0.00
4 years ago

[deleted]

$ 0.00
4 years ago

BU is so extremely scalable to no purpose or value that we haven't bothered to retest in a year or so. But scalability is a big part of the vision that I outlined, since new features will bring new adoption.

But your comment is moving towards exactly the social/cultural problem that I identify in the article. I say "moving towards" because you don't really say "I will block groups and smart contracts", but for exposition let's imagine that's how you really feel.

Why? If you don't want to use these features, then don't. But why block them? Needs don't go away, people do. I shouldn't have to convince you I have a real, legitimate need or valuable idea here -- this is impossible without producing a competitive crypto and building a successful product around the feature. All I should have to convince you is that the idea is secure and has a greater market/adoption potential (not proof, but only potential) than the janitorial work we have been doing. This is a very low bar right now.

$ 0.00
4 years ago

I deleted my original one-sentence comment, which was too broad and a bit negative. I mainly agree with your article, and what you say here.

$ 0.00
4 years ago

I can't speak for all the details. But in general terms I agree very much with the sentiment of your write-up here.

$ 0.00
4 years ago

No. We don't need to stick to a plan. That's exactly what amaury was doing. We need governance tools https://read.cash/@tula_s/briefly-on-governance-f6e921fb

$ 0.00
4 years ago

One point that should be baked into the system:
Some kind of time-span constrained
free and open announcement+examination+discussion
of code changes/implementations,
always beginning in BCH community media.
[Whatever "flaws" may exist in the BCH media community
can be improved under the pressure of public scrutiny.]
In the hindsight of recent infamy this is fundamental.
Whether for Bobtail vs Avalanche, forks,
or adding "Large Integer opcodes" or anything
we all need the ability and resources to read clearly,
point by point, codelines as possible, what is proposed,
be it devop, nodeop, investor or end users.


We all definitely want improvement
but financials value examinable evolution over buzz-word blinging.

$ 0.00
4 years ago

Most of these negative events have not alone been serious enough to risk or cause a fork, except for the Infrastructure Funding Plan (IFP) and the issues leading up to the BSV fork.

Neither the fake "issues" leading up to the BSV-attack-fork nor the IFP are serious enough to make a fork worthwhile for BCH.

$ 0.00
4 years ago

Clearly the people who forked and formed BSV thought differently. You don't get to decide. Everyone decides for themselves.

$ 0.00
4 years ago

The excuses the BSV team came up with at the last minute to justify their failed attempt to capture BCH with a 51% attack were an obvious sham. The BSV project is also an obvious ongoing sham. If they stopped pretending to be a real Bitcoin (sufficiently decentralized (un-stoppable) peer-to-peer electronic cash for the world's people) and admitted to being a private corporate chain we might be able to take them more seriously.

$ 0.00
4 years ago

You might imagine that I had an bit of an inside track into what was going on (maybe you did too, but IDK based on your user name). But anyway, I'll summarize it for you: the BSV group couldn't get any of their desired changes in (scalability in a variety of metrics) due to the ego and control issues in ABC that ought to be incredibly apparent to you by now. So they started pushing back and calling bullshit on ABC features, expecting a bit of feature-for-feature "horse trading" and compromise.

No compromise was forthcoming so they unleashed CSW's full smoke-and-mirrors "vision" in a game called brinkmanship. ABC stupidly resisted every single BSV feature request which allowed BSV to DEFINE the ABC platform -- in particular to steal the "scalability" narrative from BCH. By doing so they pulled between 1/3 and 1/2 of our users (based on 2 metrics: price and BU membership) and a billionaire onto a separate currency which was a total win for them because they went from having 0 ability to set hard forking agenda to 100% ability for 1/3 to 1/2 of the community. They totally pwned ABC.

Fortunately for us, CSW's vision is a regression to a technologically limited blockchain specified by dropping an arbitrary marker on the BTC evolution so is unlikely to survive in the medium to long term.

$ 0.00
4 years ago

I believe most of your account and consider it consistent with my comment above it. I do not doubt that ABC resisted their attempts to add code changes to BCH. I doubt they were good ideas, but I am not qualified to determine that. I believe the user support you suggest is mostly fake and comes from what I call the tiny-troll-army BSV employs to fool the public. It is small but aggressive on social media. Any rich group can hire hash and fork on any agenda they want to. I believe BSV's claims of significant increased scaling ability are false and their data used to prop up those claims is used in a questionable way. I believe your comment does support their view of the world which I believe is dishonest. If I am right, you may be fooled or helping them fool the public.

$ 0.00
4 years ago

Hey Andrew,

I see you focus in your personal roadmap a lot on new features, likely to compete with ETH and such which already have them, is that about right?

What do you think about the effort of making Bitcoin Cash ready for the money usecase? Is that a worthy priority? I think that may well be the biggest selling point for Bitcoin Cash is, as the name says, Cash.

While your priorities are your own and you can work on whatever you want, I do think you need to argue your case if you want to take a left turn and get everyone to follow. I like you put my Double Spend Proof item on your list, that is one big step for the Cash usecase, but hardly the only one.

Maybe getting Bitcoin Cash working as money can be a priority, especially since you claim your roadmap is to be the one and only, don't you think that makes sense?

$ 0.05
4 years ago

This IS the money use case. Without this, we make an electronic money for yesterday's fiat applications. The future money needs to interact easily, without friction, with other electronic objects (tokens). It needs to interact with active contracts (contracts whose "default" operation does something), rather than the dead paper contracts we have today or their electronic equivalents.

$ 0.00
4 years ago

Without this, we make an electronic money for yesterday's fiat applications.

Is there something wrong with the fiat applications the world uses today?

It doesn't sound bad to aim to integrate with todays world. I always thought it best to replace one product (money) with a better one, your strategy of replacing the entire worlds software doesn't sound viable.

Anyway, that is a difference in opinion that should not really be relevant for the entire network. I still would like to see more upgrades that are relevant for the "yesterdays applications", also known as the way we do money in the world :-)

$ 0.00
4 years ago