
Pessimistic ZK Fair Liquidations
Posterior proofs of non-delinquency for efficient and fair liquidations.
Demo
About
The problem it solves Leveraged trading on-chain is challenging because everyone’s positions and stop-loss levels are publicly visible, leaving traders exposed to front-running, MEV, and flash-loan attacks that can unfairly force liquidations. To eliminate this attack vector, we’ve developed a novel zero-knowledge approach that keeps each position’s liquidation thresholds and stop orders completely private. Instead of waiting for an attacker to trigger a forced sale, our system assumes every position is already liquidated and shifts the burden of proof onto the trader: they must supply a ZK proof that, under no possible market scenario, their position could have been liquidated. Only once that proof verifies do they recover their funds. This inversion—“liquidate by default, prove otherwise”—ensures that no adversary can ever discover or manipulate another trader’s liquidation point, making on-chain liquidation both safe and fair.
How it's made
Challenges we ran into We have seen before "Optimistic Rollups", "Optimistic Flash Loans", but why "Pessimistic" and how is this fair? The problem of liquidation in real time requires a solution with active participation. To add privacy to it, we would need to use Fully Homomorphic Encryption (FHE) or Multi Party Computation (MPC), but this would be too expensive and slow, causing additional delay in liquidations, making the system even less capital-efficient. So, how do we solve the problem od liquidation without active participation? Here is the outline: Protocol: - You placed a trade, - we’ll assume you are delinquent, - but, keep trading - you are already (assumed) liquidated! Trader: - I am not delinquent, here is a ZK proof! Protocol: - OK, my precautionary mistake, here is your collateral back.