Let's assume you have a Safe with 3 owners and threshold 2. You have initiated a transaction, signed it, but immediately afterwards decided that you would rather like to cancel it. You hit "cancel" and signed the cancellation.

In the Gnosis Safe interface you might have noticed, that your transaction is still present. It will show that you have both "confirmed" and "rejected" it. Also, other owners can still confirm or reject it.

The transaction won't disappear even in the case you did all actions "off-chain".

The reason for this is, that signatures cannot be "taken back". Once a signature is out there, you can ask others to delete it, but you can never be 100% sure.

This is comparable to a physical signature you have put on a sheet of paper and sent to someone else via mail. You can ask that other person to throw away the sheet. But you can never be 100% sure.

The Gnosis Safe supports off-chain confirmations. Those are stored on our backend service. In order to "take back" a signature, the confirmation could be just deleted from the backend. However, a user cannot be 100% sure that this actually happened. There is no way to prove this.

The only way to ensure that your signature cannot be used by someone else, is to "consume" the nonce of that transaction. Every Safe transaction has a nonce. The Safe nonce is incremented with every executed transaction by 1. Each number can only be used once.

Hence in order to be sure that your signature for a transaction with nonce x can not be used by someone else, is to sign and execute another transaction with the same nonce and execute it.

Did this answer your question?