Bonds form a core element of the Plasma "exit game".
The various bond(s) committed by an exiting user can be awarded to another user who proves that the given exit is non-canonical. They act as an incentive mechanism for users of the OMG Network to exit honestly and challenge dishonest exits.
There are three types of bonds:
- The Standard Exit Bond (committed to starting a Standard Exit)
- The In-Flight Exit Bond (committed to starting an In-Flight Exit)
- The Piggyback Bond (committed to piggyback on an In-Flight Exit and claim an associated UTXO)
How is the size of a bond calculated?
The bond is currently fixed at an amount estimated to cover the gas cost of submitting a challenge.
This amount can be updated by the operator to stay aligned with changes in gas price and gas cost. To protect against a malicious operator setting an unreasonably high or low bond size, the following restrictions are placed on these updates:
- The current bond size can only be modified by +/- 50%.
- A vacatio legis period of 2 days until the new bond size takes effect.
Modeling the "correct" size of the exit bond remains an ongoing area of research.
Why do we have a separate exit and piggyback bonds in an in-flight exit?
Starting an in-flight exit on a transaction and claiming its associated inputs or outputs with a
piggyback are separate concerns.
Consider a transaction
TX1 where Alice sends 0.5 ETH to Bob using an input
UTXO1 worth 1 ETH. The transaction will have two outputs:
UTXO2owned by Bob (0.5 ETH)
UTXO3owned by Alice (0.5 ETH)
Either party can initiate an in-flight exit on
TX1 but both Alice and Bob must piggyback with a reference to their respective outputs in order to exit their funds.
There are also cases where a piggyback can be invalid in the context of a canonical in-flight exit.
Given that the concerns are separate, the bond mechanism is applied separately.