Estados del sistema + Roles¶
El protocolo de Reserve contiene cinco roles de gobierno centrales que cualquier contrato inteligente de gobierno puede integrar fácilmente para crear nuevos sistemas de gobierno para RTokens:
OWNER
: el máximo responsable de la toma de decisiones, generalmente un contrato inteligente de gobierno descentralizado, responsable de establecer o actualizar todos los valores de parámetros de RToken, canastas de RToken, etc. - El PROPIETARIO de RToken tiene el poder de:- otorgar y revocar roles a cualquier cuenta de Ethereum
- pausar y reanudar el sistema
- congelar y descongelar el sistema
- establecer parámetros de gobernanza
- actualizar los contratos del sistema
PAUSER
: tiene la capacidad de pausar y reanudar el sistema de un RToken. El rol PAUSER debe asignarse a una dirección que pueda actuar rápidamente en respuesta a eventos fuera de la cadena, como una falla en el feed de Chainlink. Es aceptable tener multiples pausers. Puede ser controlado y automatizado por robots. También puede consistir de una multisig 1-de-N para mayor disponibilidad y cobertura. Es aceptable que haya falsos positivos, ya que la redención permanece habilitada. Consulte la tabla a continuación para obtener más información sobre qué significa exactamente una "pausa" de un RToken.SHORT_FREEZER
: tiene la capacidad de congelar el sistema de un RToken por un corto período de tiempo. El rol SHORT_FREEZER debe asignarse a una dirección que se podría esperar razonablemente que sea la primera en detectar un error en el código y pueda actuar rápidamente y con cierta tolerancia a los falsos positivos, aunque menos que en pausa. Es aceptable tener múltiples short-freezers. Puede ser controlado y automatizado por robots. También puede consistir de una multisig 1-de-N para mayor disponibilidad y cobertura. Si se detecta un error, se puede activar una congelación breve que caducará automáticamente si LONG_FREEZER no la renueva.
Cuando SHORT_FREEZER llama a freezeShort(), renuncia a su función SHORT_FREEZER y solo se le puede volver a otorgar la función por el TITULAR (gobierno). El TITULAR también podrá intervenir y descongelar en cualquier momento.LONG_FREEZER
: tiene la capacidad de congelar el sistema de un RToken por un largo período de tiempo. El rol LONG_FREEZER debe asignarse a una dirección que se optimizará en gran medida para evitar falsos positivos. Es mucho más largo que el breve congelamiento. Puede actuar de manera lenta y debe ser confiable. Es probable que normalmente se defina una sola dirección de long-freezer a la vez. Permite solo 6x usos por cada long-freezer. Existe para que, en el caso de un exploit de día cero, el gobierno pueda actuar antes de que el sistema se descongele y reanude su funcionamiento.
Cuando LONG_FREEZER llama a freezeLong(), gasta un "cargo". UN LONG_FREEZER comienza con 6 cargas, y cuando se les acaban, renuncian al rol de LONG_FREEZER. Solo el TITULAR puede volver a otorgar el rol o recargar los cargos de una cuenta.GUARDIAN
: tiene la capacidad de rechazar propuestas de gobierno aunque hayan sido aprobadas. Debe ser asignado a una multisig o EOA que sea confiable para funcionar como protección de último recurso. Es aceptable si actúa relativamente lento. Sólo una dirección de guardian debe definirse.
💡 Si bien Reserve Protocol es un sistema completamente abierto que permite la integración de cualquier contrato inteligente de gobierno personalizado para RTokens, el equipo de Reserve implementó un sistema de gobierno recomendado que se sugerirá a los implementadores de RToken. Si está interesado en leer sobre sus detalles, consulte el Governor Alexios.
Cada uno de los roles mencionados anteriormente tiene la capacidad de poner el sistema de su RToken en estados específicos no completamente funcionales en el caso de un ataque, vulnerabilidad o error. Estos estados son:
- Pausado: cuando el sistema de un RToken está en pausa, todas las interacciones además del canje, las funciones ERC20, el staking de RSR, y el pago de rendimientos están deshabilitadas. El sistema de un RToken puede ser pausado por cualquiera de las direcciones de Pauser llamando a
pause()
y reanudado llamando aunpause()
. - Congelado: cuando el sistema de un RToken está congelado, todas las interacciones además de las funciones ERC20 y el staking de RSR están deshabilitadas. Cualquiera de las direcciones SHORT_FREEZER puede congelar el sistema de un RToken llamando
shortfreeze()
. Esta congelación puede ser extendida por cualquiera de las direcciones LONG_FREEZER llamando alongfreeze()
, o puede ser reanudada por las direcciones SHORT_FREEZER o OWNER llamando aunfreeze()
.
Table¶
Acción | En pausa | Congelado |
---|---|---|
Emitir RToken | Desactivado | Desactivado |
Canjear RToken | Activado | Desactivado |
Staking RSR | Activado | Activado |
Dejar staking RSR | Desactivado | Desactivado |
Retirar RSR | Desactivado | Desactivado |
Pago de rendimientos RSR | Activado | Desactivado |
Trading. | Desactivado | Desactivado |
Fusión de RToken. | Desactivado | Desactivado |