Jun 24, 2019
By: Yossi Gilad, jefe de investigación de sistemas y director de tecnología en Algorand
Esta publicación está destinada a ayudar a explicar cómo se implementan las recompensas en el código fuente de Algorand y su impacto correspondiente para los titulares de tokens. Si tienes preguntas sobre la filosofía o los montos de recompensa, visita Fundación Algorand.
Dado que Algorand Inc desarrolló el protocolo blockchain de Algorand, estamos en una posición única para dar una idea de cómo se implementó el mecanismo de recompensas. Esta publicación te explicará cómo se calculan las recompensas, cómo se pagan, cómo aparecen los datos de recompensas y algunas implicaciones prácticas de nuestra implementación.
Definiciones
Vistazo general
La recompensa fija por bloque se calcula como (fondo de recompensas / período de recompensas).
- Ten en cuenta que este cálculo se hace solo una vez por período de recompensa, al comienzo
Las TEU se calculan en cada bloque sumando todas las UEU en el sistema en ese bloque.
La recompensa de cada usuario por cada bloque se calcula como (UEU / TEU) * la recompensa fija por bloque. Este cálculo se realiza por cada bloque para que cada usuario tenga en cuenta el cambio de saldos de la cuenta.
La unidad divisible mínima de un Algo es un microAlgo (10^-6). Calculamos las recompensas de cada bloque y hay bloques en los que una cuenta con MEU no habrá obtenido un microAlgo completo de las recompensas de ese bloque. Por lo tanto, el protocolo Algorand suma las recompensas pendientes de una cuenta tan pronto como un MEU gana un microAlgo completo en recompensas. El encabezado del bloque mantiene el campo "frac" para realizar un seguimiento de las recompensas que deberían haberse distribuido en bloques anteriores, pero que no se distribuyeron porque el monto a recompensarse era menor que un microAlgo, El valor del campo frac del bloque anterior se agrega a las recompensas que otorga un bloque, por lo que, eventualmente, incluso estas pequeñas recompensas sobrantes serán distribuidas.
Tiempo de distribución de recompensas. El protocolo Algorand calcula las recompensas en cada bloque, pero puede tomar varios bloques hasta que un MEU acumule un micro-Algo completo que permita agregar recompensas a todas las cuentas que son aptas. El tiempo de distribución es una función de las TEU en el sistema. Cuando todos los tokens están en circulación, las TEU serán como máximo 10 mil millones. Supón que se recompensan 20 algos en cada bloque, entonces se necesitarían 500 bloques para acumular 1 micro-Algo por unidad de ganancia. Con los bloques generados cada 5 segundos, las recompensas se desembolsan cada 500 * 5 segundos = 41 minutos.
Ejemplo. Veamos un ejemplo simple para explicar el protocolo de recompensas de Algorand:
Supón que las TEU son 10 millones y que cada bloque distribuye 1 Algo en recompensas.
Como 1 Algo/10 millones es menos que un micro-Algo, el campo de recompensa en el encabezado no aumentaría inicialmente. En cambio, para cada uno de los primeros 9 bloques, el campo frac registrado en los encabezados aumentaría de 0 a 9. En el décimo bloque, se desembolsarían 10 algos (9 algos del encabezado "frac", el resto de los bloques anteriores, y 1 Algo que recompensa el décimo bloque). El encabezado del bloque en el décimo bloque tendría, por lo tanto, el campo "earn" en 1, lo que significa que cada unidad de ganancia completa obtiene 1 micro-Algo. El campo "frac" quedaría en 0 ya que no hay recompensas sobrantes.
Cada bloque contiene los siguientes campos y pueden consultarse utilizando los SDK, curl o la API REST (por ejemplo /v1/block/{round})
Los detalles de las recompensas pendientes, las recompensas reclamadas y el saldo de una cuenta están disponibles para consultar. Esto se puede hacer usando los SDK, curl o la API REST. Todos estos hacen uso de la ruta REST path /v1/account/{address}.
Cuando consultas una cuenta, encontrarás cuatro campos relacionados con las recompensas y el saldo.
Como las recompensas se reclaman cuando ocurren las transacciones, las recompensas reclamadas de esa transacción también están disponibles para consultarse. Esto se puede hacer por medio de los SDK, curl o la API REST (por ejemplo /v1/account/{address}/transaction/{txid}).
Cuando consultas una transacción, encontrarás tres campos relacionados con las recompensas.
Las recompensas pendientes no reclamadas son reclamadas por una dirección cuando esa dirección está contenida dentro de los parámetros To, From o Close de una transacción. Eso significa que es imposible realizar transacciones sin reclamar primero las recompensas pendientes no reclamadas. Si existen recompensas pendientes no reclamadas para reclamar, se anotarán en la transacción y estarán disponibles cuando consultes esa transacción.
Algorand Inc. y sus empresas asociadas son entidades separadas e independientes de la Fundación Algorand. Algorand Inc. es actualmente un proveedor de servicios para la Fundación Algorand en relación al desarrollo de protocolo blockchain.