Fees

Darknodes power RenVM by contributing network bandwidth, computational power, and storage space. As such, operating a Darknode incurs a financial cost. To incentive Darknodes to contribute their resources, there needs to be a financial incentive.

Furthermore, the security of RenVM is built on the assumption that acquiring 100,000 REN is non-trivially expensive. The greater the cost of the bond, the greater the security of RenVM. If Darknodes are earning rewards for their contribution of resources, this naturally establishes a cost for REN.

Fees

To compensate Darknodes for their work, users of RenVM are required to pay fees. These fees are paid to an Ethereum smart contract, known as the Darknode Payment contract. Once per payment cycle, the Darknode Payment contract distributes these fees evenly to all Darknodes as a reward for their work. Payment cycles happen once every four weeks. Only Darknodes that are actively powering RenVM during the payment cycle are rewarded.

Broadly speaking, RenVM is capable of two kinds of secret computatoions: those that move tokens between blockchains, and those that do not. For secret computations that move tokens between blockchains, dynamic fees are paid to the Darknodes by taking a share of the tokens that have been moved. In all other cases, Dai fees are paid to the Darknodes.

Dynamic Fees

The most common type of fee paid to the Darknode Payment contract is a dynamic fee. Dynamic fees are required when users are moving tokens from one blockchain to another. The fee is specified as a percentage of the moved token.

Minimum Fee

Step

0.1%

0.01%

Users must pay a minimum fee of 0.1% of the moved tokens. Users can optionally increase the fee in steps of 0.01% to encourage Darknodes to prioritise their transaction.

Dai Fees

To run general purpose secret scripts, users must pay a fee in Dai. The exact fee is dependent on the amount of data required, the amount of work required, and how much the user wants to be prioritised.

Cost per second per Darknode

Cost per byte per Darknode

0.000005 DAI

0.0000002 DAI

This table is an approximation based on the current costs of operating a Darknode with the recommended hardware specifications. It is subject to change as the general purpose scripting capabilities of RenVM are developed. Example formula for a private data computation: X megabytes of data and requiring Y seconds of compute would cost Z Dai (assume 1,000).

Whitelisting

After registration, Darknodes must be whitelisted before work will be distributed to them and they can earn rewards. Darknodes registered during a payment cycle will be automatically whitelisted at the beginning of the next payment cycle.

Blacklisting

Darknodes that do not actively contribute their resources to powering RenVM will be blacklisted by their peers. Blacklisted Darknodes will no longer have work distributed to them and can no longer earn rewards. The only option for the owner of a blacklisted Darknode is to deregister the Darknode and withdraw the REN bond.

Blacklisting inactive Darknodes protects RenVM from malicious adversaries that might try to take RenVM offline by refusing to do work that has been allocated to them. Darknodes will vote to blacklist other inactive Darknodes after they have been inactive for 24 hours or more.

Gas

Blockchains typically define their own gas fees that must be paid when submitting transactions. There are two scenarios to consider:

  • Gas fees that are paid in addition to the transaction (e.g. paying Ether when using Ethereum) must be paid by whoever submits the transaction to the host blockchain. Darknodes will never submit the transaction to the host blockchain themselves. Universal Interoperability can be used to simplify the user experience and prevent users needing to handle multiple tokens.

  • Gas fees that are paid from transaction values (e.g. Bitcoin) will have the gas fee deducted from the token amount during interoperation. For example: 1 BTC is shifted to Ethereum and 0.001 BTC is consumed by fees from the Bitcoin blockchain, only 0.999 BTC will end up on Ethereum when the shift completes.