Fijación de los calendarios de adquisición de derechos

Teclado con herramientas

El equipo del xx labs está impulsando un arreglo de los calendarios de adquisición de derechos el 21 de enero de 2022

Resumen

Con la puesta en marcha del programa BetaNet Staking Rewards, se han añadido nuevos calendarios de adquisición de derechos a la mayoría de los monederos de la xx network. El equipo de la xx labs ha identificado un error en el cálculo de estos nuevos calendarios de adquisición de derechos y ha desarrollado una solución que restablecerá los calendarios correctos.

En este post vamos a empezar con una inmersión profunda en cómo funciona el vesting en el xx network.

A continuación, explicaremos cómo se implantó el programa BetaNet Staking Rewards, los problemas que se encontraron tras su puesta en marcha y cómo estamos solucionando esos problemas, que implican la modificación de los calendarios de adquisición de derechos incorrectos.

Por último, publicamos todos los calendarios de adquisición de derechos revisados en https://vesting.xx.network para todos los titulares de monedas, en formato de datos JSON y un archivo PNG adjunto que contiene gráficos de adquisición de derechos. También proporcionamos ejemplos de diferentes escenarios que afectaron a los titulares de monedas como resultado de los problemas mencionados.

Impulsaremos estas correcciones el 21 de enero de 2022.

¿Qué son los calendarios de adquisición de derechos?

El "vesting" es un concepto tradicionalmente utilizado con las opciones sobre acciones, en el que se concede un número de unidades de acciones, pero las unidades sólo se dan (se chaleco) en porciones a lo largo del tiempo, por ejemplo, trimestral o anualmente.

En el contexto de xx network, el concepto es similar, pero la ejecución es diferente. El importe total de las monedas concedidas se entrega directamente a la cuenta del beneficiario, pero con un calendario de adquisición de derechos que cerraduras las monedas durante un periodo de tiempo. Las monedas bloqueadas para la adquisición de derechos pueden utilizarse para cualquier operación en la red (excepto para ser utilizadas como reservado monedas), pero no pueden ser transferidas a ninguna otra cuenta. Las monedas en proceso de adquisición se desbloquean cada bloque.

El calendario de adquisición de derechos en el xx network consta de tres campos:

  • El importe que se bloquea por la adquisición de derechos: locked
  • La cantidad que desbloquea cada bloque: por_bloque
  • El bloque en el que se empiezan a desbloquear las monedas: bloque_de_inicio


Utilizamos los calendarios de adquisición de derechos para imponer dos tipos diferentes de restricciones a las monedas: un bloqueo de la totalidad del importe durante un tiempo determinado, o un desbloqueo lineal, que comienza en un momento determinado y con una duración también determinada.

Ejemplos:

Los calendarios de adquisición de las monedas dadas en tramos mensuales de 7000 para los nodos de BetaNet son los siguientes:

  • locked:7000
  • por_bloque:7000
  • bloque_de_inicio:1123200

Este ejemplo coloca un bloqueo de 7000, que comienza a desbloquearse en el bloque 1123200, y desbloquea 7000 por bloque. Esto significa efectivamente que este tramo de 7000 monedas está bloqueado hasta el bloque 1123200, y se desbloquea completamente en el bloque 1123201. Este ejemplo en particular es para las recompensas de BetaNet para el mes de enero de 2021, ya que 1123200 bloques es igual a 1123200/(24 horas * 600 bloques por hora) = 78 días, lo que significa que el bloqueo termina el 1 de febrero de 2022.

Los calendarios de adquisición de las monedas concedidas para las recompensas de las apuestas de BetaNet son los siguientes:

  • locked:23812
  • por_bloque:0.009186728
  • bloque_de_inicio:432000

Este ejemplo coloca un bloqueo de 23812, que comienza a desbloquearse en el bloque 432000, y desbloquea 0,009186728 por bloque. Esto significa que las 23812 monedas están bloqueadas hasta el bloque 432000, y luego comienzan a desbloquearse a 0,009186728 por bloque. Podemos calcular la duración de la adquisición de derechos dividiendo lo bloqueado por per_block: 23812/0.009186728 ~= 2592000 bloques, que son 2592000/(24*600) = 180 días. Esto significa que el valor está totalmente desbloqueado 6 meses después de que comience el vesting, 432000/(24*600) = 30 días después del lanzamiento de la mainnet.

Recompensas de apuestas de Betanet

En marzo de 2021, el equipo anunció el programa BetaNet Staking Rewards, que se aplica a todos los titulares de la moneda a partir del lanzamiento de la mainnet. El programa tiene un APY de 50%, con intereses calculados diariamente, desde el 1 de marzo de 2021 hasta el lanzamiento de la mainnet. Las monedas recibidas después del 1 de marzo sólo acumulan intereses desde el día en que se conceden. El importe de la recompensa se ha calculado para cada poseedor de monedas y se ha publicado en la hoja de cálculo del bloque génesis antes del lanzamiento de la red principal. En el bloque génesis, el importe de la recompensa se configuró para cada portador de monedas en el módulo de reclamaciones, o directamente en el módulo de recompensas de apuestas de BetaNet.

El programa fue diseñado con las siguientes opciones de recompensa:

  • No se concede ningún derecho y 2% de recompensa
  • 1 mes de devengo sobre 100% de principal más recompensa, se dan 12% de la recompensa
  • 3 meses de devengo sobre 90% de principal más recompensa, se dan 45% de la recompensa
  • 6 meses de devengo sobre 80% de principal más recompensa, se da la recompensa total. Esta es la opción por defecto si no se hace ninguna selección
  • 9 meses de devengo sobre 100% de principal más recompensa, se dan 120% de la recompensa


El módulo BetaNet Staking Rewards fue diseñado con el fin de apoyar las características requeridas del programa. Este módulo permitía a los usuarios que reclamaban sus monedas en una dirección de xx network seleccionar la opción deseada. Además, el módulo se configuró con un bloque de promulgación que se estableció en 30 días después del lanzamiento de la mainnet. Esto era necesario para dar tiempo a que la aceptación del programa fuera votada por la comunidad. El programa se aprobó mediante un referéndum, en el que los titulares de las monedas votaron durante una semana.

En el bloque de promulgación, el programa se ejecutó y las recompensas se entregaron desde el fondo de recompensas de la red principal a todos los titulares de monedas, y se aplicaron los calendarios de adquisición de derechos, según la opción seleccionada. La opción por defecto de 6 meses de adquisición de derechos se aplicó automáticamente a todas las reclamaciones sobrantes, añadiendo el importe de la recompensa al valor de la reclamación y los calendarios de adquisición de derechos.

Problemas existentes

El equipo identificó 3 problemas que afectaron a la puesta en marcha del programa de recompensas de apuestas de BetaNet:

  1. Siniestros sobrantes: el importe a bloquear se calculó después de añadir la recompensa al principal, es decir, bloqueo = 0,8 * (principal + recompensa) + recompensa, en lugar de bloqueo = 0,8 * principal + recompensa. Esto da lugar a un importe bloqueado más elevado de lo previsto en muchas de las reclamaciones sobrantes
  2. Cálculo de la adquisición de derechos: la cantidad a bloquear se calculaba tomando el bloqueo necesario y restando la cantidad actual ya bloqueada en el bloque de promulgación. Se trata de una solución óptima que bloquea la cantidad necesaria de las recompensas manteniendo los bloqueos existentes, lo que da lugar a bloqueos de derechos adquiridos siempre superiores a los anteriores. Sin embargo, en muchos escenarios esta solución puede conducir a valores bloqueados inferiores a los requeridos por el programa, lo que puede crear situaciones injustas entre los poseedores de monedas que seleccionaron diferentes opciones. Además, en algunos casos, el valor bloqueado comienza siendo más alto de lo necesario, y luego cae hasta ser más bajo de lo permitido
  3. Pago incorrecto de la recompensa: considere un usuario que tiene dos reclamaciones separadas, una sin calendarios de adquisición de derechos (por ejemplo, de la venta original) y otra con. Si ambas se reclaman en la misma dirección, sólo se conserva el valor de la recompensa de la segunda. Esto significa que el valor de recompensa de la primera reclamación no se pagó en el bloque de promulgación. Este problema en particular sólo afecta a los titulares de 3 monedas.

Cómo solucionar los problemas

Como se anunció anteriormente en un foro postEl equipo propuso una actualización del tiempo de ejecución de la cadena de bloques que añadía funciones adicionales. Esta incluía dos funciones que otorgan la capacidad al comité técnico, por votación unánime, de modificar los calendarios de adquisición de derechos en los módulos de reclamaciones y de adquisición de derechos. Esta actualización fue aprobada en referéndum, y fue promulgada el pasado jueves 13 de enero.

Estas funciones privilegiadas van a ser utilizadas por el equipo para arreglar los calendarios incorrectos de adquisición de derechos, y luego serán eliminadas tan pronto como sea posible en una nueva actualización del tiempo de ejecución.

Nuevos calendarios de adquisición de derechos

La información sobre el programa de recompensas por estacas de BetaNet para todos los titulares de monedas puede encontrarse en https://vesting.xx.network.

Para cada portador de monedas hay un archivo JSON que contiene la siguiente información:

  • principal: la cantidad de monedas presentes en la génesis
  • recompensa: la recompensa otorgada, ajustada según la opción elegida
  • opción: la opción seleccionada del programa BetaNet Staking Rewards
  • derechos adquiridos: toda la información relativa a los derechos adquiridos
    • original: calendarios de adquisición de derechos presentes en la génesis
    • betanet_rewards: calendario de adquisición de derechos requerido por las recompensas de apuestas de betanet
    • on_chain: calendarios de carencia actualmente en la cadena
    • calculado: calendarios fijos de adquisición de derechos
  • incorrect_on_chain: la bandera a especificar en el vesting on-chain es incorrecta


Para cada portador de monedas hay un archivo PNG que contiene tres gráficos de la cantidad de monedas bloqueadas en función del número de bloque. De esta forma, se puede comparar fácilmente la cantidad bloqueada por diferentes programas de adquisición de derechos a lo largo del tiempo:

  • Devengo original (izquierda): este gráfico muestra los calendarios de devengo originales (azul) con el requerido por el programa de recompensas de BetaNet (naranja). Tras la promulgación del programa, el importe bloqueado debe ser siempre el más restrictivo, es decir, max(original, betanet_rewards)
  • Adquisición en cadena (centro): este gráfico muestra la misma información que el anterior, pero con los calendarios de adquisición en cadena superpuestos (en verde). Aquí, los titulares de las monedas pueden ver inmediatamente si el actual plan de adquisición de derechos no es válido, y si está bloqueando más, menos (o ambas) monedas.
  • Nueva adquisición (derecha): este gráfico muestra la misma información que el primero, pero con los nuevos calendarios de adquisición (fijos) superpuestos (en verde). Aquí, los portadores de monedas pueden ver los calendarios de adquisición que serán fijados por el equipo, con el fin de arreglar los problemas encontrados, que, como se puede ver, siempre sigue el máximo entre la adquisición de las recompensas originales y las de betanet. Si este gráfico es igual al del medio, significa que el vesting en la cadena ya es correcto.


El nombre de cada archivo JSON y PNG es la dirección xx network del titular de la moneda, o la dirección ETH si las monedas no fueron reclamadas a partir del bloque 870000. Animamos a todos los miembros de la comunidad a que busquen su información respectiva y se pongan en contacto con el equipo si encuentran algún problema.

Metodología

Toda la información necesaria se compiló directamente a partir del bloque génesis y del estado de la cadena en varios bloques. Al generar todos los archivos, se realizaron múltiples comprobaciones para detectar cualquier problema y corregirlo. El cálculo de los calendarios de adquisición de derechos fijos se realizó de forma recursiva ajustando los calendarios originales y añadiendo partes de los calendarios de recompensas de BetaNet según fuera necesario, de forma que el total resultante coincidiera con el bloqueo necesario en todos los bloques, que es exactamente el máximo entre ambos tipos de calendarios.

Ejemplos de diferentes situaciones

Reclamo sobrante sin cerraduras originales, mostrando el número 1

Reclamo sobrante con cerraduras originales, mostrando los números 1 y 2

Reclamo sobrante con cerraduras originales, pero con un derecho devengado correcto

Soporte con cerraduras originales, mostrando el problema 2 que causa cerraduras más altas de lo esperado

Titular con cerraduras originales, mostrando el problema 2 que causa cerraduras iniciales más altas, y luego más bajas de lo esperado

Portavelas con cerraduras originales, pero con una dotación correcta

Titular sin cerraduras originales, pero con una dotación correcta

Titular con cerraduras originales, mostrando el error 1, debido a la reclamación después de la promulgación

Popular