Currently the transactions need to be executed in strict order of the nonce (as a normal ethereum transaction). This was done to save gas and to ensure that specific actions (adding owners/ removing owners/ changing threshold) don't get mixed up.
By adjusting that adding/ removing owner increments/ decrements the threshold by 1 instead of allowing to specify the threshold can prevent issue with potential owner changes mess ups (see formal verification for details)
If the order of transaction is important (which normally means that the transactions depend on each other) then batched transactions should be used.
The increase in gas costs can be minimized to a couple thousand gas by using a bucket based strategy (each storage slot can store up to 256 flags for used nonces).
Currently the transactions need to be executed in strict order of the nonce (as a normal ethereum transaction). This was done to save gas and to ensure that specific actions (adding owners/ removing owners/ changing threshold) don't get mixed up.
By adjusting that adding/ removing owner increments/ decrements the threshold by 1 instead of allowing to specify the threshold can prevent issue with potential owner changes mess ups (see formal verification for details)
If the order of transaction is important (which normally means that the transactions depend on each other) then batched transactions should be used.
The increase in gas costs can be minimized to a couple thousand gas by using a bucket based strategy (each storage slot can store up to 256 flags for used nonces).