MultisigISM
is one of the most commonly used ISM types. These ISMs verify that m
of n
Validators have attested to the validity of a particular interchain message.
MultisigISM
modules:
Types.MERKLE_ROOT_MULTISIG
Format of metadata:
Component | Length (bytes) | Description |
---|---|---|
1st component | 32 | Origin merkle tree address |
2nd component | 4 | Index of message ID in merkle tree |
3rd component | 32 | Signed checkpoint message ID |
4th component | 1024 | Merkle proof |
5th component | 4 | Signed checkpoint index (computed from proof and index) |
6th component (len == threshold * 65 bytes) | threshold * 65 | Validator signatures |
Types.MESSAGE_ID_MULTISIG
Format of metadata:
Component | Length (bytes) | Description |
---|---|---|
1st component | 32 | Origin merkle tree address |
2nd component | 32 | Signed checkpoint root |
3rd component | 4 | Signed checkpoint index |
4th component (len == threshold * 65 bytes) | threshold * 65 | Validator signatures |
MultisigISMs
must implement the IMultisigIsm
interface.
MultisigISM
implementations (including a legacy version and more gas-efficient versions deployable via factories) that application developers can deploy off-the-shelf, specifying their desired configuration.
To configure a MultisigISM
instance:
n
Validators on each origin chain.m
) of Validator signatures required to confirm a message.MultisigISM
to use any validator that’s running on Hyperlane.
MultisigISM
implementation provided in the Hyperlane monorepo. The primary customization involves implementing the validatorsAndThreshold()
function.
Custom implementations allow developers to adjust the security model to meet the needs of their application. For example, a custom implementation could vary the number of signatures required, based on the content of the message being verified.