¿Qué es el staking?

By frojas | Aprendiz Crypto | 8 Mar 2022


Otra de las palabrejas que me encontré al empezar con esto de las criptomonedas fue la de staking. Al buscar su significado descubrí que había otras formas de "minar" criptomonedas y que esta era la segunda más utilizada. En lugar de utilizar equipos especializados y una ingente cantidad de electricidad para lograr ganar la prueba de trabajo como ocurre en Bitcoin, el staking consiste en ahorrar cuantas más monedas mejor y no usarlas durante el mayor tiempo posible. Basta con tenerlas almacenadas en un monedero específico que esté abierto el mayor tiempo posible (recomendable las 24 horas del día) y como digo, no usarlas mientras las tengamos haciendo esa función. En lugar de la prueba de trabajo que ya conocemos (ver artículo https://www.publish0x.com/aprendiz-crypto/aprende-como-funciona-el-minado-de-criptomonedas-de-forma-pr-xelkklp), en el staking se realiza una prueba que se conoce como proof of stake (PoS) o prueba de participación. Se llama así ya que cuanta más participación tengamos (monedas+tiempo almacenadas) más posibilidades tendremos de "minar" un bloque. En la mayoría de sitios donde lo definen encontrarás que te dicen que el staking es como una lotería, y que cuantas más papeletas tengas (más participación), más posibilidades tendrás de ganar. Luego veremos que no es exactamente así, pero como una primera aproximación nos puede servir.

Además tuve la suerte de que con la Peseta Digital (de ahora en adelante PTD) podía probarlo, así que me descargué inmediatamente el monedero de la misma y me puse a probar de forma práctica cómo funcionaba este tema. Aquí tenéis una guía de cómo se instala:

https://www.pesetadigital.es/como-usar-el-monedero-core-de-peseta-digital/

En este otro enlace tenéis la explicación del funcionamiento básico del monedero:

https://www.pesetadigital.es/como-usar-el-monedero-core-de-peseta-digital-para-enviar-monedas/

Y en este otro de cómo hacer staking:

https://www.pesetadigital.es/como-ganar-peseta-digital-haciendo-staking/

 

Resumiendo todos estos tutoriales y pasos nos queda lo siguiente:

1. Instalas el monedero core.
2. Una vez instalado comenzará a sincronizar con la red.
3. Cuando finalice la sincronización depositas las monedas de PTD que tengas en el monedero (ver artículo https://www.publish0x.com/aprendiz-crypto/peseta-digital-mi-primera-criptomoneda-xnxdkkd para ver cómo podemos conseguir nuestras primeras monedas).
4. Esperas unas horas a que dichas monedas "maduren". Y cuando esto suceda, ya estarás haciendo staking. Es muy sencillo.

 

Lo que más tiempo te habrá llevado en este proceso es sincronizar el monedero, esto es, descargarte toda la blockchain de la PTD en tu ordenador, pues tienes que saber que a partir de este momento tu eres un nodo más de la red y en tu ordenador se encuentra una copia de todas las transacciones que se han realizado en esta red desde el minuto 1. Además con tu participación estás colaborando en el funcionamiento correcto de dicha moneda, pues ahora eres un validador. Tu nodo comprobará las transacciones que se realizan y ejecutará otras tareas importantes. Al tratarse de una red P2P (peer to peer) todos los nodos (pares) son iguales, ninguno es superior a otro, y estás colaborando en la descentralización de esta moneda digital.

Con lo que hemos visto hasta aquí ya podrías comenzar a hacer staking. Lo que voy a explicar a partir de ahora en el artículo son unas cuestiones más o menos técnicas de cosas que me llamaron la atención y que he ido investigando por mi cuenta, pues si bien de la prueba de trabajo de Bitcoin hay muchísima información, de este método de "minado" (PoS) no hay tanta, y además hay variantes y no todas funcionan igual. Así que lo que viene a continuación lo puedes dejar para más adelante por si a ti te surgen las mismas dudas.

 

Algo más que un simple monedero

Si has tenido experiencia con otros monederos (ver mi artículo https://www.publish0x.com/aprendiz-crypto/el-lio-de-los-monederos-las-claves-privadas-y-la-madre-que-l-xelkxzv) habrás visto que este es diferente. Primero se ha tenido que descargar toda la blockchain de la moneda para poder comenzar a operar, algo que no hacen la mayoría de monederos. Además no te ha suministrado las típicas 12 palabras por si lo tienes que restaurar. En este tipo de monederos no se utiliza ese método. Aquí tienes que ir haciendo una copia de seguridad del fichero wallet.dat que encontrarás en el directorio (soy de la vieja escuela así que a las carpetas las llamo directorios) que le hayas indicado al instalarlo. También irá guardando en la carpeta backups de ese mismo directorio de instalación, copias de seguridad con fecha de dicho fichero. Guárdalas en un USB o sitio seguro por si en algún momento tuvieras que restaurar el monedero, solo tendrías que instalarlo de nuevo y sustituir el fichero wallet.dat nuevo por alguna de las copias de seguridad que tengas. 

Si lo vas a usar para hacer staking tampoco puedes cifrarlo con contraseña (ya te lo dicen en las guías de la Peseta Digital indicadas anteriormente). No quiero entrar en muchos detalles del porqué. Simplemente el monedero tiene que realizar funciones por su cuenta en el staking y si está cifrado, no podría firmar ciertas transacciones necesarias (ya que tendrías que desbloquearlo tu personalmente).

Este tipo de monedero no es exclusivo de la Peseta Digital. La mayoría de monedas (Bitcoin incluido) tienen monederos similares. Y en el caso de monedas que funcionen por staking, el funcionamiento es bastante parecido a lo que vamos a ver. Durante estos meses he probado unos cuantos y el que he encontrado más claro es este, por eso lo uso para este artículo.

 

Qué significa lo del "Tiempo esperado para ganar la recompensa"

Sin duda, lo primero que te preguntarás es cuándo vas a empezar a ganar recompensas con el staking, es decir, cuando validarás tu primer bloque (luego explicaré el proceso resumido de cómo se realiza). Si no sabes qué es un bloque, puedes ver mi artículo https://www.publish0x.com/aprendiz-crypto/aprende-como-funciona-el-minado-de-criptomonedas-de-forma-pr-xelkklp

Pues bien, para hacernos una idea de cuando puede ser este momento, tenemos dicha información en la parte inferior derecha de la pantalla principal del monedero. Si colocáis el ratón encima del pilotito verde, aparecerá un mensaje como el que podemos ver en la imagen

b38e363b48bb89c09e8582556ec2365a3d55e73958f9d98f2a5d9591a0338e4e.jpg

 

Al principio, cuando ya haya sincronizado, te aparecerá rojo y un mensaje que dirá que no está en staking ya que no dispones de monedas maduras, pero en cuanto pasen unas horas (a mi me tardó algo más de un día la primera vez, pero no parece que sea lo normal) ya te aparecerá en verde y con una información similar a la mostrada en la imagen.

En el ejemplo vemos que nos indica que podremos ganar la recompensa en 63 días ¿es esto realmente así? No necesariamente. Voy a intentar explicarlo.

La contribución de la red es el total de la participación en staking de todos los nodos conectados en ese momento. Es decir, el número de PTD (además del tiempo) que todos los usuarios de esta moneda tienen en staking ahora mismo, incluidos nosotros. Si la dividimos por nuestra participación del ejemplo obtenemos 18225 aproximadamente, que es el número de bloques que se deben validar para que nosotros tengamos una posibilidad de ser los elegidos y por tanto llevarnos la recompensa. Para entender mejor esto pensemos en el lanzamiento de una moneda física. La probabilidad nos dice que me saldrá "cara" cuando haya lanzado la moneda 2 veces, ya que existe la misma probabilidad (50%) de que salga cara o cruz. Si lanzo una vez y sale "cruz", posiblemente la siguiente vez salga cara. Es decir, el tiempo esperado para conseguir "cara" son 2 tiradas. La contribución de la red en este caso sería 2 (las dos posibilidades que existen) y mi contribución sería 1 (he elegido una de las dos posibilidades). Por lo tanto, 2 dividido por 1 es 2.

Otro ejemplo sencillo lo podemos encontrar con un dado de parchís. El tiempo esperado para que al lanzarlo obtenga un 5 por ejemplo, es de 6 tiradas (6 lados totales dividido entre 1 lado que me interesa).

En nuestro caso por tanto esta sencilla operación nos dice que tendrán que pasar 18825 bloques para que yo valide un bloque. Como en la PTD se suele validar un bloque cada 5 minutos, en un día se validan 288 bloques y si dividimos los 18825 bloques entre esos 288 obtendremos los famosos 63 días que nos aparecen en el mensaje.

La única diferencia que tenemos con estos dos ejemplos es que ni la contribución de red ni la nuestra permanecen constantes todo ese tiempo, por lo que verás que el número de días irá variando, generalmente disminuyendo. Lo normal es que validemos antes de que se cumpla ese periodo, pero hay más probabilidad que esto suceda cuanto más cerca estemos. Es decir, que el tiempo esperado sea más pequeño.

 

El staking no es una lotería pero no salimos del casino

Como dije al principio del artículo, en la mayoría de los sitios en los que busquemos información sobre staking nos van a explicar que es como una especie de lotería y que tendremos más posibilidades de conseguir el premio cuantos más "boletos" hayamos comprado. Tampoco es así. En una lotería si yo tengo una sola participación, mi número tiene la misma posibilidad de salir que el de cualquier otro. Sin embargo el staking no funciona así. Vamos a verlo.

Vimos que en Bitcoin (artículo indicado anteriormente) un minero conseguía la recompensa cuando su equipo encontraba un hash con un número de ceros determinados al principio, y para eso iba probando a fuerza bruta hasta que lo conseguía. En el caso del staking (PoS) nuestro ordenador también tiene que encontrar una cosa similar, pero no va a necesitar realizar un gran número de operaciones. El staking de la PTD no se si funcionará exactamente como voy a decir pues no he encontrado información y tampoco me ha parecido oportuno preguntar a sus creadores sobre esto, pero en los casos que he estudiado funciona de la manera que voy a explicar. Lo que si me ha confirmado Xaxuke G. (uno de los creadores) a través de su grupo de Telegram es que la PTD usa las UTXO para resolver el bloque (ver artículo https://www.publish0x.com/aprendiz-crypto/ahora-que-sabia-decir-almenaque-resulta-que-se-dice-candelar-xrnvpgd para entender que son las UTXO). Tampoco todos los PoS operan de la misma manera, aunque en el caso de la PTD no creo que sea muy diferente a lo que voy a comentar aquí por lo que he observado. 

Por cada UTXO que tengamos en nuestro monedero se realizan las siguientes operaciones:

1º) Se obtiene un valor que irá cambiando en cada comprobación. En el caso del PoW era el nonce y en este caso es un valor relacionado con la hora y la fecha actual.

2º) Se calcula la dificultad de nuestra UTXO multiplicando el valor de la dificultad de ese bloque por el valor numérico de la UTXO. 

0b769ac05ae343e2db992cfb9b8e320cacc557c52e86f4e4a111d513557e54ca.jpg

Si miráis en el apartado Statistics de vuestro monedero, podréis ver un valor llamado PoS difficulty (en la imagen está en rojo). Desconozco si ese valor es el que se multiplica al valor de la UTXO o es el resultado de la UTXO que ha encontrado la solución. Yo diría que es el valor de la dificultad que se multiplica por el valor de la UTXO por lo pequeño que es. Este valor irá variando para hacer que el tiempo promedio entre bloque y bloque sea de 5 minutos, al igual que sucede en PoW, aunque en PoS cambia más a menudo.

Por lo tanto, vamos a suponer que esos 55 que tengo yo de participación (Total stake weight) fuera el valor de una sola UTXO. Al multiplicarlo por 0.070398 obtendría una dificultad * UTXO de 3,87 aproximadamente. Sin embargo, otro monedero de la red que tenga una UTXO con una participación de 1000 por poner un ejemplo sencillo, tendrá una dificultad*UTXO de 70,398. Tengamos en cuenta estos valores para más adelante.

3º) Ahora nuestro monedero calcula un hash a partir de unos datos obtenidos del bloque anterior, el valor del tiempo indicado en el punto 1º y otros valores de nuestra UTXO. A este valor se le suele llamar PoS Kernel.

4º) Se comprueba si el PoS Kernel es inferior al obtenido en el punto 2º. De ser así, se ha encontrado la solución y el bloque lo validamos. Si no es menor, entonces lo vuelve a intentar con el valor de otra UTXO. Si ninguna de nuestras UTXO determinan un valor inferior al obtenido en el punto 2º, nuestro nodo espera 16 segundos y vuelve a empezar la comprobación con la única diferencia del valor horario que es lo único que va cambiando entre intentos. Si otros nodos no han encontrado tampoco la solución, se repite el proceso hasta que alguien resuelva el problema.

 

Por lo tanto yo compararía al staking con el típico juego del dado (Dice) de los casinos online. Lanzas el dado que te puede dar un número entre el 0 y el 100. Eliges un número que se encuentre entre esos dos y apuestas a que el número que va a salir es mayor o menor que el que tu has elegido. Si elijo el 70,398 y apuesto a que el número que va a salir es menor, voy a tener más posibilidades de ganar la apuesta que si elijo el 3,87 y espero un número menor a este ¿verdad?  Pues con las UTXO ocurre exactamente igual. Más que una lotería es el juego del dado. Por lo tanto vemos que una UTXO con un valor mayor tiene más posibilidades de resultar elegida que una UTXO con valor menor. Si yo tengo 1000 UTXO de valor 1, no voy a tener más posibilidades de resolver el bloque que otro monedero que tenga un par de UTXO de 50 por ejemplo. En el primer caso el monedero podría tener muchas más monedas que yo, pero no tener más posibilidades por ello. No tiene nada que ver con una lotería. Entender esto es importante.

 

¿Una UTXO grande o varias más pequeñas?

Pues no sabría que es mejor. Supongamos que tenemos una sola UTXO con una participación de 5000. Sólo vamos a tener un intento para lanzar el "dado" cada 16 segundos, pero la apuesta es bastante segura y va a tener más posibilidades de encontrar un número más pequeño que si tuviéramos dos UTXO de 2500, que aunque aumentaría nuestro número de "lanzamientos" (dos cada 16 segundos), el número apostado sería la mitad, y tengo la mitad de probabilidades de encontrar un número inferior. Eso si, prefiero una UTXO con un peso de 100 antes que 10.000 UTXO con peso de 1.

¿Cómo podemos tener por tanto una sola UTXO? Yo lo que he hecho ha sido coger todas las PTD que tenía en el core y me las mandé a la dirección del bot de Telegram. De esta forma si tengo varias UTXO (entradas) se convierten en una sola al llegar a la dirección de bot. Luego me lo mando todo de vuelta al monedero core y ya tengo una sóla UTXO. No se si es lo más apropiado o si hay otras formas de conseguirlo. Simplemente yo lo he hecho así para probar. Actualizaré este post si voy descubriendo otras cuestiones relativas a esto.

 

Si te interesa el staking, tengo otro artículo donde doy más información del mismo, incluso con monedas y servicios que no se necesitan disponer de grandes cantidades de monedas para empezar a obtener recompensas. Lo puedes leer en https://www.publish0x.com/aprendiz-crypto/staking-que-es-gerundio-xmyprxn

 

 

Descargo de responsabilidad

Yo no soy un experto. Acabo de empezar en esto. No doy consejos de inversión (ni lo pretendo). Sólo explico en este blog mi experiencia personal en el mundo de las criptomonedas desde un punto de vista práctico y orientado a que cualquiera pueda aprender sin inversión previa y sin gastarse ni un céntimo.

Si por tu cuenta y riesgo decides invertir en algún producto de los aquí comentados, hazlo siempre que lo hayas estudiado e investigado bien y consultando otras fuentes con otros puntos de vista. No inviertas dinero que puedas necesitar. La inversión en criptoactivos no está regulada, puede no ser adecuada para inversores minoristas y perderse la totalidad del importe invertido.

How do you rate this article?

0



Aprendiz Crypto
Aprendiz Crypto

En este blog iré compartiendo todo lo que voy aprendiendo del mundo de las criptomonedas y de cómo voy consiguiendo mis primeras monedas de forma totalmente gratuita y sin inversión, compartiéndolo con vosotros por si queréis seguir mis pasos y aprender de forma sencilla y práctica.

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.