The Qubic Protocol — A Recap

The Qubic protocol is a method for running a computer program, by utilizing a set of distributed machines. We call each machine an oracle, and the complete set an assembly. Qubic will enable smart-contract-like capabilities on top of IOTA, where consensus on a computation can be reached without relying on centralized trust. While executing the Qubic protocol, there are two phases: a resource test phase, and a Qubic processing phase. The combination of these phases is called an epoch.

During the resource test phase, the assembly determines what weight to allocate to each participant (aka oracle) in the assembly. Each oracle should be compensated according to its weight (level of contribution). For example, if we have a supercomputer and a cheap laptop working together on a computation, the former should receive a larger share of the rewards. Putting aside the question of distribution fairness, we cannot simply give each oracle an equal share. If we do, we provide an incentive to spin up a very large number of cheap machines, which adds bookkeeping overhead without improving computational throughput.

We can use various techniques to perform resource testing. The simplest tool at our disposal is the Proof of Work (PoW) that is used throughout IOTA. The idea is to give all oracles in the assembly a certain amount of time, say a few minutes, to solve different PoW puzzles. The more puzzles an oracle solves, the more computational power it has, and the larger the share of the bounty it will receive.