zeitgeistpm/zeitgeist

[Parimutuel] Require to match the first bet

sea212 opened this issue · 0 comments

The first account to enter a parimutuel market exposes itself to a greater risk, as opposing bets can have an arbitrary. This means that the opposite party has the advantage of winning the whole first bet with an arbitrarily small bet.

Example:

  1. Parimutuel market with two outcomes A and B exists
  2. User1 bets 50 ZTG on A
  3. User2 bets 0.000001 ZTG on B

Obviously User1 poses himself to a much greater potential loss than User2 for a much lower potential gain. User1 could counteract this risk by starting with an arbitrarily small initial bet, but this ultimately leads to a liquidity bootstrapping issue.

The proposed solution is to always enforce that the first bet has to be matched by an opposing bet completely. In the given example above, this would mean that User2 has to bet at least 50 ZTG on outcome B.
This solution has two drawbacks:

  1. Should User1 start with a very low initial bet, the liquidity bootstrapping problem would still exists
  2. Should User1 start with a very high initial bet, it will lock out many accounts from betting until someone with enough funds can match the bet.
    Those drawbacks can be mitigated by enforcing the first bet to be within a range, for example between [10, 1000] ZTG.