Este artículo es una reimpresión de TechFlow, escrito por Echo, BiHelix (Satoshi Labs), guiado por Hong Shuning, enlace original: https://www.techflowpost.com/article/detail_15632.html

"La cadena de bloques UTXO sentó las bases y los cimientos indiscutibles de la industria blockchain actual. La tecnología UTXO refleja la visión central de Satoshi Nakamoto de la máxima libertad financiera". El modelo UTXO garantiza la seguridad, la privacidad de los datos y la seguridad en el centro de las actividades financieras. el modelo de cuenta Ethereum.

Principios de Blockchain: la base del modelo UTXO

Blockchain es un libro de contabilidad distribuido, descentralizado y digital. Blockchain utiliza una red P2P (peer-to-peer), con participantes en la red llamados nodos. El libro mayor almacena datos sobre transacciones. La característica más importante de blockchain es que los bloques están vinculados criptográficamente entre sí.


Blockchain: unidos criptográficamente

Excepto el primer bloque (llamado bloque génesis), cada bloque de la cadena de bloques contiene un campo llamado "hash anterior". Es el hash del bloque anterior en la cadena de bloques y es la base de la seguridad de la cadena de bloques.

Factores que determinan el valor hash del bloque. Si alguno de estos cuatro factores cambia, aunque sea 1 bit, el hash cambiará por completo debido al efecto avalancha. Las transacciones se almacenan dentro de bloques y son uno de los cuatro factores que cambian el hash del bloque. Esto significa que si un minero elige una transacción diferente y mantiene los otros 4 factores iguales, el valor hash será diferente.

1. Marca de tiempo

2. Número de bloque: el número de secuencia del bloque actual en la cadena.

3. Datos: Transacciones almacenadas en bloques.

4. Números aleatorios

Si un atacante intenta cambiar los datos de un bloque, el hash del bloque cambiará. Como se mencionó anteriormente, el siguiente bloque contendrá el hash del bloque actual y, si el hash cambia, la cadena se romperá. Alternativamente, el atacante debe minar todos los bloques nuevamente a partir de ese momento. Esta es una posibilidad en un ataque del 51%.

¿Qué es un "bloque"?


Bloquea las transacciones de la tienda en blockchain. En el caso de Bitcoin, los bloques se agregan a la cadena de bloques cada 10 minutos y, dependiendo de la complejidad del hash objetivo, el tiempo que lleva extraer un nuevo bloque puede variar.

  • Cuando un minero extrae con éxito el bloque, se agrega a la cadena de bloques. Cuando se agrega un bloque a la cadena, 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 promedio del bloque es de 1 MB.

  • Los bloques vacíos son válidos, lo que significa que se pueden extraer y agregar a la cadena.

Estructura de transacciones blockchain

Al analizar una sola transacción se revelan varias estructuras diferentes con diferente semántica dentro de la transacción. Las siguientes son las diferentes estructuras presentes en las transacciones:

Número de versión de la transacción: Es el número de versión que especifica el tipo de transacción a la red. A través del número de transacción, los nodos pueden determinar el conjunto de reglas utilizadas para validar esa transacción específica.

  1. Salida: La salida de la transacción consta de un bloqueo de contraseña y una hora.

  2. Entrada: La entrada de la transacción consta de un puntero y una clave de desbloqueo. El puntero apunta al resultado de la transacción anterior. La clave de desbloqueo se utiliza para desbloquear la salida anterior a la que apunta la entrada. Cada vez que se desbloquea una salida a través de una entrada, se marca como gastada en la base de datos de blockchain.

  3. Tiempo de bloqueo: especifica si las transacciones se pueden incluir en la cadena de bloques inmediatamente o después de un tiempo específico.


Los UTXO son todas las salidas que no han sido desbloqueadas por las entradas.

Una vez que se desbloquean las salidas, se eliminan del suministro circulante. La nueva salida los reemplaza. Por lo tanto, la suma de las salidas desbloqueadas siempre será igual a la suma de los valores de salida recién creados.

¿Qué es el modelo UTXO?

UTXO no es una denominación de criptomoneda, como satoshi para Bitcoin (BTC) o gwei para Ethereum (ETH); sin embargo, UTXO se puede medir en estas denominaciones; UTXO representa resultados de transacciones no gastadas. En Bitcoin, una transacción existe hasta que se ejecuta y hasta que se completa otra transacción desde ese UTXO. Cuando se completa una transacción, los resultados no utilizados se guardan en la base de datos como entradas y luego se pueden usar en otra transacción.

Cuando un usuario inicia una transacción a través de la billetera, el UTXO que contiene la información de la transacción se localiza, se desbloquea y la información del nuevo propietario se asocia con el UTXO que se le transfiere. Y ese usuario podrá utilizarlos en transacciones mediante el mismo proceso. A medida que continúen las transacciones, la base de datos se completará con registros de cambios de propiedad. El resultado es una parte de la criptomoneda que el usuario envió a alguien pero no gastó. Se registran en la base de datos como entrada para la puntuación de la criptomoneda.

Cuando un usuario inicia una transacción a través de la billetera, el UTXO que contiene la información de la transacción se localiza, se desbloquea y la información del nuevo propietario se asocia con el UTXO que se le transfiere. Y ese usuario podrá utilizarlos en transacciones mediante el mismo proceso. A medida que continúen las transacciones, la base de datos se completará con registros de cambios de propiedad. El resultado es una parte de la criptomoneda que el usuario envió a alguien pero no gastó. Se registran en la base de datos como entrada para la puntuación de la criptomoneda.


¿Cómo se crean los UTXO?

Los UTXO se crean consumiendo UTXO existentes. Cada transacción de Bitcoin consta de entradas y salidas. Las entradas consumen UTXO existentes, mientras que las salidas crean nuevos UTXO. Al decidir gastar Bitcoins, solo podemos ver la cantidad que se ha deducido y la cantidad que queda en la billetera. Para el usuario, esto es similar a comprar un artículo de $0,50 con un billete de $1: recibir el cambio y guardarlo en su bolsillo.


Ventajas del modelo UTXO

El modelo UTXO no incluye billeteras a nivel de protocolo. Se basa en transacciones individuales agrupadas en bloques. El modelo UTXO es un diseño común para muchas criptomonedas, especialmente Bitcoin.

  • Las criptomonedas que utilizan el modelo UTXO no utilizan cuentas ni saldos. En cambio, los UTXO se transfieren entre usuarios, al igual que el dinero físico.

  • Cada transacción en el modelo UTXO puede transformar el sistema a un nuevo estado, pero no es factible transformar cada transacción a un nuevo estado.

  • Los participantes de la red deben permanecer sincronizados con el estado actual.

El total de UTXO presentes en la cadena de bloques representa una colección y cada nodo de Bitcoin los mantiene continuamente.

  • Cada transacción consume elementos de la colección y crea nuevos elementos que se agregan a la colección. El conjunto UTXO se actualiza cada vez que se acepta un nuevo bloque en la cadena de bloques, y cada nodo Bitcoin en la red tendrá una copia exacta del conjunto UTXO en su almacenamiento local.

  • El conjunto completo de UTXO se puede sumar para calcular el suministro total de la criptomoneda en un momento dado y, en el caso de transacciones válidas de blockchain, solo los resultados no gastados se pueden usar para financiar transacciones adicionales. Para evitar el doble gasto y el fraude, es necesaria la condición de que sólo los productos no gastados puedan utilizarse para futuras transacciones.


La diferencia entre el modelo UTXO y el modelo de cuenta Ethereum

Los resultados de las transacciones no gastadas son parte de la tecnología de base de datos distribuida detrás de Bitcoin y otras criptomonedas. Bitcoin usa UTXO, pero no es UTXO. Además, Ethereum utiliza un enfoque basado en cuentas y saldos de cuentas, por lo que no hay UTXO en la máquina virtual Ethereum.


Importancia técnica de UTXO

  • Contratos inteligentes independientes del idioma: los contratos inteligentes basados ​​en UTXO son independientes del idioma, lo que permite a UTXO desarrollar mecanismos de consenso únicos.

  • Admite intercambios descentralizados e intercambios atómicos: el modelo UTXO puede admitir intercambios atómicos, lo que permite transacciones criptográficas entre pares sin la participación de terceros. La función de intercambio atómico de UTXO proporciona una mayor comodidad para las transacciones directas de criptomonedas entre las billeteras de los usuarios.

  • Ventaja de escalabilidad: la instalación o el procesamiento de transacciones en paralelo reduce la carga computacional en la red blockchain.

  • Privacidad y seguridad: cada transacción UTXO utiliza una nueva dirección, por lo que no se pueden rastrear las transacciones.

  • Evite el doble gasto: UTXO solo se puede usar una vez, que es la base para el funcionamiento de la tecnología blockchain y garantiza que la moneda no se usará varias veces.

  • Más flexible: ofrece mayor flexibilidad que las monedas fiduciarias.

  • Paralelización simple: Permite una paralelización más sencilla de transacciones en contratos inteligentes.

El modelo UTXO se utiliza en muchas criptomonedas porque permite a los usuarios rastrear la propiedad de todas las partes de la criptomoneda. Debido a que las criptomonedas se crean teniendo en cuenta el anonimato, los UTXO están asociados con direcciones públicas visibles para toda la red.

Los usuarios no pueden ser identificados por su propiedad a menos que publiquen su dirección, pero el modelo permite transparencia a través de las direcciones.

Caso de uso de UTXO: solución de transferencia RGB fuera de cadena

La idea central del protocolo RGB es invocar la cadena de bloques de Bitcoin solo cuando sea necesario, aprovechando la prueba de trabajo y la descentralización de la red para la protección del doble gasto y la resistencia a la censura. Toda verificación de transferencias de tokens se elimina de la capa de consenso global y se coloca fuera de la cadena, verificada únicamente por el cliente que recibe el pago.


principio de funcionamiento

En un determinado contrato de RGB, los tokens de creación pertenecen a un UTXO de Bitcoin (ya sea que ya exista o se haya creado temporalmente), y para transferir tokens, es necesario gastar este UTXO. Al gastar este UTXO, la transacción de Bitcoin debe agregar una salida adicional, que contiene un compromiso con un mensaje. El contenido de este mensaje es la información de pago RGB, que define la entrada y a qué UTXO se enviarán estos tokens, el activo. ID, cantidad, la transacción en la que se gastó y los datos a los que se debe adjuntar.

Nota: El protocolo de emisión de activos de la capa Bitcoin RGB++ también utiliza UTXO como sello único y se lanzó en la red principal a principios de abril. Haga clic aquí para obtener más información sobre RGB++.

Resumir

La esencia de UTXO es en realidad una especie de contabilidad en ejecución: el modelo UTXO se utiliza para verificar si existen los fondos de la transacción y luego se rastrea el origen de la transacción y se transmite a toda la red. a través del mecanismo de consenso y registrado en la cadena. Durante todo el proceso, UTXO registrará todos los fondos de las cuentas involucradas, direcciones de transacciones, fondos de transferencia, fuentes de fondos y otra información, de modo que se pueda rastrear la fuente original de cada transacción. Es precisamente en base a esta característica que UTXO puede crear un mecanismo de consenso. para resolver juntos el problema del doble gasto.

En general, UTXO no solo puede ayudar al mecanismo de consenso y resolver el problema del doble gasto de la cadena de bloques, sino que también puede brindarle características de trazabilidad a la cadena de bloques. La cadena de bloques también puede basarse en esto para garantizar la autenticidad y confiabilidad de cada transacción.