Drift Protocol · April 2026
A 2-of-5 multisig with zero timelock and arbitrary oracle assignment. Governance architecture, not contract logic.
Money movement attack paths
MoveProof models every route from organisational access to funds leaving — identity and cloud, through code and policy, to signature and contract. Then it proves which routes actually work, and hands you the fix.
Illustrative. Every path shown crosses at least three systems that no single vendor models together.
The blind spot
Every incentive in crypto security points at contract logic — reentrancy, arithmetic, flash loans. That is where auditors look and where bounties pay. It is also where almost none of the money goes.
A 2-of-5 multisig with zero timelock and arbitrary oracle assignment. Governance architecture, not contract logic.
A 1-of-3 multisig was the single point of failure in the minting infrastructure — of a MiCA-regulated issuer.
Both parameters sat in public state for months. Neither needed an exotic exploit. No product was watching the authority that produced them, because no product models it.
The category
Money Movement Attack Paths
Every viable route from organisational access to funds leaving — identity and cloud, through code and policy, to signature and contract.
A component in the path, not the path.
One vendor's rules, in isolation.
Stops at the cloud boundary.
Starts once the money is already moving.
What is the minimum path by which one compromised person, machine or account can cause $200M to leave — and how many of the steps require genuine human approval?
That is the only question we answer, and the only one we optimise for.
The product
Not a severity list. The two numbers a Head of Custody actually acts on.
Findings
sorted by value at risk · 4 systems joined · 11 chains
| Sev | Path | Starts at | Humans | Value at risk | Proof |
|---|---|---|---|---|---|
| CRIT | ci-deploy → svc-trading → policy #3 → MPC → out | aws / iam role | 0 | $341,604,882 | executed ✓ |
| CRIT | gh-maintainer → callback code → co-signer → out | github / repo | 0 | unbounded | executed ✓ |
| HIGH | idp-admin → MFA reset → console → whitelist | okta / admin | 1 | $12,400,000 | path proven |
| HIGH | Two approvers share one IdP administrator | okta / group | 1 | $88,200,000 | computed |
| HIGH | Infinite approval to upgradeable spender | safe / DeFi ops | 0 | $18,900,000 | executed ✓ |
| MED | Whitelist entry added by departed employee | custody / wl[7] | — | — | confirmed |
| PASS | Cold vault egress · all combinations | custody / Cold | 2 | — | 128 cases |
Findings. The Path column shows the chain itself, not an isolated observation. Humans is the only number that must be above zero.
Why now
ICT third-party risk requires independent validation. A custodian can prove its engine followed its settings. Only an outside party can prove the settings, identities, dependencies and code together do not create a bypass.
Correct at audit. Then a signer leaves, a role widens, a delay is shortened for a migration and never restored. An annual review structurally cannot catch this.
Roughly half of all realised losses since 2022 trace to key compromise, phishing and social engineering rather than contract logic. Spend and losses point in different directions.
Request an assessment
Read-only, model-only, inside your own environment. One artifact at the end: the shortest path, the amount exposed, and the effective human count.
Platform
Every competitor holds a slice of the authority that moves money. Nobody holds it joined — and the vulnerability is almost always in the join.
Digital Asset Authority Graph
identity & access
build & cloud
signing
policy & chain
two real path shapes
GitHub maintainer→changes callback code→CI/CD deploys→co-signer approves→policy matches→MPC signs→contract transfers $80M
Okta admin→resets MFA for an employee→gains custody console access→adds whitelisted address→broad rule auto-approves→funds leave
The proof
Transaction simulation already ships with every custodian. Our proof begins three or four steps earlier.
assume
Start from a defined blast radius: this identity, this role, this pipeline, this device.
reach
Compute the access that identity actually has — through IAM, through the application, through build paths.
alter
Exploit or change a policy, a code path or an approval state — whatever the reach permits.
sign
Cause a co-signer or a human approver to sign — or find the route that needs neither.
execute
Run the resulting transaction against forked state on an isolated twin. Nothing touches production.
prove
Emit a replayable trace: the amount, the hash, and the effective number of humans in the loop.
Steps 1 to 4 are the differentiator. Everyone can do step 5.
The engine
We compile permissions and policy into a model that can be computed over — and contradicted. The engine answers eight questions.
Who may initiate · who may approve · who may change the policy · which rule wins · which rule is shadowed · which amounts and destinations pass · how many factors are genuinely independent
And the one that catches real organisations: whether two approvers are in fact controlled by one account, pipeline or administrator. Two approvers who authenticate through the same identity-provider admin are one approver.
theorem · checkable proposition
Under assumptions {ci-deploy compromised, whitelist unchanged}, identity svc-trading can cause the transfer of $341,604,882 with 0 additional human approvals.
On language: version one performs exhaustive verification over a bucketed decision space, not automated theorem proving. We say so because a claim you cannot defend is worse than a smaller claim you can.
Inside the product
The attack chain on one side, the executed proof beneath it, and the fix split by the team that owns each change.
CRIT Zero-human egress path from a build identity
aws → custody → chain · 41d old · effective human approvals 0 · value at risk $341,604,882
Attack chain
$ moveproof prove MP-2026-0417 --twin blast radius: ci-deploy compromised reach → alter → sign → execute on forked state EXECUTED 0x9c4e…7f21 moved $341,604,882 humans 0 trace → proof-9c4e7f21.json (replayable)
Remediation — 4 systems
MAX_AUTO = 250_000ci-deploy from the secret policyOwnership
A path, opened. The struck-through line is the control everyone believes exists. It is never evaluated, because a broader rule matched first.
Rules look correct read one at a time. They break in combination — and combinations cannot be read, only computed.
Transaction policy — as evaluated
rules are matched top-down · the first matching rule is the only one that runs
| # | Action | Source | Destination | Asset | Amount | Initiator | Reached |
|---|---|---|---|---|---|---|---|
| 1 | Block | any | non-whitelisted | any | any | any | yes |
| 2 | 2 approvers | Cold | any | any | any | any | yes |
| 3 | Allow | Trading | any-whitelisted | any | ANY | svc-trading | shadows |
| … | … | … | … | … | … | … | — |
| 11 | 2 approvers | Trading | any | any | > 250,000 | any | never |
| 12 | 1 approver | Trading | any | any | > 50,000 | any | never |
| 13 | Allow | Gas | internal | native | < 500 | any | yes |
Egress search — 14,880 combinations evaluated
BLOCKED 11,204 75.3% NEEDS_HUMAN 3,674 24.7% ZERO-HUMAN 2 0.013% ← both unbounded path 1 Trading → wl[7] · any asset · no ceiling path 2 Trading → wl[3] · any asset · no ceiling shadowing rule ...... #3 controls bypassed ... #11, #12 exposure ............ $341,604,882
What-if · independence check
ci-deploy compromised → $341.6M · 0 humansAuthority drift · 5
The replica. The Reached column is the whole finding: it shows which rules are ever evaluated, and which are decoration.
Remediation compiler
A path is closed by simultaneous changes in several places, each owned by a different team. "Fix as a pull request" is a good message and an incomplete product.
After the fix, the same proof fails.
That is remediation evidence, not a recommendation — and it is what an auditor, a regulator and an insurer can each act on.
Deployment
Running adversarial tooling inside a regulated financial institution is a hard sell, and it should be. The system is built so a CISO can approve it.
The graph and the replica run against a model, never production. Day one produces the headline number without touching a live system.
Approved per path, with signed authorisation and a maintenance window. Nothing runs on its own.
Read-scoped credentials that never leave your environment. We hold nothing that can move funds — by construction.
One container in your own cloud. No secret values leave it. Every outbound call is written to an append-only audit log.
Request an assessment
Read-only, model-only, inside your own environment. One artifact at the end: the shortest path, the amount exposed, and the effective human count.
Approach
This map was built by searching for reasons not to start the company. We do not claim these vendors are careless — we claim each architecture and business model stops before the join.
| Who | What they genuinely do well | Where they stop |
|---|---|---|
| Hypernativeruntime threat prevention | Monitors ownership changes, multisig risk, governance and private-key threats across on-chain and off-chain sources, with automated response. | They evaluate events and transactions. They do not model the identity, cloud and code authority that can produce a legitimate-looking transaction in the first place. |
| Fireblockspolicy engine + inspector | Rules by source, destination, asset, amount, user and operation type, plus a policy inspector showing how a transaction is evaluated. | One tenant, and it treats configuration as intent. A vendor grading its own configuration is not independent assurance — which is a regulatory requirement, not a preference. |
| Halborn & auditorsdeep manual review | Expert point-in-time review of contracts and, increasingly, operational setup. | Revenue is per engagement, so continuity is not the product. No engagement catches the permission that widens four months later. |
| Cymulate & BAScontrol validation at scale | Mature adversarial simulation of enterprise security controls. | No model of custody policy, signers, allowances or upgrade authority. Their attack graph ends exactly where the money begins. |
| Blockaidpre-sign transaction risk | Assesses a specific transaction before it is signed. | Judges the transaction in front of it, not whether the organisation's authority allows that transaction to be produced without a human. |
| MoveProof | Proves every viable path from access to unauthorised movement, across every vendor in the stack. | Nowhere — the path is the product. Independent of any custodian, and the only party holding the full join. |
Discipline
The fastest way to lose this category is to become a long feature list. Each of these is a deliberate refusal.
The difference in one sentence: they ask whether something suspicious is happening now. We ask whether the chain exists at all — before the event.
Focus
A combination of rules that lets an API co-signer approve an operation that was never supposed to pass.
An AWS, GitHub or CI permission that allows the code or configuration of a signing component to be changed.
An account or role that can change a signer, upgrade authority, whitelist or contract admin — and move money.
AWS + GitHub + Fireblocks + EVM
Extremely deep on one stack before any expansion. Then BitGo, Copper, Fordefi, Safe, in-house MPC, Azure, GCP, GitLab, Okta, Entra and Kubernetes — in that order, driven by design partners.
Request an assessment
Read-only, model-only, inside your own environment. One artifact at the end: the shortest path, the amount exposed, and the effective human count.
Research
Every path class we describe is one we have executed on a fork against real, public state. Findings against a named organisation are only ever published after coordinated disclosure and a fix.
How top-down, first-match rule evaluation causes amount ceilings and approver requirements to never execute — measured across public and consenting private tenants. Includes the exhaustive method and the reproduction harness.
A method for collapsing approvers that share a controlling identity, pipeline or device — and what it does to the assurance numbers organisations report today.
The class of paths where a CI or repository permission reaches the code or configuration of a signing component. Read-only detection, and what the fix costs.
Vendors and operators get 90 days and a reproduction before anything is published. We name a class before we name a company, and we publish the fix alongside the finding. See Security.
Status: MoveProof is pre-launch. Nothing on this page has been published yet, and we would rather say that plainly than imply a body of work that does not exist. If you want to be notified when the first report lands, tell us.
Request an assessment
Read-only, model-only, inside your own environment. One artifact at the end: the shortest path, the amount exposed, and the effective human count.
Company
MoveProof exists because one of us spent six years as a crypto CISO being asked who could move the money — and had no tool that could answer it continuously.
Kobi Haimovich
Founder & CEO
Yosef Hai Ephraim
Founder, Head of Infrastructure
Or Adar
Founder, Head of Engineering
Where we are
Read-only collectors for AWS, GitHub, Fireblocks and EVM, normalised into one authority graph. The join is the foundation everything else stands on.
The policy decision function, shadowed-rule detection, effective-approver counting, and the three deep paths end to end.
A small number of regulated operators who want their own number before anyone else has it. We are selecting them now.
Request an assessment
Read-only, model-only, inside your own environment. One artifact at the end: the shortest path, the amount exposed, and the effective human count.
Security
We ask operators for read access to the systems that move their money. That obligates us to be specific about what we hold, what we cannot hold, and how to report a problem in our own product.
There is no code path in the product that can move funds. We never request a signing credential, a private key, an MPC share, or an API role with transaction permissions. If a MoveProof credential leaked in full, the worst case is disclosure of configuration metadata — never movement of assets.
One container inside your own cloud account. Secret values are never read — only which principals are able to read them. Nothing leaves your environment unless you explicitly export a report.
Each outbound API request is written to an append-only log with the calling component, the target and the purpose. Proof artifacts are hash-chained so the evidence record is tamper-evident, including against us.
Adversarial execution is opt-in per path, gated on signed authorisation naming the systems, the window and the blast radius. Default operation is model-only and touches nothing live.
Disclosure
Send it to security@moveproof.io. We acknowledge within two business days and aim to confirm or refute within ten.
No legal action for good-faith research within this policy. Credit in the fix note unless you prefer otherwise. A fix timeline given in writing, and told to you if it slips.
Test only against your own tenant or our published test environment. No third-party data, no denial of service, no social engineering of our team or our customers.
When we find an issue in a vendor or an operator, they get 90 days and a reproduction. We publish the class before the company, and the fix alongside the finding.
security.txt: once moveproof.io is live, the canonical policy will be served at /.well-known/security.txt. Until then this page is the policy of record.
Request an assessment
Read-only, model-only, inside your own environment. One artifact at the end: the shortest path, the amount exposed, and the effective human count.
Contact
The engagement starts read-only and model-only. Within the first pass you get one artifact: the shortest path from a compromised identity to funds leaving your organisation, and how many humans stand in the way.
Which custodian, which cloud, which repositories. We tell you what read-only access is needed and what we will not ask for.
Collectors run against read-scoped credentials inside your environment. Nothing live is touched. We build the graph and the policy replica.
Your shortest path, the amount exposed, the effective human count, and a remediation set with an owner per change.
Regulated crypto-asset service providers, stablecoin issuers, custodians, exchanges, OTC and market-making desks, and treasuries or funds holding institutional size on chain.
If you are looking for a contract audit, a bug bounty programme or real-time transaction monitoring, we are the wrong vendor and will tell you so on the first call.
Legal
Short, because we collect almost nothing.
This website sets no cookies, runs no third-party analytics and embeds no external resources. If you email us, we hold that correspondence to answer it and for as long as our commercial relationship requires.
For customers, the product is deployed inside your own environment. MoveProof does not receive, store or process your secret values, keys or transaction data. Configuration metadata stays in your deployment unless you deliberately export a report and send it to us.
The content of this site is provided for information only and is not a warranty, an offer, or security advice for any specific environment. Figures attributed to third parties are as reported by the sources named on the relevant page. Product screens shown on this site are design prototypes, not recordings of a running system, and the data in them is composite and does not describe any real organisation's configuration.
Contractual terms, service levels and liability are set out in the agreement signed with each customer, not here.
Note: these are honest placeholders written by the founders, not reviewed counsel text. They will be replaced with a lawyer-reviewed version before the first customer contract.