1. ¿Qué modelos se utilizan actualmente en la cadena?

Cadenas conocidas como Ethereum, EOS y Solana utilizan el modelo de cuenta. Incluso se puede decir que más del 90% de los proyectos utilizan el modelo de cuenta, mientras que solo algunos proyectos establecidos utilizan el modelo UTXO, como BTC y DOGE. , LTC, por supuesto, algunos proyectos relativamente nuevos también utilizan este modelo, como FUEL que utiliza el esquema OP en Layer2.

2. ¿Qué es un modelo de cuenta?

Para entenderlo simplemente, es el sistema de cuentas bancarias, como transferencias entre bancos, Alipay, transferencias WeChat, etc., todos pertenecen al modelo de cuenta. Déjame darte un ejemplo:

Si A tiene 100 y B tiene 100

En este momento, A transfiere 50 yuanes a B.

La manifestación en el sistema es

A -50, B +50

Así que su equilibrio

A 50, B 150

Esto es una transferencia.

Supongamos nuevamente que A todavía tiene 100 y quiere transferir 1 yuan a 100 nuevos titulares de cuentas.

En este momento, A necesita transferir 1 yuan a 100 personas al mismo tiempo.

A -1, 1.ª persona +1

Así que su equilibrio

A 99, 1ª persona 1

2da Transacción

A -1, 2.ª persona +1

Así que su equilibrio

A 98, 2da persona 1

3ª Transacción

A -1, 3ª persona +1

Así que su equilibrio

A 97, 3ª persona 1

Etcétera

......

N° 100

A -1, persona número 100 +1

Así que su equilibrio

A 0, 100ª persona 1

En teoría, es necesario transferir dinero 100 veces, y la siguiente transferencia debe completarse antes de la anterior; de lo contrario, no se puede garantizar que el saldo de la cuenta sea constante y habrá confusión sobre si hay múltiples transferencias o si el saldo es suficiente para la transferencia.

En teoría, a medida que aumenta el número de transacciones, aumenta el tiempo necesario para su ejecución.

3. ¿Qué es el modelo UTXO?

Como se mencionó anteriormente, muchas marcas tradicionales antiguas usan UTXO, y Bitcoin, el antepasado de este círculo, también usa el modelo UTXO. Por cierto, la moneda digital legal DCEP emitida por nuestro país también se basa en el modelo UTXO, por lo que este modelo debe tener sus características únicas.

UTXO significa Unspent Transaction Output, que significa "salida de transacción no gastada". Su modelo es un poco como el sistema de efectivo en la vida diaria. Por ejemplo:

A tiene una billetera (billetera real) con billetes de 1 yuan, 10 yuanes y 100 yuanes en ella.

A quiere dar 1 yuan a B, C y D respectivamente.

A Hay tres maneras

El primer método: sacar 1 yuan y dárselo a B.

El segundo método: darle 10 yuanes a C y recibir 9 yuanes de cambio.

La tercera opción: darle a D un billete de 100 yuanes y recibir 99 yuanes a cambio.

Los tres métodos pueden completar esta transacción.

Volviendo a la cadena, imagina que cada denominación de dinero aquí es en realidad un UTXO en la cadena. El UTXO en uso no se transfiere, sino que se destruye y reconstruye constantemente. Por ejemplo:

A transfiere dinero a C utilizando el segundo método. El UTXO con un valor nominal de 10 yuanes será destruido y el sistema reimprimirá un UTXO con un valor nominal de 1 yuan y un UTXO con un valor nominal de 9 yuanes. El yuan se le entregará a C y los 9 yuanes se devolverán a A.

El tercer método es el mismo. Se destruyen los 100 yuanes y se imprimen un UTXO con un valor nominal de 1 yuan y otro con un valor nominal de 99 yuanes. El yuan se le da a D y los 99 yuanes se devuelven a A.

Esta es la diferencia entre los métodos de transferencia del modelo de cuenta y UTXO. Lo que es aún más sorprendente es que el modelo UTXO puede transferirse en paralelo. Debido a que el equilibrio existe a través de UTXO descentralizados, cada denominación puede transferirse a diferentes personas al mismo tiempo. Los tres métodos anteriores se pueden completar simultáneamente en una transacción porque no hay problemas de consistencia de cuenta involucrados. Cada UTXO se calcula de forma independiente.

Cuando comparamos el modelo de cuenta anterior, cada transacción debe depender de la finalización de la transacción anterior. La brecha de rendimiento se puede imaginar. Esto explica por qué la moneda digital del banco central utiliza el modelo UTXO. De lo contrario, ¿cómo podría Shenzhen enviar 10 millones de RMB digitales a 50.000 billeteras?

Volvamos al ejemplo anterior.

A tiene 100 y quiere transferir 1 yuan a 100 nuevos clientes que han abierto cuentas.

Un UTXO con un valor nominal de 100 se puede dividir en 100 UTXO con un valor nominal de 1 yuan y luego distribuir directamente a 100 personas en una transacción, que se completa instantáneamente.

En resumen, piense en el valor nominal de UTXO como efectivo más flexible que se destruye y reconstruye constantemente en la cadena.

Si desea saber cuánto dinero hay en esta dirección de billetera, debe contar la cantidad de UTXO con saldos y sumarlos.

4. Ventajas y desventajas del modelo de cuenta y UTXO

Ventajas del modelo de cuenta:

El contrato se almacena en la Cuenta en forma de código, y la Cuenta tiene su propio estado. Este modelo tiene mejor programabilidad, es más fácil de entender para los desarrolladores y tiene una gama más amplia de escenarios.

Las transacciones por lotes tienen costos más bajos. Imagínese que el pool de minería paga una tarifa a los mineros. Debido a que cada entrada y salida en UTXO requiere un script de testigo o de bloqueo independiente, la transacción en sí será muy grande y tanto la verificación de la firma como el almacenamiento de la transacción consumirán recursos valiosos en la cadena. El modelo de Cuentas puede reducir enormemente los costos a través de contratos.

Desventajas del modelo de cuenta:

No existe dependencia entre las transacciones del modelo de cuenta y es necesario resolver el problema de repetición. ¿Cómo resuelve Ethereum este problema? Sabemos que Ethereum utiliza un método de valor Nonce único. Hay un campo Nonce en cada transacción Tx. Para cada usuario, este Nonce no se puede repetir, evitando así ataques de repetición.

Para la implementación de Lightning Network/Raiden Network, Plasma, etc., la evidencia del usuario requiere un mecanismo de prueba más complejo, y la migración de estado de la subcadena a la cadena principal requiere un protocolo más complejo.

Ventajas de UTXO:

El cálculo se realiza fuera de la cadena y la transacción en sí es tanto el resultado como la prueba. El nodo solo necesita realizar la verificación y no necesita realizar cálculos adicionales en la transacción, ni tiene almacenamiento de estado adicional. El cálculo de la UTXO de salida de la transacción en sí se completa en la billetera, por lo que la carga computacional de la transacción la asume completamente la billetera, lo que reduce la carga en la cadena hasta cierto punto.

A excepción de las transacciones de Coinbase, la entrada de una transacción siempre está vinculada a un UTXO. Las transacciones no se pueden reproducir, y el orden y las dependencias de las transacciones se pueden verificar fácilmente, y también se puede probar fácilmente si las transacciones se han consumido.

El modelo UTXO no tiene estado y es más fácil de procesar simultáneamente.

Para transacciones de tipo P2SH, tiene mejor privacidad. Las entradas de una transacción no están relacionadas entre sí y se pueden utilizar técnicas como CoinJoin para aumentar la privacidad.

Desventajas de UTXO:

No puede implementar cierta lógica compleja y tiene poca programabilidad. En el caso de los contratos con lógica compleja o que requieren preservación del estado, la implementación es difícil y la tasa de utilización del espacio de estado es relativamente baja.

Cuando la entrada es grande, el número de scripts testigos también aumentará. La firma en sí consume mucho espacio de CPU y almacenamiento.

5. ¿Cuáles son las breves diferencias entre el modelo de cuenta y UTXO?

Saldo de la cuenta

Modelo de cuenta: Puedes ver de forma fácil y clara cuánto dinero hay en la cuenta.

Modelo UTXO: cuenta la cantidad de UTXO bajo la dirección y el resultado de sumarlos es el saldo.

Cuando el número de transacciones aumenta exponencialmente

Modelo de cuenta: cada vez será más difícil.

Modelo UTXO: naturalmente admite alta concurrencia.

Desde la perspectiva de los contratos inteligentes/desarrolladores

El modelo de cuenta se ajusta a los hábitos lógicos del desarrollador y es relativamente fácil escribir la lógica.

La programación de scripts UTXO es relativamente compleja