Ahora que sabía decir almenaque resulta que se dice candelario

Ahora que sabía decir almenaque resulta que se dice candelario

By frojas | Aprendiz Crypto | 3 Mar 2022


Sirva el chiste tonto del título para introducir este pequeño artículo. Y es que cuando comienzas en esto de las criptomonedas y parece que ya sabes lo básico y más importante, te aparece un nuevo concepto que te deja ojiplático. 

Iba a escribir un artículo sobre el staking (espero que sea el próximo), pero mientras lo maduraba me he dado cuenta que va a surgir el concepto de las utxo y prefiero aclararlo aquí antes para que el artículo del staking no sea demasiado denso y asuste de entrada, así que vamos con nuestras nuevas amigas.

 

Qué es una utxo

La palabreja viene del inglés Unspent Transaction Output que en español vendría a ser algo así como transacción de salida no gastada, y es un invento de nuestro amigo Satoshi Nakamoto para el correcto funcionamiento de Bitcoin. Posteriormente muchas otras monedas que han tomado al Bitcoin como modelo lo han adoptado, aunque hay otras que no.

Cada vez que recibimos una cantidad de dinero en nuestro monedero, esa cantidad o transacción forma una utxo. Por ejemplo, yo recibí el pasado 26 de enero 0.0001 BCH (Bitcoin Cash) como recompensa de un juego. Esa transacción automáticamente se convierte en una utxo en mi monedero. Para hacer una analogía, es como si yo cada vez que recibo dinero físico metiera esa cantidad en una pequeña bolsa y ese dinero no se mezcla con el resto que pueda tener en mi monedero físico.

A los pocos días, el día 1 de febrero, vuelvo a recibir en ese mismo monedero otra recompensa de 0.00011008 BCH. Esa cantidad es otra utxo. Por lo tanto ya tengo dos utxo en mi monedero, internamente diferenciadas aunque el balance del monedero me indique que poseo 0.00021008 BCH en total.

¿Qué tal vamos? ¿Se entiende? De momento bien, salvo por la palabreja, la idea es sencilla: cada dinero que recibo se "guarda" en una bolsita que hace que no se mezcle, y esa bolsita imaginaria se conoce con el nombre de UTXO.

¿Qué ocurre cuando tengo que enviar dinero? Pues que el monedero lo obtiene de una de esas bolsitas, y si no es suficiente, coge otra bolsita, y así sucesivamente hasta que consigue saldo suficiente. Siguiendo con el ejemplo de mi monedero de Bitcoin Cash, el pasado 28 de febrero decidí mandar todo lo que tenía a otra dirección. Si nos imaginamos como estará formada la transacción internamente podríamos suponer que como emisor aparecerá la dirección de mi monedero del que sale 0.00021008 BCH y la dirección del receptor al que le llegan esos 0.00021008 descontando la comisión que haya pagado. Pero cual es nuestra sorpresa cuando miramos en el explorador dicha transacción y observamos que como emisor aparecen dos líneas (entradas) que corresponden a cada una de las UTXO y un receptor (una salida) que eso es más lógico.

6aedb1e37bfcd5dbb99bb8b599797534591ab1307adeef687dae4b42dc9df322.jpg

Es decir, cada UTXO que es necesaria para completar el saldo que quiero enviar aparece indicada en la transacción. Esto que parece ser algo sin importancia puede suponer que paguemos comisiones más altas, puesto que si la comisión de transacción se calcula según el tamaño en bytes de dicha transacción, pagaré más cuanto más datos incluya esa transacción. Si yo recibo muchas cantidades pequeñas, es decir, tengo muchas UTXO, pero envío cantidades grandes, puedo dar lugar a que en una transacción aparezcan numerosas UTXO como entradas, haciendo que el tamaño en bytes de esa transacción sea mucho más elevado que si solo se necesitara una UTXO para completar el pago. En el artículo del staking veremos que esto tiene también mucha importancia aunque no en este sentido de las comisiones.

Y en el caso del receptor, la salida (output) de mi transacción se convierte en una UTXO en su monedero. Es decir, el receptor cuando recibió los 0.00020328 BCH los metió en una "bolsita" (UTXO) de su monedero cuyo valor es el indicado y es un dinero que está sin gastar, listo para ser usado. De ahí el significado del nombre en inglés (transacción de salida no gastada).

 

¡Éramos pocos y parió la abuela! La dirección de cambio

¿Y qué ocurre cuando el dinero que quiero enviar es inferior al que contiene la UTXO? Podríamos pensar que simplemente descontamos la cantidad que vayamos a retirar de la UTXO y ya está ¿verdad? Pues no. Como dice mi hijo, XDDDDDDD

Ya sabéis que a mi me gusta demostrar las cosas y verlo todo lo más práctico posible sin rollos teóricos (deformación profesional), así que he cogido una cuenta donde sabía que tenía una sola UTXO para que así no hubiera dudas y he realizado un envío de dinero inferior a la cantidad de esa UTXO. Lo he hecho con la Peseta Digital que es la moneda que usaré en el artículo del staking.

¿Cómo sabía que sólo tenía una UTXO? Pues porque yo mismo envié a esa cuenta 11,002 PTD en una sola transacción, por lo que mi monedero asumió esa cantidad como una única UTXO. Es decir, todo el dinero que tenía en el monedero estaba en una sóla "bolsita".

Así que sabiendo eso, para demostrar lo que os quiero explicar, hoy he enviado 1 PTD a otra dirección. Al mirar la transacción en el explorador nos encontramos con lo siguiente:

 

cde7c4c4f565344236befe172e7b684db05e8dc7b296a4de83a7fb73f608e752.jpg

En la entrada no hay sorpresas. Aparece mi dirección pública formando la única UTXO que hay, con sus 11,002 PTD. Si solo tengo una bolsita con el suficiente dinero de donde sacar, es la única que aparece. Ok, todo correcto. Pero la sorpresa viene en la salida, donde en lugar de tener un solo receptor, la dirección a la que he enviado la peseta digital, veo que aparecen dos, la dirección a la que he enviado dicha PTD y otra dirección desconocida para mi que tiene el "cambio". Es como si voy a una tienda, tengo que pagar 1 PTD, pero solo tengo un billete de 11,002 PTD y me "devuelven" lo que sobra (menos 0,001 que es la comisión que he pagado por la transacción y que va para los "mineros"). ¿Quién me devuelve las 10,001 PTD? ¿La persona a la que le he enviado 1 PTD? No. Me lo devuelve mi propio monedero, y lo hace de una forma totalmente transparente. Yo no se que eso ocurre hasta que decido investigar las "tripas" de todo esto. Al principio de crearse el Bitcoin, esto lo tenía que hacer manualmente el usuario, pero afortunadamente las billeteras actuales ahora lo hacen por nosotros, aunque sin avisar.

Es decir, mi UTXO ha formado una entrada y de ahí surgen dos salidas, una la que le llegará al destinatario y otra salida que me devuelve el dinero que no me he gastado, formando una nueva UTXO y enviándolo a una dirección nueva y oculta de mi propio monedero. Esta dirección se conoce como dirección de cambio.

Por lo tanto, mi monedero no coge la UTXO antigua y le descuenta el dinero que nos hemos gastado, pues por definición ya no sería una UTXO (dinero no gastado) sino que genera una nueva UTXO cuya totalidad es el dinero no gastado, dinero que tengo disponible para operar con él. De esta forma nuestro amigo Satoshi evitaba el problema del doble gasto, entre otras cuestiones. Es decir, no puedo gastar dos veces el mismo dinero, algo que es importante controlar en todo dinero digital.

 

¡Me han robado el dinero!

Si miro en el explorador el saldo que supuestamente tengo en mi monedero, en la dirección PV9h8cn1AZ2HLyyYiNsqAK53TN98Ua2co4  observo que actualmente tengo.... 0.98 PTD !!!! ¡¡Horror, un hacker me ha robado!!

33abf7579bc273f939d4870cb62cb7f63671cb6282a78d471206bba72547f60d.jpg

 

Nota al margen: Ahora me doy cuenta que igual tengo unos céntimos perdidos por ahí en otra UTXO... Pero bueno, esa es otra historia.

El caso es que si miro en mi monedero veo que afortunadamente solo ha sido un susto y si que está ahí mi dinero, pero entonces.... ¿por qué pone el explorador que mi dirección, la única que tengo y la que utilizo siempre, tiene sólo 0,98 PTD?

b03a894304a8848beca4ee6b67b0686d28be9a2c26e9264396343ea78659f4ab.jpg

 

Pues si has entendido lo que te explicaba antes de la dirección de cambio, la respuesta es sencilla. Ese dinero que me falta está en esa nueva dirección "oculta". Dirección que ni siquiera yo sabía que existía, pero que mi monedero gestiona convenientemente. Por lo tanto, IMPORTANTISIMO, nunca guardes sólo la clave privada y la dirección pública de un monedero si lo tuvieras que restaurar en algún momento. Guarda siempre la frase de recuperación (las 12 o 24 palabras) que te han dado al crear el monedero, o en el caso de estos monederos "core" como el de la Peseta Digital, el fichero wallet.dat que encontrarás en el directorio de instalación, ya que en esos dos casos se almacena la información necesaria de todas las claves privadas y direcciones ocultas que pueda generar el monedero. Por eso, si te haces un monedero de papel, cuando recuperes el capital almacenado en el mismo y lo pases a otra dirección, hazlo de forma completa, porque en ese caso, si solo tienes la clave privada y la dirección pública, si que te puedes encontrar con que el resto del dinero si solo has cogido un poco lo has perdido en una dirección que nadie conoce su clave privada para poder restaurarla. Es lo que avisaba en el artículo El lío de los monederos, las claves privadas y la madre que los parió

 

Otra pregunta más para ver si lo has pillado... ¿qué dirección de envío (input address) aparecerá en el explorador si por ejemplo ahora hago otro envío de dinero?

Respuestas posibles:

a) Aparecerá la dirección pública que tengo en el monedero (PV9h8cn1AZ2HLyyYiNsqAK53TN98Ua2co4)

b) Aparecerá la dirección oculta (dirección de cambio) que ha creado internamente el monedero en la transacción que hemos visto anteriormente (PFWgjaqDT2E56imu5EPvCz18cgbrL6nWT1).

c) Ninguna de las dos. Aparece otra dirección que ha sido generada como una UTXO aleatoria.

¿Cuál es la correcta? La solución está aquí: https://explorer.pesetadigital.es/tx/72d35e2cfc5735e08214006d38c940c47994c73888beb4cd671022a1c5346b8f

 

Espero que pronto pueda escribir el artículo del staking donde aprenderemos cómo podemos ganar dinero ahorrando en un monedero. Suscríbete a mi blog para recibir notificaciones cada vez que escriba un nuevo artículo en https://www.publish0x.com/aprendiz-crypto

También puedes seguirme en Twitter: https://twitter.com/frojas

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.

Publish0x

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.