TL;DR El innovador modelo de transacción de ZetaChain combina la simplicidad y seguridad de UTXO con la expresividad del modelo Account-based. Este diseño híbrido hace posible tanto la transmisión de mensajes entre blockchains como los contratos inteligentes nativos omnichain, los cuales posibilitan la interacción directa con blockchains externas.

En nuestro extenso análisis del mercado de interoperabilidad de blockchain, reconocemos algunos proyectos y propuestas de blockchain que tienen como objetivo lograr la programabilidad genérica. El problema radica en que estos proyectos están centralizados en diversos grados y/o utilizan modelos de confianza cuestionables. De esta forma, queda una gran brecha en el ecosistema crypto en lo que respecta a un enfoque público, permisionless y descentralizado de la interoperabilidad omnichain. ZetaChain es pionera en ser la primera blockchain pública y la primera plataforma de contratos inteligentes cross-chain de propósito general. Esta afirmación plantea una serie de grandes preguntas sobre el desafío de la asincronía y sobre las limitaciones de los mecanismos de "contabilidad" de blockchain para soportar cross-chain dApps. Abordaremos ambos temas en este artículo dando un vistazo al diseño del modelo de transacción híbrido de ZetaChain, impulsado por la Zeta Virtual Machine (ZVM).

Modelos de transacción de Blockchain

Es necesario superar un par de retos clave para lograr el soporte genérico de los contratos inteligentes omnichain. El primero es que la comunicación entre cadenas heterogéneas es inherentemente asíncrona. La consulta o el cambio del estado de blockchain se activa mediante mensajes (observaciones) de blockchains externas, a diferencia de los contratos inteligentes en una sola blockchain, como Ethereum Virtual Machine (EVM). Este tipo de modelo de transacción de contrato inteligente cross-chain es mejor considerada como una finite state machine (máquina de estado finito).

El segundo reto es el del modelo de programación blockchain, que afecta la forma en que los contratos inteligentes transfieren mensajes, datos y valor. Históricamente, hay dos modelos principales de "contabilidad" para registrar y cambiar el estado en una blockchain: UTXO (Unspent Transaction Output), el cual es utilizado por Bitcoin, Ergo, Cardano y otros, y Account-based (basado en cuentas), que es utilizado por la EVM. Aquí hay un sencillo resumen de cada uno de ellos:

Figure 1: UTXO vs. Account-based models: network state visualization

Figure 1: UTXO vs. Account-based models: network state visualization

UTXO vs. Account-based

La diferencia clave entre estos modelos radica en su poder expresivo. La naturaleza computacional del modelo Account-based hace que su expresividad sea mayor que la de los scripts basados en UTXO, los cuales pueden ser considerados más como un modelo de verificación. No obstante, los contratos inteligentes basados en UTXO normalmente son más simples, robustos y eficientes en cuanto a almacenamiento e informática, y tienen menos superficie de ataque debido a las limitaciones de UTXO. En la práctica, por ejemplo, los scripts de Bitcoin rara vez tienen fallos de seguridad involuntarios, mientras que los contratos inteligentes de Ethereum son famosos por sus vulnerabilidades multimillonarias. Además, en el caso de Bitcoin, la aplicación implícita de la clave invariante de UTXO elimina el problema del doble gasto: monto total de entrada de la transacción = monto total de salida. Entonces, si bien la expresividad de la programación Account-based permite la fácil creación de dApps complejas (AMM, ICO, etc.), se produce a costa de una menor seguridad.

Intentos de modelos de transacciones híbridas

Si va a proponer una plataforma de contrato cross-chain, de propósito general y descentralizada, entonces debe abordar el siguiente desafío: ¿Cómo extiende el modelo UTXO para que sea lo suficientemente expresivo para que admita dApps populares como Uniswap estilo AMM DEX, sin dejar de ser simple y seguro?

Hay un par de proyectos progresistas que intentan resolver este dilema. Ergo fue pionera en el modelo UTXO extendido (eUTXO), seguido por Cardano. En estas plataformas eUTXO, los DEX de AMM pueden implementarse hasta cierto punto manteniendo el estado del par AMM en un UTXO, pero esto no deja de causar serios problemas. Sólo una transacción puede tener éxito en un bloque, porque sólo una transacción puede gastar ese UTXO y crear uno nuevo en un bloque. El resultado es una congestión de UTXO en la que las transacciones completadas que intenten gastar el mismo UTXO fallarán y deberán esperar un bloque y gastar el nuevo UTXO. Esto no es muy óptimo.

Diseño híbrido UTXO-Account de ZetaChain

ZetaChain presenta un enfoque híbrido de UTXO y Account-based, combinando los puntos fuertes de cada uno. Esencialmente, se usa UTXO para representar y rastrear las transacciones de blockchains externas (tratadas como un UTXO sintético), y a la vez utiliza contratos inteligentes Account-based para la lógica y la gestión de los estados globales compartidos. Un UTXO incluye la cantidad de la moneda ZETA (quemado), la cantidad de otra moneda (por ejemplo, BTC en la red Bitcoin, donde no es posible emitir moneda ZETA), y un script msg (equivalente aproximado a un message o function call en Ethereum). El modelo UTXO sintético permite que ZetaChain sea fiable, simple y escalable al mismo tiempo que evita la limitación clave de UTXO, que es la expresividad de sus secuencias de comandos y la incomodidad en ciertas aplicaciones importantes (es decir, una transacción por bloque en un AMM).

Examinemos el flujo híbrido de cuentas UTXO de ZetaChain (figura 2):

  1. El contrato inteligente en ZetaChain ejecuta el mensaje y genera un Event que intenta gastar el UTXO en ZetaChain.
  2. Entonces, el Event es recogido por los firmantes de ZetaClient, quienes firman una transacción en una cadena externa.
  3. El ZVM y el ZetaClient validarán determinadas invariantes, una de las cuales es que el output ZETA debe ser igual al input ZETA en el UTXO.