Formal Verification for Private Onchain Payments

An independent review of Unlink's contract and zero-knowledge circuit surface at commit 7617b3e (May 2026). Unlink lets applications deposit ERC-20 tokens, move value as private notes, and withdraw publicly without exposing a transfer's sender, recipient, or amount. The full report records the evidence, source crosswalk, and remediation status.

Unlink and LFG Labs logos

Our approach

We first run a security review audit to find where the system can fail. Once those issues are fixed, we apply formal verification: mathematically proving the corrected modeled system is fully correct against its formal specification and stated assumptions, with no covered failure modes left.

Findings summary

AreaResultStatus
In scope

Contract and circuit security

No scored findings. No High or Critical exploit path was identified in the audited surface.Reviewed at the pinned source snapshot.
In scope

ZK release engineering, CI, and tooling

11 scored findings: four Medium and seven Low. They covered artifact identity and provenance, verifier hardening, and missing CI/test gates.All 11 were remediated and verified resolved.
Out of scope

Backend, SDK, dashboard, deployment, and operations

Observations were handed to the relevant workstreams, but were not scored findings and carry no audit verdict in this report.All but two observations were verified resolved. Two remain accepted deferrals for deployment/governance and local wallet handling.

Formal Verification Summary

PropertyStatusWhat it establishes
No double-spendProvedA recorded nullifier cannot be spent again.
Verify before mutateProvedProof verification precedes state changes.
Merkle-root bookkeepingProvedA successful insertion stores the root it computed.
Exact token deltasProvedModeled deposit and transfer token movements match exactly.
Cross-note value conservationCircuit boundaryEnforced by the spend circuit, not stated over contract state.

This protects the modeled contract rules with respect to the formal specs and assumptions written by the Verity team. Special thank you to the Unlink team for their professionalism throughout the engagement.

Learn more

Read the full audit report (PDF)

Unlink security and the Unlink trust model.

What is a formal proof? A short introduction for non-specialists.