Qubic – Details on the most significant project built on top of IOTA
What is Qubic?
In short: Qubic began life as as an initalism-turned-acronym, QBC, which stands for quorum-based computation.
Specifically, Qubic is a protocol that specifies IOTA‘s solution for quorum-based computations, including such constructs as oracle machines, outsourced computations, and smart contracts. Qubic provides general-purpose, cloud- or fog-based, permissionless, multiprocessing capabilities on the Tangle. In the long term, Qubic will allow people to leverage world-wide unused computing capacity for a myriad of computational needs, all while helping to secure the IOTA Tangle: an IOTA-based world supercomputer.
More generally, a qubic is a what we call a packaged quorum-based computation that occurs according to the Qubic protocol. Below are some examples of different types of qubics – while they are distinguished here for clarity, they are all nevertheless variations on a single, general-purpose concept: the quorum-based computation, or qubic.
When processing computations involving a decentralized database like the Tangle, it is difficult to obtain data that comes from the real-world, or otherwise originates outside of the execution environment.
Qubics access external data through an oracle machine, which serves as a lens between a qubic and the world outside. The protocol allows for reading and transmission of data to occur while maintaining a high degree of certainty about the consistency of the data in question. Moreover, while this technically means that the oracles themselves (e.g., the external actors such as users, or machines that provide sensor data) fall outside the scope of the protocol, Qubic can nevertheless also provide a high degree of certainty about the correctness of the data in question via the quorum.
Qubic uses oracles (and consequently, oracle machines) in this way to provide the input data relevant for quorum-based computational tasks. Some examples of such input data are:
- Temperature data from real-world sensors
- Current or historical stock value data from the stock market
- Personal attributes, like current age, marital status, deceased status
- Election results
For any computational device, there will always be tasks too resource intensive for the device to compute, or tasks that require data beyond what is locally available. This is especially true for the devices that comprise the Internet of Things (IoT). These devices are typically limited by lack of memory, processing power, energy availability, or all of the above. What if such low power devices could simply outsource intensive computations to an external, more capable machine?
Qubic enables exactly such outsourced computations, and allows secure, permissionless participation for consumers and producers alike. The protocol allows anyone to create or request to run a computational task on one or more external devices, which in turn transmit the results back to the requester. Similarly, anyone can find tasks and participate in processing them.
As with oracle machines, this processing takes place in a decentralized and secure way, with the Qubic protocol ensuring that the results can be trusted to a high degree of certainty.
Generally speaking, smart contracts eliminate the need for third party enforcement by encapsulating contractual obligations in software, to be autonomously verified and enforced. Anyone with access to the contract can verify that a specific event will always result in a specific outcome. While it is expected that smart contracts may be used in the future to replace many kinds of real-world paper contracts, to date the most common use case for smart contracts is to create virtual tokens which inherit many of the properties of the distributed system in which they are created.
While Qubic is of course capable of supporting these kinds of traditional smart contracts, the combination of fee-free transactions together with general-purpose quorum-based computation opens the door to entirely new possibilities. For example, a smart contract could be used to aggregate temperature data from different oracles into an average temperature, which gets published to the Tangle periodically. The smart contract has now become an oracle in and of itself – that is, the contract itself has become a source of external data, available for an oracle machine to pick up and send back to some other qubic.
These types of smart contracts are also just iterations on the more general capacity for quorum-based computations. Qubic therefore also provides a standardized way to define, validate, and enforce the results of a smart contract to a high degree of certainty.
PUTTING IT ALL TOGETHER
As imagined in the Qubic teaser video, here is a set of qubics (specifically: an oracle machine, an outsourced computation, and a smart contract) which work together and evolve over time to do something useful – in this case, foreign exchange trading.
- Exchange rate qubic: serves as a primitive oracle machine that periodically publishes the exchange rate on the Tangle. The data originator may be predefined or not. In this scenario the oracles fetch data from beyond the Tangle environment which is impossible to get via other means.
- Forex prediction qubic: takes the data supplied by the exchange rate qubic and predicts the rate for the immediate future. In this scenario the oracles perform intensive outsourced computations, which would be too difficult or expensive to do on low-level devices.
- Portfolio management qubic: takes the data supplied by both of the above qubics and sells or buys pegged virtual USD for pegged virtual EUR. In this scenario the oracles execute a smart contract which allows the owner not to have to handle all trading manually.