What Actually Stops a Transaction

·6 min read·By SSP Editorial Team
SSP Academy cover: what actually stops a transaction

What Actually Stops a Transaction

Every custody product has a features page listing controls: whitelists, spending limits, time locks, approval workflows, IP restrictions. They are all real, and they are all useful. But they are not all the same kind of thing, and treating them as interchangeable is how organisations end up with a security model that is weaker than the marketing implied.

There is a question that separates them cleanly: if every piece of software in the system were wrong or hostile, would this control still hold?

For most of the list, the answer is no. For exactly one, the answer is yes. This article is about telling them apart.

Three layers, not one

Between someone wanting to move funds and the funds actually moving, SSP Enterprise has three distinct barriers. They fail differently, and knowing which is which is the whole point.

Three layers stand between a request and a settled transaction

The layers are not ranked by usefulness. They are ranked by what it takes to defeat them.

Layer 1: the coordination layer

This is the policy engine, and it is where most of the features live. SSP Enterprise supports address whitelists, destination-type restrictions, time locks that delay transactions above a value threshold, rules requiring admin approval over a certain amount, and IP restrictions on organisation access. Policy templates give you sensible presets that then materialise as real, editable rules.

These do genuine work. A whitelist stops a mistyped address from ever becoming a proposal. A time lock gives a treasury team a window to notice something wrong. An approval rule makes a large transfer a two-person conversation rather than one person's afternoon.

What they are not is custody enforcement. These rules live in SSP's software and are evaluated by SSP's servers. They are not part of the vault address, and the blockchain has never heard of them. If the policy engine were bypassed — through a bug, a compromised server, or a hostile operator — the rules would simply not apply.

We state that plainly because the alternative is worse. A team that believes its whitelist is a custody guarantee will size its threshold accordingly, and that is exactly the mistake that turns a survivable incident into an unsurvivable one.

Layer 2: your devices

The second barrier is the pair of devices each signer holds, and it is stronger than the first in an important way: it does not trust SSP either.

When a proposal reaches a signer, their devices decode the raw transaction bytes locally and compare the result against what is being displayed. Recipient, amount, token — read from the bytes, not taken from the server's description. On Solana this comparison is explicit and unforgiving: if the decoded bytes contradict the displayed payload, signing is hard-blocked rather than warned about, because a mismatch there indicates an active attack rather than a rendering glitch.

The devices also enforce their own independent ceiling on fee reimbursements. The relay proposes the fee; the wallet refuses to sign one above a hard-coded maximum regardless of what the relay claims, which bounds any fee-routed drain even if the relay is entirely hostile. Simulation runs before approval too, executing the proposal against current chain state so the review screen can show what the transaction would actually do — that arrived with transaction simulation and risk warnings.

This layer defeats a compromised server. What it cannot defeat is a compromised device, or a signer who approves without reading. It also requires both of a signer's devices, which is why per-signer 2-of-2 matters: layer 2 is only as strong as the weaker of the two devices, and they are deliberately different kinds of hardware.

Layer 3: the chain

The third barrier is the only one that holds when everything else has failed.

A vault's address is derived from the signer set and the approval threshold. A transaction that does not carry the required number of valid signatures is not a rejected transaction — it is an invalid one. Every node on the network independently reaches the same conclusion, and no amount of access to SSP's infrastructure changes that arithmetic.

This is why the threshold is the number that deserves the most thought when you create a vault, and why it cannot be edited afterwards. Setting up your first enterprise vault covers the mechanics; 2-of-2 vs 2-of-3 vs m-of-n covers how to choose the number.

Where each layer fails

Laying out the failure modes side by side makes the design job obvious.

ScenarioCoordination layerYour devicesThe chain
A signer mistypes an addressStops itStops it if they readDoes not care
A signer is phished into approvingStops it if not whitelistedShows the truth; they may still approveDoes not care
SSP's relay is compromisedFailsHolds — bytes are decoded locallyHolds
SSP's policy engine has a bugFailsHoldsHolds
One signer's laptop is compromisedNot designed for thisPartially — the phone still checksHolds
An attacker holds fewer than M signersNot designed for thisHoldsHolds
An attacker holds M or more signersFailsFailsFails

The last row is the honest bottom of the model. Multisig protects against a minority of your signers being compromised. It does not protect against a majority, and no product can claim otherwise without lying. That is why the threshold and the independence of your signers matter more than any feature list.

What this means for how you set things up

Design the vault so it is safe with layer 3 alone. Pick the threshold and the signer set as though the policy engine did not exist. If the answer makes you uncomfortable, the fix is a different threshold or different signers — not more policies.

Then add policies for the reasons policies are good at. Whitelists catch human error. Time locks buy reaction time. Approval rules create a second pair of eyes on large amounts. These are process improvements and they genuinely reduce incidents; they are just not the thing standing between an attacker and your treasury.

Keep your signers genuinely independent. Two signers on the same laptop, in the same building, with the same recovery arrangement, are closer to one signer than to two. The strength of layer 3 comes from the difficulty of compromising M separate people with M separate device pairs.

Make signers actually read the review screen. Layer 2 is the only barrier that can catch a proposal that is legitimate-looking but wrong, and it only works if a human engages with what their device decoded. A rehearsed round-trip when the vault is created helps build that habit while nothing is at stake.

Ask other custody providers the same question. Whether you use SSP or not, this framing is portable: for each control on the features page, ask whether it survives the vendor's own software being wrong. The answers are often instructive, and a vendor that answers clearly is telling you something good about how they think.

For the ways a multi-key setup gets undermined in practice, multisig failure modes and how SSP mitigates them goes through them one by one, and SSP Enterprise: multisig vaults for teams is the overview of how the pieces fit together.

Share this article

Related articles