The majority of contracts which utilize Chainlink for resolution data, require near-instant resolution. We created a fallback dispute mechanism which employs Chainlink for primary resolution’s but incorporates a dispute mechanism.

If the market resolves with data that varies from the API stream, a dispute function is called. When the dispute function is called a dispute bond is crowdsourced, either by users or market creator, and all open interest is locked. An Augur market is created, and open interest is transferred to the Augur market.

Complete sets are purchased in a batch transaction to ensure REP holders have the incentive to provide accurate resolution data. Purchasing complete sets makes these markets non-parasitic. The market immediately enters the resolution period, and no further trading is facilitated via Augur. The resolution data provided by REP holders acts as the final resolution for the market in question. The market resolves, and the escrow contracts distribute open interest to the winning party.

Let’s Unpack What Happened Here

By incorporating a secondary layer of security via Augur’s dispute mechanism, we remove the financial incentive for a Chainlink Oracle Node to operate in bad faith.

Example:

Jane and James decide to place a wager on the outcome of a sports game — each put 10,000 DAI on their team of choice. James bet on the underdog, and it seems his risk won’t pay off as Janes team is up by 20 points in the final half. James scrambles to contact the Chainlink oracle node listed at link.pool. His offer — the payout is 10k DAI if he wins, so he is willing to pay the oracle operator 5k DAI to alter the API data from ESPN. Because the oracle operator can only have his reputation, which is non-tradeable and without financial value, slashed they agree to participate.

On Chainlink today, the market would resolute, and James’ team would be listed as the winner. Jane is, of course, agitated with the altered result, but has no financial recourse to rectify the situation.

Enter Augur — By creating this fallback layer, Jane has an option for recourse. She can dispute the result of the market. Open interest is now transferred into an Augur market where the native resolution mechanic kicks in. The REP holders check the API data, and it returns a different result. The result from the Augur market is used as the final decision.

Jane is happy; she made 10k DAI! James burned 5k DAI by bribing the node operator and loses his initial wager of 10k DAI. The node operator is now blacklisted from use within the event contract for future API requests.

To view the technical implementation on test net, please visit our GitHub repo here. For more information regarding the hackathon please visit our DevPost.