Skip to main content

Concepts

Fundamental concepts frequently used when discussing Dioxide

State/State Variable

A state is the description of the status of a system waiting to execute a transition.

Persistent data is represented by state variables. These values get stored permanently on the blockchain.

State Machine

A state machine is a mathematical abstraction used to design algorithms. A state machine reads a set of inputs and changes to a different state based on those inputs.

In PREDA, when smart contract states are divided, each divided part form an independent state machine.

Virtual Machine

A virtual machine (VM) is the virtualization or emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination of the two.

In the Dioxide multi-chain network, each chain is compatioble with one Dioxide virtual machine.

Function Invocation

Function invocation is used to execute the function code. The code inside a function is executed when the function is invoked

Scope

Scope Ω is the context of smart contract function execution, defining a collection of state variables and functions available for access and invocation

Programmable Scopes

PREDA generalize the basic division idea to scope, with the programmability that division schemes can be defined in smart contracts by developers. A ledger state can be divided by any data types besides address, and be instantiated in customized ways.

Parallelization

Parallelization is the act of designing a computer program or system to process data in parallel. Normally, computer programs compute data serially: they solve one problem, and then the next, then the next. If a computer program or system is parallelized, it breaks a problem down into smaller pieces to be independently solved simultaneously by discrete computing resources.

In a multi-chain system, each sequential state machine (a chain) operates independently, and jointly forms a parallel computing system with message-passing (relay transactions) for inter-thread coordination. PREDA model leverages existing parallelism of the multi-chain system by distributing ledger states and transactions across these chains.

Functional Relay

An innovative feature of PREDA programming model, "Functional Relay" is the approach for handling asynchronous calls dealing with data dependency.

PREDA generalizes the way of expressing cross-chain workflow in smart contracts to Functional Relay. It enables any function invocation (an initiate function) executed on one chain to trigger one or more subsequent asynchronous invocations of functions (relay functions) in other chains

It is programmable and flexible with the prerequisite that the security of relay across chains is ensured by the underlying consensus system.

Functional Relay