cothority
cothority copied to clipboard
Calculation of block size uses wrong block-time
When collecting ClientTransaction
s the routine makes sure that the block doesn't get too big. For this to work it applies one ClientTransction
after another to the current. However, two things are not done properly:
- Every
ClientTransaction
is applied to a clean state, not taking into account eventually queued upClientTransaction
s - It uses the wrong timestamp for the block,
now
, where it should be the time set by the leader later
This means that the size of the final block might be off:
- a
ClientTransaction
that depends on anotherClientTransaction
in the same block might produce fewer or moreStateChange
s - a
ClientTransaction
that creates a different set ofStateChanges
depending on the time will produce fewer or moreStateChange
s
Anyway, the attack surface is deemed very little, but it's still written down here...