Part II - Oracles & quorums

(Link to part I)

In a perfect world we could just go ahead and have the oracles run our computations. But sadly we live in a world where malicious actors try to take advantage of others, either by influencing their results, or by outright stealing from them if they see an opportunity. So we will need to add extra protection against malicious actors. We will need to be able to trust the computation results, no matter which oracle does the processing.

The way this is done in the Qubic protocol is by forcing quorum consensus. Since we cannot expect every oracle to run all existing qubics and verify all results, like certain block-chain solutions do, we use a quorum to come to consensus on results.

This means that in the Qubic system a group of oracles will combine into an assembly where all members will process the same set of qubics, and each oracle will post its processing results for each qubic on the Tangle. This will allow the qubic owners to determine the quorum consensus of the assembly. If they cannot form a quorum (at least 2/3 of the oracles in the assembly agree on the result) then the results will not be accepted by the qubic owner.

The incentive to be honest in an assembly is the same incentive as the one to become an oracle: the reward offered by the qubic owner. This reward will be distributed to the oracles in the assembly that have produced the quorum result for that qubic. If you come up with a doctored or erroneous dissenting result you will miss out on the rewards. The same goes if you decide not to participate in processing the qubic. No processing means no rewards.

Note that a qubic owner can increase the confidence in the processing results by selecting a larger assembly, or possibly even have the qubic processed by multiple random assemblies. It all depends on the importance of the data and the amount of reward he is willing to spend.