Execution & proofs
A prong executes only with on-chain proof of its trigger.
proveTrigger#
The protocol that placed the prong calls proveTrigger(holder, prongId, proof). The contract then checks, in order:
- The prong is active and not expired.
- The asset is not frozen. See Market hours & freeze rules.
- The market for the asset is open.
- The trigger's verifier accepts the proof.
If every check passes, exactly claim tokens move from the vault to the protocol. Nothing else moves. Junior prongs move up one rank.
Proofs#
A proof is data the trigger verifier can check on-chain. It usually references:
- a Chainlink round for the asset price;
- state in the protocol's own contracts, such as a loan's health factor or an option's exercise.
The verifier is fixed when the prong is placed. It cannot be changed afterwards.
Slashing#
Part of a trigger can depend on the protocol's own state. If a prong executes without valid proof, the placing protocol's $BZL stake is slashed.
Invalid execution is established by a challenge against the proof within a challenge window. The window length is a deployment parameter and will be published before launch. A successful challenge slashes the stake. The holder is compensated from it, up to the value seized.
What stays#
Execution touches only the executed prong's claim. The rest of the vault, other prongs and the free remainder are unchanged.