Analysis of network incindent on Dec, 6th, 2021

Really weird thing happened on Dec, 6th, 2021, between 4 and 7 AM UTC. Somehow miners generate blocks which failed validation (except of few ones generated with no transactions and finished in the widely recognized blockchain).

In short, the issue was about a transaction which passed checks during block generation but then failed verification on other nodes with an error during AOT costing, the most complex part of the ErgoTree interpreter. Unfortunately, logs did not contain full information to replay the issue with confidence. After some time the tx got into a block which passed validation.

While we’re still doing investigation, we recommend miners to update to a minor release 4.0.16.1 Release Ergo Protocol Reference Client 4.0.16.1 · ergoplatform/ergo · GitHub , which tries to use interpreter during candidate generation in the same way as during block verification, also fixing possible context inconsistency issues. This version also dumping execution context into logs when transaction verification fails, to make verification easily reproducible with logs given.

However, complexity of interpreter with AOT costing is a problem per se, thus we will propose 5.0 soft-fork introducing simplified interpreter with JIT costing soon. Another long-term direction to follow is to incentivize developing alternative block assemblers.

4 Likes

Is this hiccup what caused a large amount of hash rate to drop yesterday? developing alternative block assemblers is a very good idea.

2 Likes

Believe this chart is inaccurate and was due to 2miners being out of sync. Drop was about half that.

1 Like