Darknode Epoch Cycle Changes
Improving RenVM’s Safety & Liveliness for Mainnet
After thorough testing and experimentation over 2019, thanks to the community participation, an important change to the Darknode Registry contract is required in preparation for RenVM Mainnet. Modifying the RenVM Epoch Cycle to make our network as secure as possible.
Currently, epochs (defined by the Darknode Registry contract) are not aligned with payment cycles (defined by the Darknode Payment contract); epochs are approximately one day (24 hours), and payment cycles are approximately one month (28 days). The Ren development team has deemed it necessary to align these two cycles to improve safety and liveliness of RenVM.
As long as a Darknode can affect the safety/liveliness of RenVM (i.e. it has a share of an actively distributed pubkey) it needs to be able to be slashed for misbehavior. With epochs set to one day (24 hours), this means that a Darknode can misbehave, submit a request to deregister immediately, and then after only 2-3 days have no risk of being punished. This worked in the past for previous versions of the protocol, but is no longer sufficient because of two key problems:
1) A distributed pubkey can only last on the order of days because afterward there can be no guarantee that a Darknode with a share of an actively distributed pubkey is actually registered (and punishable). 2) Malicious behavior might be noticeable in 2-3 days, but, if punishing that behavior requires bug fixes or patches to the protocol, then there is limited chance to achieve this in 2-3 days. Extending the epoch to four (4) weeks alleviates these concerns. It would be possible for distributed pubkeys to last on the order of weeks (while we may not want it to last this long, it gives us plenty of room to work with, since changing the distributed pubkey every day is likely too frequent).
All core principles of registration, deregistration, and rewards distribution will remain the same, but the time frames in which darknodes register and deregister will be extended.
This means one (1) epoch on Mainnet will take approximately four (4) weeks (one full calendar month).
After submitting a request to register, a Darknode will wait until the end of the current epoch. Then begin registration during the next epoch, and be fully active starting at the third epoch. In total, registration can take up to 4 weeks (1 month), in the case you submit a request to register at the beginning of E1 and aren't fully active until E2.
After submitting a request to deregister, a Darknode will still be expected to actively participate until the end of the current epoch. Additionally, they would be expected to be online for the next epoch to handle any leftover requests but will not be included in any new set of signatories (in practice, de-registered Darknodes can go offline after the distributed pubkey is rebased to a new set of signatories, and this usually takes a couple of minutes). In this epoch, the Darknode is not expected to be online, but the REN bond should remain locked up. In the following (and final) epoch, the Darknode owner can now withdraw the bond, and the de-registration process is complete. In total, de-registration can take up to 8 weeks (2 months).
Individuals looking to fully Deregister their Darknode(s) on Mainnet subZero, Mainnet Zero, and Mainnet One must wait for up to two (2) full epochs; approximately eight (8) weeks or two (2) months.