馃嚜馃嚫 Hydra: La soluci贸n de escalabilidad de Cardano

:es: Traducci贸n al espa帽ol de Hydra: Cardano scalability solution

Publicado por Cardanians en su blog de Medium, el 19 de Marzo de 2020.



El cuerpo de Hydra es como la cadena principal. Hydra puede tener muchas cabezas. Cada cabeza puede procesar ~1000 TPS.

Las criptodivisas llegaron al mundo para convertirse en una alternativa al sistema financiero actual. Como tal, los usuarios deben ser capaces de pagar en una tienda tan r谩pido como con tarjetas de cr茅dito. Esto significa que una transacci贸n debe ser completada en pocos segundos. La red de Visa procesa un promedio de 150 millones de transacciones cada d铆a. Son aproximadamente 2.000 transacciones por segundo (TPS). Tal rendimiento es inalcanzable para las actuales redes de blockchain. El rendimiento normal de las redes PoW suele ser de s贸lo unas pocas docenas de TPS. Las redes PoS pueden alcanzar varios cientos de TPS.

Las redes distribuidas suelen sufrir graves limitaciones de escalabilidad, un bajo rendimiento y un almacenamiento excesivo necesario para mantener el estado del sistema y su historial de transacciones. Despu茅s de unos 5 a帽os de esfuerzo de investigaci贸n interdisciplinaria, IOHK public贸 el documento Hydra. Los cient铆ficos e investigadores de las ramas de redes, computaci贸n multipartita, lenguaje de programaci贸n y consenso tuvieron que trabajar juntos para llegar a una soluci贸n de escalamiento que se ajusta bien a la blockchain y a los contratos inteligentes. Es un gran logro cient铆fico y un hito significativo en el desarrollo de Cardano. Ouroboros Hydra abre nuevos caminos en la escalabilidad de PoS. Con Hydra, Cardano puede realmente convertirse en la alternativa al actual dinero fiduciario.

Hydra es la soluci贸n de segunda capa encima de la primera capa de Cardano donde se utiliza el consenso PoS. Hydra est谩 dise帽ada de manera que encaja bien con un modelo de stake pools. El equipo de IOHK introdujo un modelo UTxO extendido que permite la fragmentaci贸n del espacio de staking sin necesidad de fragmentar el ledger en s铆. Todav铆a es posible fragmentar a nivel del ledger e Hydra es una parte complementaria de la soluci贸n de escalamiento total. Cada pool puede crear una nueva cabeza de Hydra, por lo que si se a帽aden m谩s pools, se pueden a帽adir m谩s cabezas. As铆 que a帽adiendo nuevas cabezas al protocolo se puede lograr un escalamiento casi lineal. Se han hecho simulaciones y los resultados son excelentes. Cada cabeza de Hydra puede procesar alrededor de 1000 TPS y hay espacio para una mayor optimizaci贸n. As铆 que con 1000 pools, Cardano podr铆a te贸ricamente ser capaz de escalar hasta 1 mill贸n de TPS, y la finalizaci贸n de las transacciones ser铆a muy r谩pida.

No importa si no entiendes todo lo que escribimos anteriormente. Vamos a profundizar en los detalles t茅cnicos.

驴Cu谩l es la relaci贸n entre la bockchain y Hydra

Las opciones de la primera capa siempre estar谩n limitadas en cuanto al n煤mero de transacciones procesadas en un per铆odo de tiempo determinado. Si no se sacrifica la descentralizaci贸n, el rendimiento nunca ser谩 suficiente para permitir que un gran n煤mero de personas utilicen una red distribuida consensuada. La soluci贸n puede consistir en crear una segunda capa por encima de la primera. La primera capa es lo que llamamos blockchain. Es la red m谩s segura y descentralizada, pero con menor rendimiento. Por encima de esta primera capa, es posible crear una red cuasi independiente, una segunda capa. La segunda capa se construye para escalar lo m谩s alto posible, y hacer transacciones r谩pidas y baratas. As铆 que Hydra es la soluci贸n de segunda capa para la primera capa de Cardano.

Debido a que la seguridad de la primera capa est谩 garantizada por la blockchain y el consenso distribuido, decimos que las transacciones se procesan en cadena. Los usuarios podr谩n transferir fondos a la segunda capa. Las transacciones en la segunda capa se procesan fuera de la cadena, es decir, fuera de la blockchain. As铆 que la primera capa no verifica las transacciones que tienen lugar en la segunda capa.

Mostr茅moslo con un ejemplo. Alice, Bob y Carol tienen cada uno 10 monedas ADA en la blockchain, en la primera capa. En total 30 monedas. Hay un mecanismo especial que permite transferir las monedas a la segunda capa. En nuestro caso, a Hydra. Para ser m谩s precisos, la cabeza de Hydra se abre. En la cabeza de Hydra, todos los participantes intercambian monedas a trav茅s de transacciones. La primera capa no verifica estas transacciones. Una vez que la cabeza de Hydra se cierra, la blockchain s贸lo se har谩 cargo de la 煤ltima distribuci贸n de monedas v谩lida de la segunda capa. Luego hablaremos de la transferencia de monedas entre las capas.

La blockchain puede verificar f谩cilmente que de la cabeza de Hydra se espera que 30 monedas ADA sean devueltas a la blockchain. As铆 que exactamente la misma cantidad que fue transferida a blockchain durante la apertura de la cabeza de Hydra. La propiedad de las monedas puede haber cambiado en la segunda capa, con Alicia teniendo ahora 20 monedas y Bob con Carol 5 monedas. La ventaja es que un gran n煤mero de transacciones r谩pidas entre muchos usuarios puede tener lugar en la segunda capa y la blockchain no tiene que preocuparse por ello directamente.


Alice, Bob y Carol transfieren las monedas ADA de la blockchain a Hydra. La cabeza de Hydra se abre. En la cabeza de Hydra las partes pueden intercambiar tantas transacciones r谩pidas como quieran. Al final, el estado final de las monedas se transfiere de nuevo a la blockchain.

Alice, Bob y Carol pueden comunicarse entre s铆 directamente desde la cabeza de Hydra. Esto sucede de manera que es posible olvidar el historial de las transacciones. Las partes se actualizan mutuamente sobre los estados locales, y una vez que se confirma entre todos ellos el historial de transacciones puede ser eliminado. As铆, s贸lo el 煤ltimo estado v谩lido se mantiene en la cabeza de Hydra, y se utiliza cuando los fondos deben ser transferidos de nuevo a la blockchain. Tambi茅n lo discutiremos con m谩s detalle m谩s adelante.

Los canales de estado de Hydra

Hydra utiliza canales de estado, lo que ampl铆a el concepto de canales de pago. Las partes mantienen los canales de estado para mantener el estado com煤n, y son capaces de acordar sin interacci贸n con la blockchain.

Hydra no s贸lo se trata de la transferencia de fondos, sino tambi茅n de la ejecuci贸n de contratos inteligentes. Por lo tanto, es necesario trabajar con los estados. Por ejemplo, es posible crear un contrato inteligente en la primera capa y transferirlo a la cabeza de Hydra donde puede ser ejecutado.

Puedes imaginar un contrato inteligente como un programa o secuencia de ciertas operaciones que se ejecutan condicionalmente. Esto significa que una operaci贸n s贸lo se realiza si se ha producido un evento esperado. Si no, se puede realizar otra operaci贸n. Podemos hablar de la ejecuci贸n por eventos de un contrato inteligente. El contrato inteligente se encuentra en un determinado estado en cualquier momento, que cambia gradualmente de forma condicional mientras est谩 activo, y los eventos desencadenan los cambios.

Puedes leer nuestro art铆culo sobre los contratos inteligentes aqu铆.

Imagina una oficina de apuestas donde la gente pueda apostar sobre el resultado de los partidos. El contrato inteligente ser谩 capaz de bloquear los dep贸sitos de todos los participantes y luego distribuir equitativamente las ganancias en base a los resultados de los partidos. Si lo simplificamos, el contrato estar谩 en varios estados por partido:

  1. Recoger los dep贸sitos y las propinas de los participantes antes de un partido.
  2. Dejar de aceptar dep贸sitos poco antes de que comience el partido.
  3. Esperar el resultado del partido.
  4. Procesando el resultado del partido y calculando las ganancias.
  5. Distribuci贸n de las ganancias entre los ganadores.

El contrato inteligente puede ser ejecutado en Hydra y puede ser usado para m谩s partidos seguidos. Por lo tanto, la blockchain puede no almacenar todas las transacciones relacionadas con las apuestas. El historial puede ser olvidado en Hydra. Despu茅s de que las ganancias se distribuyen a los ganadores despu茅s del partido, todos los estados y transacciones pueden ser borrados; excepto el estado final, por supuesto. Asumamos que el contrato inteligente fue creado para una temporada de f煤tbol. Una vez que la temporada termine, la cabeza de Hydra puede ser cerrada y todo lo que se almacenar谩 en la blockchain es el fondo final de distribuci贸n de los apostadores.

0*7KFc7W5ZYgbbT98d
驴Por qu茅 no apostar a trav茅s de un contrato inteligente?

El concepto de canales de estado no es nuevo y ya existen algunas implementaciones. Sin embargo, tienen algunas serias desventajas. La mayor desventaja es que la infraestructura de la primera capa y el c贸digo del contrato inteligente, que est谩 escrito para la infraestructura de la primera capa, no se puede utilizar dentro de la segunda capa sin cambios. Estos cambios, que son necesarios para la transferencia de fondos y contratos inteligentes entre capas, podr铆an ser muy peligrosos.

Por ejemplo, la blockchain suele utilizar el modelo UTxO (Unspent Transaction Output). UTxO es b谩sicamente una abstracci贸n de monedas. Cada UTxO representa una cadena de propiedad implementada como una cadena de firmas digitales en la que el propietario utiliza la llave privada para firmar una transacci贸n que transfiere la propiedad de su UTxO a la llave p煤blica del receptor. Como dijimos, para simplificar, puedes imaginarte al modelo UTxO como una representaci贸n de la moneda. Sus tenencias de monedas est谩n definidas por el n煤mero de UTxO que tiene en las direcciones de su billetera.

El modelo UTxO es considerado como una forma muy segura de manipular con fondos dentro de la blockchain. Las soluciones actuales de segunda capa no son capaces de trabajar directamente con la UTxO. Por lo tanto, las monedas se representan de una manera completamente diferente. Las actuales segundas capas pierden as铆 un importante elemento de seguridad. Lo mismo ocurre con la ejecuci贸n de contratos inteligentes donde debe producirse una conversi贸n de la representaci贸n de la informaci贸n. Y puede ser muy peligroso.

Hydra simplifica significativamente las soluciones de la segunda capa. Hydra es capaz de adoptar la soluci贸n de la primera capa. El modelo UTxO Extendido y toda la infraestructura de contratos inteligentes de la primera capa puede ser utilizada dentro de Hydra. Las transacciones de Hydra trabajan directamente con UTxO para cambiar la propiedad. Un contrato inteligente, que se despliega en la blockchain, puede ser ejecutado tal cual en la cabeza de Hydra y no hay conversi贸n de datos.

0*OmMiq14YelBR3k99
La simplicidad es poder.

Para ver la diferencia m谩s claramente, podemos echar un vistazo a Ethereum. Ethereum usa Solidity para escribir un contrato inteligente sobre la primera capa. Cuando el contrato debe ser transferido a la segunda capa debe ser convertido ya que la segunda capa no es capaz de trabajar directamente con Solidity. Para permitir la conversi贸n, el contrato inteligente en Solidity debe ser adaptado. El lenguaje de scripting de la blockchain y la segunda capa difieren significativamente. As铆 que la conversi贸n es necesaria.

En Hydra, no es necesaria la conversi贸n ya que ambas capas son capaces de utilizar el mismo sistema de scripts. Hydra introduce canales de estado isom贸rficos multipartitos. B谩sicamente significa que el lenguaje de scripting del ledger subyacente es utilizado por los canales de estado. Hydra hereda el lenguaje de scripts de la blockchain de Cardano.

Los canales de estado permiten el procesamiento paralelo de transacciones y contratos inteligentes, esto sucediendo fuera de la cadena. Es posible abrir m谩s cabezas de Hydra. As铆 que Hydra puede ser multicabeza. Cada cabeza reci茅n abierta representa una nueva unidad paralela. Una vez que se cierra un canal de estado, la cabeza puede ser absorbida sin problemas por la blockchain. Es una tarea f谩cil y sencilla, ya que se utiliza el mismo c贸digo de contrato inteligente dentro y fuera de la cadena. Incluso es posible crear un contrato inteligente en Hydra sin ser registrado en la blockchain. Blockchain es capaz de hacerse cargo del contrato inteligente y continuar con la ejecuci贸n en la cadena.


Hay m谩s cabezas de Hydra.

Gracias a Hydra, Cardano puede escalar casi linealmente. Significa que cuando se a帽aden nuevos recursos a la red, se pueden procesar m谩s transacciones y contratos inteligentes. El rendimiento aumenta. No siempre es el caso de la blockchain. Al menos, no es tan f谩cil.

UTxO Extendido

El uso del modelo UTxO en ambas capas no es gratuito y ambas capas deben ser preparadas para ello. El uso de los canales de estado isom贸rfico requiere la capacidad de tomar una parte del estado de la blockchain, procesarla afuera de manera independiente en Hydra, y finalmente ser capaz de fusionarla de nuevo en la blockchain. El modelo UTxO es muy adecuado para eso y puede representar el estado dentro y fuera de la cadena. Sin embargo, el modelo UTxO de Bitcoin tradicional es dif铆cil de usar para el procesamiento fuera de la cadena debido a sus limitadas capacidades de scripting. IOHK introdujo un modelo UTxO Extendido (EUTxO) y soporte para una m谩quina de estado general (lo hablaremos m谩s adelante). El modelo UTxO Extendido y la m谩quina de estados permite una transferencia segura entre capas sin restricciones de scripting.

La transferencia de UTxOs desde la blockchain a la cabeza de Hydra est谩 coordinada por m煤ltiples partes. Hablamos de la apertura de la cabeza de Hydra. La cabeza en s铆 es el nombre del protocolo de la segunda capa. Al principio, despu茅s de la transferencia, hay un estado inicial de la cabeza, que evoluciona en el protocolo de la cabeza independientemente de la blockchain. Las partes env铆an transacciones, ejecutan contratos inteligentes y mantienen colectivamente el estado com煤n. Debido a la naturaleza isom贸rfica, la misma validaci贸n de la transacci贸n, reglas y ejecuci贸n de scripts puede ser utilizada en la cadena y fuera de ella.

Cualquiera de las partes puede desear terminar el protocolo de la cabeza off-chain. En este caso, las partes transfieren el estado final de la cabeza de nuevo a la blockchain. Por lo tanto, el estado de la blockchain se actualiza en consecuencia, y es coherente con el estado final de la cabeza.

Hydra permite compromisos y descompromisos incrementales. Significa que un UTxO puede ser a帽adido o eliminado de la cabeza de Hydra sin cerrar y volver a abrir la cabeza. Es muy 煤til ya que puede haber m谩s partes involucradas, y ser铆a innecesario cerrar la cabeza s贸lo porque un participante necesita agregar o quitar fondos.

La m谩quina de estados

Puede que no est茅s familiarizado con el t茅rmino m谩quina de estado. En pocas palabras, es un modelo de c谩lculo matem谩tico. Es una m谩quina abstracta que puede estar en exactamente uno de un n煤mero finito de estados en un momento dado. La m谩quina de estados puede cambiar de un estado a otro en respuesta a algunas entradas. El cambio de un estado a otro se llama transici贸n. Se utiliza dentro de la primera capa de Cardano para estar absolutamente seguro de que la transferencia de UTxO entre capas es fiable y segura, ya que s贸lo hay un estado v谩lido en cada momento y la transici贸n al siguiente estado es determinista.

1*RcKgzpxBqKsUBEK11tLwBQ
La m谩quina de estados se encarga de la transferencia de UTxOs.

La parte de la blockchain de Hydra debe asegurar dos cosas:

  1. Se encarga de la fijaci贸n de los UTxOs en la blockchain mientras que los UTxOs se transfieren a la cabeza. Los UTxOs se mantienen bloqueados en la blockchain mientras la cabeza est谩 activa. Esto sucede cuando la cabeza debe ser abierta.
  2. Cuando la cabeza va a ser cerrada, establece el estado final de Hydra. Asegura que los UTxOs sean transferidos de forma segura de nuevo a la blockchain y se descompongan. Esto sucede cuando la cabeza debe ser cerrada.

Estas dos funciones aseguran que las UTxOs que se usaron como el estado inicial de la cabeza son reemplazadas por UTxOs que corresponden al estado final de la cabeza.

1*l2YOWpxszY6i4Cqr0zZT6g
Los UTxOs se bloquean una vez que la cabeza se abre y se desbloquean cuando se cierra.

Hay cuatro estados utilizados dentro de la m谩quina de estados de Hydra: Inicial, Abierto, Cerrado y Final, y lo veremos m谩s de cerca a continuaci贸n.

Probablemente no sea necesario hablar m谩s profundamente de la m谩quina de estados. Es importante saber que la transferencia de UTxO entre capas est谩 definida de manera estricta y segura. Un UTxO en particular puede ser manejado ya sea por una blockchain o por la cabeza de Hydra. Nunca por ambas capas simult谩neamente.

El protocolo de la cabeza

Cualquier parte puede iniciar la creaci贸n de una cabeza de Hydra pidiendo a un conjunto de terceros que se unan. Cada parte establece un canal con todas las otras partes. Si no es posible por cualquier raz贸n, la creaci贸n de la cabeza es abortada. Las partes intercambian material de llave p煤blica a trav茅s de los canales establecidos. El material de llave p煤blica se utiliza para la autenticaci贸n de las transacciones en cadena relacionadas con la cabeza, ya que s贸lo los miembros de la cabeza est谩n autorizados a hacerlo. El material tambi茅n se utiliza para la confirmaci贸n de eventos basados en firmas m煤ltiples dentro de la cabeza.

El iniciador de la cabeza establece la cabeza mediante la presentaci贸n de una transacci贸n inicial a la blockchain. Se crean tokens especiales y se asignan a todos los miembros de la cabeza. As铆, las llaves p煤blicas de los miembros de la cabeza pueden ser enlazadas con los tokens. En este punto, la m谩quina de estados se involucra y se encarga de la transferencia segura de UTxO de la blockchain a la cabeza. El primer estado es el inicial. En este punto, todos los miembros de la cabeza pueden enviar UTxO a la cabeza. Si alg煤n miembro de la cabeza no env铆a la transacci贸n de confirmaci贸n, entonces el estado pasa directamente de Inicial a Final y la cabeza no se abrir谩. Asumamos que todos los miembros han logrado enviar la transacci贸n de confirmaci贸n. En este caso, las UTxOs est谩n bloqueadas dentro de la blockchain para permitir a los miembros de la cabeza trabajar con ellas. Los miembros de la cabeza pueden empezar a usar UTxO dentro de la cabeza una vez que la m谩quina de estado cambie el estado a Abierto. A partir de ese momento, las UTxOs comienzan a evolucionar fuera de la cadena.

En cualquier momento, cuando la cabeza se abre, cualquier parte puede iniciar el cierre de la cabeza. La m谩quina de estado cambia el estado a Cerrado. Hay un per铆odo de disputa durante el cual las partes proporcionan su estado final, que es su conjunto de UTxO. Una vez que el per铆odo de impugnaci贸n pasa, la m谩quina de estados cambia el estado a Final. Del mismo modo, como al principio, la m谩quina de estado se encarga de la transferencia segura del conjunto UTxO, que corresponde al estado final de la cabeza, de vuelta a la blockchain.

Echemos un vistazo al procesamiento de la transacci贸n en la cabeza. El protocolo de la cabeza es as铆ncrono y es capaz de procesar transacciones en paralelo. Cada parte mantiene su propio estado UTxO final. El protocolo de la cabeza recoge y distribuye multi-firmas en cada transacci贸n emitida. Una vez que una transacci贸n es confirmada, pasa a formar parte del 煤ltimo estado UTxO v谩lido. El 煤ltimo estado UTxO v谩lido es irreversible, por lo que la UTxO individual es inmediatamente gastable. Debido al procesamiento as铆ncrono, el estado final de la parte puede ser diferente del otro. La UTxO evoluciona en el tiempo desde la fase inicial. Cada parte aplica todas las transacciones que han sido confirmadas en la cabeza, y por lo tanto el estado final puede cambiar constantemente.

El protocolo de la cabeza no mantiene el historial de las transacciones para minimizar el almacenamiento local de las partes. En lugar de mantener el historial, se generan constantemente copias de UTxO. Siempre se selecciona un l铆der de copia que ofrece su visi贸n del estado confirmado. Otras partes confirman el estado mediante una firma, y como resultado se genera una nueva copia. A diferencia del procesamiento asincr贸nico de transacciones, la copia se genera de forma secuencial. Una vez que se confirma una nueva copia, las partes pueden borrar todas las transacciones que se han procesado y que forman parte de la nueva copia. El estado confirmado de la parte siempre se adelanta a la 煤ltima copia confirmada. Por lo tanto, no es necesario esperar a que se confirme alguna transacci贸n para poder confirmar una nueva copia propuesta. La copia refleja el estado final de la cabeza que ha sido confirmado por todos los miembros de la cabeza.

Resumen

Hydra permitir谩 lo que es absolutamente necesario para una mayor adopci贸n de las criptomonedas, y eso es una alta escalabilidad. Sin esta caracter铆stica, el sistema global es b谩sicamente inutilizable, porque una vez que la gente quiera empezar a utilizarlo, se encontrar谩 con que tiene que esperar mucho tiempo para un acuerdo de transacci贸n. Y a menudo tambi茅n con un coste extra. Hydra es una ruptura en el juego. Adem谩s de enviar transacciones, tambi茅n permite la ejecuci贸n de contratos inteligentes. Adem谩s, todo es muy seguro en comparaci贸n con la competencia gracias al uso directo de UTxO.


Considera la posibilidad de delegar tus ADA en Cardanians, ticker CRDNS.

Nuestro equipo est谩 relacionado con el desarrollo de Adapools.org.

Si te gustan nuestros art铆culos, puedes apoyarnos con una donaci贸n:

[ADA] DdzFFzCqrhsp2Qsit7VGq5jpjehGFmVt9rvJzSRnWJ8S5HaMqpXxg7kguevE7jvxhPgmHbrKGtRXGGF7jVHjcnSBfQ5sEGKB7HVvDNyR

[BTC] 3GvKDw7GWfyawMo3QcHkVJCUjGvbyUqboA

Embajadores de Cardano: Jaromir Tesar y Lukas Barta

V铆as de contacto

Web: https://cardanians.io
Twitter: @Cardanians_io
Adapool Twitter: @AdapoolsO
Email: hello@cardanians.io
Telegram: https://t.me/cardanians
Facebook: Cardano CZ/SK: https://www.facebook.com/groups/cardanoczsk

1 Like