Weekly musing #7 - User Activated System Failure?

It will be interesting to watch as UASF activates on August 1.

Bitcoin should be a robust protocol on layers 8 and above :-)

Bitcoin Unlimited

Hopefully kyuupichan's port of the Classic parameter fixes makes it into BU soon. After reviewing it, I like it a lot - the changes should make BU safer to operate. It did show however, that a single reviewer does not catch everything - I missed a reference to 'Bitcoin Classic'!

As the time approaches for another exciting round of votes in BU, I have added two BUIPs which I feel can help:

Dynamic checkpoints

This would offer a general way to address re-org risk when a transition from one blocksize Schelling point to another happens. Currently of course we face the 1MB barrier, but maybe in the (far?) future we face a 32MB barrier etc.

Eventually, dynamic checkpoints could be created when certain conditions on the chain are met (case in point: when the first >1MB block is generated).

Short term, they could offer some resistance against massive re-orgs caused by an attacker. One could conceivably add regular (automated) dynamic checkpointing (e.g. every day, replace the most recent dynamic checkpoint with a new block that is at least a week deep).

Make "sticky gate" optional

In retrospective, I think BUIP038 may have lost support because it did not offer users the choice of running with the "sticky gate" feature. It could also have been bad luck / apathy during that particular voting cycle. Not everyone feels able to vote on such technical issues - this is also part of the problem with increasing complexity - which is what I think may have also killed the counter-proposal, BUIP041.

One thing remains clear: the "sticky gate" was successfully exploited on social media to paint BU in a negative light, using the speculated "median EB attack" which hopes to divide the network by producing a series of larger blocks. Having the feature disabled by default would make BU's "Emergent Consensus" default logic slightly easier to grasp, and would also make it harder to attack in the proposed way.

Bitcoin-ABC

I've created the "dirty" implementation of a 2MB-capable Core, albeit it does scale block max sigops correctly yet (it allows up to 40K sigops per block instead of scaling at 20K per MB). It does however pass the existing test suite.

I've not pushed my private ABC branch yet, as there is still work to be done on it.

BTCfork

I am planning to rebase on latest BU dev again. It would be good to test out dynamic checkpointing in a feature branch of an up-to-date MVF-BU.