Entendiendo las transacciones de criptomonedas (Parte 1)

in spanish •  6 years ago 

Este post está inspirado en mi propia experiencia de aprendizaje en el mundo de las criptomonedas, y por este motivo intentaré ir explicando los conceptos de la misma manera en que los aprendí.

Empecemos desde el inicio, cuando un nuevo usuario de criptomonedas se decide por realizar su primera inversión en un exchange. En esta etapa no entiendes nada, solo sabes que compraste “una cosita en internet que sube y baja de precio” y bajo esa idea te vas ilusionado con lambos y viajes a Dubai.

Luego descubres que las criptomonedas pueden ser utilizadas como método de pago y que existen wallets para almacenar tus fondos. Aquí es cuando descargas el primer monedero de criptomonedas que conoces y entras al extraño mundo de las redes descentralizadas.

¿Qué es una address?

La wallet que descargaste te muestra una dirección hacia donde tienes que transferir tus criptomonedas para que el programa las administre. Es una ensalada de letras extrañas que viene acompañada por una imagen con puntitos y cuadritos.


cesarM3tMsBkVcmz5bnTjD7N4VbdXDVDd4

En las redes de criptomonedas no existen “cuentas de usuario” como en los bancos, y por esto, cada usuario es capaz de generar una dirección de manera aleatoria utilizando un algoritmo que es específico para cada red.

El proceso más utilizado es el que utiliza Bitcoin, en donde se genera una “Llave Privada” de manera aleatoria y luego se utiliza la criptografía para construir una “Llave Pública”, que al ser encriptada entrega una dirección válida.

En resumen, un número aleatorio genera una llave privada, la llave privada genera una llave pública, y una llave pública genera una dirección.

Random 256 bytes => Privkey => Pubkey => Address

Gracias a este proceso es posible que exista un número casi infinito (2²⁵⁶) de direcciones disponibles para todos los usuarios de la red, lo que permite saltarse la fila del banco.

Tu primera transacción

Ahora que tienes tu direccion de wallet te decides por enviar parte de los fondos que compraste en el exchange a este software que supones que es más seguro. Escribes la dirección de tu wallet y realizas exitosamente tu primera transacción de criptomonedas.

En los primeros 5 minutos te asustas y piensas que tus fondos se fueron hacia otro lado, porque tus criptomonedas no están ni en el exchange ni en la wallet. Aquí es cuando empiezas a googlear para ver si existe alguna forma de salvar tus criptomonedas e insultas a la mamá del dueño del exchange.

Luego de un rato aparecen tus fondos en tu wallet, suspiras de alivio y al revisar te das cuenta que faltan criptomonedas. Aquí es cuando te arrepientes de realizar la transacción, intentas devolver los fondos al exchange y vuelves a repetir este proceso de miedo e incertidumbre.

¿Qué pasó?

Ahora necesitas saber quien te robó tus criptomonedas y por qué se demoró tanto este proceso, y para hacerlo más fácil intentaré ir paso por paso explicando que sucedió.

Las transacciones de criptomonedas son como un formulario que debes llenar con un listado de “Entradas” y de “Salidas”, la firma de la persona que llenó el formulario y un par de casillas vacías que son llenadas por la persona que lo recibe.

Por ejemplo, veamos la siguiente transacción de la Red Chaucha:

{
  "txid": "3d9424fd81d2a69dd56006f4f3ad04985565f2fec64fc5ef306b2bafae50907e",
  "vin": [
    {
      "txid": "d5f07698ca861c546d42b437a42cc6ee2b97479c0c06d26e5c03457f880819b2",
      "vout": 0,
      "scriptSig": {
        "hex": "483045022079956ae5bc043380d6f4fdac87330648db6d39d2eec4b184e74b8bcd1fe50a3102210094b780c95869768c6298dd3dda34c1bbf7348983faa3d1903b9e9232c626d2b50121023783478cdc6d2e0722c56c3fb22b14365fe4bc053e1b60716b7a4cb24f065da4"
      },
    }, 
    {
      "txid": "3092b1ed5b53c2ddf3e5e754163d3767a902416d287cd0b73be7e8d821894805",
      "vout": 0,
      "scriptSig": {
        "hex": "47304402202dad6d6f022048f118f1545c19abd625b44f84c8733bd97cd1b63a2103f66a1e02202db40829f4d20f0dabd0cdcb7bfbc07e3d9530f8fc743d71f2f24a1f3605c0920121023783478cdc6d2e0722c56c3fb22b14365fe4bc053e1b60716b7a4cb24f065da4"
      },
    }
  ],
  "vout": [
    {
      "value": 20.74243739,
      "n": 0,
      "scriptPubKey": {
        "hex": "76a914ce14a788c88707b0ef69ca357700bcb63ca5d60188ac",
        "type": "pubkeyhash",
        "addresses": [
          "cjXjbAjQSPW1kuRRFTCA4SFyufQWnXBfeM"
        ]
      }
    }, 
    {
      "value": 8.53449561,
      "n": 1,
      "scriptPubKey": {
        "hex": "76a91472b8b334571bd503bd1d616a0e0f587f474f32f388ac",
        "type": "pubkeyhash",
        "addresses": [
          "cbCfwcBSPrvnoBq6yNGDgq6iSS8tUyjdDj"
        ]
      }
    }, 
    {
      "value": 13.40303700,
      "n": 2,
      "scriptPubKey": {
        "hex": "76a91441ccda67bc456449ddad3b10f27e47006b23f79888ac",
        "type": "pubkeyhash",
        "addresses": [
          "cWjzyUJaAGzCMj7FpvSovG5r9HeFafz1E3"
        ]
      }
    }
  ]
}

La transacción comienza con una firma digital (“txid”) que es un resumen criptográfico de la información incluida dentro de la transacción, y junto con esto, se puede observar que esta transacción contiene dos entradas (“vin”) y tres salidas (“vout”), junto con un par de parámetros que fueron eliminados para simplificar este ejercicio.

Cada salida contiene una dirección de destino (“addresses”), un monto de salida (“value”) y un identificador dentro de la transacción (“n”).

Y como se explicó anteriormente, cada entrada es una salida de una transacción en el pasado, y por este motivo se incluye el identificador “n” y el “txid” de la transacción de donde provienen los fondos a transferir.

Además de esta información, cada entrada debe ser firmada (“scriptSig”) utilizando la llave privada de la dirección que controla esos fondos, a modo de verificar que el creador de esta transacción es dueño de las criptomonedas a transferir.

¿Por qué se demoró tanto la transacción?

Cada transacción es “anunciada” (broadcasting) dentro de la red, a modo de que todos los participantes sepan que se quieren enviar fondos de una dirección a otra, y así se pueda estudiar la integridad de la información contenida en la transacción.

Este proceso de verificación se realiza al contrastar la información con respecto al historial de la red, que le llamamos Blockchain. Si este proceso resulta positivo, la transacción es incluida dentro de un bloque y se escribe en el blockchain para que la transacción sea utilizable en el futuro.

Como las criptomoneda utilizan la criptografía para asegurar la integridad de la información, se asume que cada bloque que es incluido después del bloque que contiene a la transacción es una “verificación”. Luego de 6 verificaciones es probabilísticamente imposible que la transacción sea incorrecta, y aquí es cuando se comprueba que los fondos fueron enviados de manera exitosa.

Todo este proceso toma tiempo y esfuerzo, ya que involucra muchos pasos que se deben cumplir para que una criptomoneda pase de una mano a otra.

¿Por qué tengo menos criptomonedas que antes?

El proceso de creación de bloques consiste en tres partes, la lectura de todas las transacciones que fueron anunciadas en la red, la verificación de la información de cada una de estas transacciones, y la conformación de un bloque que siga las reglas que define la red.

La creación de bloques es considerada un trabajo, ya que requiere capacidades técnicas, tiempo y esfuerzo para llegar a la solución correcta, y por este motivo, es necesario que exista un incentivo económico para que alguien lleve a cabo este proceso.

En base a esta idea se definió la idea del “impuesto” por transacción, que es la resta entre el monto de entrada y el de salida en una transacción válida.

Este impuesto también permite asignarle una prioridad a cada transacción, en base a que el creador de bloques tiene que decidir qué transacciones incluir en un bloque a modo de obtener el impuesto como ganancia. Cada bloque tiene un tamaño máximo, por lo que esta competencia de las transacciones por “incluirse en un bloque” está definida por su prioridad.

¿Qué pasa después?

Al anunciar una transacción en la red se le asigna la categoría de “Sin confirmar”, ya que no esta incluida en ningún bloque.

Cuando la transacción es incluida en un bloque se asume que fue verificada 1 vez, y se van sumando verificaciones cada vez que se incluye otro bloque en el Blockchain

Una transacción con 6 o más verificaciones es considerada como una “transacción sin gastar” (Unspent), lo que significa que puede ser utilizada como entrada en otra transacción en el futuro, y cuando esto sucede, la transacción es considerada como una “Transacción gastada” (Spent).

Las transacciones gastadas solo son utilizadas para rastrear los movimientos de una criptomoneda dentro de la historia de la red.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

@chaucha, I gave you an upvote on your post! Please give me a follow and I will give you a follow in return and possible future votes!

Thank you in advance!