Primera etapa de Staking en Starknet

Starknet en español
Starknet en español
10 min readSep 5, 2024

Encuentra la entrada original en inglés en el foro de la comunidad de Starknet

snip: 18
título: Primera etapa de Staking en Starknet
autor: Natan Granit natan@starkware.co
status: Draft
tipo: Standards Track
categoria: Core
creado: Julio 10, 2024
Github link

Resumen

A medida que Starknet avanza en su camino hacia la descentralización, presentamos la propuesta de StarkWare para la primera etapa de staking. Este es un paso importante para construir la comunidad y tecnología de staking, ofreciendo nuevas oportunidades para usuarios y desarrolladores.

Este SNIP tiene como objetivo que la primera etapa de staking esté disponible en la red principal de Starknet en el cuarto trimestre de 2024, con un protocolo de staking en cadena no permisionado y delegación de staking.

A continuación, describimos en detalle la propuesta de staking, su cronograma y su relación con los pasos futuros hacia la descentralización.

Motivación

La primera etapa de staking marca otro paso crucial en la visión descentralizada de Starknet. Aquí se destacan las motivaciones clave para un enfoque incremental en el proceso de descentralización de Starknet y para el primer paso propuesto.

En el futuro, como parte del protocolo de consenso de Starknet, los Stakers serán responsables de mantener y asegurar la red al producir, atestar y probar bloques. Sin embargo, no es factible transferir estas responsabilidades de un día para otro. Por esta razón, es necesario un enfoque incremental, que permite lo siguiente:

  • Implementación gradual: Un protocolo PoS es una estructura compleja que requiere pruebas y validación exhaustivas. Al introducir sus características en hitos pequeños y manejables, aseguramos que cada paso se implemente cuidadosamente y se integre fácilmente. Este enfoque también nos permite refinar el proceso y abordar problemas a medida que surgen.
  • Preparación de los Stakers: Dar tiempo a los Stakers para adaptarse a nuevas responsabilidades, asegurando que estén listos para sus roles críticos y maximizando la estabilidad de la red durante la transición.
  • Confiabilidad comprobada: Para cuando los Stakers asuman las funciones mencionadas, esperamos tener un conjunto probado de secuenciadores que produzcan y atesten bloques de manera confiable, asegurando la estabilidad y el rendimiento de la red.

Específicamente, en esta primera etapa propuesta, probaremos la estructura de incentivos económicos del protocolo y algunos de sus componentes clave de contratos inteligentes. La estructura de recompensas del protocolo debe equilibrar la incentivación de la participación con el mantenimiento de una tasa de inflación sostenible y permitir que una cantidad suficiente de STRK esté disponible para otras actividades de la red.

Al adoptar este enfoque paso a paso, con la primera etapa propuesta, podemos recopilar datos valiosos, realizar pruebas cruciales y, por lo tanto, refinar el protocolo de staking a medida que lo implementamos.

Especificación

Visión general

El protocolo propuesto para la primera etapa presenta staking no permisionado de STRK en Starknet con dos modalidades:

  • Staking: Como Staker, puedes stakear cualquier cantidad de STRK superior a 20K. Actualmente, se espera que los Stakers ejecuten nodos completos en preparación para las siguientes etapas. En el futuro, también deberán ejecutar software adicional que secuencie y valide bloques de Starknet y posiblemente realizar otras tareas de liveness y seguridad de la red.
  • Delegación de Staking: Los Delegadores eligen un Staker al cual delegar su Stake, compartiendo recompensas con dicho Staker. Los Delegadores de Stake no necesitan ejecutar ningún software, ya que su Staker elegido lo hace por ellos. Esto hace que la participación sea accesible a una audiencia más amplia, permitiendo a los usuarios participar en el protocolo de Staking sin las limitaciones técnicas y de capital.

Tanto los Stakers como los Delegadores de Stake pueden deshacer su stake, sujetos a latencias definidas por el protocolo que aseguran la estabilidad y seguridad de la red. Más detalles sobre estas latencias se encuentran en la sección “Latencias”.

Recompensas de Staking

Las recompensas de staking se basarán en la emisión de tokens. Las recompensas se calculan según una curva de emisión, que sigue la propuesta del Profesor Noam Nisan (Para más detalles sobre la curva de emisión, mira la sección abajo). Tanto los Stakers como los Delegadores de Stake ganan recompensas, dependiendo de su respectivo stake y la constante de reparto de recompensas (R) establecida por el Staker.

  • Stakers: Ganan recompensas proporcionales a su propio stake y al total del stake delegado a ellos, ajustado por la constante de reparto de recompensas. La formula es:

({self_stake} + {total_stake_delegated} * R) * {rewards_constant} * {time_interval}

  • Delegadores de Stake: Ganan recompensas proporcionales a su stake delegado y la constante de reparto de recompensas. La formula es:

{stake_delegated} * (1-R) * {rewards_constant} * {time_interval}

La constante de recompensas ({rewards_constant}) está determinada por la curva de emisión y depende de la cantidad total stakeada en el protocolo. Esta estructura de recompensas incentiva tanto el staking, la delegación de stake y la competencia entre Stakers por el stake de los delegadores.

Curva de emisión

La curva de emisión aborda dos aspectos críticos del protocolo de staking al hacer que las recompensas dependan de la cantidad de STRK bloqueados en el protocolo. Así es como funciona:

  • Equilibrio de Participación: Cuantos más tokens STRK estén bloqueados en el protocolo de staking, menores serán las recompensas. Este diseño asegura que no todos los tokens STRK estén stakeados, permitiendo a la comunidad de Starknet seguir usando STRK para tarifas de transacción y otras actividades. Además, evita la dilución innecesaria del suministro de tokens.
  • Fomento del Staking: Cuando se stakean menos tokens STRK, las recompensas aumentan. Esto incentiva la participación en el protocolo de staking, garantizando un nivel mínimo de seguridad económica para la red al asegurar que una parte de los tokens STRK siempre esté stakeada.

En la primera etapa, la curva de emisión se basará en la propuesta del Profesor Noam Nisan, con una ligera variación de parámetros. La curva de emisión se define mediante la siguiente fórmula:

M = C/10 * √ S

Donde S es la tasa de staking en porcentaje del suministro total de tokens, M es la tasa de emisión anual, nuevamente en porcentaje del suministro total de tokens, y C es la inflación teórica máxima, también en porcentaje anual. En la sugerencia del Profesor Nisan, C=4, asumiendo que todos los 10 mil millones de tokens STRK podrían participar en el protocolo de staking. Para esta primera etapa, proponemos que C esté en el rango de 1.8–2.5, considerando que el suministro circulante actual es mucho menor que 10 mil millones y no todos los tokens STRK participarán en el protocolo de staking.

Decidir un límite global de inflación y los parámetros exactos de la curva de emisión es un problema complejo. Cualquier decisión tomada probablemente requerirá ajustes con el tiempo a medida que cambien las condiciones del mercado, como la cantidad de tokens circulantes. Dada la sensibilidad de este tema, recomendaremos que la Fundación Starknet (SNF) realice una votación de gobernanza para decidir los parámetros de la curva de emisión y los procesos para ajustarlos con el tiempo.

Latencias

Hoy: Entrar y salir del protocolo de staking es inmediato, lo que significa que los usuarios pueden unirse o abandonar el proceso de staking sin demora. Sin embargo, después de salir, los fondos stakeados están sujetos a un período de bloqueo de seguridad de 21 días. Durante este período, los usuarios no ganarán recompensas y no podrán retirar sus fondos. Este mecanismo asegura la seguridad de la red al prevenir que los stakers retiren repentinamente un stake significativo y potencialmente desestabilicen la red.

Versiones Futuras: En versiones futuras, introduciremos la noción de épocas, que son medidas granulares de tiempo en Starknet basadas en bloques. Esto significa que la latencia para entrar o salir del protocolo será determinada por el tiempo restante en la época actual más la duración de una época completa. El período de bloqueo de retiro seguirá aplicándose después de salir del protocolo.

*Aunque los Delegadores de Stake están sujetos a un bloqueo de seguridad al retirar fondos, pueden moverse entre Stakers sin esperar todo el período de bloqueo, mejorando la competitividad del mercado de delegación.

Desasignación parcial

Estamos incorporando una funcionalidad de desasignación parcial en nuestra propuesta. Esto permitirá a cualquier delegador invocar la función exit_delegation_pool_intent con una cantidad que sea igual o inferior a su delegación total. Cuando se llame a esta función, se emitirá un evento que contendrá la dirección del delegador, la cantidad especificada y el momento en que se permitirá el retiro, considerando el período de bloqueo de seguridad de 21 días.

Una vez que haya pasado el período de bloqueo de seguridad, el delegador podrá retirar su stake invocando la función exit_delegation_pool_action.

Si se inicia una intención de desasignación pero no se completa la acción correspondiente, cualquier nueva intención de desasignación anulará la solicitud anterior y el período de bloqueo de 21 días se reiniciará desde el momento de la última llamada.

Parámetro de reparto de recompensas

Cuando un Staker se une al protocolo, puede elegir si estar abierto a la Delegación y establecer su parámetro de reparto de recompensas (R), es decir, su política de comisiones. Un Staker puede reducir su tasa de comisión, pero no puede aumentarla. Esta restricción está en su lugar para evitar que los Stakers atraigan a un gran número de delegadores con comisiones bajas y luego aumenten repentinamente las tarifas.

En versiones futuras, podríamos explorar políticas de comisiones más sofisticadas, como bloqueos temporales para cambios, cambios máximos permitidos por intervalo de tiempo, y características adicionales.

Parámetros económicos

Aquí hay una tabla que resume los parámetros económicos propuestos en esta versión:

Estos valores son nuestros puntos de partida propuestos para esta versión del protocolo. Como parte de la justificación detrás de esta versión, están sujetos a cambios y pueden ajustarse para adaptarse mejor a las necesidades del protocolo.

Participación de tokens bloqueados

Los tokens bloqueados inicialmente estarán excluidos del staking. Cuando los Stakers comiencen a validar y votar bloques secuenciados por el secuenciador y su consenso sea probado en L1, los tokens bloqueados podrán participar en el protocolo de staking.

Puntos generales

  • Las recompensas se reclaman enviando activamente una transacción.
  • Tanto los Stakers como los Delegadores de Stake pueden agregar a su stake.
  • No hay desasignación parcial.

Consideraciones de seguridad

El diseño del protocolo de staking incluye varias medidas de seguridad clave para garantizar su integridad y la seguridad de los usuarios.

Arquitectura modular

El protocolo propuesto se implementará utilizando una arquitectura modular, donde las diferentes funcionalidades están separadas en contratos distintos, como staking, delegación, suministro de recompensas y más. Este enfoque ofrece varias ventajas:

  • Simplificación de la Lógica: Cada contrato tiene un rol claro y específico, lo que hace que el código sea más fácil de probar, auditar y comprender.
  • Mejora del Control de Acceso: Al definir permisos específicos para cada contrato, se reduce el riesgo de acceso no autorizado o mal uso.
  • Permite Actualizaciones y Cambios Dirigidos: Actualizar solo el contrato relevante minimiza el potencial de introducir nuevas vulnerabilidades.

Gestión de Permisos y Claves

El protocolo de staking permite a los usuarios definir diferentes direcciones para diferentes funcionalidades. Así, las cold address (direcciones frías) con actividad mínima pueden controlar funcionalidades importantes, reduciendo la exposición a amenazas y mejorando la seguridad del usuario.

Los Stakers se registran con tres direcciones:

  1. Dirección de Staking y Desasignación: Esta dirección tiene permiso para stakear, agregar stake y desasignar. Esto significa que maneja grandes cantidades de tokens STRK y solo se necesita al ingresar o salir del protocolo. Por lo tanto, puede mantenerse en una cold wallet (mínima actividad) para maximizar la seguridad.
  2. Dirección de Recompensas: Esta es la dirección donde se enviarán las recompensas. También puede mantenerse con mínima actividad, es decir, como una cold wallet.
  3. Dirección Operativa: Esta dirección representa al Staker para propósitos operativos (por ejemplo, atestación de bloques en el futuro) y no maneja grandes cantidades de fondos. Como será utilizada frecuentemente, debería categorizarse como una hot address (dirección caliente).

Los Delegadores de Stake se registran con dos direcciones:

  1. Dirección de Entrada/Salida: Esta dirección tiene permiso para delegar stake, agregar stake y desasignar. Esto significa que maneja grandes cantidades de tokens STRK y solo se necesita al ingresar o salir del protocolo. Por lo tanto, puede mantenerse en una cold wallet (mínima actividad) para maximizar la seguridad.
  2. Dirección de Recompensas: Esta es la dirección donde se enviarán las recompensas. También puede mantenerse con mínima actividad, es decir, como una cold wallet.

Permisos: El protocolo utiliza un enfoque jerárquico entre los roles de los usuarios. Las direcciones más frías, que controlan fondos más grandes, pueden reemplazar a las más activas si se ven comprometidas. Específicamente, las direcciones de Stakers y Delegadores de Stake pueden reemplazar la dirección de recompensas.

Período de bloqueo de seguridad

Al salir, los usuarios enfrentan un bloqueo de 21 días, durante los cuales no se ganan recompensas y los fondos no pueden retirarse. Esto desincentiva retiros grandes y repentinos que podrían desestabilizar la red. Las versiones futuras vincularán el proceso de salida a las épocas, manteniendo el período de bloqueo para un mecanismo de salida seguro.

Hitos

Este SNIP tiene como objetivo que la primera etapa de staking esté disponible en la red principal de Starknet en el cuarto trimestre de 2024. Puede seguir el progreso de la implementación en el siguiente repositorio.

Las etapas futuras incluirán la asignación gradual de responsabilidades a los participantes, que eventualmente validarán y secuenciarán los bloques. Esta transición gradual garantiza la estabilidad y permite realizar pruebas y mejoras exhaustivas. Para obtener más detalles sobre el protocolo descentralizado, consulte la serie de publicaciones del blog de Ilia.

Se presentarán más detalles y propuestas sobre las etapas posteriores a medida que avancemos. El siguiente paso ya está en las etapas de investigación y planificación, y se lanzará unos meses después de la primera etapa. Nuestro objetivo es implementar estas actualizaciones sin problemas, con mejoras continuas guiadas por los comentarios de la comunidad.

Feedback
Queremos que compartas tus comentarios y hagas preguntas. Puedes comentar aquí y seguir nuestro desarrollo en nuestro repositorio de código abierto.

Copyright

Este SNIP se publicará bajo una licencia MIT.

--

--

Starknet en español
Starknet en español

Comunidad enfocada en la enseñanza en español del ecosistema Starknet.