Solidity

Multisig

A multisig is a wallet or account that requires approval from multiple signers before executing a transaction.

No single signer should be able to move funds or change protocol settings alone.

Multisig Explained in Detail

A multisig requires a threshold of signer approvals before a transaction can execute. For example, a 3-of-5 multisig needs three valid approvals from five authorized signers.

Protocols often use multisigs for upgrades, treasury management, emergency actions, and parameter changes.

Smart contract example

A protocol may assign upgrade power to a multisig:

function upgradeTo(address newImplementation) external onlyOwner {
    _upgradeTo(newImplementation);
}

If owner is a multisig, the protocol depends on signer security and threshold configuration.

Multisig in Auditing

Multisigs reduce single-key risk, but they do not remove trust. Auditors still need to review signer threshold, ownership, modules, guards, timelock usage, and every privileged function the multisig controls.

Red flags in code

  • Threshold is 1-of-N, below quorum policy, or too low for upgrade and treasury authority.

  • Signers are unknown, inactive, related, or operationally weak.

  • Multisig can upgrade contracts without delay.

  • Modules or guards can bypass normal approval flow.

  • Privileged protocol actions are split across multiple owners without clear inventory.

  • Signature scheme lacks replay protection in custom multisig logic.

How to test or review it

  • List every contract and role controlled by the multisig.

  • Verify threshold, signer set, modules, guards, and fallback handlers.

  • Check whether high-risk actions also require a timelock.

  • Review custom signature logic for signature replay.

  • Treat multisig ownership as part of access control, not as a replacement for it.

Sources