Alternative way to count sigops



Summary:

In a recent thread on bitcoin-dev, Johnson Lau pointed out the current block weight limit of 4,000,000 and sigop limit of 80,000, which means each sigop couldn't use more than 50 weight units. For new script proposals, there is a suggestion to count the actual number of sigops at execution and ensure that the number of executed sigops multiplied by 50 does not exceed the size of the input. Bitcoin Core has had a related policy rule for some time where the weight of a transaction for mining purposes is max(weight,lambda*sigops), but lambda has been set lower than ideal due to limitations in checkmultisig. This policy replaced an earlier one that rejected transactions with too many sigops per byte count, but it was found to block sensible transactions. Going forward, this may not be an ideal framework since many new operation proposals may have computational costs that require relatively small amounts of additional input, such as aggregation.


Updated on: 2023-05-20T05:13:51.220360+00:00