Proposal Identifier: REIP-0004
Title: Emergency Replacement of Order Providers
Author: Dmitry Sorokin
Discussion: Matrix - https://matrix.to/#/#chatting:matrix.katya.wtf
Comments Summary: No comments yet
Status: Draft
Type: Standards Track
Created: 2023-11-10
License: BSD-2-Clause and CC0-1.0
This proposal extends the REChain consensus protocol to allow for the emergency replacement of Order Providers (OPs) if the network fails to advance its stability point for an extended period. This enhancement aims to improve network resilience against sabotage. It builds upon the principles established in REIP3.
This proposal is dual-licensed under the Creative Commons CC0 1.0 License and the BSD 2-Clause License.
In the unlikely event that the majority of OPs cease operations, the network's stability point could stagnate, preventing new transactions, including those voting for OP list changes (as per REIP3), from achieving finality. This scenario presents a risk of network sabotage, which could only be addressed by a disruptive hard fork, necessitating off-chain coordination and potentially resulting in competing forks or no resolution at all.
To mitigate this risk, the automatic OP replacement mechanism introduced in REIP3 should also function under conditions where transactions voting for a new OP list cannot reach finality.
-
Emergency Count Transaction: Amend the processing of
system_vote_countmessages withapptype andsubjectop_list(as introduced in REIP3). These messages will be handled immediately if the timestamp of the transaction differs by 3 days or more from the last stable unit. This will be termed an emergency count transaction. The vote count will include votes timestamped at least 1 hour before the emergency transaction, regardless of their stability. Only votes from transactions without conflicting ones will be considered. Upon counting, the new OP list will be applied immediately and used to advance the stability point. -
Post-Emergency Stability Handling: Once the emergency count transaction becomes stable, it will be processed as described in REIP3. This may result in a different OP list, which will then be applied through standard procedures.
-
Upgrade Activation: Implement this upgrade concurrently with REIP3.
This change ensures network recovery if the majority of OPs become inactive. The emergency count relies on unstable data, which might differ across nodes, potentially leading to network partitioning. However, this proposal minimizes the risk of such partitions.
The emergency count will only activate after 3 days of network inactivity, reducing the likelihood of accidental triggering. Balances from the last stable period will be used, with emergency votes considered if they are older than 1 hour to ensure broad propagation. Attackers could attempt to skew results, but their impact would be limited by their own balance and the network's existing safeguards.
If discrepancies arise, a subsequent standard vote count will reconcile results. Nodes will handle conflicting transactions with a fallback to ensure consistency. Attempts to undermine the network through shadow chains or other methods will be mitigated by the established protocols and the need for significant balances to affect outcomes.
This proposal introduces breaking changes; all nodes must upgrade before the specified upgrade MCI as per rule 3.