Comprensión de las Salidas de Transacciones No Utilizadas en Cardano

Traducción al español :es:

Documento Original publicado por Emurgo el 8 de Mayo de 2019

Las salidas de transacciones no utilizadas (Unspent Transaction Outputs - UTxOs, por sus siglas en inglés) son un concepto importante que los nuevos desarrolladores de Cardano deben entender. Cada transacción en la Capa de Contabilidad de Cardano (Settlement Layer -SL) tiene al menos una entrada y al menos una salida. La cantidad de fondos en su billetera es la suma de todos sus UTxOs y esos UTxOs se convertirán en las entradas para transacciones futuras; la blockchain (cadena de bloques) registra el historial colectivo de esas transacciones.

La documentación de la Capa de Contabilidad de Cardano sobre las transacciones lo resume muy bien: “Las entradas y salidas llevan información sobre el flujo de dinero: las entradas informan de dónde viene el dinero, y las salidas informan a dónde va el dinero”. El modelo UTxO fue introducido por Bitcoin.

Por ejemplo, supongamos que usted tiene una billetera Cardano con 10,000 ADA y desea enviar 3,000 ADA a su cónyuge. En aras de la simplicidad, en este ejemplo, utilizaremos números enteros y nos olvidaremos de las tarifas de red en las que normalmente incurren las transacciones. Ahora supongamos que la cantidad total subyacente de ADA en su billetera está compuesta de tres UTxOs separados que suman hasta 10,000 ADA. Usted podría tener 4,000 ADA en un UTxO, 2,000 ADA en otro UTxO, y 4,000 ADA en otro.

La transacción necesitará enviar 3,000 ADA a su cónyuge desde uno de los UTxOs que contiene 4,000 ADA y también necesitará enviar 1,000 ADA de vuelta a su billetera como un “cambio de dirección”. El proceso de averiguar qué UTxOs utilizar en una transacción se denomina Algoritmo de selección de monedas, creado originalmente para Bitcoin. Alternativamente, si tuviera 10 UTxOs separados, todos ellos con 1.000 ADA cada uno, sólo tendría que crear una transacción con un índice de entrada que contuviera tres UTxOs.

Esto parece, inicialmente, algo poco convencional cuando pensamos en cómo funcionan las cuentas bancarias tradicionales; si usted quiere enviarle a alguien $3,000 la cantidad simplemente se resta de su saldo total de $10,000. Este modelo tradicional se conoce como el modelo “basado en cuentas” y es utilizado por una variedad de otras criptomonedas, incluyendo Ethereum.

En el modelo UTxO, una entrada contiene un ID de transacción, que es un hash BLAKE2b-256 de la transacción y un índice de las salidas que utilizan la transacción. Una salida contiene la cantidad de dinero que se está enviando así como una dirección a la que queremos que se envíe dinero, que es sólo un hash BLAKE2b-256 de la clave pública de direcciones.

Cardano utilizará una combinación de los modelos UTxO y Accounting Based. Un modelo UTxO Extendido existirá en la Capa de Contabilidad y el modelo Basado en Contabilidad existirá en la Capa de Cálculo. Debido a que Cardano usará ambos modelos, se llama “Libro Quimérico”.

Sébastien Guillemot habla largo y tendido sobre el documento del libro contable quimérico, escrito por el escritor fantasma de IOHK Joachim “Zahnentferner”, y ayuda a simplificar y comprender los conceptos subyacentes en su vídeo. Es posible que desee ver el video de Guillemot y volver a este artículo para agregarle un contexto. Cardano utilizará la traducción de transacciones, o un nuevo tipo de transacción híbrida, para ejecutar transacciones y transferir fondos entre el libro mayor de UTxO y el libro o libros contables.

Traducir entre transacciones de cuenta a cuenta es bastante sencillo. Sin embargo, las traducciones de UTxO a cuenta son un poco más difíciles. Pueden ejecutarse en un máximo de transacciones O(n+m), aunque no se garantiza que el código obtenga el menor número posible de transacciones. Zahnentferner dice: “Cuando una transacción basada en UTXO tiene más de un remitente o más de un receptor, no puede ser traducida a una sola transacción basada en una cuenta equivalente. Pero se puede traducir en una lista de transacciones basadas en cuentas”. El único problema de esta conversión es la falta de atomicidad. Si usted recuerda de nuevo a su clase de la base de datos 101, una transacción atómica es aquella que está comprometida o retrocedida en su totalidad. Este problema puede evitarse introduciendo un nuevo tipo de envoltorio para las transacciones basadas en UTxO-to-Account o utilizando el tipo de transacción híbrida antes mencionado.

Hay dos beneficios principales para el modelo UTxO sin estado. En primer lugar, la privacidad aumenta cuando el cambio de dirección y las nuevas salidas no gastadas (es decir, el dinero que se envía a otra persona) están cerca de 1:1. Las aplicaciones distribuidas no podrán almacenar los datos de los usuarios de la misma manera que lo haría una cuenta bancaria o un modelo basado en la contabilidad, como Ethereum, ya que cada nueva transacción utiliza una nueva dirección. El segundo beneficio es en términos de escalabilidad. Las transacciones pueden procesarse de forma paralela.

Una tercera ventaja es que el Estado no tiene que ser gestionado a escala mundial. Esto es importante para cuando quiera ejecutar contratos inteligentes en Plutus, que en realidad utiliza la capa de contabilidad de Cardano. Sin embargo, eventualmente, el Plutus Core se integrará en la capa de computación.

¿Cómo interactuarán la capa de computación (que es una cadena lateral) y la capa de contabilidad (la cadena principal) y permitirán las transacciones entre sí? El proceso se define a través de la certificación de cadena cruzada y de firmas múltiples de umbral ad-hoc. Esta es una nueva tecnología que Cardano introducirá en el espacio de criptomonedas en el lanzamiento de Goguen. Aunque esto está más allá del alcance de este artículo en particular, puedes aprender más en el artículo sobre la Prueba de Participación de cadenas laterales (Sidechains). La implementación subyacente utilizará las propiedades del Libro Contable Quimérico antes mencionadas, sin embargo, esto todavía está siendo desarrollado a partir de Abril de 2019.

La naturaleza apátrida de los UTxOs encaja perfectamente con la programabilidad funcional, la cual puede ser verificada formalmente. Un argumento en contra de los UTxOs es que hacen complejos los contratos inteligentes, pero esto es en el contexto de un paradigma de programación tradicional e imperativo. Plutus utiliza una arquitectura apátrida, que se inspira en Haskell. Los programadores tradicionales, acostumbrados al modelo imperativo de lenguajes como C/C++, Javascript, ASP, PHP, etc., se beneficiarán al sumergirse en Haskell para aprender a escribir contratos Plutus. En el modelo imperativo, los programadores están acostumbrados a gestionar el estado, tanto a nivel local como global.

En su discurso en una reciente conferencia de Coinscrum, Michael Peyton explica: “Todavía podemos modelar cosas que son de estado. En el modelo Ethereum se cambia el estado de algo directamente, aquí es más bien el caso de que necesitamos llevar un registro de nuestro estado a medida que avanzamos, y transmitirlo, que es a menudo la forma en que tratamos con el estado en un mundo de programación funcional”.

Para soportar contratos inteligentes en Plutus, que se ejecuta en la capa de contabilidad de Cardano (SL), las billeteras de Cardano utilizan un modelo de UTxO extendido. Este modelo ampliado es un concepto creativo en la tecnología blockchain. Tiene dos componentes principales, que incluyen datos adicionales transportados por UTxOs tradicionales y una estructura de billetera adicional que ayuda a facilitar el código fuera de la cadena involucrado en la ejecución de código en la cadena.

Anatomía de una validación de transacción

Lo que esto significa realmente es que las billeteras necesitarán soportar scripts para crear el espacio de contrato inteligente. Las salidas se bloquean mediante scripts de validador y las entradas se desbloquean con scripts de redención. Robert Kornacki simplifica el proceso con más detalle en su vídeo Plutus Contracts in a Nutshell.

Además del conjunto habitual de UTxO, los scripts de validador/redentor están “interesados en direcciones adicionales y una billetera con scripts necesita mantener un conjunto adicional de UTxO, que llamamos el script UTxO”. Las direcciones de los guiones se introdujeron en la versión de Byron. Cardano, y el sistema subyacente de UTxO, está evolucionando con cada lanzamiento.

Shelley

Shelely ha introducido cuatro nuevos tipos de dirección/UTxO: direcciones base, direcciones de puntero, direcciones de empresa y direcciones de cuenta de recompensa. Se utiliza un modelo basado en la contabilidad para las direcciones de recompensas de participación (staking).

El documento de especificaciones de diseño para Shelley explica los nuevos tipos: “Una dirección base especifica directamente la clave de participación (staking) que debería controlar la participación de la dirección. Una dirección de puntero especifica indirectamente la clave de participación que debería controlar la participación de la dirección. Hace referencia a una clave de participación mediante un puntero de clave de participación, que es una ubicación en la blockchain del certificado de registro de clave de participación para esa clave. Las direcciones de las empresas no tienen ningún derecho de participación y, por lo tanto, su uso permite la exclusión total de la participación en el protocolo de prueba de participación. Los intercambiadores (exchanges) u otras organizaciones que controlan grandes cantidades de ada -pero que la poseen en nombre de otros usuarios- pueden querer seguir una política de no ejercer los derechos de participación. Las direcciones de las cuentas de recompensas se usan para distribuir recompensas por participar en el protocolo PoS”.

El documento de especificaciones de diseño ha sido publicado recientemente, pero los futuros artículos de EMURGO sobre el tema de la participación lo explicarán con más detalle.

Amplificación de participación

Las criptomonedas PoSv3 se basan en sistemas de prueba de trabajo y pueden sufrir porque los usuarios intentan aumentar su participación aparente e incrementar sus posibilidades de ser seleccionados para crear un nuevo bloque. Los usuarios hacen esto a través del auto gasto y el aumento de su recuento de UTxO. Afortunadamente, Cardano no sufre de este problema, ya que se basa en un riguroso proceso de desarrollo revisado por pares y un sistema de prueba de participación (Proof of Stake - PoS) completamente diferente.

Polvo

El polvo es el término para cuando los pequeños UTxOs se acumulan en la billetera de un usuario con el tiempo. Estos UTxOs son tan pequeños que cuestan más en comisiones de transacción de lo que vale la pena enviarlos a través de la red. La distribución de estos UTxOs depende del algoritmo subyacente de selección de monedas utilizado por la billetera. Sebastien Guillemot ha cubierto ampliamente los efectos que los diferentes algoritmos de selección de monedas tienen en la creación de polvo. Si estás interesado, puedes ver su video o referirte a la entrada del blog que él revisa, la cual está originalmente basada en la especificación formal del documento de la billetera.

Destaca una serie de puntos interesantes, entre los que destacan dos: al elegir un algoritmo de selección de monedas que mantiene los importes de las transacciones y los importes de cambio cerca de 1:1 se maximiza el pseudoanonimato de las transacciones, ya que es más difícil para las personas identificar quién está recibiendo realmente un pago en criptomonedas y quién está recibiendo el cambio. El segundo punto es que el algoritmo de selección de monedas puede no importar mucho para las billeteras individuales, pero para un intercambiador puede tener serias consecuencias de eficiencia.

Consecuencias del almacenamiento

El documento formal de especificación de la billetera de Cardano establece que, “Obviamente, almacenar todos los puntos de control del UTxO conduce a un uso ilimitado de la memoria. Afortunadamente, sin embargo, el protocolo blockchain define un ‘parámetro de seguridad’ k que garantiza que nunca tendremos que retroceder más allá de las franja (slot) k, y por lo tanto no tendremos que almacenar más de k puntos de control. Actualmente, k está ajustado a 2160.” Con un tamaño máximo de bloque de 2 MB, sólo se necesitan 4 GB de datos, además de unos 13,5 gigabytes para las transacciones pendientes. El artículo también discute el tema mencionado de la selección de monedas y dice que un algoritmo pobre hará crecer innecesariamente el conjunto de UTxO y que, “la selección de entrada debe intentar mantener el tamaño del UTxO estable”.

Cardano también espera poder manejar un estado UTxO muy grande usando Árboles AVL+ para Activos Emitidos por el Usuario. Sin embargo, la forma en que se llevará a cabo es un tema propio y está previsto que se libere en Goguen.

Conclusión

Lo que es emocionante tanto en el Ledger Quimérico como en el modelo UTxO Extendido es que los desarrolladores de IOHK y EMURGO no están limitados por las limitaciones de la tecnología blockchain; los investigadores y desarrolladores están dispuestos a crear nuevos conceptos para resolver problemas difíciles.

Cardano es una blockchain de alta seguridad. Se puede argumentar que las instituciones y los gobiernos, con miles de millones y trillones de dólares en reservas de divisas, no pondrán sus fondos en una blockchain habilitada para contratos inteligentes sin las pruebas formales necesarias para garantizar la seguridad. Muchos bancos siguen utilizando COBOL y otras tecnologías heredadas con hardware no soportado, en parte debido a una gestión incompetente, pero también porque los sistemas son de alta seguridad y han funcionado durante tanto tiempo. Sin embargo, en algún momento en el futuro, el costo de no hacer la transición de una infraestructura anticuada será demasiado grande; los sistemas centralizados anticuados con puntos de falla únicos llegarán a representar un riesgo financiero significativo.

Bitcoin ha demostrado en los últimos diez años que el modelo UTxO es seguro. La extensión de Cardano a ese modelo, ya sea a través de transacciones híbridas o conversiones de transacciones, junto con el soporte multi-cadena y el script UTxO extendido, demostrará ser a la vez directa y confiable; como un sistema de criptomoneda de alta seguridad, descentralizado y seguro, habilitado para contratos inteligentes, Cardano representa un logro tecnológico e histórico significativo.

Acerca de EMURGO

EMURGO impulsa la adopción de Cardano y agrega valor a los poseedores de ADA al construir, invertir y asesorar proyectos u organizaciones que adoptan el ecosistema descentralizado de la cadena de bloques de Cardano. EMURGO aprovecha su experiencia en investigación y desarrollo de cadenas de bloques, así como su red global de socios relacionados con las cadenas de bloques y la industria para apoyar emprendimientos a nivel mundial.

EMURGO es el brazo comercial y de riesgo oficial del proyecto Cardano, registrado en Tokio, Japón desde junio de 2017 y en Singapur desde mayo de 2018. EMURGO tiene una afiliación única y trabaja en estrecha colaboración con IOHK para hacer crecer el ecosistema de Cardano a nivel mundial y promover la adopción de la cadena de bloques de Cardano. Para obtener más información sobre el proyecto, visite el sitio web de EMURGO.

|| Haga clic aquí para suscribirse al boletín de noticias de EMURGO.II

Sigue a EMURGO en Social Media

・Página Oficial: emurgo.io

・Twitter (inglés): @emurgo_io

・Twitter (japonés): @Emurgo_Japón

・Youtube EMURGO

・Telegram Anuncios de EMURGO

・Facebook @emurgo.io

・Instagram @emurgo_io

・LinkedIn @emurgo_io

Acerca de la Billetera Yoroi

・Yoroi Twitter: @YoroiWallet

・Yoroi Página web: https://yoroi-wallet.com/

・LinkedIn @emurgo_io

Acerca de la Billetera Yoroi

・Yoroi Twitter: @YoroiWallet

・Yoroi Página web: https://yoroi-wallet.com/

2 Likes