Diseño de Qtum Parte 1: ¿Qué es un UTXO?

Qtum Español
8 min readOct 11, 2021

Qtum reúne el modelo UTXO de Bitcoin y el EVM de Ethereum en una plataforma única. En esta serie, analizaremos cada uno de estos componentes y veremos cómo Qtum combina estos dos con gran éxito. Así que hoy, centrémonos en las UTXO.

Bitcoin y UTXO

Uno de los aspectos más emocionantes de Bitcoin es la mecánica detrás de sus transacciones. Bitcoin utiliza la salida de transacciones no gastadas o UTXO para realizar un seguimiento continuo de las transacciones de salida que aún no se han gastado y se pueden utilizar para crear nuevas transacciones. La belleza de esta implementación es que los nodos completos pueden guardar fácilmente una copia del conjunto de UTXO para validar transacciones sin escanear a través de toda la blockchain.

¿Cómo funcionan las transacciones de Bitcoin?

Piense en cómo funcionan las transacciones diarias. Supongamos que está en una tienda de comestibles y supongamos que tiene un bolsillo lleno de facturas y cambio de compras anteriores, así es como funciona:

  • Realizas el pago con el cambio que te sobra de tus transacciones anteriores.
  • El cajero toma su dinero y le devuelve su cambio
  • Ahora usará el cambio para transacciones futuras.

Este es el concepto central detrás de las transacciones de Bitcoin.

Supongamos que Alice le envía BTC a Bob. Esto es lo que pasa:

Parte 1: Entrada de transacción

Su billetera recogerá el cambio sobrante que tenga de transacciones anteriores o cualquier UTXO no gastado. Este cambio sobrante se llama UTXO. La billetera de Alice escanea automáticamente su conjunto UTXO para buscar diferentes transacciones UTXO que puedan cubrir la cantidad que Alice quiere enviar.

Entonces, si Alice quiere enviar 1 BTC, la billetera verifica su conjunto UTXO y encuentra tres transacciones:

  • T(0) = 0.5 BTC
  • T(1) = 0.3 BTC
  • T(2) = 0.35 BTC

Estos tres UTXO suman alrededor de 1.1 BTC, que es suficiente para cubrir la transacción de 1 BTC.

Entonces, T (Entrada) = T (0) + T (1) + T (2)

Parte 2: Salida de la transacción

La parte de salida de la transacción es donde Bob obtiene su parte de la transacción. Dado que Alice originalmente tenía la intención de enviar más de 1 BTC, así es como se ve la parte de salida.

T (Salida) = T (Bob obtiene 1 BTC) + Cambio.

El “Cambio” ahora vuelve al conjunto UTXO de Alice. Mientras tanto, el 1 BTC se convierte en el UTXO de Bob.

Características principales de las transacciones de Bitcoin

  • T (Entrada) tiene que ser mayor que T (salida) ya que el remitente debe dar algunas tarifas de transacción a los mineros. Las tarifas de transacción son la diferencia entre T (entrada) y T (salida).
  • El remitente debe tener suficientes UTXO para sumar a la T (Entrada). Si no lo hacen, su billetera simplemente rechazará la transacción.
  • Alice debe probar su firma criptográfica de que tiene derecho a enviar sus UTXO en la transacción.
  • Alice envía el BTC a la dirección pública de Bob. Luego puede desbloquear estos BTC con su clave privada para gastarlos en el futuro.

Descripción general de UTXO

Muy bien, juntemos todo esto y veamos todo lo que hemos aprendido sobre las UTXO:Muy bien, juntemos todo esto y veamos todo lo que hemos aprendido sobre las UTXO:

  • Las salidas no gastadas se utilizan como entradas para una transacción.
  • Cuando ocurre una transacción, las entradas se gastan y las salidas se crean como nuevos UTXO.
  • Durante la salida de la transacción, el receptor obtiene su parte del BTC y el cambio se convierte en UTXO para la próxima transacción del remitente.
  • La cantidad que recibe el receptor pasa a formar parte de su conjunto de UTXO.
  • Cada UTXO tiene una firma correspondiente que pertenece al propietario. En el sistema Bitcoin, la firma debe estar presente durante una transacción determinada para que se considere válida.
  • Cuando una salida se marca como gastada, significa que el propietario anterior ya no tiene el “derecho a gastar” esta salida porque ya no lo posee.
  • Bitcoin crea y elimina continuamente UTXO con cada transacción. Un conjunto UTXO actualizado puede verse como un nuevo estado de la blockchain de Bitcoin. Esto ayuda a los usuarios a realizar un seguimiento de la propiedad de las monedas fácilmente.
  • Los UTXO no se mezclan. Entonces, si alguien le envía dos transacciones una tras otra, obtendrá dos UTXO en lugar de una.
  • No es posible dividir un UTXO. Por ejemplo, digamos que Alice quiere enviar 0.3 BTC pero tiene 0.1 BTC y 1 BTC UTXO. Su billetera aún enviará 1.1 BTC en lugar de tomar una cantidad del UTXO de 1 BTC. Este paso ayuda a eliminar el doble gasto.
  • Algunas billeteras simples (como Qtum Web Wallet) no usarán una dirección de cambio, por lo que el cambio se devolverá a la dirección de envío. La billetera Qtum Core (Qtum-Qt) usa direcciones de cambio de forma predeterminada, pero los usuarios pueden configurar la billetera para que no use direcciones de cambio, en cuyo caso el cambio se devolverá a la dirección de envío.

UTXO y cambio de dirección

Antes de continuar, entendamos uno de los componentes clave de la estructura UTXO: Cambiar dirección.

Cada vez que tiene BTC sobrante (también conocido como cambio) de sus transacciones, no vuelve a la misma dirección desde la que salió su UTXO original. En cambio, va a una nueva dirección llamada “cambiar dirección”, que también es parte de su billetera Bitcoin. Por lo tanto, el cambio sobrante nunca sale de su billetera, sino que se convierte en parte de una dirección diferente.

Este cambio se convierte en parte de su nuevo conjunto de UTXO.

Entonces, ¿por qué Satoshi codificó esta función en Bitcoin? Para ayudar a mantener el seudónimo de los usuarios. Como saben, la blockchain de Bitcoin es pública y abierta. Para ayudar a proteger la entidad de usuario, se necesita una función como “cambiar dirección”. Si el cambio fue directamente a la dirección del usuario original, sería bastante sencillo rastrear todo su historial financiero.

Arreglar el doble gasto con UTXO

El doble gasto es un problema que debe resolver un sistema de moneda digital. En pocas palabras, el doble gasto es la posibilidad de gastar una determinada unidad de moneda digital más de una vez simultáneamente. Cuando se trata de efectivo físico, este problema se resuelve intrínsecamente, ya que no puede gastar el mismo billete más de una vez a la vez.

Las transferencias digitales centralizadas aún pueden mitigar el doble gasto debido a la gobernanza centralizada. Sin embargo, ¿qué pasa con las transferencias de dinero descentralizadas? Cuando Satoshi Nakamoto creó Bitcoin, el doble gasto era uno de los principales problemas que debían resolver. Lo hicieron utilizando una combinación de UTXO y blockchain.

¿Cómo UTXO corrige el doble gasto?

  • Cuando un usuario recibe BTC, la cantidad se registra en la blockchain como UTXO.
  • Cada bitcoin que posee un usuario puede registrarse como UTXO en varias transacciones y bloques.
  • Cuando se crea una transacción de Bitcoin y se transmite a la red, el nodo que recibe la transacción la verifica verificando si la transacción existe en un UTXO o no.
  • Si la salida de la transacción ya no existe en UTXO, significa que ya se ha enviado, por lo que la verificación falla y Bitcoin evita el doble gasto.

UTXO vs.Modelo de cuenta

Ahora que tenemos una idea clara de cómo funciona UTXO, comparémoslo con el modelo de cuenta utilizado por Ethereum. Si piensa en el modelo UTXO como efectivo, entonces el modelo de cuenta es como usar una tarjeta de débito. Cuando desea enviar dinero, el banco rastrea cuánto dinero tiene y verifica si tiene suficiente para realizar la transacción o no.

Cuando crea su billetera Ether y recibe su primera transacción, se agrega una cuenta y se transmite a través de toda la red. Cada cuenta en Ethereum tiene un saldo, almacenamiento y espacio de código para llamar a otras direcciones.

UTXO vs.Modelo de cuenta: las diferencias

Antes de entrar en los problemas técnicos, comparemos las principales diferencias filosóficas entre los dos.

  • UTXO sigue un modelo de verificación. El usuario envía una transacción para especificar los resultados de la transición de estado. Los nodos deben verificar continuamente si las entradas de la transacción no se han gastado y si los datos de la firma verifican correctamente todo o no.
  • El modelo de cuenta es un modelo computacional en el que los usuarios envían sus transacciones e instruyen a los nodos sobre cómo deberían verse las transiciones de estado. Luego, la red verifica si este cambio de estado es válido o no.

Muy bien, ahora veamos las diferencias de funcionalidad principal entre los dos modelos. En particular, capacidades de escalabilidad, privacidad y contratos inteligentes.

Escalabilidad

El punto más fundamental que debemos investigar para comprender la diferencia entre los dos es la escalabilidad.

# 1 Tamaño de Blockchain

  • El modelo de cuenta requiere que almacene memoria en lugar de varios UTXO vinculados con el saldo total de un usuario.
  • Las transacciones en el modelo de cuenta también son más pequeñas ya que solo especifican el remitente, el destinatario, el monto y la firma digital.
  • Es más rápido obtener nuevos nodos en línea en un sistema de cuentas, ya que requiere menos datos para sincronizar.

# 2 canales estatales y de pago

Los canales estatales y de pago son tecnologías de capa 2 que mueven el exchange de datos desde la blockchain subyacente a una red dedicada sin confianza de canales de comunicación bidireccionales. A partir de ahora, la versión más avanzada del canal de pago es la red Lightning de Bitcoin. Como hemos mencionado anteriormente, el modelo UTXO es un modelo de verificación ideal para canales estatales.

# 3 fragmentación

Mientras que los canales de estado son una solución de escalado de capa 2, la fragmentación es de capa 1. En pocas palabras, todo el estado de la cadena se divide en segmentos o fragmentos más pequeños y luego se calcula en paralelo. Una vez más, el modelo UTXO hace que esto sea bastante simple, ya que el proceso de agregar y definir salidas gastables ocurre en el lado del cliente, lo que reduce el estrés general del sistema.

Privacidad

La segunda área que analizaremos es la privacidad, y tanto UTXO como los modelos de cuenta tienen ciertas ventajas aquí.

  • Es difícil realizar un seguimiento de las transacciones UTXO. En comparación con el modelo de cuenta, las monedas en UTXO son más difíciles de rastrear hasta la fuente y requieren un análisis de cadena avanzado para una investigación cuidadosa.
  • Las transacciones de la cuenta ofrecen una mejor fungibilidad ya que estas cuentas vienen con un mezclador incorporado. Todas las monedas asociadas con una cuenta están mezcladas y un observador no puede determinar cuál de las transacciones entrantes se gastó.

Capacidades de contratos inteligentes

Los contratos inteligentes en un modelo UTXO son más complicados que usar el modelo de cuenta. Inicialmente, este modelo se usó solo para transacciones simples y para eliminar la complejidad tanto como fuera posible. El modelo de cuenta tiene aquí una clara ventaja. El modelo simple de suma y resta permite a los desarrolladores crear transacciones que requieren información estatal o involucran a múltiples partes.

Los modelos híbridos como Qtum evitan esta debilidad mediante el uso de AAL (capa de abstracción de cuenta) para traducir entre el modelo UTXO y el modelo de cuenta para utilizar la máquina virtual Ethereum (EVM) para habilitar contratos inteligentes en un sistema basado en UTXO.

Hablando de

¡Vuelva pronto para aprender EVM!

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response