Benchmarking Bitcoin Script Evaluation for the Varops Budget (Great Script Restoration)

As I understand it, the logic for tapscript was just “keep it roughly the same as segwit”, the logic for segwit was “we’re expanding the blocksize by a factor of up to 4, and that should apply to both the bytes and sigop limits”, and that brings us back to the original block size limit introduction:

+    // Check size
+    if (nHeight > 79400 && ::GetSerializeSize(*this, SER_NETWORK) > MAX_BLOCK_SIZE)
+        return error("AcceptBlock() : over size limit");
+
+    // Check that it's not full of nonstandard transactions
+    if (nHeight > 79400 && GetSigOpCount() > MAX_BLOCK_SIGOPS)
+        return error("AcceptBlock() : too many nonstandard transactions");

which seems to have just been limiting the DoS surface.

So I think there’s plenty of potential for making a more informed decision now, rather than just assuming what we’ve already got is sensible.

1 Like