Skip to main content

Incentive and Effort Mechanism

The objectives of the Incentive and Fee mechanism of MOI protocol are as follows:

  • Enable a predictable cost of executing logic in the MOI network
  • Enable consistent metering across multiple execution environments
  • Enable support for context-specific requirements of participants in a dynamic environment using Modulated Trust
  • Provide appropriate Return on Investment (RoI) for validators based on their reliability and infrastructure capabilities

Node Trust Quotient

Unlike Bitcoin which allows nodes with higher computational capabilities to be the winner, MOI believes that incentivization is driven by a combination of both capabilities and reliability in terms of uptime and a long history of good standing behavior in the network. To solidify this measure, we have arrived at a score called the Node Trust Quotient (NTQ).

The NTQ is a composite measure of capability and reliability generated for every node in the MOI network. It is generated based on hardware characteristics defined as the Infrastructure Quotient (IQ) and network performance and trust defined as the Performance Quotient (PQ). NTQ is expressed as a percentage ranging from 0 to 100.

The NTQ score is arrived at by applying a common formula across each node in the MOI network. That is,

NTQ=(WIIQ)+(WPPQ)NTQ = (W_I * IQ)+(W_P * PQ)

where, IQ is the Infrastructure Quotient representing the hardware capabilities of the node in the network, PQ is the Performance Quotient representing the demonstrated reliability of the validator node, WI is the weighted co-efficient of IQ, and WP is the weighted co-efficient of PQ. Both co-efficient are subjected to changes based on new findings in optimizing the model.

Infrastructure Quotient (IQ)

It is a score assigned to the node based on its hardware capabilities. It is calculated based on the Node Benchmarking Program (NBP) and the ability of the node to perform consistently to its benchmarked score. The score generated by the benchmark is not considered trustable and any attempt to counterfeit it would be detected by its subsequent behavior and its inability to live up to its claimed benchmark. When this counterfeit or impotent behavior is detected, the node must re-rerun its benchmark program, or it will be backlisted/slashed. The benchmark can also be re-run to update the node’s score when hardware capabilities have changed (when the node owner upgrades the node hardware).

IQ is expressed as a percentage between 0 and 100 and has a 40 percent weight towards the NTQ. Hence, WIW_I is currently at 0.4.

Node Benchmarking Program

The Node Benchmarking Program (NBP) is a program that is used to identify the hardware capabilities of a node in the MOI network. The score generated by the NBP is used to determine the Infrastructure Quotient (IQ) of the node which acts as a way to identify the commercial cost of hosting the hardware for a node.

JUG as a compute engine can leverage multiple execution environments, each of which may have varying requirements. The NBP will use a combination of synthetic hardware benchmarking and hardware configuration matching to approximate the node’s CPU power, RAM capacity, Disk space, and Network bandwidth. Each of these metrics is vital to determine the reliability and effectiveness of the node in the system.

Performance Quotient (PQ)

It is a score assigned to the node based on its reliability in the network determined by its participation and uptime. It is calculated based on the number of Tesseracts successfully generated, operated on, and verified by the node. Dropped participation and other delinquent behavior will have an adverse effect on this score. Whenever a node receives a new Tesseract, the PQ of validators involved in its finalization will be updated accordingly. The default value of PQ is 30.

PQ is expressed as a percentage between 0 and 100 and has a 60 percent weight towards the NTQ. Hence, WPW_P is currently at 0.6

PQ=Number of tesseracts verified for W and ANumber of tesseracts generated for W and APQ = \frac{\text{Number of tesseracts verified for W and A}}{\text{Number of tesseracts generated for W and A}}

NTQ Registry Index

The NTQ Registry Index is a table maintained by every node in MOI Network which contains the Krama Node IDs and their respective IQ and PQ values. Whenever a new node joins the network, it will sync its table from its surrounding peer. This table gets updated whenever a new tesseract is received by the node. The structure of the NTQ Registry Index is as follows:

Krama Node IDIQPQ

Table: Schematic representation of NTQ registry index

ANU – The Unit of Effort

An ANU is the basic unit of effort in MOI. It is defined as 1 unit of computing effort which itself is a combination of average CPU cycles, memory bandwidth, disk space, and network bandwidth consumed in one second of an average computation. It is similar to the GAS unit used in Ethereum.

The ANU required for the execution of logic is dependent on the kind of execution environment. We will discuss the different types of environments in subsequent sections but let us establish that PISA and MERU, the environments that run on an EVM and WASM stack machine respectively have different ways of determining effort based on the bytecode opcodes used by these stack machines. We will use the existing effort table for GAS costs used in Ethereum and map that to an ANU cost table. Similarly, we are using the IA-32 opcodes used by WASM and mapping them to determine the WASM effort table.

The average CPU is equipped with a 2.2 GHz clock, which equals 2,200,000,000 cycles per second. By purely mapping ANU to CPU cycles, we get the following:

1 ANU=2,200,000,000 cycles of CPU1 CPU cycle=0.000000000454545 ANU1 \ \text{ANU} = 2,200,000,000 \ \text{cycles of CPU} \\ \, \\ 1 \ \text{CPU cycle} = 0.000000000454545 \ \text{ANU}

We can then determine the cost of executing a logic by metering the number of ANUs consumed during its execution and then mapping that cost to the proposed effort token, FEE.

Fee Model

Estimating Fees

Let us consider a user U who is signing an interaction I from an application A to execute a function F with input arguments G. Let us also assume that the ABI of A mentions that Y number of ANUs is required to execute the function F in a single MOI node. Let us also further assume that MTP has been configured such that at least 10% of the nodes in the MOI network must be part of the ICS.

In this case, the total fee is calculated by multiplying the total efforts by the cost of each ANU.

TFEST=TEESTPATF_{EST} = TE_{EST} * P_A

Where TFESTTF_{EST} is the total estimated fee payable by the signer, TEESTTE_{EST} is the total efforts needed to execute, verify and achieve consensus on the interaction I, and PAP_A is the unit base price of ANU agreed by the majority of validators in the network.

To calculate total effort TEESTTE_{EST}, we add the weighted effort of the generator, operator, and all validators in the ICS.

TEEST=WGEST+WOEST+WVESTTE_{EST} = WG_{EST} + WO_{EST} + WV_{EST}

Where WGESTWG_{EST} is the weighted effort of the generator of the tesseract, WOESTWO_{EST} is the effort of the operator of the ICS, and WVESTWV_{EST} is the summation of effort spent by the remaining validators in the ICS.

WGEST=(1+XG)YWG_{EST} = (1 + X_G) * Y

Where XGX_G is the mean NTQ score of all the eligible nodes associated with the signer account.

WOEST=(1+XMOI)YWO_{EST} = (1 + X_{MOI}) * Y

Where XMOIX_{MOI} is the mean NTQ score of all the nodes in the MOI network.

WVEST=WEEST+WRESTWV_{EST} = WE_{EST} + WR_{EST}

Where WVESTWV_{EST} is the weighted effort made by all eligible nodes, WRESTWR_{EST} is the weighted effort made by all random nodes in the ICS.

WEEST=i=3i=n(ES)(1+Xi)YWE_{EST}=\sum_{i=3}^{i=n(ES)}(1+ X_i)* Y

Where, ii is the iterator in the set of eligible nodes, ESE_S is the set of eligible nodes, XiX_i is the NTQ of the respective eligible node. It is important to note that ii ranges from 3 because we need to exclude the generator, whose weighted efforts are already calculated.

Now, let us understand the weighted efforts by the random nodes in the ICS:

WREST=i=1i=n(RS)(1+XKIP)YWR_{EST}=\sum_{i=1}^{i=n(RS)}(1+ X_{KIP})* Y

As seen from the above equation, WRW_R is calculated by summing up the weighted effort of each node present in the random nodes by multiplying the base effort YY with the mean NTQ of the network XMOIX_{MOI}.

Calculating Actual Fees

As we know, the internal operations of distributed systems can be uncertain. Hence, we calculate the actual fee separately at the time of deducting the fee from the signer account. The actual total fee formula is:

TFACT=TEACTPATF_{ACT} = TE_{ACT} * P_A

Where TFACTTF_{ACT} is the actual total fee deductible from the signer’s account, TEACTTE_{ACT} is the actual total efforts spent by all the nodes in the ICS, and PAP_A is the base price of 1 ANU.

TEACT=WGACT+WOACT+WVACTTE_{ACT} = WG_{ACT} + WO_{ACT} + WV_{ACT}

Where WGACTWG_{ACT} is the weighted effort of the generator of the tesseract, WOACTWO_{ACT} is the effort of the operator of the ICS, and WVACT is the summation of effort spent by the remaining validators in the ICS.

WGACT=(1+NG)YWG_{ACT} = (1+N_G) * Y

Where NGN_G is the NTQ score of the generator node.

WGACT=(1+NO)YWG_{ACT} = (1+N_O) * Y

Where NON_O is the NTQ score of the operator node.

WVACT=WEACT+WRACTWV_{ACT} = WE_{ACT} + WR_{ACT}

Where WEACTWE_{ACT} is the weighted effort made by all eligible nodes, WRACTWR_{ACT} is the weighted effort made by all random nodes in the ICS.

WEACT=i=3i=n(ES)(1+Xi)YWE_{ACT}=\sum_{i=3}^{i=n(ES)}(1+ X_i)* Y

Where, ii is the iterator in the set of eligible nodes, ES is the set of eligible nodes, NiN_i is the NTQ of the respective eligible node. It is important to note that i ranges from 3 because we need to exclude the generator, whose weighted efforts are already calculated. Now, let us understand the weighted efforts by the random nodes in the ICS:

WRACT=i=1i=n(RS)(1+Ni)YWR_{ACT}=\sum_{i=1}^{i=n(RS)}(1+ N_i)* Y

As seen from the above equation, WR is calculated by summing up the weighted effort of each node present in the random nodes by multiplying the base effort Y with the NTQ NiN_i of respective random nodes in the set RS.

Fee Collection

The calculated fee is deducted either from the sender account or from the payer contract, Application developer can deploy a fee delegation contract and specify the contract address as a payer in the interaction input.

Fee Distribution

MOI fee must be shared among all the nodes involved in the ICS. For the above-calculated value, the breakup of these shares is tabulated as shown below:

Total fee deducted (in USD)Generator’s shareOperator’s shareTotal validator’s share
100%70%20%10%

Figure: Fee breakup for all three types of nodes

To calculate the weighted fee share for each node in the Validator node set V, we apply the following formula:

VFEENi=(NTQ(Ni)/NTQSUMV)∗Total validator’s shareVFEE_{Ni} = (NTQ(Ni) / NTQSUM_V) ∗ \text{Total validator’s share}

Where, NTQSUMVNTQSUM_V is the total sum of NTQ scores of all the validator nodes in the validator set, defined as follows:

NTQSUMV=i=1n(V)NTQ(Ni)NTQSUM_V=\sum_{i=1}^{n(V)}NTQ(N_i)

The actual total fee is calculated before the execution of the interaction, and we deduct it before the actual execution begins. If the execution fails due to numerous reasons, we refund the fees back to the signer’s account. However, if the execution is successful, the deducted fee must now be distributed proportionately across all the nodes in the ICS.

Every Validator in the MOI network should deploy a fee/reward distribution contract, the delegators or the validators can withdraw their rewards/fee from this contract asynchronously.

MOI Token Rewards

For each tesseract accepted by the ICS, a predetermined number of MOI tokens are newly minted. The number of tokens minted will be governed by the tokenomics of MOI. Once the MOI tokens are minted by the generator, they are distributed to each node associated with the ICS based on their Performance Quotient (PQ).

Now, the tokens are distributed based on the following formula:

REWARDNi=(PQ(Ni)/PQICS)∗REWARDREWARD_{Ni} = (PQ(N_i) / PQ_{ICS}) ∗ \text{REWARD}

Where, PQICSPQ_{ICS} is the total sum of PQ of all the nodes in the ICS, defined as follows:

PQFCS=i=1n(ICS)PQ(Ni)PQ_{FCS}=\sum_{i=1}^{n(ICS)}PQ(N_i)

Upon successful generation of the tesseract, the rewards owned by validators and observers, expect generator and operator can be claimed from Global Rewards Distribution contract Whereas the rewards of operator and generator are transferred to their respective reward/fee distribution contract.

Validator or Observer can withdraw their rewards by firing a withdrawal. This contract calculates the rewards from the last checkpoint by referring to the respective tesseract.