Blockchain es un libro mayor digital, descentralizado y distribuido. Blockchain utiliza una red P2P (Peer to Peer), donde los participantes presentes en la red se denominan Nodes. El libro mayor almacena datos sobre transacciones. Es una string de bloques, donde su característica más significativa es que los bloques están criptográficamente unidos entre sí.
Enlazados criptográficamente entre sí
- Cada bloque en la string de bloques, excepto el primer bloque (conocido como el bloque de génesis) contiene un campo llamado hash anterior. Es el hash del bloque anterior de la string. Esto hace que blockchain sea muy seguro.
- Si un atacante intenta cambiar los datos de un bloque, el hash del bloque cambiará, como se indicó anteriormente, el siguiente bloque tendrá el hash del bloque actual, si el hash cambia, la string se destruirá. O bien, el atacante tiene que minar todos los bloques nuevamente desde ese punto. Esta es una posibilidad en un ataque del 51%.
¿Qué es un bloque?
Un bloque en blockchain almacena transacciones. En el caso de bitcoin, los bloques se agregan a la string de bloques cada 10 minutos, esto puede variar como un tiempo para minar un nuevo bloque dependiendo de la complejidad del hash de destino, y puede tomar más tiempo minar un bloque, en comparación con el otro.
- Cuando el minero extrae con éxito el bloque, se agrega a la string de bloques.
- Cuando el bloque se agrega a la string, el estado de todas las transacciones dentro del bloque cambia de no confirmado a confirmado.
- En el caso de bitcoin, la cantidad de transacciones que se pueden almacenar dentro de un bloque no es fija, pero el tamaño máximo del bloque se establece en aproximadamente 1 MB, el tamaño del bloque puede variar ligeramente de 1 MB.
- Los bloques vacíos son válidos, lo que significa que se puede extraer un bloque vacío y agregarlo a la string.
Transacción
Pelar una sola transacción revela varias estructuras diferentes en una transacción que tienen diferentes significados semánticos. Las siguientes son las diferentes estructuras presentes en la transacción:
- Número de versión de la transacción: Es un número de versión que especifica el tipo de transacción a la red. A través del número de transacción, un Node puede determinar el conjunto de reglas que se utilizarán para verificar esta transacción en particular.
- Salida: la salida de la transacción consta de un bloqueo criptográfico y una hora.
- Entrada: La entrada de transacción consta de un puntero y una clave de desbloqueo. El puntero apunta a la salida de la transacción anterior. La tecla de desbloqueo se utiliza para desbloquear la salida anterior a la que apunta la entrada. Cada vez que una entrada desbloquea la salida, se marca en la base de datos de blockchain como gastada.
- Tiempo de bloqueo: especifica si una transacción se puede incluir en la string de bloques de inmediato o después de un tiempo específico.
UTXO son todas aquellas salidas que aún no han sido desbloqueadas por una entrada.
Una vez que se desbloquea una salida, se eliminan del suministro circulante. Las nuevas salidas toman su lugar. Por lo tanto, la suma de las salidas desbloqueadas siempre será igual a la suma de los valores de las salidas recién creadas.
¿Qué es una UTXO?
En bitcoin, la transacción vive hasta que se ejecuta hasta el momento en que se realiza otra transacción fuera de ese UTXO. UTXO significa salida de transacción no gastada.
- Es la cantidad de moneda digital que le queda a alguien después de ejecutar una transacción.
- Cuando se completa una transacción, la salida no gastada se deposita nuevamente en la base de datos como entrada que se puede usar más tarde para otra transacción.
¿Cómo se crea una UTXO?
Las UTXO se crean mediante el consumo de las UTXO existentes. Cada transacción de Bitcoin se compone de entradas y salidas. Las entradas consumen una UTXO existente, mientras que las salidas crean una nueva UTXO.
Modelo UTXO
El modelo UTXO no incorpora monederos a nivel de protocolo. Se basa en transacciones individuales que se agrupan en bloques. El modelo UTXO es un diseño común a muchas criptomonedas, sobre todo Bitcoin.
- Las criptomonedas que utilizan el modelo UTXO no utilizan cuentas ni saldos. En cambio, los UTXO se transfieren entre usuarios de manera muy similar al efectivo físico.
- Cada transacción en el modelo UTXO puede hacer la transición del sistema a un nuevo estado, pero la transición a un nuevo estado con cada transacción es inviable.
- Los participantes de la red deben permanecer sincronizados con el estado actual.
Para entender cómo funcionan las transacciones, echemos un vistazo a un ejemplo:
1. Suponga que se reciben los siguientes bitcoins de las transacciones. Cada una de estas transacciones es una UTXO.
2. Ahora quiero comprar un auto que cueste 0.5 BTC.
3. Para transferir 0,5 BTC, es necesario elegir una o varias transacciones como entrada.
4. Es por esto que una transacción en bitcoin es diferente a los bancos, en el caso de los bancos, uno hubiera ingresado una cantidad de 0.5 BTC, presionado transferir y hubiera ido al vendedor, pero esto no es así en bitcoin. , aquí es necesario elegir uno o más UTXO como entrada.
5. En el caso de las criptomonedas, no existe una cantidad en su cuenta.
6. Elijamos 0,7 BTC de Sarah como entrada para comprar un automóvil.
7. En el caso de UTXO, la cantidad de entrada no se puede dejar sin gastar, no se puede decir que no se haga nada con los 0,2 BTC restantes.
8. Los 0.2 BTC restantes deben usarse de una de las siguientes 3 formas:
- Envía el monto restante a tu cuenta, como hicimos en la imagen de arriba.
- Use el monto restante como tarifa de transacción. Recuerde que debe haber alguna tarifa de transacción; de lo contrario, ningún minero agregará su transacción para bloquearla y permanecerá sin confirmar.
- Envía la cantidad restante a otra persona.
9. Ahora que se enviaron 0,5 BTC al vendedor pero no se agregó ninguna tarifa, la transacción no se confirmó y después de 72 horas, se reembolsarán 0,7 BTC.
10. Entonces, para enviar dinero al vendedor, pongamos esos 0.2 BTC como tarifas para esta transacción.
11. Para proporcionar una tarifa de transacción, no es necesario mencionar nada, si no envía el monto restante a nadie, se asume una tarifa de transacción.
12. Ahora que se agregó la tarifa de transacción, un minero incluyó esta transacción en el bloque y posteriormente obtuvo 0.2 BTC como tarifa de transacción.
13. Echemos un vistazo a nuestros UTXO originales nuevamente.
14. El UTXO de Sarah ya no está, el UTXO solo vivió hasta que no se hizo otra transacción con él, pero ahora se usó en otra transacción, es decir, para comprar el automóvil.
15. La transacción se almacena dentro de un bloque, también es uno de los cuatro factores que cambia el hash de un bloque. Esto significa que si un minero elige una transacción diferente manteniendo los otros 4 factores iguales, el hash será diferente.
16. Los factores que determinan el hash de un bloque
- marca de tiempo
- Número de Bloque: Es el número de serie del bloque actual en la string.
- Datos: Las transacciones almacenadas en el bloque.
- Mientras tanto
17. Si cualquiera de estos cuatro factores cambia incluso en 1 bit, el hash cambia por completo, esto se debe al efecto de avalancha.
Conjunto UTXO
El total de UTXO presentes en una string de bloques representa un conjunto y cada Node de bitcoin lo mantiene constantemente.
- Cada transacción consume elementos de este conjunto y crea otros nuevos que se agregan al conjunto.
- Por lo tanto, el conjunto representa todas las monedas en un sistema de criptomonedas en particular.
- El conjunto UTXO se actualiza cada vez que se acepta un nuevo bloque en la string de bloques.
- Cada Node de Bitcoin en la red tendrá la copia exacta del conjunto UTXO en su almacenamiento local.
- El conjunto completo de UTXO se puede sumar para calcular el suministro total de una criptomoneda en un momento dado.
- En el caso de una transacción de blockchain válida, solo las salidas no gastadas se pueden usar para financiar transacciones adicionales.
- La condición de que solo los productos no gastados puedan utilizarse en transacciones posteriores es necesaria para evitar el doble gasto y el fraude.
Importancia del modelo UTXO
- Contratos inteligentes independientes del idioma: los contratos inteligentes basados en UTXO son independientes del idioma y permiten que los UTXO desarrollen mecanismos de consenso únicos.
- Compatibilidad con intercambios descentralizados e intercambio atómico: el modelo UTXO podría admitir intercambios atómicos, lo que permitiría el comercio de cifrado entre pares sin la participación de un tercero. La función de intercambio atómico de los UTXO ofrece una mejor facilidad para el comercio directo de criptomonedas entre las billeteras de los usuarios.
- Beneficios de escalabilidad: el procesamiento de transacciones paralelas o de instalaciones reduce la carga de cómputo en las redes de string de bloques.
- Privacidad y seguridad: con las nuevas direcciones utilizadas para cada transacción de UTXO, es imposible rastrear las transacciones.
- Evita el Doble Gasto: Una UTXO solo se puede usar una vez, esto es fundamental dentro del funcionamiento de la tecnología blockchain que garantiza que las monedas no se usen más de una vez.
- Más flexibilidad: proporciona más flexibilidad que la moneda fiduciaria.
- Paralelización simple: permite una paralelización más simple de las transacciones en los contratos inteligentes.
UTXO vs Modelo Contable
A continuación se presentan algunas de las diferencias entre el modelo UTXO y el modelo Contable:
S. No. | Modelo UTXO | Modelo Contable |
---|---|---|
1. | La transacción requiere más espacio de almacenamiento. | La transacción requiere menos espacio de almacenamiento. |
2. | El estado se guarda en las transacciones. | El estado se guarda en los Nodes. |
3. | Las transacciones son computacionalmente más simples. | Las transacciones utilizan cálculos complejos. |
4. | Las transacciones masivas son menos eficientes. | Las transacciones masivas son más eficientes. |
Publicación traducida automáticamente
Artículo escrito por mohitgfg0901 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA