UTXOs en acción — El camino hacia el staking fuera de línea — Parte 1

Qtum Español
8 min readMar 16, 2020

Jackson Belove

Mar 4 · 7 min read

Este año, los desarrolladores de Qtum están trabajando arduamente para desarrollar el staking sin conexión, y este blog presentará una serie que cubre el diseño, la prueba y la implementación del staking sin conexión. El diseño de alto nivel para el staking sin conexión está en marcha, y esta serie comienza con una mirada cercana a cómo se usan los UTXO en el staking en línea de Qtum: el sistema actual. A medida que finalice el diseño para el staking sin conexión, un futuro blog retomará el importante papel de UTXO en el staking sin conexión de Qtum.

Cuando se trata de Qtum Proof of Stake, se trata de los UTXO. Vamos a ver.

TL; DR: UTXO (salidas de transacciones no gastadas) son la unidad fundamental de valor en la blockchain y se administran cuidadosamente para staking en Qtum Proof of Stake. Los stakes grandes se dividen en dos UTXO, y los stakes más pequeños pueden combinar muchos UTXO. Revisamos el enfoque actual de UTXO de staking en línea, que se ajustará para el staking fuera de línea de Qtum.

Introducción a las UTXO

Es posible que sepa que Qtum utiliza el modelo Bitcoin UTXO (Salida de transacciones no gastadas) para enviar “monedas”. Usando el modelo UTXO, el valor del token QTUM es una o más transacciones anteriores almacenadas en la blockchain. Las transacciones “no gastadas” dan un valor que puede enviarse como una “entrada” a una transacción, que luego envía el valor como una o más “salidas” a las direcciones de recepción, de ahí el nombre “Salidas de transacciones no gastadas”.

Para ver cómo se usan los UTXO en la billetera, el siguiente ejemplo muestra cómo una billetera administra 6 UTXO en dos direcciones para un saldo total de 300 QTUM. Dado que estos UTXO son maduros (más de 500 confirmaciones), esta billetera puede usarlos para staking. Estos UTXO se almacenan como transacciones en la blockchain (no se almacenan en la billetera) y debido a que la billetera contiene las claves privadas para estas dos direcciones, “posee” estos UTXO y puede enviarlos o apostarlos (y ninguna otra billetera puede hacerlo, sin tener las claves privadas para estas direcciones).

UTXOs en la billetera

El botón “Mis UTXOs” solo existe en las imágenes de billetera con Photoshop, pero la página “Transacciones” muestra detalles sobre las transacciones de la billetera.

Cómo se elige una UTXO para apostar

El algoritmo de consenso de prueba de participación realiza un cálculo por separado para cada UTXO maduro que se está staking y si uno de los UTXO proporciona una solución de núcleo (el hash SHA 256 está por debajo del “objetivo”), le da a UTXO el derecho de staking El siguiente bloque. Por supuesto, hay algunos detalles más sobre esto (Referencia 1). Las posibilidades de encontrar una solución de kernel también están “ponderadas” por el tamaño de ese UTXO, los UTXO más grandes encontrarán soluciones con mayor frecuencia y, en conjunto, la suma de todos los UTXO maduros da el “peso de la billetera” que determina la frecuencia con la que es probable que una billetera para ganar una recompensa en bloque.

Staked UTXOs

Después de elegir un UTXO para una solución de kernel, el siguiente paso es apostar en la blockchain. La segunda transacción en cada bloque es la transacción “coinstake”, que compromete el stake y paga la recompensa del bloque. La billetera devuelve la transacción de stake a sí misma, bloqueando el stake hasta que hayan transcurrido 500 confirmaciones, bloqueando el stake durante aproximadamente 18 horas. Aquí hay un dibujo que muestra una transacción simple de coinstake:

¿Qué está pasando con esta transacción de coinstake?

Se ha seleccionado un UTXO con 300 QTUM como solución de núcleo (resultado correcto para el algoritmo de consenso de Prueba de Stake) para stake el siguiente bloque. A ese valor de 300, se agrega la recompensa de bloque recién agregada de 4.0. Cualquier entrada de coinstake de 200 o más QTUM se dividirá automáticamente en dos, y cada mitad también recibirá la mitad del pago inicial de recompensa de 0.4 bloques para esta billetera, dando dos salidas de 150.2. También hay 9 salidas de 0.4 enviadas a los ganadores de recompensas de bloque anteriores.

La billetera envía las salidas de stake (aquí dos salidas de 150.2) a sí misma, staking estas monedas por 500 confirmaciones antes de que puedan enviarse o madurar para un mayor staking. La transacción de coinstalación nunca paga tarifas o Gas, y no se muestra arriba, pero sí cobra tarifas y Gas de su bloque para compartir 10 formas en los resultados: esta es la parte “Mutualizada” de Qtum Mutualized Proof of Stake.

UTXOs Recombinados en Stakes

Otra característica de la creación de el stake es que la billetera siempre quiere “recombinar” UTXO más pequeños en una stake para limpiar los UTXO pequeños. A continuación se muestra una representación gráfica de una solución de núcleo para un UTXO con un valor de 150, que luego se recombina con 9 de los pequeños pagos de recompensa de 0.4 bloques. Esta transacción de coinstake tiene 10 entradas y 9 salidas. Dado que el tamaño de la apuesta es <200.0 QTUM, no está dividido, y la apuesta sería el 150 original, más 9 x 0.4 recombinación, más otro pago de recompensa de bloque inicial 0.4, dando 154.0 QTUM staked.

Un ejemplo extremo de esta recombinación fue un UTXO de solo 0.4 que proporcionó una solución de núcleo y luego se recombinó con 99 otros 0.4s para hacer el stake para el bloque 500847.

Construyendo un Stake

Las reglas para construir stake usan la división y recombinación de acuerdo con el diagrama de flujo a continuación. Los UTXO más grandes que 200 QTUM se dividirán en dos, y la billetera se recombinará para alcanzar 100 QTUM. Por supuesto, la apuesta final depende de los UTXO que tenga disponible la billetera.

Las tarifas para el bloque (tarifas de transacción y Gas) también se pagan en la recompensa de bloque, compartida de diez maneras.

Tamaño UTXO para carteras OG

Podemos ver los tamaños UTXO para algunas billeteras de stake OG (Original Gangster) en los 8 principales stakers del último mes. Estas billeteras han estado staking constantemente durante al menos un año y medio, con sus UTXOs staking continuamente divididos y recombinados utilizando las reglas anteriores. Usé la API qtum.info para ver estos resultados:

Tamaños promedio UTXO para grandes stakers

El tamaño promedio de UTXO se calcula para UTXOs> 0.5 QTUM (sin contar los pequeños pagos de recompensa de 0.4 bloques). Este gráfico muestra que estos apiladores de OG gravitan hacia un UTXO de apilamiento aproximadamente en el rango de QTUM de 150–180.

El algoritmo de recombinación se volvió más exhaustivo con el lanzamiento de v0.18.0, y vemos muchas recombinaciones ahora en múltiplos de 9 donde un stake típica podría estar compuesta por el núcleo UTXO más algún múltiplo de 9 de los pequeños pagos de recompensa de bloque 0.4 QTUM.

También podemos ver algunos tamaños de stake reales. Usando un script Python para extraer datos de blockchain durante dos semanas en febrero (bloques 543,792–553,241), hubo 9,450 bloques con stakes que van desde 4.0 a 100,002.4 QTUM. Alrededor del 46,3% de las stakes estaban en ese “punto óptimo” de <200 (donde no se dividirían). La distribución porcentual de los tamaños de las staking para 0–1,000 por “cubos” de 50 cada uno es:

¿Cómo leer este cuadro? El tamaño de la apuesta de 100 a 150 QTUM (gris) fue del 26,6% del total de los stakes durante este período, el tamaño de el stake 150–200 QTUM (amarillo) fue del 16,7% del total de los stakes, etc. Estos dos “cubos” más grandes de 100–200 QTUM muestra claramente la acción de las billeteras dividiendo los stakes por encima de 200 QTUM y recombinando UTXO más pequeños.

En este conjunto de datos de dos semanas, hubo stakes para cinco UTXO de 0.4 QTUM (que proporcionaron soluciones de kernel) y uno de 2.0 (para un peso total de la billetera de 6.0 QTUM). Es interesante encontrar estos pequeños apiladores, pero son anomalías ya que su “tiempo esperado” sería en las decenas de décadas.

Configuración de su tamaño UTXO — sendmanywithdupes

Para obtener mejores resultados, las billeteras de staking deben dividir previamente sus UTXO en el tamaño de QTUM de 100 a 150. Para tomar UTXO más grandes y dividirlos en el tamaño ideal para staking, use el comando sendmanywithdupes. Un buen enfoque son 100 UTXO en cada transacción, y es más fácil enviarlo a una nueva dirección de staking. Use un procesador de texto con “reemplazar todo” para su dirección de staking con el formato que se muestra en la Referencia 2.

Conclusion

Los UTXO son clave para las operaciones de staking y siguen un estricto algoritmo de división y recombinación cuando se utilizan para un staking. Cuando se publiquen detalles sobre el staking delegado de Qtum, consideraremos cómo se aprovechan los UTXO en ese nuevo diseño.

Referencias

  1. Una introducción a Qtum Proof-of-Stake Mining — A Racing Story https://medium.com/@jb395official/an-introduction-to-qtum-proof-of-stake-mining-a-racing-story-f11a3f48009f
  2. sendmanywithdupes

Este comando permite enviar múltiples transacciones a una dirección y es ideal para dividir UTXO más grandes en pequeñas que sean mejores para staking. El siguiente comando crea 10 nuevos UTXO, sigue el patrón para extender hasta 100 UTXO y usa “reemplazar todo” para ingresar tu dirección de staking.

sendmanywithdupes “” “{\”Q_My_Address\”:100,\”Q_My_Address\”:100,\”Q_My_Address\”:100,\”Q_My_Address\”:100,\”Q_My_Address\”:100,\”Q_My_Address\”:100,\”Q_My_Address\”:100,\”Q_My_Address\”:100,\”Q_My_Address\”:100,\”Q_My_Address\”:100}”

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response