Verifiable Computing

An introduction to the technology behind EXM.

What is Verifiable Computing?

Verifiable computing is a new form of computing that allows the decentralization of software and data by using smart contracts through centralization. This means, verifiable computing can be thought of as a centralized pipeline with a final output resulting in total decentralization. The name of "verifiable computing" is given since anything that happens in the centralized pipeline can be verified by the end user at any point of time in history. This essentially allows taking advantage of the benefits of centralized systems while still guaranteeing a decentralized result, this way, dApps can reach any level of scalability, and a 0% chance of network halts or bad actors as well as much lower costs in interactions and maintainability.
The main idea is that the state of the smart contract can be stored in a centralized server which allows greater performance as consensus is not needed at the time of the processing, but the contract should always be capable of being lazily-evaluated by any users.

How does it work?

In order for Verifiable computing to work, some core parts must be implemented:
  • Executor: A software capable of executing the latest transactions sent and also capable of replying the transactions by lazy-evaluating them.
  • Processor: A centralized pipeline (system) responsible for receiving transactions by a single or multiple users. After receiving the different bulks of transactions sent, processor must re-evaluate the smart contract with the new data.
    • As transactions are received, the latest state of the smart contract must be upgraded and saved with accessibility to the user.
    • The processor is responsible for ordering the transactions, usually by timestamp.
  • Conveyor: A centralized system that establishes a bridge between a data-based blockchain.
    • All the transactions received by the processor must be sent to the conveyor, the conveyor will guarantee the success of storing these operations in a data-based blockchain like Arweave.
After the executor, processor and conveyor have been implemented, verifiable computing can take place as long as the following rules are respected:
  • The source code of the smart contract must be compatible with the executor and must be stored in a data-based blockchain.
  • The smart contract must be written in a way that is fully deterministic over time.
By having the smart contract's source code stored in a blockchain as well as the transactions that are sent to it through the processor and later stored by the conveyor, the end-user is now capable of lazy evaluating this data that was originally processed in a centralized system. This way, the centralized system no longer owns nor represents the source of truth as their version of the state of the smart contract being served can always be verified and proven wrong.