Oracle Incentive Rebalancing and Protocol Cleanup Upgrade

Overview

This proposal introduces a set of changes to the Money on Chain (MoC) protocol aimed at improving oracle network sustainability, increasing protocol robustness, simplifying legacy code paths, and addressing identified bugs.

The proposal has two primary objectives:

  • Improve incentives for oracle node operators and complete follow-up tasks enabled by the Oracle Reliability Fix.
  • Introduce additional protocol maintenance improvements and bug fixes that can be efficiently executed as part of the same governance upgrade process.

The main objective is to improve incentives for oracle node operators by increasing their share of protocol incentives. A stronger and more attractive oracle ecosystem is expected to increase the number of active operators, improving protocol decentralization and resilience.

The proposal also includes maintenance and cleanup tasks made possible by the implementation of the Oracle Reliability Fix, as well as protocol improvements and bug fixes that can be executed as part of the same governance upgrade.

Problem Statement

One of the contributing factors that increased the impact of the issues addressed by the Oracle Reliability Fix was the limited number of active oracle operators participating in the protocol.

A larger and more decentralized oracle network increases protocol robustness and reduces operational risk by distributing oracle responsibilities among a broader set of participants.

The current incentive distribution allocates:

  • 20% of incentives to Oracle Operators
  • 80% of incentives to MoC Stakers

These incentives are funded through:

  • Annual payments from BPRO and RIFPRO holders, prorated and distributed weekly
  • Protocol fees collected from protocol operations
  • Monthly minting performed by the coiner

While this model has worked historically, increasing incentives for oracle operators can make node operation more attractive and help strengthen the oracle ecosystem.

Additionally, the protocol still contains legacy code paths, storage entries, and deprecated functionality that are no longer necessary following recent protocol upgrades.

Proposed Changes

1. Oracle Incentive Rebalancing

The incentive distribution of the MoC incentive flow will be modified as follows:

Recipient Current Share New Share
Oracle Operators 20% 30%
MoC Stakers 80% 70%

This change represents a 50% relative increase in incentives allocated to oracle operators.

This distribution is managed by the MocMocReward Buffer/Splitter contract, which directs the incentive flow to the appropriate recipients. The modifications proposed in this upgrade will be implemented directly in the MocMocReward contract to adjust the allocation percentages.

The objective is to improve the economic incentives for running oracle nodes and encourage broader participation in the oracle network.

A larger number of active oracle operators is expected to contribute positively to protocol resilience and decentralization, aligning with the long-term interests of MoC token holders.

2. Oracle Storage Cleanup

Following the implementation of the Oracle Reliability Fix, deprecated oracle ownership mappings stored in protocol contracts will no longer be required.

This proposal includes a one-time cleanup process that removes obsolete owner references associated with oracle addresses that remained in storage due to historical setOracleAddress() operations.

This cleanup can only be performed after the Oracle Reliability Fix has been successfully applied.

3. Signature Verification Simplification

After the storage cleanup has been completed, additional signature verification checks related to deprecated oracle ownership records become redundant.

The proposal removes these legacy validations because only currently active oracle addresses will remain registered in protocol storage.

Benefits include:

  • Simpler code paths
  • Reduced maintenance complexity
  • Slight reduction in gas costs during price publication operations
  • No reduction in protocol security guarantees

4. Additional Protocol Improvements

The following changes are independent from the Oracle Reliability Fix and are included in this proposal as protocol maintenance and improvement tasks.

Since a governance upgrade process is already required, these changes can be executed together, reducing operational overhead and avoiding the need for additional governance proposals.

4.1 Removal of Deprecated Settlement Logic

The protocol still contains internal logic related to historical settlement mechanisms that are no longer used.

This proposal removes deprecated code associated with:

  • Settlement operations
  • Redemption Queue functionality
  • Discounted BPRO minting

The objective is to simplify protocol maintenance and reduce unnecessary code complexity.

4.2 Flux Capacitor Monitoring Improvements

Flux Capacitor provider contracts will be replaced to emit additional events.

These new events will simplify access to protocol information for:

  • Monitoring systems
  • Automated operational tools
  • dApps
  • Analytics platforms
  • External integrations

The change improves observability without modifying protocol behavior.

4.3 Non-critical Bug Fix: Prevent Loss of Funds During Liquidation Mint Operations

:information_source: Info: This bug is not exploitable; it would only occur in the highly improbable event of full protocol liquidation.

:information_source: Info: Although non-critical, we will fix it as part of this upgrade to avoid a separate governance proposal and reduce operational overhead.

Description

A bug has been identified affecting mint operations while the protocol is in liquidation state.

Currently, users may still attempt to mint DOC or BPRO while the protocol is liquidated. Since minting is no longer available during liquidation, the operation does not mint tokens. However, the RBTC sent by the user is not refunded.

As a result, users may unintentionally lose funds.

Fix

The mint operations for DOC and BPRO will be modified so that any RBTC sent during liquidation is automatically refunded to the user.

This guarantees that users cannot lose funds when attempting these operations while the protocol is liquidated.

4.4 Non-critical Bug Fix: Replace Deprecated RBTC Transfer Methods and Add Reentrancy Protection

:information_source: Info: Although non-critical, we will fix it as part of this upgrade to avoid a separate governance proposal and reduce operational overhead.

Description

The protocol still uses Solidity’s deprecated transfer() and send() mechanisms in some RBTC transfer operations.

These methods forward only 2300 gas and may become problematic if future opcode repricing increases execution costs. This can potentially lead to transaction failures and denial-of-service scenarios.

Fix

All deprecated RBTC transfer mechanisms will be replaced with low-level call() operations.

Additional protections will be incorporated to preserve protocol security guarantees.

Benefits include:

  • Improved compatibility with future EVM changes
  • Elimination of gas stipend limitations
  • Reduced risk of transfer-related denial-of-service scenarios

4.5 Non-critical Bug Fix: Correct DOC Bucket Time Parameters in RIF on Chain

:information_source: Info: Although non-critical, we will fix it as part of this upgrade to avoid a separate governance proposal and reduce operational overhead.

Description

During the prior migration to multi-collateral, several time-based configuration parameters for the DOC bucket in RIF on Chain were set to excessively large values. This included EmaCalculationTimeSpan, SettlementTimeSpan, and the TC Interest timespan used by setTCInterestParams. The large values caused integer overflow (wraparound) in time arithmetic so the stored timespans became small values. As a result, the system treated these timings as short and trigger unintended harmless periodic behavior.

Fix

Replace the erroneous time-based parameters with a safe, bounded sentinel that prevents overflow while preserving the intended non-periodic DOC bucket behavior.

This ensures the DOC bucket will not perform unintended periodic EMA computation, Settlements, or TC interest executions.

Summary

This proposal improves the long-term sustainability and robustness of the Money on Chain protocol by:

  • Increasing oracle operator incentives from 20% to 30%
  • Increasing oracle operator incentive allocation by 50%
  • Encouraging broader participation in the oracle ecosystem
  • Cleaning obsolete oracle storage entries
  • Simplifying signature validation logic
  • Removing deprecated settlement-related code
  • Improving monitoring capabilities through new events
  • Fixing liquidation-related fund loss scenarios
  • Modernizing RBTC transfer mechanisms

Together, these changes improve protocol maintainability, strengthen operational resilience, and support the long-term sustainability of the oracle network.

Governance Process

As with all protocol-level changes, this proposal will be submitted to a governance vote.

The upgrade will be executed only after:

  1. Proposal approval through governance
  2. Deployment of the changer contract
  3. Execution of the upgrade transaction

Technical Procedure

:warning: Warning: some technical/coding knowledge is necessary to fully understand this document.

The upgrade will be executed through a changer contract, which will:

  • Upgrade the existing proxy implementations for CoinPairPrice, OracleManager, MocV1, MocStateV1, MocExchangeV1, and MocSettlementV1.
  • Reconfigure the mocRewardsBuffer split to 70% for MoC stakers and 30% for oracle operators, if the buffer is present.
  • Reconfigure the RIF bucket flux capacitor providers, remove deprecated oracle owner records, and fix the DOC bucket time parameters to prevent unintended EMA recalculation.


Changer Contract

The changer contract to vote would be:

Name Address (and link to verified code in RSK blockscout explorer)
BufferPctAndCleanMocV1 0x31eceE6031d6f7415a0921Fbec9A81742A44c395

Existing Contracts to be upgraded

The following contracts are already part of the protocol and will be upgraded as part of this proposal:

Name Type Address
CoinPairPrice Proxy 0xa2883...2672
CoinPairPrice Implementation 0xa34f7...7f79
CoinPairPrice New implementation 0x37ff4...e03f
OracleManager Proxy 0x64A56...712C
OracleManager Implementation 0xF7465...f530
OracleManager New implementation 0x2ea69...F6A9
MocV1 Proxy 0xf773B...8370
MocV1 Implementation 0x54d9B...B979
MocV1 New implementation 0xa60C1...7250
MocStateV1 Proxy 0xb9C42...e257
MocStateV1 Implementation 0x43693...F112
MocStateV1 New implementation 0x1D827...6722
MocExchangeV1 Proxy 0x6aCb8...9038
MocExchangeV1 Implementation 0x36D1D...6f14
MocExchangeV1 New implementation 0xFC887...6fc1
MocSettlementV1 Proxy 0x609dF...2F22
MocSettlementV1 Implementation 0x3b5F2...05F9
MocSettlementV1 New implementation 0xf13c1...90aa

Existing Contracts to be reconfigured

The following contracts are already part of the protocol and will be reconfigured as part of this proposal:


New Contracts

Name Address Why?
newMaxAbsoluteOpProvider 0xE881...142b Monitoring improvements
newMaxOpDifferenceProvider 0x7fDD...1620 Monitoring improvements

2 Likes

:mega: Call to MOC holders: This proposal is being voted on. How to vote Tutorial. Use the voting site.

:mega: Llamado a los MOC holders: Esta propuesta se está votando. Tutorial de cómo votar. Usar el sitio de voto.