Cardano (plataforma de cadena de bloques)

Esta es una versión antigua de esta página, editada a las 21:45 23 nov 2022 por Virofago (discusión · contribs.). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.

Cardano es una cadena de bloques de prueba de participación escrita en código abierto con capacidad de ejecutar contratos inteligentes[2]​. Es la primer Blockchain de tercera generación fundada en investigaciones revisadas por pares[3], se desarrolla a través de métodos rigurosos basados en evidencia científica. Cardano colabora con diferentes universidades alrededor del mundo como la Universidad de Stanford, la Universidad de Wyoming, la Universidad de Edimburgo, la Universidad de Atenas, el Instituto Tecnológico de Tokio, la Universidad de Zúrich, entre otras[4][5]​ Combina diferentes tecnologías pioneras para proporcionar máxima seguridad criptográfica a sus usuarios [6]​ y un crecimiento sostenible enfocado a aplicaciones, sistemas y sociedades descentralizadas.

Cardano Blockchain
Información general
Tipo de programa software libre
Autor Charles Hoskinson
Desarrollador Input Output Global, Cardano Foundation, and Emurgo
Modelo de desarrollo Computación distribuida
Lanzamiento inicial 27 de septiembre de 2017
Licencia Apache License
Estado actual Activo
Versiones
Última versión estable Vasil Hard Fork Node 1.35.3 [1]()
Enlaces

IOHK es el encargado de desarrollar la tecnología matriz de Cardano, la Fundación de Cardano con sede en Zug (Suiza)[7][8]​ es responsable de supervisar el desarrollo y promover la red, a la vez que Emurgo impulsa la adopción comercial. Mientras Cardano es construida, estas organizaciones actúan como custodios una vez la red esté completamente descentralizada y su tecnología se despliegue por completo, Cardano pertenecerá a la comunidad, y será la misma quien tenga el poder de decidir su futuro a través de sistemas de gobernanza avanzados.[9]

Cardano tiene una filosofía muy fuerte de apertura y transparencia. Todas las especificaciones técnicas y de investigación que sustentan a Cardano se publican y toda la actividad de desarrollo de Cardano se pone a disposición del público.[9]​ Cardano tiene como objetivo lograr una alta escalabilidad, interoperabilidad y sostenibilidad, características necesarias para aplicaciones que impacten positivamente el mundo real. Cardano está diseñada para ser la plataforma elegida para las aplicaciones descentralizadas(Dapps) de misión crítica a gran escala que sustentarán la economía mundial del futuro. Es una de las pocas Blockchains que tiene como objetivo servir a naciones subdesarrolladas, conectando regiones del planeta actualmente desconectadas y desbloqueando billones de dólares, brindando identificación a millones de personas y acceso a múltiples servicios financieros. [10]

El sistema de participación de Cardano (PoS) es una alternativa extremadamente más ecológica a los protocolos de prueba de trabajo(Proof of Work, PoW)[11]​ A junio de 2022 (Epoch347), Cardano es 91248 veces más eficiente energéticamente que Bitcoin.[12][13]​ El uso de energía de toda la red TWh para Cardano es 0.00277429; en contraste, Bitcoin usa 131.0 TWh por año, más que países enteros como Ucrania o Noruega.[13]

A septiembre de 2022, Cardano cuenta con 1,219,872 Delegadores que distribuyen ₳24,989,261,344 ADAs en 2,974 Validadores activos (Stake pool operators). [14]​ Cerca del 69% del suministro circulante se encuentra delegado y el 100% de la producción de bloques es generada por los validadores de la comunidad, convirtiendo a Cardano en la Blockchain más descentralizada que existe en la actualidad.[15][16][17]

En junio de 2022 la Fundación de Cardano anuncia una alianza especial con la Fundación de Linux (organización sin fines de lucro que permite la innovación masiva a través del código abierto). La Fundación de Cardano se unió como miembro "Gold", convirtiéndose en la única organización sin fines de lucro activa en este nivel.[18][19][20]

Historia

Archivo:Charles Hoskinson, Keynote Binance Blockchain week 2022.jpg
Fundador de Cardano, Charles Hoskinson en: Binance Blockchain week 2022

Pre-Cardano

En 2013, Charles Hoskinson renunció a su trabajo para sumergirse por completo en la industria de las criptomonedas, posteriormente Anthony Di Iorio le presentó el documento técnico de Ethereum. Luego de una reunión con Vitalik Buterin y otras personas deciden el futuro lanzamiento de la primera plataforma de contratos inteligentes, Ethereum.

Hoskinson jugó un papel fundamental en el diseño de la Oferta Inicial de Monedas (ICO) de Ethereum. Al tiempo que fue un personaje clave durante las etapas iniciales de Ethereum, ya que tomó la decisión estratégica de registrar la fundación en Suiza cuando se desempeñó brevemente como Director Ejecutivo. Posteriormente, Hoskinson sugirió que la fundación se debería administrar como una organización con fines de lucro, una visión que no compartió Vitalik. Luego de 6 meses, Hoskinson finalmente decide abandonar el proyecto.[21][22]​ Hoskinson continuo en el desarrollo del ecosistema criptográfico. Más tarde, Jeremy Wood, un antiguo socio de Ethereum, se une a Hoskinson para crear en 2015 Input-Output (IOHK). El objetivo del proyecto era diseñar un ecosistema blockchain escalable y seguro para agencias gubernamentales, corporaciones, instituciones académicas y personas naturales.[23]

En 2015 IOHK introduce Cardano, es el resultado de crear una versión japonesa de Ethereum. Al inicio, el enfoque de Cardano estaba en el mercado asiático, con el objetivo principal de construir una innovación que combinara los aspectos de comercio, computación y cumplimiento japonés. El proyecto recaudó $62 millones de dólares en su Oferta Inicial de Monedas (ICO) realizada en 2017, de los cuales el 95% provino de inversionistas japoneses.[21]

Inspirado por muchos proyectos de código abierto, Cardano no comenzó con un plan de programación definido (Roadmap) o incluso con un Libro blanco (White paper). Más bien, adoptó una colección de principios de diseño, mejores prácticas de ingeniería y vías de exploración. Luego de mucha investigación, Cardano presentó un plan de programación que es un resumen del desarrollo que se desplegaría en los siguientes años. El plan de programación se definió en cinco grandes eras:[24]

Byron

La primera era de Cardano permitió a los usuarios comprar y vender la Criptomoneda Ada en una red federada ejecutando un innovador protocolo de consenso. Ouroboros, el corazón de la red de Cardano, es el primer protocolo de prueba de participación creado sobre la base de investigaciones académicas, con un nivel de seguridad probado matemáticamente.[25]​La era Byron también vio la entrega de la billetera Daedalus, la billetera de escritorio oficial de IOHK para ada, así como Yoroi, una billetera liviana desarrollada por Emurgo, diseñada para transacciones rápidas y uso diario. La era Byron trató de los primeros desarrollos tecnológicos cruciales, también de construir una comunidad e involucrar a diferentes personas en la creación de la cadena de bloques.[25]

Shelly

Fue un período de crecimiento y desarrollo para la red. A diferencia de la era Byron, que comenzó instantáneamente cuando se lanzó la red principal, la transición a Shelley estaba diseñada para lograr una transición suave y de bajo riesgo, sin interrupciones del servicio. La era Shelley abarco los primeros pasos críticos en el despliegue de Cardano para optimizar la descentralización, estos fueron graduales pero significativos.[26]​ Durante la era de Byron, la red estaba federada, pero a medida que avanzó la era de Shelley, más y más nodos pasaron a ser administrados por la comunidad de Cardano. Una vez que la mayoría de los nodos estuvieron a cargo de los participantes de la red, Cardano ganó más descentralización y como resultado, ganó una mayor seguridad y solidez. Shelley también introdujo un esquema de delegación e incentivos, un sistema de recompensas para impulsar la adopción de la comunidad. Como red de prueba de participación (PoS), los usuarios delegan su ADA para participar en la red. El esquema de delegación e incentivos ha permitido y recompensado a los usuarios por delegar sus Adas en Stake pools (nodos de red administrados por la comunidad que están siempre activos) y ​​por su participación asegurando la blockchain. Llegado el final de la era Shelley, Cardano ganó entre 50 a 100 veces más descentralización, logró alcanzar 1000 grupos de participación (Stake pools). Las blockchain prominentes actuales como Bitcoin o Ethereum a menudo están controladas por menos de 10 grupos de minería[27][28][29][30][31]​, lo que las expone a un grave riesgo de compromiso por comportamiento malicioso, algo que Cardano evita con un sistema inherentemente diseñado para fomentar una mayor descentralización.[26]

Eras de Cardano
Byron
Shelley
Goguen
Bashõ
Voltaire

Goguen

Con la integración de contratos inteligentes, la era Goguen representó un gran avance en la capacidad tecnológica de la red Cardano. En la era Shelley se descentralizó el núcleo del sistema, luego en Goguen se agregó la capacidad de crear aplicaciones descentralizadas(DApps). La construcción de Goguen estuvo en marcha en paralelo con Shelley y al ser lanzado permitió a los usuarios con antecedentes técnicos y no técnicos generar y ejecutar contratos inteligentes funcionales en la red de Cardano. Uno de los objetivos de la era Goguen fue la creación de Plutus, una plataforma de ejecución y un lenguaje computacional que permite el desarrollo de contratos inteligentes, Plutus fue especialmente diseñado para Cardano utilizando el lenguaje de programación funcional Haskell. Plutus está disponible para pruebas y trae los beneficios de la programación funcional a la creación de contratos inteligentes. También permite que una base de código admita componentes dentro y fuera de la cadena, lo que mejora la coherencia y la facilidad de uso de la experiencia de desarrollo en comparación con las implementaciones de contratos inteligentes existentes.[32]​ La era Goguen también abarca el trabajo para hacer que Cardano sea accesible a un público más amplio a través de Marlowe, lo que permite a los expertos financieros y comerciales sin conocimientos técnicos previos producir contratos inteligentes. Marlowe es un lenguaje específico de dominio (DSL) de alto nivel para contratos financieros que se basa en Plutus. Marlowe viene con Marlowe Playground, una plataforma de creación de aplicaciones fácil de utilizar que los no programadores pueden usar para generar contratos financieros inteligentes. Juntos, Marlowe y Marlowe Playground simplifican el proceso de creación de contratos inteligentes para aplicaciones financieras, lo que permite que los expertos en la materia contribuyan directamente sin necesidad de conocimientos profundos de programación. La combinación de Plutus y Marlowe permitirá una nueva clase de contratos inteligentes de nivel empresarial con funcionalidad verificada, capaz de sustentar implementaciones a gran escala en el mundo real.[32]​ Además de implementar funcionalidad en forma de contratos inteligentes, Goguen también mejoro el núcleo de Cardano. La adición de un libro de contabilidad de múltiples monedas amplio aún más la utilidad de Cardano, lo que permitió a los usuarios crear nuevos tokens compatibles de forma nativa. Habilito la creación de tokens fungibles y no fungibles (NFTs), apoyando la creación de nuevas criptomonedas en el interior de Cardano, así como la tokenización de muchos tipos de activos digitales y físicos. Otro beneficio fue una integración más fácil de contratos inteligentes y Dapps que involucran múltiples criptomonedas.[32]

 
Comunidad de Cardano en el evento internacional de CoinDesk: Consensus 2022. Austin, Texas.

Basho

(Actualmente en desarrollo) Es una era de optimización, mejorando la escalabilidad y la interoperabilidad de la red. Mientras que las eras de desarrollo anteriores se centraron en la descentralización y la nueva funcionalidad, Basho se trata de mejorar el rendimiento subyacente de la red de Cardano para respaldar mejor el crecimiento y la adopción de aplicaciones con un alto volumen de transacciones. Uno de los desarrollos centrales de Basho será la introducción de cadenas laterales (Side chains): nuevas cadenas de bloques inter-operables con la cadena principal de Cardano, con un inmenso potencial para ampliar las capacidades de la red. Las cadenas laterales se pueden utilizar como mecanismo de fragmentación al trasladar el trabajo de la cadena principal a una cadena lateral para aumentar la capacidad de la red. También se pueden usar para introducir características experimentales sin afectar la seguridad de la cadena de bloques principal.[33]​ Basho también verá la introducción de estilos de contabilidad paralelos. Si bien la cadena de bloques principal de Cardano continuará empleando un modelo UTXO, se agregará la capacidad de admitir y cambiar entre UTXO y modelos basados ​​​​en cuentas mediante cadenas laterales. El resultado será una mayor interoperabilidad para Cardano, así como la capacidad de admitir nuevos tipos de casos de uso en la red.[33]​ En general, la era Basho convertirá a Cardano en una de las cadenas de bloques más flexibles, resistentes y de alto rendimiento de la industria. Esto proporcionará una infraestructura de red con la capacidad de escalar de manera sostenible y segura, así como la capacidad de agregar nuevas funciones sin comprometer la confiabilidad en el núcleo de la red.

Voltaire

(Actualmente en desarrollo) La era Voltaire de Cardano proporcionará las piezas finales necesarias para que la red de Cardano se convierta en un sistema autosuficiente. Con la introducción de un sistema de votación y tesorería, los participantes de la red podrán utilizar su participación y derechos de voto para influir en el desarrollo futuro de la red. Para que la red Cardano se vuelva verdaderamente descentralizada, requerirá no solo la infraestructura distribuida introducida durante la era Shelley, sino también la capacidad de mantenerse y mejorarse con el tiempo de manera descentralizada. Con ese fin, la era Voltaire agregará la capacidad para que los participantes de la red presenten propuestas de mejora de Cardano que puedan ser votadas por las partes interesadas, aprovechando el proceso de participación y delegación ya existente. Para financiar el desarrollo futuro de la red, Voltaire también verá la adición de un sistema de tesorería, mediante el cual una fracción de todas las tarifas de transacción se agrupará para proporcionar fondos para las actividades de desarrollo realizadas luego del proceso de votación. Cuando se implementen tanto un sistema de votación como de tesorería, Cardano estará totalmente descentralizado y ya no estará bajo la administración de IOHK. En cambio, el futuro de Cardano estará en manos de la comunidad, que tendrá todo lo que necesita para crecer y evolucionar Cardano desde la base segura y descentralizada establecida por IOHK.[34]

Etimología:

Ada Lovelace
Gerolamo Cardano

(Diciembre 1815 - 27 Noviembre 1852) fue una matemática y escritora inglesa, conocida principalmente por su trabajo en la computadora mecánica de propósito general propuesta por Charles Babbage, la máquina analítica. Fue la primera en reconocer que la máquina tenía aplicaciones más allá del cálculo puro y en haber publicado el primer algoritmo destinado a ser realizado por una máquina de este tipo. Como resultado se la considera la primera programadora de computadoras. La criptomoneda de Cardano ADA, lleva el nombre de Ada Lovelace en honor por sus contribuciones al campo de la matemática y la programación.[35]

(24 de septiembre de 1501- 21 de septiembre de 1576) fue un erudito italiano, sus competencias oscilaron entre las de matemático, médico, biólogo, físico, químico, astrólogo, astrónomo, filósofo y escritor. Fue uno de los matemáticos más influyentes del Renacimiento, y fue una de las figuras clave en la fundación de la probabilidad y el primer introductor de los coeficientes binomiales y el teorema binomial en el mundo occidental. Escribió más de 200 obras sobre ciencia. En 1550, Girolamo Cardano propuso una cuadrícula simple llamada Rejilla de Cardano para escribir mensajes encriptados. Tenía la intención de encubrir sus mensajes dentro de una carta ordinaria para que el total de la carta no pareciera tener un cifrado en absoluto. Por sus múltiples contribuciones al desarrollo de la ciencia, Cardano Blockchain lleva el nombre de Gerolamo Cardano en su honor.[36]

La evolución de Ouroboros

 
Ouroboros es una criatura mítica que representa la naturaleza cíclica del universo y la idea del eterno comienzo. En Cardano representa la eterna evolución del protocolo.

Ouroboros fue el primer protocolo de consenso de blockchain que se desarrolló a través de una investigación revisada por pares. Dirigido por el Profesor Aggelos Kiayias de la Universidad de Edimburgo, Ouroboros y sus evoluciones proporcionan una nueva línea de base para resolver algunos de los mayores desafíos tecnológicos del mundo de forma segura y a escala.[37]

Las blockchains públicas no están controladas por ninguna autoridad central única. En cambio, se utiliza un protocolo de consenso para permitir que los participantes de la red distribuida acuerden el historial de la red generado en la cadena de bloques, para llegar a un consenso sobre lo que sucedió y continuar desde una única fuente de verdad. Esa única fuente de verdad proporciona un único registro. En lugar de exigir a los participantes que confíen entre sí, la confianza está integrada en el centro del protocolo. Los actores desconocidos pueden interactuar y realizar transacciones entre ellos sin depender de un intermediario para mediar, o que exista un requisito previo para el intercambio de datos personales.[37]

Ouroboros es un protocolo de prueba de participación (Proof of Stake), que es distinto a uno de prueba de trabajo (Proof of work). En lugar de confiar en los "mineros" para resolver ecuaciones computacionalmente complejas para crear nuevos bloques, y así recompensar al primero en hacerlo como lo hace Bitcoin; El protocolo de prueba de participación de Ouroboros, mediante un método matemáticamente avanzado selecciona a los participantes para crear nuevos bloques, en función de la participación que controlan en el interior de la Blockchain de Cardano. En Cardano a los grupos de participación se les llama Stake pools [37]

Utiliza la delegación (Stake) como recurso fundamental para identificar el apalancamiento de los participantes en el sistema. No se desperdicia ningún recurso físico en el proceso de mantenimiento del libro mayor, que se muestra robusto inclusive bajo ataques de "simulación sin costo" y "nada en delegación", anteriormente se pensaba que eran barreras cruciales para la implementación de los libros mayores basados ​​en participación. Esto hace que Ouroboros sea claramente más atractivo que los protocolos de prueba de trabajo, que requieren un gasto de energía prodigioso para mantener el consenso.[38]​ Se ha demostrado que Ouroboros es resistente incluso si subconjuntos arbitrariamente grandes de participantes, en términos de delegación (Stake), se abstienen del mantenimiento del libro mayor. Esta garantía de disponibilidad dinámica asegura la vitalidad incluso bajo niveles de participación arbitrarios e impredecibles. De los participantes que están activos, apenas más de la mitad necesita seguir el protocolo, el resto puede desviarse arbitrariamente; de hecho, incluso se pueden tolerar picos temporales por encima del umbral del 50%. Por lo tanto, Ouroboros es claramente más resistente y adaptable que los protocolos de tolerancia a fallas bizantinas clásicas (así como todas sus adaptaciones modernas), que tienen que predecir con relativa certeza el nivel de participación esperado y pueden dejar de funcionar cuando la predicción es falsa.[38]

El proceso de unirse y participar en la ejecución del protocolo no requiere confianza en el sentido de que no requiere la disponibilidad de ningún recurso compartido especial, como un punto de control reciente o un reloj común. Participar en el protocolo requiere simplemente el bloque de génesis público de la cadena y el acceso a la red. Esto hace que Ouroboros esté libre de las suposiciones de confianza comunes en otros protocolos de consenso cuya seguridad colapsa cuando los recursos compartidos confiables se subvierten o no están disponibles.[38]​ Ouroboros incorpora un mecanismo de reparto de recompensas para incentivar a los participantes a organizarse en nodos operativos, conocidos como stake pools, que pueden ofrecer una buena calidad de servicio independientemente de cómo se distribuya la participación entre la población de usuarios. De esta manera, todas las partes interesadas contribuyen a la operación del sistema, asegurando la solidez y la representación democrática, mientras que el costo del mantenimiento del libro mayor se distribuye de manera eficiente entre la población de usuarios. Al mismo tiempo, el mecanismo viene con contramedidas que desincentivan la centralización. Esto hace que Ouroboros sea fundamentalmente más inclusivo y descentralizado en comparación con otros protocolos que terminan con solo un grupo reducido de actores responsables del mantenimiento del libro mayor o no brindan incentivos a las partes interesadas para participar y ofrecer un servicio de buena calidad.[38]

Ouroboros es 91248 veces más eficientes energéticamente que los protocolos de prueba de trabajo, y a través de Ouroboros, Cardano puede lograr una eficiencia energética sin igual. A partir de 2022, Bitcoin, por ejemplo, requiere 204,50 TWh por año, lo que es comparable al consumo de energía de Tailandia. Ouroboros, por otro lado, ejecuta una Raspberry Pi, que tiene un consumo de energía de 15 a 18 W (vatios). La diferencia resultante en el uso de energía se puede comparar con la que existe entre un hogar y un país. Se puede evidenciar entonces que Ouroboros se puede escalar masivamente sin necesidad de un gasto excesivo de recursos o comprometiendo el medio ambiente pero Bitcoin y otras Blockchains con un protocolo de prueba de trabajo (Proof of work) no tienen la misma capacidad de escalabilidad. [39][40]

Archivo:Aggelos Kiayias, Chief Science Officer at Input Output Global.jpg
Científico Informático, Profesor Aggelos Kiayias. Director científico de Input Output Global

Ouroboros Clásico

Publicado en 2017, fue la primera implementación de Ouroboros. Sentó las bases para la estructuración del protocolo como un rival con mayor eficiencia energética comparado con los protocolos de prueba de trabajo, introdujo el marco matemático para analizar la prueba de participación e introdujo un nuevo mecanismo de incentivos para recompensar a los participantes en un entorno de prueba de participación.

Creo la capacidad para generar aleatoriedad imparcial en el algoritmo de selección y las garantías necesarias de seguridad. La aleatoriedad evita la formación de patrones y es una parte fundamental para mantener la seguridad del protocolo. Cada vez que se puede predecir un comportamiento, se puede generar un exploit, y aunque Ouroboros garantiza la transparencia, evita la coerción. Ouroboros fue el primer protocolo blockchain que se desarrolló con este tipo de análisis de seguridad.

Ouroboros divide el tiempo de Cardano en épocas (Ephocs), cada época se divide en ranuras (Slots). Una ranura o slot es un período corto de tiempo en el que se puede crear un bloque, y agrupar las ranuras en épocas es fundamental para ajustar el proceso de elección del líder a la distribución de participación que cambia dinámicamente.

El diseño central de Ouroboros debe mantener su seguridad en presencia de ataques. El protocolo tiene una tolerancia incorporada para evitar que los atacantes propaguen versiones alternativas de la cadena de bloques y asume que un adversario puede enviar mensajes arbitrarios a cualquier participante en cualquier momento. De hecho, se garantiza que el protocolo es seguro en la configuración sincrónica (es decir, con fuertes garantías en los tiempos de entrega de mensajes) siempre que más del 51 % de la participación esté controlada por participantes honestos (es decir, los que siguen el protocolo).

Se elige un líder por cada ranura, quien es responsable de agregar un bloque a la cadena y pasarlo al siguiente líder de ranura. Para protegerse contra los intentos adversarios de subvertir el protocolo, se requiere que cada nuevo líder de ranura considere los últimos bloques de la cadena recibida como transitorios: solo la cadena que precede al número pre especificado de bloques transitorios se considera resuelta (settled). Esto se conoce como retraso en la liquidación (settlement delay). Significa que una parte interesada puede desconectarse y seguir sincronizada con la cadena de bloques, siempre que no sea por más que el retraso en la liquidación.

Dentro del protocolo Ouroboros, cada nodo de la red almacena una copia del mempool de transacciones, donde se agregan las transacciones si son consistentes con las transacciones existentes, y la cadena de bloques. La cadena de bloques almacenada localmente se reemplaza cuando el nodo se da cuenta de una cadena válida alternativa más larga.

El inconveniente que tenía Ouroboros Clásico fue que era susceptible a los atacantes adaptativos, una amenaza importante que se resolvió con Ouroboros Praos, adicionalmente no tenía una forma segura para que un nuevo participante se iniciara desde la cadena de bloques, esto se resolvió con Ouroboros Génesis.[41][42]

(Ver White paper de Ouroboros Clásico)

Ouroboros B.F.T

Ouroboros BFT vino después, derivado como un caso de análisis de Ouroboros Clásico. Ouroboros BFT (Tolerancia a fallas bizantinas) es un protocolo simple que fue utilizado por Cardano durante el reinicio de Byron, que fue la transición de la antigua base de código de Cardano a la nueva. Ouroboros BFT ayudó a preparar la red de Cardano para el lanzamiento de Shelley y con ello, su descentralización.

En lugar de requerir que los nodos estén en línea todo el tiempo, Ouroboros BFT asumió una red federada de servidores y comunicación sincronizada para construir la cadena de bloques. Este escenario federado es un protocolo de consenso que resulta atractivo por su sencillez y carácter determinista. Vale la pena señalar que BFT requirió una fracción mayor de partes honestas que otras versiones de Ouroboros.

El protocolo es ejecutado por (n) servidores sobre una red sincronizada y puede tolerar cualquier número (t) de fallas bizantinas con t  n/3. Además, el protocolo puede ofrecer un procesamiento de transacciones a la máxima velocidad de la red en caso de que no se produzcan fallas, se generara una confirmación instantánea: el cliente puede estar seguro en un solo tiempo de ida y vuelta de que se liquidará una transacción enviada, y una prueba instantánea de liquidación aparecerá: el cliente puede obtener un recibo de que se liquidará una transacción presentada. También se puede derivar fácilmente un protocolo de consenso binario. Se analizó el protocolo en caso de rupturas de red y pérdida temporal de sincronía argumentando la seguridad del protocolo cuando se restablecía la sincronía. Finalmente, se examinó el modelo contradictorio encubierto que muestra que la resiliencia bizantina aumenta a t  n/2.[43][44]

(Ver White paper de Ouroboros B.F.T)

Ouroboros Praos

Ouroboros Praos se basa y proporciona mejoras sustanciales de seguridad y escalabilidad a Ouroboros Clásico. Al igual que con Ouroboros Clásico, Praos procesa bloques de transacciones dividiendo las cadenas en ranuras, que se agregan en épocas. Sin embargo, a diferencia de Ouroboros Clásico, Praos proporciona seguridad contra la corrupción totalmente adaptativa en el entorno semi-sincrónico proporcionando seguridad contra atacantes adaptables. Asume dos posibilidades: a.) Que los adversarios pueden retrasar los mensajes honestos de los participantes por más de un espacio y b.) Un adversario puede enviar mensajes arbitrarios a cualquier participante en cualquier momento.

A través de la selección de líderes privados, firmas digitales seguras y un nuevo tipo de función aleatoria verificable, Praos proporciona una mejor aleatoriedad de época y garantiza que un adversario fuerte no pueda predecir el próximo líder de ranura y lanzar un ataque enfocado (como un ataque DDoS) para subvertir el protocolo. También puede tolerar retrasos en la entrega de mensajes controlados por adversarios y corrupción gradual de participantes individuales en una población de partes interesadas en evolución, lo cual es fundamental para mantener la seguridad de la red en un entorno global, siempre que se mantenga una participación mayoritariamente honesta.

En 2020, Praos se utilizó para introducir la producción descentralizada de bloques en Cardano a través de Stakepools [45][46]

(Ver White paper de Ouroboros Praos)

Ouroboros Génesis

Ouroboros Génesis mejora a Ouroboros Praos al agregar una regla de selección de cadena novedosa, que permite a las partes arrancar desde un bloque génesis, sin la necesidad de puntos de control confiables o suposiciones disponibles del pasado. Presenta el primer tratamiento componible (GUC) (Global Universally) de cadenas de bloques basadas en PoS en un entorno que captura. Por primera vez en GUC, números arbitrarios de partes que pueden no estar completamente operativas, por ejemplo, debido a problemas de red, reinicios o actualizaciones en su sistema operativo que afectan a todos o solo a algunos de sus recursos locales, incluida su interfaz de red y reloj. Esta configuración, a la que nos referimos como disponibilidad dinámica, captura naturalmente entornos descentralizados dentro de los cuales se supone que operan los protocolos de blockchain implementados en el mundo real. Génesis también proporciona una prueba de Componibilidad universal del protocolo, lo que demuestra que el protocolo se puede componer con otros protocolos en configuraciones arbitrarias en un entorno del mundo real, sin perder sus propiedades de seguridad. Esto contribuye significativamente a su seguridad y sostenibilidad, y la de las redes que lo utilizan.[47][48]

(Ver White paper de Ouroboros Génesis)

Ouroboros Hydra

La plataforma de intercambio descentralizada (DEX): SundaeSwap, trabaja en un prototipo personalizado de Hydra que permitirá escalar el rendimiento de su aplicación, elevando el número de transacciones por minuto, reduciendo la latencia y mejorando la experiencia de sus usuarios. En el video vemos un único validador (Head) procesando múltiples transacciones, cada validador será capaz de procesar el mismo número de diferentes transacciones (Multi Head)

La capa de código base de Cardano (Layer1), tienen un límite en la cantidad de transacciones que puede procesar en un período de tiempo determinado, es tecnológicamente difícil escalar el código base de Cardano sin comprometer la seguridad de la red y su descentralización.

Una de las múltiples soluciones de escalabilidad que Cardano propone es crear una segunda capa de código, Hydra (L2), que funciona encima de la primera capa (L1), es posible crear una red casi independiente diseñada para escalar lo más alto posible y hacer que las transacciones sean rápidas y económicas conservando la seguridad del código base (L1).

Hydra es una suite de diferentes protocolos en desarrollo, que solucionaran diversos problemas de escalabilidad en el ecosistema de Cardano. Al mismo tiempo que proporciona medios más eficientes para procesar transacciones fuera de la L1 para un conjunto de usuarios especifico, utiliza el libro mayor de la cadena principal como una capa de liquidación segura, Hydra mantiene las garantías de seguridad mientras permanece débilmente acoplada a la cadena principal. Al no requerir un consenso global, puede adaptarse a una amplia gama de aplicaciones. Por ejemplo, Hydra permite que las tarifas de las transacciones y el valor mínimo de UTXO se configuren tan bajos como 1 o 2 lovelaces, lo que es fundamental para las microtransacciones.

Hydra introduce el concepto de canales de estado isomórficos: es decir, utiliza la misma representación del libro mayor para producir múltiples capas 2 que funcionan independientemente una de la otra, pero que están conectadas a la matriz de Cardano. Cada canal isomórfico es llamado Cabeza, de ahí el nombre de Hydra, que hace referencia a la criatura mitológica de múltiples cabezas.

Muchas de las transacciones actualmente manejadas por la cadena principal o las aplicaciones que se ejecutan en la cadena principal pueden beneficiarse directamente de Hydra, porque comprende los mismos formatos y firmas de transacción. Los clientes existentes y potenciales pueden reutilizar la infraestructura probada y comprobada de Cardano para crear billeteras y aplicaciones que interactúan con el sistema de capa 2. Además, se puede crear una Cabeza de Hydra sin fondos iniciales en el lado de la parte receptora, lo que permite una experiencia de usuario fluida.[49][50][51]

(Ver White paper de Ouroboros Hydra)

Ouroboros Crypsinous

Ouroboros Crypsinous equipa a Génesis con propiedades de preservación de la privacidad. Es el primer protocolo de cadena de bloques de prueba de participación que preserva la privacidad y que se analiza formalmente, lo que logra la seguridad contra los ataques adaptativos al mismo tiempo que mantiene sólidas garantías de privacidad mediante la introducción de una nueva técnica de evolución de monedas que se basa en SNARK y encriptación segura de clave privada. Actualmente no se planea implementar Crypsinous en Cardano, pero puede ser utilizado por otras cadenas para aumentar la configuración de preservación de la privacidad.[52][53]

(Ver White paper de Ouroboros Crypsinous)

Ouroboros Chronos

Ouroboros Chronos logra dos objetivos: primero, muestra cómo los protocolos de cadena de bloques pueden sincronizar relojes de forma segura a través de un mecanismo de sincronización de tiempo novedoso y, por lo tanto, independizarse de los servicios de tiempo externos. En segundo lugar, es un protocolo de cadena de bloques criptográficamente seguro que, además, proporciona una fuente de tiempo criptográficamente segura para otros protocolos. En resumen, Chronos hace que el libro mayor sea más resistente a los ataques que tienen como objetivo la información de tiempo.

Desde el punto de vista de la aplicación, Chronos puede aumentar drásticamente la resiliencia de las telecomunicaciones críticas, el transporte y otras infraestructuras de tecnología de la información que requieren la sincronización de la hora local con un reloj de red unificado que no tiene un punto único de falla.[54][55]

(Ver White paper de Ouroboros Chronos)

Ouroboros Leios

F1. El tiempo se divide en franjas horarias. Aproximadamente cada 20 segundos se sortea un nuevo nodo líder. En las ranuras 20 y 40 se eligen los nodos marcados: 11 y 3. Estos nodos pueden producir un nuevo bloque y publicarlo.

F2. En el nuevo modelo, además de lo anterior, se sortea un nodo endosante en cada ranura y se le otorga el derecho de producir una nueva entrada. Así, se realizan dos sorteos en paralelo al mismo tiempo.

F3. Se crea una nueva entrada respaldada cada segundo. Tan pronto como se extraiga un nuevo líder, habrá más entradas aprobadas que estarán listas para usarse. El líder de la ranura realiza su proceso de validación y puede insertar todas las entradas seleccionadas en el nuevo bloque.

F4. Un nodo recibe nuevas transacciones y también nuevas entradas aprobadas de la red Peer-to-Peer. Ambos se almacenan en grupos de memoria dedicados. El nodo tuvo suerte y fue elegido líder del espacio, por lo que produjo un nuevo bloque.

Cardano divide el tiempo en franjas horarias. La duración de una ranura (Slot) es de un segundo. El protocolo está configurado para que aproximadamente cada 20 segundos, un nodo seleccionado al azar se convierta en el líder de la ranura. El nodo líder obtiene el derecho de insertar transacciones en un nuevo bloque y publicarlo, estos nodos son entidades en la red llamados grupos de participación (Stake pool operators) en los que confían los delegadores. Además de los nodos productores de bloques, habrá un segundo grupo de nodos llamado endosantes de entrada. Por lo tanto, dentro de un espacio, es posible seleccionar aleatoriamente no solo los líderes de ranuras, sino también múltiples endosantes de entrada.

Los nodos endosantes de entradas tienen la tarea de respaldar las entradas que deben incluirse en el bloque, se pueden considerar como una segunda capa que pre procesará las transacciones y los scripts antes de que el nodo líder de la ranura seleccionado al azar los inserte en el bloque. Los nodos endosantes de entradas se pueden seleccionar cada segundo (un endosante de entrada por segundo) antes de que se seleccione el nodo líder de la ranura (aproximadamente cada 20 segundos). La entrada preparada por un endosante de entrada será aceptada por el nodo líder solo si se verifica criptográficamente que el endosante ha obtenido el derecho a preparar la entrada.

Entre dos bloques, se seleccionarán al azar múltiples endosantes para preparar las entradas. Una vez que se elige un líder de ranura, habrá múltiples entradas respaldadas que se pueden insertar en el bloque. En lugar de que el nodo líder de la ranura inserte transacciones y scripts seleccionados en el bloque, como lo hace actualmente, insertará referencias a entradas aprobadas en el bloque. Los bloques y las entradas homologadas se distribuyen de forma independiente en la red. Cada bloque puede contener de 0 a N entradas aprobadas. Los endosantes de entrada pueden existir porque Cardano usa el modelo Extendido UTXO. Es posible validar transacciones y scripts localmente independientemente del entorno circundante (sin estado global). La validación de transacciones y la ejecución de scripts ocurren localmente al nivel de los nodos endosantes de entrada, es decir, fuera de la cadena principal que permanece bajo el control de los líderes de ranuras. La responsabilidad de buscar errores de doble gasto sigue estando a cargo de los nodos líderes seleccionados, sin embargo, se convierte en un proceso liviano.

Una vez que se selecciona un nuevo nodo líder de ranura y se selecciona las entradas respaldadas del grupo de memoria y se verifica que no se haya producido un gasto doble; se insertan las referencias de todas las entradas aprobadas seleccionadas en el nuevo bloque. Luego, el nuevo bloque se adiciona en la red y la validación por parte de otros nodos se realiza de manera similar a como se hace ahora.

Es prematuro afirmar que el trilema de blockchain es un problema resuelto. Sin embargo, Ouroboros Leios será un importante progreso, ya que el rendimiento de la red no estará limitado por el tamaño del bloque y los parámetros de tiempo del bloque. Anteriormente, se decía que una blockchain es una base de datos lenta y que tiende con el tiempo a crecer exponencialmente en tamaño de información. Ouroboros Leios invalida este argumento y puede reescribir la historia del consenso de la red demostrando que escalar descentralizadamente sin comprometer la seguridad de la red es posible.[56][57]

Combinador de bifurcación

El término bifurcación dura (Hard fork) se usa para describir un cambio radical en la cadena de bloques, por ejemplo, un cambio de un protocolo a otro. En la mayoría de las cadenas de bloques, una bifurcación dura indica cambios de bloque o un cambio en su interpretación. Tradicionalmente, al realizar un hard fork, el protocolo deja de funcionar, se implementan nuevas reglas y cambios, y la cadena se reinicia. Es importante tener en cuenta que una cadena bifurcada será diferente de la versión anterior y que el historial de la cadena de bloques pre bifurcada ya no estará disponible.

En Cardano, un Combinador de bifurcación dura (Hard fork combinator), es una tecnología especialmente diseñada que combina los protocolos antiguos y el nuevo a ser introducido, lo que permite realizar actualizaciones profundas en la blockchain de Cardano sin interrupción o reinicio del sistema, garantizando que los libros mayores aparezcan como un único libro mayor. No requiere que todos los nodos se actualicen simultáneamente, en cambio los nodos pueden actualizarse de una forma gradual, de hecho, algunos nodos pueden ejecutar bloques de protocolos anteriores y el nuevo simultáneamente sin producir ningún tipo de inconveniente.[58][59]

A continuación, las actualizaciones realizadas en la blockchain de Cardano desde su creación hasta la actualidad:

Transición de Byron a Shelley

La red principal de Cardano Byron se ejecutó en el protocolo de consenso Ouroboros Clásico. Byron hace una transición a una red descentralizada llamada Shelley, que se ejecuta en el nuevo protocolo de consenso Ouroboros Praos, que permite capacidades más amplias al mismo tiempo que respalda el proceso de replanteo con recompensas monetarias para los titulares de ADA y los propietarios de los grupos de participación (Stakepools).

Para permitir transiciones ordenadas en Cardano sin desviaciones en el sistema, fue necesario actualizar el código para admitir las condiciones del nuevo protocolo. Hacerlo en una sola actualización podría haber causado una serie de complejidades, por lo que Cardano decidió adoptar un enfoque de dos etapas, utilizando el protocolo de tolerancia a fallas bizantinas (BFT) de Ouroboros como intermediario. El cambio de Ouroboros Clásico a BFT (que ocurrió el 20 de febrero de 2020) es la única bifurcación dura tradicional dentro de la cadena de bloques de Cardano. Este evento de bifurcación reinició la red principal de Byron para ejecutar el protocolo BFT y permitir una transición más fluida a Ouroboros Praos sin más interrupciones en la cadena. El protocolo BFT se diseñó cuidadosamente para que el historial de la cadena de bloques permaneciera sin cambios y la cadena de bloques apareciera como una sola entidad.

Shelley: Bloqueo de Tokens

El bloqueo de tokens es una nueva característica que se agrega al protocolo Shelley para permitir varios casos de uso de los contratos inteligentes, incluida la creación y transacción con tokens de activos múltiples, así como el establecimiento de soporte para el mecanismo de votación de Voltaire. El bloqueo de tokens es el proceso de "reservar" una cierta cantidad de activos y comprometerse a no disponer de ellos durante un período de tiempo específico. Esta característica está habilitada en la actualización de Allegra, permitiendo el bloqueo de un token específico que se será utilizando para un propósito determinado durante la actualización de Mary. El token puede representar un elemento que se contabiliza en el libro mayor de la blockchain, incluida ADA, más adelante se incluirían otros tipos de tokens personalizados.

Algunos escenarios de uso son:

  • Acuerdo contractual: Cuando alguien celebra un acuerdo contractual, por ejemplo, para vender una propiedad, es importante prometer que esta propiedad no se venderá a nadie más, solo a la persona que realmente paga el dinero. En este caso, el token puede representar la propiedad y la "promesa": el bloqueo real del token. Si la propiedad se vende a un tercero diferente, entonces el contrato queda sin efecto.
  • Registro de votos: dentro del mecanismo de votación de Voltaire, el bloqueo de tokens permitirá a los usuarios bloquear una cierta cantidad de sus tokens para representar sus derechos de voto. Los titulares de Ada que participen en el proceso de votación deberán "bloquear" sus tokens. Esto representará sus derechos de voto, de acuerdo con la participación que posean, y eliminará los riesgos asociados a escenarios tales como doble conteo de votos, asignación de más votos de los posibles, votos contradictorios o duplicidad de votos.
  • Tokens de activos múltiples: Cardano brinda soporte para tokens de activos múltiples, donde el libro mayor admite la creación y el uso de múltiples tipos de tokens personalizados, además de ada. El bloqueo de tokens permite que los tokens de ada se "bloqueen", por ejemplo, para crear otro activo personalizado de valor equivalente.

Mary: Soporte Multi-activo

Mary es la actualización del protocolo Shelley implementada en marzo de 2021. Introdujo tokens nativos y compatibilidad con múltiples activos en Cardano. Mary permite a los usuarios crear tokens definidos de forma única (personalizados) y realizar transacciones con ellos directamente en la cadena de bloques de Cardano. Con la actualización de Mary, la infraestructura de contabilidad del libro mayor procesa no solo las transacciones de ADA, sino también las transacciones que contienen simultáneamente varios tipos de activos. El soporte nativo otorga claras ventajas para los desarrolladores, ya que no es necesario crear contratos inteligentes para manejar la creación o transacciones de tokens personalizados. En su lugar, el libro de contabilidad realiza un seguimiento de la propiedad y la transferencia de activos, lo que elimina la complejidad adicional y la posibilidad de errores manuales, al tiempo que garantiza una rentabilidad significativa.

Los desarrolladores, las empresas y las aplicaciones pueden crear tokens de propósito general (fungibles) o especializados (no fungibles) para lograr objetivos comerciales. Estos pueden incluir la creación de tokens de pago personalizados o recompensas para aplicaciones descentralizadas; monedas estables vinculadas a otras monedas; o activos únicos que representen propiedad intelectual. Todos estos activos se pueden comercializar, intercambiar o utilizar como pago por productos o servicios.[60][61]

Alonzo: Soporte de Contratos Inteligentes

Alonzo es la actualización del protocolo implementada en septiembre de 2021, como parte del desarrollo de la era Goguen. Se basa en metadatos de transacciones, bloqueo de tokens y funcionalidad de activos nativos para permitir el desarrollo de contratos inteligentes. Esta actualización presenta una plataforma versátil que abre oportunidades para empresas y desarrolladores, al permitir la creación de contratos inteligentes y aplicaciones descentralizadas (DApps) para finanzas descentralizadas (DeFi). Dicha capacidad se habilita agregando las herramientas necesarias y la infraestructura utilizando la Plataforma Plutus.

Al aplicar un enfoque riguroso basado en métodos formales y de verificación, Alonzo amplía el lenguaje básico de secuencias de comandos multi firma (multisig) utilizado en Cardano Shelley, que será actualizando posteriormente al lenguaje Plutus Core para opciones de secuencias de comandos más potentes y seguras. Para ello, Alonzo implementa el modelo contable de salida de transacciones no gastadas extendidas (EUTXO).[62][63]

Vasil: Plutus 2.0 y el debut de Pipelining

Vasil, es la actualización del protocolo que se introdujo en junio de 2022. Nombrada en honor al difunto matemático búlgaro y destacado miembro de la comunidad de Cardano, Vasil Dabov, la actualización de Vasil presenta cinco mecanismos clave para mejorar el rendimiento de la cadena de bloques: CIP-31 (Entradas de referencia), CIP - 32 (datos en línea), CIP-33 (guiones de referencia), CIP-40 (salidas colaterales) y canalización de difusión. Estas mejoras impulsan la usabilidad y escalabilidad de Cardano al aumentar el límite de tamaño de bloque para adaptarse a más transacciones por bloque. Los desarrolladores tendrán una mejor experiencia mientras construyen sobre Cardano, ya que Vasil reducirá en gran medida la complejidad de crear e implementar DApps en Cardano. Los scripts de Plutus también son un foco principal de la actualización de Vasil. Estos scripts vivirán de forma persistente en la cadena para que se pueda hacer referencia a ellos cuando sea necesario, lo que mejorará la eficiencia, ya que no será necesario incluir el script en la transacción que intenta gastar sus resultados.[64][65][66]

Modelo EUTXO

Las redes Blockchain son estructuras de datos complejas. Las transacciones se entrecruzan continuamente en la cadena, creando huellas digitales que requieren un seguimiento y una gestión cuidadosa para mantener la integridad y la fiabilidad del libro mayor subyacente. Toda empresa o entidad comercial requiere un balance general para mantener un registro preciso de las ganancias, pérdidas, flujo de efectivo y otros parámetros. Al mantener una contabilidad cuidadosa de todos estos datos, las empresas pueden de un vistazo visualizar su estado financiero en cualquier momento. El libro de contabilidad de una empresa ofrece otra ventaja: la capacidad de rastrear la procedencia y propiedad de los fondos. Las redes Blockchain también requieren un modelo de contabilidad para determinar quién posee (x) monedas y cuántas de ellas, rastrear a dónde van, cuáles se usaron y cuáles quedan disponibles para gastar. Hace décadas, los contadores usaban libros de contabilidad físicos con entradas escritas a mano para llevar los registros sobre el movimiento de los fondos de una entidad. Hoy en día, las empresas utilizan versiones electrónicas. Las cadenas de bloques usan las transacciones como registros (equivalente a las entradas en un libro mayor tradicional) para rastrear la procedencia y la propiedad. Estas transacciones contienen mucha información (de dónde provienen las monedas, a dónde van y cualquier cambio que quede de estas transacciones).

Existen principalmente dos tipos diferentes de libros de contabilidad usados por las cadenas de bloques: las cadenas de bloques basadas en el modelo UTXO (por ejemplo: Bitcoin y Cardano) y las cadenas que utilizan un modelo de cuentas/saldos (por ejemplo: Ethereum y otras)

Cardano buscó combinar el modelo original UTXO de Bitcoin con la capacidad de Ethereum de implementar contratos inteligentes. Así Cardano desarrolló un modelo innovador de contabilidad extendido llamado EUTXO (Extended Unspent Transaction Output) que permite la implementación de contratos inteligentes en el interior de la blockchain, en el caso de Cardano, es más exacto hablar de scripts de validación. El modelo (EUTXO) es importante para Cardano porque permite a la cadena ser más que una simple red transaccional.

El modelo EUTXO ofrece algunas ventajas sobre el modelo basado en cuentas. En particular, una mayor seguridad al ejecutar contratos inteligentes, previsibilidad de tarifas, verificación local que garantiza que las transacciones se aceptarán después del envío y un estado de cadena de bloques inherentemente fragmentado. Esto permite la paralelización en el procesamiento de transacciones, lo que tiene un efecto positivo en la escalabilidad en cadena. La paralelización también es importante para la ejecución de contratos inteligentes. Al igual que las transacciones, los contratos inteligentes también se pueden ejecutar de forma independiente, es decir, en paralelo. Al procesar contratos inteligentes, el orden en el bloque no importa, no es necesario considerar los resultados de ejecución de otros contratos en el bloque, por lo que la ejecución en sí puede considerarse más segura. En otras palabras, dado que los resultados de ejecución de contratos inteligentes individuales son independientes entre sí y no hay un estado mutable-global compartido, hay menos superficie para ataques.

Es importante señalar que la escalabilidad de las aplicaciones descentralizadas se basa en las capacidades del modelo de contabilidad implementado. En general, los contratos inteligentes y su ejecución pueden verse como una capa que depende inherentemente de las capacidades de la cadena de bloques.

Las opciones de paralelización del modelo EUTXO de Cardano se basan en el diseño UTXO original de Bitcoin, donde cada UTXO no gastado existente se compone de una secuencia de transacciones anteriores. Entonces cada EUTXO de Cardano se puede manejar de forma independiente. No existe tal cosa como un estado global que deba tenerse en cuenta durante el manejo y la validación. Solo el estado local es lo que importa. Esto significa que el resultado de la transacción depende única y exclusivamente del uso del EUTXO, que son objetos inmutables de un solo uso que actúan como entrada de transacciones que producirán salidas. Cada transacción puede consumir uno o más EUTXO, lo que creará nuevos EUTXO que tendrán el mismo valor total. La única forma en que una transacción puede influir en el efecto de otra transacción, es intentando gastar el mismo EUTXO que la transacción posterior intenta gastar, lo que hace que el nodo la rechace.

Si una transacción pasa la validación local, el usuario puede estar casi seguro de que la transacción llegará a un nuevo bloque. Las transacciones en el modelo EUTXO de Cardano son independientes entre sí y son deterministas, lo que significa que es muy probable que la transacción no falle. Igualmente para la validación de scripts de Plutus, los usuarios pueden verificar localmente que se puede enviar una secuencia de comandos de Plutus y ejecutarla en la cadena, asegurando que las tarifas nunca se pierdan. Sin embargo, se debe seguir una regla: Cada EUTXO solo se puede gastar una sola vez y en su totalidad dentro de un bloque. El gasto de un UTXO debe ser aceptado por toda la red como parte de la incorporación en un nuevo bloque. Esto significa que el destinatario del UTXO solo puede gastarlo en el siguiente bloque. No en el mismo bloque en el que se recibió el UTXO. La adición de un nuevo bloque en la cadena de Cardano puede considerarse como una transición de estado de la misma. Sin embargo, en los propios bloques, las transacciones individuales y los EUTXO son independientes entre sí.

El modelo EUTXO de Cardano es más determinista que el modelo basado en cuentas de Ethereum, pero aún así se puede dar el caso que una transacción sea rechazada. El rechazo significa que, a pesar de que la transacción se haya construido correctamente, no se puede introducir a la cadena de bloques. Si esto sucede, la transacción no tiene efecto en el estado de la cadena de bloques, por lo que no se pagara ninguna tarifa. Se produce un rechazo de la transacción en caso de contención, esto significa, que el estado de la cadena de bloques cambió aproximadamente al mismo tiempo que el usuario construyó una transacción localmente. La validación local ha pasado, pero el estado de la cadena de bloques es diferente en el momento del envío. El determinismo asegura que, siempre que se acepte una transacción tendrá el mismo efecto en el estado del libro mayor que durante la construcción y la validación local.

Puede ser más difícil para un desarrollador crear un script de validación, ya que ellos mismos tienen que lidiar con la concurrencia. Las transacciones pueden entrar en conflicto si dependen del mismo EUTXO al mismo tiempo. Por ejemplo, si algunos EUTXO estuvieran bloqueados por un contrato inteligente, solo un agente puede interactuar con ellos dentro de un bloque. Tenga en cuenta que esta limitación se aplica solo a EUTXO. Un contrato inteligente puede manejar varios UTXO diferentes que componen su estado actual y metadatos fuera de la cadena que permiten interpretar esos UTXO.

La paralelización, o la capacidad de realizar múltiples operaciones independientes simultáneamente, es una característica importante en términos de escalabilidad y rendimiento general de la red de Cardano. El estado global del modelo basado en cuentas de Ethereum limita las opciones de escalabilidad, ya que es extremadamente difícil lograr la paralelización en el procesamiento de transacciones y también la ejecución de contratos inteligentes. Con el modelo EUTXO, se puede lograr un mayor nivel de concurrencia, lo que abre la puerta a una mayor escalabilidad.

Al igual que en Bitcoin, procesar una transacción en la red de Cardano implica validar la acción solicitada. El nodo procede a verificar que puede realizar la acción solicitada y que el autor de la transacción ha proporcionado los datos/entradas relevantes. La acción es para transacciones ordinarias que pretenden gastar EUTXO que están bloqueados con una clave pública. El nodo confirma que el autor de la transacción ha proporcionado una firma digital con la clave privada correspondiente. La acción, es decir, consumir el EUTXO, se realizará si la validación es exitosa. La siguiente acción es validar las transacciones que pretenden gastar un EUTXO que está bloqueado por una dirección de script. Un script es un programa (un fragmento de código) que decide si la transacción que gasta el EUTXO está autorizada o no para hacerlo. Un script contiene funciones puras cuyo resultado es Verdadero o Falso. Para validar una transacción, el nodo invoca el intérprete de secuencias de comandos, que es un programa que puede traducir y ejecutar el código de secuencias de comandos de Plutus. El intérprete ejecuta el script cuyo hash ha sido formado por la dirección donde están bloqueadas los UTXO. En otras palabras, cuando un EUTXO está bloqueado por una secuencia de comandos de Plutus, el código de secuencia de comandos de ese EUTXO se asocia con su dirección.

Lo que es realmente innovador sobre el modelo EUTXO de Cardano en comparación con el de Bitcoin, además de la mayor expresividad de la programabilidad habilitada por Plutus, es que un UTXO extendido permite a los usuarios agregar opcionalmente datos de usuario arbitrarios en formato similar a JSON a UTXO. Este dato se llama Datum. El Datum permitirá a los desarrolladores dar a los scripts una funcionalidad similar al estado. Los datos de usuario se pueden considerar como un estado de script local. Este estado solo tiene validez local, ya que está asociado a una UTXO específico. Usar todo el potencial de Datum depende de los desarrolladores. Las transacciones pueden llevar argumentos específicos del usuario, llamados Redentor. Redentor puede verse como la intención del autor de la transacción sobre cómo gastar el UTXO. Redeemer puede ser utilizado por desarrolladores de aplicaciones descentralizadas para varios propósitos. Por lo general, existe una vinculación entre Datum y Redeemer que depende de la funcionalidad específica de una aplicación en particular. Cuando se valida una transacción, un script de validación opera con Datum, Redentor y un contexto que incluye datos de la transacción. El script contiene condiciones que permiten consumir el UTXO cuando se cumplen. El contexto de Datum, Redentor y transacción son datos que se ingresan al script.

Para gastar los EUTXOs que están bloqueados por una secuencia de comandos, primero es necesario colocar la secuencia de comandos en la cadena de bloques. El desbloqueo de la UTXO dependerá del script, por lo que la transacción contendrá el script y también las UTXO que se bloquearán. Los desarrolladores (o sus aplicaciones) escriben el código en cadena de Plutus y lo empaquetan en un formato especial. Luego, se debe crear una transacción en la que se incrustará el script de Plutus. Una vez que la transacción se ha almacenado en la cadena de bloques, se puede enviar otra transacción para iniciar la ejecución del script. La transacción se puede ver como un mensaje al script. Los desarrolladores dividen las aplicaciones en código dentro y fuera de la cadena. El código fuera de la cadena puede ser parte de la billetera o puede ser una aplicación descentralizada (DEX). La parte fuera de la cadena de la aplicación puede crear una transacción que contenga el script en la cadena y los EUTXO que deben bloquearse. Para cada EUTXO se debe especificar el hash de Datum. El usuario tiene que firmar la transacción. Después de que la red envíe y acepte la transacción, el script bloqueará los EUTXO.

La validación de un script requiere muchos más recursos que la validación de una transacción normal. En Ethereum una fuente de indeterminismo puede ser el tamaño de las tarifas (fees) de ejecución del guion/contrato inteligente. En el caso de Cardano, el presupuesto para ejecutar el guion es parte de la transacción y es posible calcular la tarifa exacta localmente por adelantado. El intérprete del script realiza un seguimiento del consumo de los recursos durante la ejecución del script en el contexto del presupuesto. Si se agota el presupuesto de ejecución, la evaluación del script se detiene y el resultado es Falso. Un valor falso significa que no se consumirá el EUTXO. Tenga en cuenta que un script de Plutus solo funciona con el estado asociado del EUTXO y, además, con los datos que recibe en la transacción. La ejecución del script no depende de nada más. Lo único que cambiará desde la perspectiva del libro mayor a nivel global es el movimiento de los EUTXOs entre direcciones con cada bloque agregado en la cadena. El mismo contrato se puede usar para bloquear las monedas de los agentes A y B. Ejecutar el script para las monedas de (A) no tiene ningún efecto sobre la ejecución del script para las monedas de (B), ya que son dos ejecuciones independientes para EUTXOs separados. El resultado de las dos ejecuciones individuales depende de los estados locales. Se construye entonces una transacción de gasto (transacción de mensaje) para interactuar con el script. La entrada de la transacción puede ser el EUTXO que está bloqueado por el script. La transacción de gasto invoca el intérprete de guiones para validar el guion y desbloquear el EUTXO si se cumplen las condiciones. Por lo tanto, el EUTXO desbloqueado se transfiere a una nueva dirección.

Algunas aplicaciones pueden necesitar trabajar con un estado global a través de múltiples EUTXO y pueden usar Datum para hacerlo. Se puede lograr una especie de estado global dentro de un diseño de protocolo particular. Los diseñadores de protocolos deben ser conscientes de que si los EUTXO están bloqueados por un script, solo un único agente puede interactuar con él dentro de un bloque. Esto puede requerir algún tipo de sincronización entre agentes.

Por ejemplo: Los fondos de liquidez que usa (x)DEX son recursos compartidos porque los usuarios quieren usarlos al mismo tiempo (dentro del mismo bloque). Cada grupo de liquidez contiene un conjunto de EUTXO. Por lo tanto, los EUTXO disponibles también son recursos compartidos, ya que, a menos que un agente reserve un EUTXO particular para sí mismo de alguna manera acordada, están disponibles para todos los demás. El algoritmo de aplicación debe garantizar que cuando se construyan las transacciones, los agentes individuales no compitan por los EUTXO en el grupo. Las transacciones que quieren consumir un EUTXO en particular son independientes entre sí desde una perspectiva de validación. Sin embargo, la dependencia existe ya que varios agentes pueden querer consumir el mismo recurso (el mismo EUTXO) al mismo tiempo para construir una transacción. En otras palabras, los agentes quieren trabajar simultáneamente. Una solución que se utiliza actualmente son las transacciones masivas. Los agentes buscan los UTXOs de solicitud adecuados que deseen interactuar con un grupo de liquidez en particular para cumplir con el intercambio solicitado. Los agentes hacen eso teniendo en cuenta todas las demás solicitudes de intercambio disponibles e insertan los intercambios seleccionados en una transacción de lote grande. Al crear una transacción por lotes, los agentes saben qué los EUTXOs ya se han utilizado. Pueden garantizar que un EUTXO en particular no se use dos veces dentro de una transacción por lotes.[67][68][69][70][71]

(Ver White paper del modelo EUTXO)

Referencias

  1. «Release 1.35.0: Update alonzo ProtVer supported to 7 0». 
  2. «Boom Cardano: el activo digital está a punto de llegar a los 1.000 contratos inteligentes». https://www.iproup.com/economia-digital/29145-cardano-esta-a-punto-de-llegar-a-los-1-000-contratos-inteligentes. Consultado el 29 de junio de 2022. 
  3. «Relevant research papers and specifications». docs.cardano.org (en inglés). Consultado el 29 de junio de 2022. 
  4. Baker, Paddy (14 de febrero de 2020). «IOHK Opens Cardano Research Lab at University of Wyoming Following $500K Donation». www.coindesk.com (en inglés). Consultado el 30 de junio de 2022. 
  5. «Cardano Builder IOG Funds $4.5M Blockchain Research Hub at Stanford University». 
  6. pool), Cardanians io (CRDNS (30 de agosto de 2021). «Security of Cardano». Medium (en inglés). Consultado el 29 de junio de 2022. 
  7. «Bitcoin’s Smaller Cousins Are Leading the Crypto Rally - Bloomberg». web.archive.org. 26 de junio de 2018. Archivado desde el original el 26 de junio de 2018. Consultado el 16 de noviembre de 2021. 
  8. «About us». Cardano Foundation (en inglés). Consultado el 16 de noviembre de 2021. 
  9. a b «Cardano roadmap». Cardano roadmap (en inglés). Consultado el 30 de junio de 2022. 
  10. «Cardano’s Strategy in Africa, Blockchain’s Benefits for the Supply Chain Industry & EMURGO’s Role in Driving Success - EMURGO» (en inglés estadounidense). 12 de marzo de 2019. Consultado el 30 de junio de 2022. 
  11. «What is Cardano? The ‘green’ crypto that hopes to surpass the tech giants». The Independent (en inglés). 18 de mayo de 2021. Consultado el 22 de agosto de 2021. 
  12. «Cardano energy consumption | cexplorer.io». cexplorer.io (en inglés). Consultado el 30 de junio de 2022. 
  13. a b «Cardano is 47,000x more energy-efficient than Bitcoin, data shows». Finbold (en inglés estadounidense). 22 de febrero de 2022. Consultado el 30 de junio de 2022. 
  14. «Cardano (ADA) Blockchain Explorer». adastat.net (en inglés). Consultado el 30 de junio de 2022. 
  15. «Why Cardano is more decentralized than ever before». 
  16. «Cardano becomes the most decentralized network on the market with majority of ADA supply staked». 
  17. «Cardano Blockchain Achieves 100% Decentralization – Community Now Controls All Block Production». 
  18. «Cardano Joins The Linux Foundation as the First Non-Profit Gold Member». 
  19. «Cardano Joins Linux Foundation as Gold Member». 
  20. «Cardano Foundation joins The Linux Foundation as a Gold Member». 
  21. a b «Why Cardano’s Founder Charles Hoskinson Was Right All Along | Bitcoinist.com» (en inglés estadounidense). 28 de enero de 2022. Consultado el 30 de junio de 2022. 
  22. Charles Hoskinson: Cardano | Lex Fridman Podcast #192, consultado el 30 de junio de 2022 .
  23. «Input Output». IOHK (en inglés). Consultado el 30 de junio de 2022. 
  24. «Cardano roadmap». Cardano roadmap (en inglés). Consultado el 1 de julio de 2022. 
  25. a b «Byron». Cardano roadmap (en inglés). Consultado el 1 de julio de 2022. 
  26. a b «Shelley». Cardano roadmap (en inglés). Consultado el 1 de julio de 2022. 
  27. Huang, Roger. «The ‘Chinese Mining Centralization’ Of Bitcoin And Ethereum». Forbes (en inglés). Consultado el 1 de julio de 2022. 
  28. alethio (9 de mayo de 2018). «Are Miners Centralized? A Look into Mining Pools». Medium (en inglés). Consultado el 1 de julio de 2022. 
  29. «Bitcoin’s Network Operations Are Controlled by Five Companies». Bloomberg.com (en inglés). 31 de enero de 2020. Consultado el 1 de julio de 2022. 
  30. «One Bitcoin group now controls 51% of total mining power, threatening entire currency's safety - ExtremeTech». www.extremetech.com. Consultado el 1 de julio de 2022. 
  31. «Bitcoin is largely controlled by a small group of investors and miners, study finds». TechSpot (en inglés estadounidense). Consultado el 1 de julio de 2022. 
  32. a b c «Goguen». Cardano roadmap (en inglés). Consultado el 1 de julio de 2022. 
  33. a b «Basho». Cardano roadmap (en inglés). Consultado el 1 de julio de 2022. 
  34. «Voltaire». Cardano roadmap (en inglés). Consultado el 1 de julio de 2022. 
  35. «Ada Lovelace honoured by Google doodle». Wikipedia (en inglés). 5 de junio de 2022. Consultado el 1 de julio de 2022. 
  36. «Cardano, Gerolamo». Wikipedia, la enciclopedia libre. 17 de mayo de 2022. Consultado el 1 de julio de 2022. 
  37. a b c «From Classic to Chronos: the implementations of Ouroboros explained - IOHK Blog». IOHK (en inglés). Consultado el 2 de julio de 2022. 
  38. a b c d «The Ouroboros path to decentralization - IOHK Blog». IOHK (en inglés). Consultado el 2 de julio de 2022. 
  39. «From Classic to Chronos: the implementations of Ouroboros explained - IOHK Blog». IOHK (en inglés). Consultado el 1 de julio de 2022. 
  40. «The different ‘flavors’ of Ouroboros». www.essentialcardano.io. Consultado el 1 de julio de 2022. 
  41. «From Classic to Chronos: the implementations of Ouroboros explained - IOHK Blog». IOHK (en inglés). Consultado el 6 de julio de 2022. 
  42. «Ouroboros: A Provably Secure Proof-of-Stake Blockchain Protocol». 
  43. «Ouroboros-BFT: A Simple Byzantine Fault Tolerant Consensus Protocol». 
  44. «From Classic to Chronos: the implementations of Ouroboros explained». 
  45. «From Classic to Chronos: the implementations of Ouroboros explained». 
  46. «Ouroboros Praos: An adaptively-secure, semi-synchronous proof-of-stake protocol». 
  47. «From Classic to Chronos: the implementations of Ouroboros explained». 
  48. «Ouroboros Genesis: Composable Proof-of-Stake Blockchains with Dynamic Availability». 
  49. «Hydra – Cardano’s solution for ultimate Layer 2 scalability». 
  50. «Hydra: Fast Isomorphic State Channels». 
  51. «IOHK Presents Hydra: A Scaling Solution for Cardano.». 
  52. «From Classic to Chronos: the implementations of Ouroboros explained». 
  53. «Ouroboros Crypsinous: Privacy-Preserving Proof-of-Stake». 
  54. «From Classic to Chronos: the implementations of Ouroboros explained». 
  55. «Ouroboros Chronos: Permissionless Clock Synchronization via Proof-of-Stake». 
  56. «How Ouroboros Leios will change the Cardano Consensus». 
  57. «Advances in Ouroboros: Scaling for Future Growth». 
  58. «What is a Hard Fork Combinator?». 
  59. «About hard forks». 
  60. «The Mary hard fork FAQ—Everything you need to know». 
  61. «What is the Future of the Cardano Blockchain After the Mary Hard Fork?». 
  62. «Cardano Successfully Launches Alonzo Hardfork». 
  63. «Cardano Alonzo Hard Fork: What You Need to Know». 
  64. «Cardano upgrade: Vasil hard fork timing and details in full». 
  65. «What Cardano’s Highly Anticipated Vasil Hard Fork Will Bring». 
  66. «Cardano’s Major Network Update: What is the Vasil Hard Fork?». 
  67. Andrychowicz, M., Dziembowski, S., Malinowski, D., Mazurek, L.: Modeling bitcoin contracts by timed automata. In: International Conference on Formal Modeling and Analysis of Timed Systems. pp. 7–22. Springer (2014)
  68. «The Extended UTXO Model». 
  69. «Cardano’s Extended UTXO accounting model – built to support multi-assets and smart contracts». 
  70. «Understanding Cardano Extended-UTXO». 
  71. «Understanding the Extended UTXO model».