Thoughts on the upcoming activation of succinctness

This post is to explain some design decisions about our activation of succinctness, the epsilon soft fork.

As many of you know, the PR has been opened, with a plan of activation at block height 61,000. Regularly users don’t have to upgrade before that that but miners and exchanges must, or they risk being forked off on the wrong chain.

The PR is currently undergoing review and will be merged any day now.

  • Activation through a softfork is a defensive strategy: All existing block rules stay in force. That means that the thoroughly vetted consensus rules stay in place. The softfork only adds more rules for what it means for a block to be valid. Stated differently: If there were holes in the new logic, the old logic would still guarantee the soundness of the blockchain.
  • Softfork epsilon leaves a gap in archival vs. succinct block verification: the so-called chunk dictionaries are not verified the same way in the VM as on the host machine. This does not affect the no-double spending guarantee. That works in both models. The reason for leaving this gap is the in-VM cost of the check, which would make block proof production too expensive. This gap will be closed soon.
  • During this development it was discovered that the per-block input limit was less than we anticipated, in the hundreds, not in the thousands where we want it to be. This, combined with the above-mentioned gap, means that the epsilon softfork will be followed up by a hardfork that removed the chunk dictionaries from the blocks. That future hardfork will serve three purposes: increase input throughput per block by at least a factor 10, remove the archival/succinctness gap in block validation, and change the transaction logic to allow for inputs in the coinbase transaction, a feature a smart contract developer has requested.