Skip to content

Add dispute-game economics: challenger bonds, slashing, and terminal … - #672

Merged
Mimah97 merged 2 commits into
Vatix-Protocol:devfrom
jhayniffy:dispute-game-economics-jhayniffy
Jul 30, 2026
Merged

Add dispute-game economics: challenger bonds, slashing, and terminal …#672
Mimah97 merged 2 commits into
Vatix-Protocol:devfrom
jhayniffy:dispute-game-economics-jhayniffy

Conversation

@jhayniffy

Copy link
Copy Markdown
Contributor

closes #661

This PR completes the dispute-game incentive mechanism by introducing balanced bonding, fair reward distribution, and a clear terminal resolution process for unresolved disputes.

Changes
Added a challenger bond requirement for dispute initiation.
Implemented win/lose payout logic for proposers and challengers.
Added automatic/governed slashing of incorrect proposers.
Refunded or rewarded bonds based on the final dispute outcome.
Introduced a terminal dispute state after MAX_APPEAL_ROUNDS (3), allowing disputes to be resolved through arbitration or marked as void, preventing markets from remaining indefinitely unresolved.
Impact

These changes strengthen the protocol's dispute economics, discourage malicious proposals and frivolous challenges, and ensure every dispute reaches a deterministic on-chain conclusion.

jhayniffy and others added 2 commits July 30, 2026 00:21
…arbitration/void

Challenging a resolution candidate was free, letting an attacker stall
resolution indefinitely by repeatedly disputing at zero cost. A losing
challenger could also never lose their stake, and a candidate that
exhausted its appeal rounds (or was simply abandoned mid-dispute) had no
path out of `Challenged`, permanently locking user collateral.

- `challenge` now requires a bond (>= MIN_CHALLENGE_BOND_AMOUNT), locked
  in the contract alongside the proposer's bond and recorded per-candidate
  across every appeal round.
- `finalize` (and the new `arbitrate_uphold_proposer`) refund the proposer
  and slash every recorded challenger's bond, split reward/burn/treasury.
- `void_market` (admin, timelocked via ARBITRATION_TIMELOCK_SECONDS since
  the last challenge deadline) slashes the proposer's bond instead, refunds
  challengers, and calls a new market-contract `void_market` entrypoint
  (gated to the registered resolution contract) to cancel the market so
  collateral becomes reclaimable rather than stuck.
- New events for bond lock/slash/reward/void; unit tests cover the bond
  requirement, the documented split, an adversarial multi-round griefing
  scenario, and both terminal arbitration paths.
@Mimah97
Mimah97 merged commit 5b77ab0 into Vatix-Protocol:dev Jul 30, 2026
0 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Challenge economics: challenger bonds, slash routing, and post-MAX_APPEAL arbitration

2 participants