Fundamental tradeoffs

The fundamental tradeoff within openOracle is price finalization time versus arbitrage loss, but it only kicks in once we widen the swap fee barrier enough. Let's see how arbitrage loss and finalization time factors in to a real world setting. From our informal proofs section, the arbitrage loss experienced by a passive counterparty can be described as E_init = P(A)*R_i + P(B)*E_0 + P(C)*E_1 where E_1 = P(A) * R + P(B) * E_0 + P(C) * E_1 and E_0 = P(G) * E_1 We can use some real-world numbers and plug them in. For now we will assume a normal distribution. F = 1 stdev implies: P(G) ~= ~0.6 P(A) ~= 0.27 P(B) ~= 0.55 P(C) ~= 0.18 R = R_i = 0.5F

⇒ E_init ~= F/3.7 We will put everything together into a concrete example. Swap fee (F): 1bps Settlement Time: 3 seconds Expected arbitrage loss: F/3.7 Total arbitrage loss is 0.27bps. In terms of expected time to finalization, this is T / P(A) where T and P(A) are settlement time and probability of no dispute respectively. In a -0.5F manipulated report, P(A) is ~0.27. In an honest report, P(A) ~= 37%. We'll say there's a 50% chance of each and split the difference at P(A) = 32%. Plugging this in to the formula yields an expected finalization time of ~9.4 seconds. There may be 2-3 times as many honest reports because of barrier math though. So we have 0.27bps of arbitrage loss with 9.4 second average finalization time. Alternatively, you can make a tradeoff where you set the swap fee higher relative to the standard deviation of returns, and roughly if you halve the expected finalization time you double the arbitrage loss. So let's say you set F = 2 st dev, what happens: F = 2 stdev (2bps) implies: P(G) ~= 0.44 P(A) ~= 0.38 P(B) ~= 0.41 P(C) ~= 0.21 R = R_i = 0.5F

⇒ E_init ~= F/3.2 ⇒ finalization time ~= 3 / 0.38 ~= 7.89 seconds Arbitrage loss is now 0.62, but it doesn't seem like we get much benefit in speed from increasing F. Because of the active manipulations and choice of R=0.5F, we don't get a chance to drive P(A) up very high when F = 2 st dev. But let's try 3, this way the manipulator is forced to play at -1.5F. F = 3 stdev (3bps) implies: P(G) ~= 0.09 P(A) ~= 0.87 P(B) ~= 0.1 P(C) ~= 0.03 R = R_i = 0.5F

⇒ E_init = F/2.21 ⇒ finalization time = 3 / 0.87 ~= 3.44 seconds Arbitrage loss is now ~1.35bps with a 3.44 second average finalization time, just over 1 round. We can see P(A) increase sharply here giving us such a quick finalization time. E_init is converging to the bound F/2 which is established with R = 0.5F. The tradeoff between finalization and arbitrage loss is inverse and strong but it does take time to kick in above F = 1 st dev because of the incentive to manipulate reports at 0.5F. We could try to do the same analysis for the distributions that are more common at these timeframes, but these would still be bound to F for arbitrage loss and likely close to F/2 as the optimal strategy would leave R still near 0.5F. More to follow on this.

Last updated